diff --git a/.circleci/config.yml b/.circleci/config.yml
index 2bf4f64f..0e161844 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -29,7 +29,7 @@ jobs:
at: .
- run: echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" >> ~/.npmrc
- run: npm publish
-
+# dont change anything
workflows:
version: 2
build:
diff --git a/README.md b/README.md
index 4a82dfab..0ed221d8 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,10 @@ The [Topcoder](https://www.topcoder.com) lib for internal ReactJS projects.
Change the property in `AV_SCAN_SCORER_REVIEW_TYPE_ID` in config.
+### Configuration for AV-Scan scorer review type ID
+
+Change the property in `PROVISIONAL_SCORING_COMPLETED_REVIEW_TYPE_ID` in config.
+
### Development
```shell
# Install dependencies
@@ -19,7 +23,7 @@ npm install
npm test
npm run build
-# Go to other project which depends on the topcoder-react-lib, config its package.json so
+# Go to other project which depends on the topcoder-react-lib, config its package.json so
# that the 'topcoder-react-lib' points to the local foler path of topcoder-react-lib:
#
# "dependencies": {
diff --git a/__tests__/__snapshots__/index.js.snap b/__tests__/__snapshots__/index.js.snap
index 7048bc83..33482195 100644
--- a/__tests__/__snapshots__/index.js.snap
+++ b/__tests__/__snapshots__/index.js.snap
@@ -62,9 +62,22 @@ Object {
"getAllCountriesInit": [Function],
"getCountriesDone": [Function],
"getCountriesInit": [Function],
+ "getReviewTypesDone": [Function],
+ "getReviewTypesInit": [Function],
"getSkillTagsDone": [Function],
"getSkillTagsInit": [Function],
},
+ "memberSearch": Object {
+ "checkIfSearchTermIsATag": [Function],
+ "clearMemberSearch": [Function],
+ "loadMoreUsernames": [Function],
+ "memberSearchSuccess": [Function],
+ "resetSearchTerm": [Function],
+ "setSearchTag": [Function],
+ "setSearchTerm": [Function],
+ "topMemberSearchSuccess": [Function],
+ "usernameSearchSuccess": [Function],
+ },
"memberTasks": Object {
"dropAll": [Function],
"getDone": [Function],
@@ -93,6 +106,18 @@ Object {
"getUserSrmDone": [Function],
"getUserSrmInit": [Function],
},
+ "notifications": Object {
+ "dismissChallengeNotificationsDone": [Function],
+ "dismissChallengeNotificationsInit": [Function],
+ "getNotificationsDone": [Function],
+ "getNotificationsInit": [Function],
+ "markAllNotificationAsReadDone": [Function],
+ "markAllNotificationAsReadInit": [Function],
+ "markAllNotificationAsSeenDone": [Function],
+ "markAllNotificationAsSeenInit": [Function],
+ "markNotificationAsReadDone": [Function],
+ "markNotificationAsReadInit": [Function],
+ },
"profile": Object {
"addSkillDone": [Function],
"addSkillInit": [Function],
@@ -238,9 +263,11 @@ Object {
"groups": [Function],
"looker": [Function],
"lookup": [Function],
+ "memberSearch": [Function],
"memberTasks": [Function],
"members": [Function],
"mySubmissionsManagement": [Function],
+ "notifications": [Function],
"profile": [Function],
"reviewOpportunity": [Function],
"settings": [Function],
@@ -290,10 +317,18 @@ Object {
"default": undefined,
"getService": [Function],
},
+ "memberSearch": Object {
+ "default": undefined,
+ "getService": [Function],
+ },
"members": Object {
"default": undefined,
"getService": [Function],
},
+ "notifications": Object {
+ "default": undefined,
+ "getService": [Function],
+ },
"reviewOpportunities": Object {
"default": undefined,
"getReviewOpportunitiesService": [Function],
diff --git a/__tests__/actions/__snapshots__/lookup.js.snap b/__tests__/actions/__snapshots__/lookup.js.snap
index 1b96d5b6..871f5468 100644
--- a/__tests__/actions/__snapshots__/lookup.js.snap
+++ b/__tests__/actions/__snapshots__/lookup.js.snap
@@ -7,6 +7,8 @@ Object {
"getAllCountriesInit": [Function],
"getCountriesDone": [Function],
"getCountriesInit": [Function],
+ "getReviewTypesDone": [Function],
+ "getReviewTypesInit": [Function],
"getSkillTagsDone": [Function],
"getSkillTagsInit": [Function],
},
diff --git a/__tests__/reducers/__snapshots__/lookup.js.snap b/__tests__/reducers/__snapshots__/lookup.js.snap
index 366913f0..792cbb9c 100644
--- a/__tests__/reducers/__snapshots__/lookup.js.snap
+++ b/__tests__/reducers/__snapshots__/lookup.js.snap
@@ -11,6 +11,7 @@ Object {
],
"loadingCountriesError": false,
"loadingSkillTagsError": true,
+ "reviewTypes": Array [],
"skillTags": Array [
Object {
"domain": "SKILLS",
@@ -33,6 +34,7 @@ Object {
],
"loadingCountriesError": true,
"loadingSkillTagsError": true,
+ "reviewTypes": Array [],
"skillTags": Array [
Object {
"domain": "SKILLS",
@@ -49,6 +51,7 @@ Object {
"allCountries": Array [],
"countries": Array [],
"loadingSkillTagsError": false,
+ "reviewTypes": Array [],
"skillTags": Array [
Object {
"domain": "SKILLS",
@@ -65,6 +68,7 @@ Object {
"allCountries": Array [],
"countries": Array [],
"loadingSkillTagsError": true,
+ "reviewTypes": Array [],
"skillTags": Array [
Object {
"domain": "SKILLS",
@@ -80,6 +84,7 @@ exports[`Default reducer Initial state 1`] = `
Object {
"allCountries": Array [],
"countries": Array [],
+ "reviewTypes": Array [],
"skillTags": Array [],
}
`;
@@ -95,6 +100,7 @@ Object {
],
"loadingCountriesError": false,
"loadingSkillTagsError": true,
+ "reviewTypes": Array [],
"skillTags": Array [
Object {
"domain": "SKILLS",
@@ -117,6 +123,7 @@ Object {
],
"loadingCountriesError": true,
"loadingSkillTagsError": true,
+ "reviewTypes": Array [],
"skillTags": Array [
Object {
"domain": "SKILLS",
@@ -133,6 +140,7 @@ Object {
"allCountries": Array [],
"countries": Array [],
"loadingSkillTagsError": false,
+ "reviewTypes": Array [],
"skillTags": Array [
Object {
"domain": "SKILLS",
@@ -149,6 +157,7 @@ Object {
"allCountries": Array [],
"countries": Array [],
"loadingSkillTagsError": true,
+ "reviewTypes": Array [],
"skillTags": Array [
Object {
"domain": "SKILLS",
@@ -164,6 +173,7 @@ exports[`Factory without server side rendering Initial state 1`] = `
Object {
"allCountries": Array [],
"countries": Array [],
+ "reviewTypes": Array [],
"skillTags": Array [],
}
`;
diff --git a/config/default.json b/config/default.json
index 23136c0f..38d4e982 100644
--- a/config/default.json
+++ b/config/default.json
@@ -1,5 +1,6 @@
{
"AV_SCAN_SCORER_REVIEW_TYPE_ID": "",
+ "PROVISIONAL_SCORING_COMPLETED_REVIEW_TYPE_ID": "",
"PAGE_SIZE": 50,
"REVIEW_OPPORTUNITY_PAGE_SIZE": 1000
}
diff --git a/config/development.json b/config/development.json
index 19bd4acd..b1519a01 100644
--- a/config/development.json
+++ b/config/development.json
@@ -1,3 +1,4 @@
{
- "AV_SCAN_SCORER_REVIEW_TYPE_ID": "68c5a381-c8ab-48af-92a7-7a869a4ee6c3"
+ "AV_SCAN_SCORER_REVIEW_TYPE_ID": "68c5a381-c8ab-48af-92a7-7a869a4ee6c3",
+ "PROVISIONAL_SCORING_COMPLETED_REVIEW_TYPE_ID": "52c91e85-745f-4e62-b592-9879a2dfe9fd"
}
diff --git a/config/production.json b/config/production.json
index 43e880e5..d2b1223d 100644
--- a/config/production.json
+++ b/config/production.json
@@ -1,3 +1,4 @@
{
- "AV_SCAN_SCORER_REVIEW_TYPE_ID": "55bbb17d-aac2-45a6-89c3-a8d102863d05"
+ "AV_SCAN_SCORER_REVIEW_TYPE_ID": "55bbb17d-aac2-45a6-89c3-a8d102863d05",
+ "PROVISIONAL_SCORING_COMPLETED_REVIEW_TYPE_ID": "df51ca7d-fb0a-4147-9569-992fcf5aae48"
}
diff --git a/config/test.js b/config/test.js
index 30d81af5..add8c31c 100644
--- a/config/test.js
+++ b/config/test.js
@@ -4,4 +4,12 @@ module.exports = {
V3: 'https://api.topcoder-dev.com/v3',
},
dummyConfigKey: 'Dummy config value',
+ SECRET: {
+ TC_M2M: {
+ AUTH0_URL: '',
+ AUTH0_AUDIENCE: '',
+ TOKEN_CACHE_TIME: '',
+ AUTH0_PROXY_SERVER_URL: '',
+ },
+ },
};
diff --git a/config/webpack/default.js b/config/webpack/default.js
index a1a3c63b..4872dd72 100644
--- a/config/webpack/default.js
+++ b/config/webpack/default.js
@@ -2,10 +2,11 @@
const webpack = require('webpack');
module.exports = {
- plugins: [
- // eslint-disable-next-line global-require
- new webpack.DefinePlugin({ CONFIG: JSON.stringify(require('config')) }),
- ],
+ node: {
+ tls: 'empty',
+ fs: 'empty',
+ net: 'empty',
+ },
// Don't include the dependencies to keep built bundle small,
// they will be provided by the app using this lib
externals: [
@@ -24,8 +25,10 @@ module.exports = {
'tc-accounts',
'to-capital-case',
'topcoder-react-utils',
+ 'tc-core-library-js',
+ ],
+ plugins: [
+ // eslint-disable-next-line global-require
+ new webpack.DefinePlugin({ CONFIG: JSON.stringify(require('config')) }),
],
- node: {
- fs: 'empty',
- },
};
diff --git a/dist/dev/index.js b/dist/dev/index.js
index 442fc9cb..249b0a98 100644
--- a/dist/dev/index.js
+++ b/dist/dev/index.js
@@ -1,13 +1,13 @@
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory(require("babel-runtime/core-js/json/stringify"), require("babel-runtime/core-js/object/assign"), require("babel-runtime/core-js/object/keys"), require("babel-runtime/core-js/object/values"), require("babel-runtime/core-js/promise"), require("babel-runtime/core-js/set"), require("babel-runtime/core-js/set-immediate"), require("babel-runtime/helpers/asyncToGenerator"), require("babel-runtime/helpers/classCallCheck"), require("babel-runtime/helpers/createClass"), require("babel-runtime/helpers/defineProperty"), require("babel-runtime/helpers/extends"), require("babel-runtime/helpers/slicedToArray"), require("babel-runtime/helpers/toConsumableArray"), require("babel-runtime/regenerator"), require("isomorphic-fetch"), require("le_node"), require("lodash"), require("moment"), require("moment-duration-format"), require("qs"), require("redux-actions"), require("tc-accounts"), require("to-capital-case"), require("topcoder-react-utils"));
+ module.exports = factory(require("babel-runtime/core-js/json/stringify"), require("babel-runtime/core-js/object/assign"), require("babel-runtime/core-js/object/keys"), require("babel-runtime/core-js/object/values"), require("babel-runtime/core-js/promise"), require("babel-runtime/core-js/set"), require("babel-runtime/core-js/set-immediate"), require("babel-runtime/helpers/asyncToGenerator"), require("babel-runtime/helpers/classCallCheck"), require("babel-runtime/helpers/createClass"), require("babel-runtime/helpers/defineProperty"), require("babel-runtime/helpers/extends"), require("babel-runtime/helpers/slicedToArray"), require("babel-runtime/helpers/toConsumableArray"), require("babel-runtime/regenerator"), require("isomorphic-fetch"), require("le_node"), require("lodash"), require("moment"), require("moment-duration-format"), require("qs"), require("redux-actions"), require("tc-accounts"), require("tc-core-library-js"), require("to-capital-case"), require("topcoder-react-utils"));
else if(typeof define === 'function' && define.amd)
- define(["babel-runtime/core-js/json/stringify", "babel-runtime/core-js/object/assign", "babel-runtime/core-js/object/keys", "babel-runtime/core-js/object/values", "babel-runtime/core-js/promise", "babel-runtime/core-js/set", "babel-runtime/core-js/set-immediate", "babel-runtime/helpers/asyncToGenerator", "babel-runtime/helpers/classCallCheck", "babel-runtime/helpers/createClass", "babel-runtime/helpers/defineProperty", "babel-runtime/helpers/extends", "babel-runtime/helpers/slicedToArray", "babel-runtime/helpers/toConsumableArray", "babel-runtime/regenerator", "isomorphic-fetch", "le_node", "lodash", "moment", "moment-duration-format", "qs", "redux-actions", "tc-accounts", "to-capital-case", "topcoder-react-utils"], factory);
+ define(["babel-runtime/core-js/json/stringify", "babel-runtime/core-js/object/assign", "babel-runtime/core-js/object/keys", "babel-runtime/core-js/object/values", "babel-runtime/core-js/promise", "babel-runtime/core-js/set", "babel-runtime/core-js/set-immediate", "babel-runtime/helpers/asyncToGenerator", "babel-runtime/helpers/classCallCheck", "babel-runtime/helpers/createClass", "babel-runtime/helpers/defineProperty", "babel-runtime/helpers/extends", "babel-runtime/helpers/slicedToArray", "babel-runtime/helpers/toConsumableArray", "babel-runtime/regenerator", "isomorphic-fetch", "le_node", "lodash", "moment", "moment-duration-format", "qs", "redux-actions", "tc-accounts", "tc-core-library-js", "to-capital-case", "topcoder-react-utils"], factory);
else if(typeof exports === 'object')
- exports["topcoder-react-lib"] = factory(require("babel-runtime/core-js/json/stringify"), require("babel-runtime/core-js/object/assign"), require("babel-runtime/core-js/object/keys"), require("babel-runtime/core-js/object/values"), require("babel-runtime/core-js/promise"), require("babel-runtime/core-js/set"), require("babel-runtime/core-js/set-immediate"), require("babel-runtime/helpers/asyncToGenerator"), require("babel-runtime/helpers/classCallCheck"), require("babel-runtime/helpers/createClass"), require("babel-runtime/helpers/defineProperty"), require("babel-runtime/helpers/extends"), require("babel-runtime/helpers/slicedToArray"), require("babel-runtime/helpers/toConsumableArray"), require("babel-runtime/regenerator"), require("isomorphic-fetch"), require("le_node"), require("lodash"), require("moment"), require("moment-duration-format"), require("qs"), require("redux-actions"), require("tc-accounts"), require("to-capital-case"), require("topcoder-react-utils"));
+ exports["topcoder-react-lib"] = factory(require("babel-runtime/core-js/json/stringify"), require("babel-runtime/core-js/object/assign"), require("babel-runtime/core-js/object/keys"), require("babel-runtime/core-js/object/values"), require("babel-runtime/core-js/promise"), require("babel-runtime/core-js/set"), require("babel-runtime/core-js/set-immediate"), require("babel-runtime/helpers/asyncToGenerator"), require("babel-runtime/helpers/classCallCheck"), require("babel-runtime/helpers/createClass"), require("babel-runtime/helpers/defineProperty"), require("babel-runtime/helpers/extends"), require("babel-runtime/helpers/slicedToArray"), require("babel-runtime/helpers/toConsumableArray"), require("babel-runtime/regenerator"), require("isomorphic-fetch"), require("le_node"), require("lodash"), require("moment"), require("moment-duration-format"), require("qs"), require("redux-actions"), require("tc-accounts"), require("tc-core-library-js"), require("to-capital-case"), require("topcoder-react-utils"));
else
- root["topcoder-react-lib"] = factory(root["babel-runtime/core-js/json/stringify"], root["babel-runtime/core-js/object/assign"], root["babel-runtime/core-js/object/keys"], root["babel-runtime/core-js/object/values"], root["babel-runtime/core-js/promise"], root["babel-runtime/core-js/set"], root["babel-runtime/core-js/set-immediate"], root["babel-runtime/helpers/asyncToGenerator"], root["babel-runtime/helpers/classCallCheck"], root["babel-runtime/helpers/createClass"], root["babel-runtime/helpers/defineProperty"], root["babel-runtime/helpers/extends"], root["babel-runtime/helpers/slicedToArray"], root["babel-runtime/helpers/toConsumableArray"], root["babel-runtime/regenerator"], root["isomorphic-fetch"], root["le_node"], root["lodash"], root["moment"], root["moment-duration-format"], root["qs"], root["redux-actions"], root["tc-accounts"], root["to-capital-case"], root["topcoder-react-utils"]);
-})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_babel_runtime_core_js_json_stringify__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_core_js_object_assign__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_core_js_object_keys__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_core_js_object_values__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_core_js_promise__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_core_js_set__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_core_js_set_immediate__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_helpers_asyncToGenerator__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_helpers_classCallCheck__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_helpers_createClass__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_helpers_defineProperty__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_helpers_extends__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_helpers_slicedToArray__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_helpers_toConsumableArray__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_regenerator__, __WEBPACK_EXTERNAL_MODULE_isomorphic_fetch__, __WEBPACK_EXTERNAL_MODULE_le_node__, __WEBPACK_EXTERNAL_MODULE_lodash__, __WEBPACK_EXTERNAL_MODULE_moment__, __WEBPACK_EXTERNAL_MODULE_moment_duration_format__, __WEBPACK_EXTERNAL_MODULE_qs__, __WEBPACK_EXTERNAL_MODULE_redux_actions__, __WEBPACK_EXTERNAL_MODULE_tc_accounts__, __WEBPACK_EXTERNAL_MODULE_to_capital_case__, __WEBPACK_EXTERNAL_MODULE_topcoder_react_utils__) {
+ root["topcoder-react-lib"] = factory(root["babel-runtime/core-js/json/stringify"], root["babel-runtime/core-js/object/assign"], root["babel-runtime/core-js/object/keys"], root["babel-runtime/core-js/object/values"], root["babel-runtime/core-js/promise"], root["babel-runtime/core-js/set"], root["babel-runtime/core-js/set-immediate"], root["babel-runtime/helpers/asyncToGenerator"], root["babel-runtime/helpers/classCallCheck"], root["babel-runtime/helpers/createClass"], root["babel-runtime/helpers/defineProperty"], root["babel-runtime/helpers/extends"], root["babel-runtime/helpers/slicedToArray"], root["babel-runtime/helpers/toConsumableArray"], root["babel-runtime/regenerator"], root["isomorphic-fetch"], root["le_node"], root["lodash"], root["moment"], root["moment-duration-format"], root["qs"], root["redux-actions"], root["tc-accounts"], root["tc-core-library-js"], root["to-capital-case"], root["topcoder-react-utils"]);
+})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_babel_runtime_core_js_json_stringify__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_core_js_object_assign__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_core_js_object_keys__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_core_js_object_values__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_core_js_promise__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_core_js_set__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_core_js_set_immediate__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_helpers_asyncToGenerator__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_helpers_classCallCheck__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_helpers_createClass__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_helpers_defineProperty__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_helpers_extends__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_helpers_slicedToArray__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_helpers_toConsumableArray__, __WEBPACK_EXTERNAL_MODULE_babel_runtime_regenerator__, __WEBPACK_EXTERNAL_MODULE_isomorphic_fetch__, __WEBPACK_EXTERNAL_MODULE_le_node__, __WEBPACK_EXTERNAL_MODULE_lodash__, __WEBPACK_EXTERNAL_MODULE_moment__, __WEBPACK_EXTERNAL_MODULE_moment_duration_format__, __WEBPACK_EXTERNAL_MODULE_qs__, __WEBPACK_EXTERNAL_MODULE_redux_actions__, __WEBPACK_EXTERNAL_MODULE_tc_accounts__, __WEBPACK_EXTERNAL_MODULE_tc_core_library_js__, __WEBPACK_EXTERNAL_MODULE_to_capital_case__, __WEBPACK_EXTERNAL_MODULE_topcoder_react_utils__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
@@ -423,7 +423,7 @@ eval("var Keys = __webpack_require__(/*! object-keys */ \"./node_modules/object-
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _slicedToArray2 = __webpack_require__(/*! babel-runtime/helpers/slicedToArray */ \"babel-runtime/helpers/slicedToArray\");\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _tcAccounts = __webpack_require__(/*! tc-accounts */ \"tc-accounts\");\n\nvar _api = __webpack_require__(/*! ../services/api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.auth\"\n * @desc Actions related to Topcoder authentication system.\n */\n\n/**\n * @static\n * @desc Creates an action that loads Topcoder user profile from v3 API.\n * @param {String} userTokenV3 v3 authentication token.\n * @return {Action}\n */\nfunction loadProfileDone(userTokenV3) {\n if (!userTokenV3) return _promise2.default.resolve(null);\n var user = (0, _tcAccounts.decodeToken)(userTokenV3);\n var api = (0, _api.getApi)('V3', userTokenV3);\n return _promise2.default.all([api.get('/members/' + user.handle).then(function (res) {\n return res.json();\n }).then(function (res) {\n return res.result.status === 200 ? res.result.content : {};\n }), api.get('/groups?memberId=' + user.userId + '&membershipType=user').then(function (res) {\n return res.json();\n }).then(function (res) {\n return res.result.status === 200 ? res.result.content : [];\n })]).then(function (_ref) {\n var _ref2 = (0, _slicedToArray3.default)(_ref, 2),\n profile = _ref2[0],\n groups = _ref2[1];\n\n return (0, _extends3.default)({}, profile, { groups: groups });\n });\n}\n\n/**\n * @static\n * @desc Creates an action that sets Topcoder v2 authentication token.\n * @param {String} tokenV2 Topcoder v2 authentication token.\n * @return {Action}\n */\nfunction setTcTokenV2(tokenV2) {\n return tokenV2;\n}\n\n/**\n * @static\n * @desc Creates an action that decodes Topcoder v3 authentication token,\n * to get user object, and then writes both the token and the user object into\n * Redux store.\n * @param {String} tokenV3 Topcoder v3 authentication token.\n * @return {Action}\n */\nfunction setTcTokenV3(tokenV3) {\n return tokenV3;\n}\n\nvar _default = (0, _reduxActions.createActions)({\n AUTH: {\n LOAD_PROFILE: loadProfileDone,\n SET_TC_TOKEN_V2: setTcTokenV2,\n SET_TC_TOKEN_V3: setTcTokenV3\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(loadProfileDone, 'loadProfileDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/auth.js');\n reactHotLoader.register(setTcTokenV2, 'setTcTokenV2', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/auth.js');\n reactHotLoader.register(setTcTokenV3, 'setTcTokenV3', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/auth.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/auth.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/auth.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _slicedToArray2 = __webpack_require__(/*! babel-runtime/helpers/slicedToArray */ \"babel-runtime/helpers/slicedToArray\");\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _tcAccounts = __webpack_require__(/*! tc-accounts */ \"tc-accounts\");\n\nvar _api = __webpack_require__(/*! ../services/api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.auth\"\n * @desc Actions related to Topcoder authentication system.\n */\n\n/**\n * @static\n * @desc Creates an action that loads Topcoder user profile from v3 API.\n * @param {String} userTokenV3 v3 authentication token.\n * @return {Action}\n */\nfunction loadProfileDone(userTokenV3) {\n if (!userTokenV3) return _promise2.default.resolve(null);\n var user = (0, _tcAccounts.decodeToken)(userTokenV3);\n var api = (0, _api.getApi)('V3', userTokenV3);\n return _promise2.default.all([api.get('/members/' + user.handle).then(function (res) {\n return res.json();\n }).then(function (res) {\n return res.result.status === 200 ? res.result.content : {};\n }), api.get('/groups?memberId=' + user.userId + '&membershipType=user').then(function (res) {\n return res.json();\n }).then(function (res) {\n return res.result.status === 200 ? res.result.content : [];\n })]).then(function (_ref) {\n var _ref2 = (0, _slicedToArray3.default)(_ref, 2),\n profile = _ref2[0],\n groups = _ref2[1];\n\n return (0, _extends3.default)({}, profile, { groups: groups });\n });\n}\n\n/**\n * @static\n * @desc Creates an action that sets Topcoder v2 authentication token.\n * @param {String} tokenV2 Topcoder v2 authentication token.\n * @return {Action}\n */\nfunction setTcTokenV2(tokenV2) {\n return tokenV2;\n}\n\n/**\n * @static\n * @desc Creates an action that decodes Topcoder v3 authentication token,\n * to get user object, and then writes both the token and the user object into\n * Redux store.\n * @param {String} tokenV3 Topcoder v3 authentication token.\n * @return {Action}\n */\nfunction setTcTokenV3(tokenV3) {\n return tokenV3;\n}\n\nvar _default = (0, _reduxActions.createActions)({\n AUTH: {\n LOAD_PROFILE: loadProfileDone,\n SET_TC_TOKEN_V2: setTcTokenV2,\n SET_TC_TOKEN_V3: setTcTokenV3\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(loadProfileDone, 'loadProfileDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/auth.js');\n reactHotLoader.register(setTcTokenV2, 'setTcTokenV2', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/auth.js');\n reactHotLoader.register(setTcTokenV3, 'setTcTokenV3', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/auth.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/auth.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/auth.js?");
/***/ }),
@@ -435,7 +435,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _challenges = __webpack_require__(/*! ../services/challenges */ \"./src/services/challenges.js\");\n\nvar _submissions = __webpack_require__(/*! ../services/submissions */ \"./src/services/submissions.js\");\n\nvar _members = __webpack_require__(/*! ../services/members */ \"./src/services/members.js\");\n\nvar _api = __webpack_require__(/*! ../services/api */ \"./src/services/api.js\");\n\nvar _submission = __webpack_require__(/*! ../utils/submission */ \"./src/utils/submission.js\");\n\nvar submissionUtil = _interopRequireWildcard(_submission);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.challenge\"\n * @desc Actions related to Topcoder challenges APIs.\n */\n\n/* global CONFIG */\n\n\nvar _CONFIG = {\"AV_SCAN_SCORER_REVIEW_TYPE_ID\":\"68c5a381-c8ab-48af-92a7-7a869a4ee6c3\",\"PAGE_SIZE\":50,\"REVIEW_OPPORTUNITY_PAGE_SIZE\":1000},\n PAGE_SIZE = _CONFIG.PAGE_SIZE;\n\n/**\n * Private. Loads from the backend all data matching some conditions.\n * @param {Function} getter Given params object of shape { limit, offset }\n * loads from the backend at most \"limit\" data, skipping the first\n * \"offset\" ones. Returns loaded data as an array.\n * @param {Number} page Optional. Next page of data to load.\n * @param {Number} perPage Optional. The size of the page content to load.\n * @param {Array} prev Optional. data loaded so far.\n */\n\nfunction getAll(getter) {\n var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var perPage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : PAGE_SIZE;\n var prev = arguments[3];\n\n /* Amount of submissions to fetch in one API call. 50 is the current maximum\n * amount of submissions the backend returns, event when the larger limit is\n * explicitely required. */\n return getter({\n page: page,\n perPage: perPage\n }).then(function (res) {\n if (res.length === 0) {\n return prev || res;\n }\n // parse submissions\n var current = [];\n if (prev) {\n current = prev.concat(res);\n } else {\n current = res;\n }\n return getAll(getter, 1 + page, perPage, current);\n });\n}\n\n/**\n * @static\n * @desc Creates an action that drops from Redux store all checkpoints loaded\n * before.\n * @return {Action}\n */\nfunction dropCheckpoints() {}\n\n/**\n * @static\n * @desc Creates an action that drops from Redux store all challenge results\n * loaded before.\n * @return {Action}\n */\nfunction dropResults() {}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of challenge details loading.\n * @param {Number|String} challengeId Challenge ID\n * @return {Action}\n */\nfunction getDetailsInit(challengeId) {\n return _lodash2.default.toString(challengeId);\n}\n\n/**\n * @static\n * @desc Creates an action that loads challenge details.\n * @param {Number|String} challengeId Challenge ID.\n * @param {String} tokenV3 Topcoder v3 auth token.\n * @param {String} tokenV2 Topcoder v2 auth token.\n * @return {Action}\n */\nfunction getDetailsDone(challengeId, tokenV3, tokenV2) {\n var service = (0, _challenges.getService)(tokenV3, tokenV2);\n var v3Promise = service.getChallengeDetails(challengeId);\n return v3Promise;\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of user submissions loading.\n * @param {String} challengeId Challenge ID.\n * @return {Action}\n */\nfunction getSubmissionsInit(challengeId) {\n /* As a safeguard, we enforce challengeId to be string (in case somebody\n * passes in a number, by mistake). */\n return _lodash2.default.toString(challengeId);\n}\n\n/**\n * @static\n * @desc Creates an action that loads user's submissions to the specified\n * challenge.\n * @param {String} challengeId Challenge ID.\n * @param {String} tokenV2 Topcoder auth token v2.\n * @return {Action}\n */\nfunction getSubmissionsDone(challengeId, tokenV2) {\n return (0, _api.getApi)('V2', tokenV2).fetch('/challenges/submissions/' + challengeId + '/mySubmissions').then(function (response) {\n return response.json();\n }).then(function (response) {\n return {\n challengeId: _lodash2.default.toString(challengeId),\n submissions: response.submissions\n };\n }).catch(function (error) {\n var err = { challengeId: _lodash2.default.toString(challengeId), error: error };\n throw err;\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of Marathon Match submissions loading.\n * @param {String} challengeId Challenge ID.\n * @return {Action}\n */\nfunction getMMSubmissionsInit(challengeId) {\n /* As a safeguard, we enforce challengeId to be string (in case somebody\n * passes in a number, by mistake). */\n return _lodash2.default.toString(challengeId);\n}\n\n/**\n * @static\n * @desc Creates an action that loads Marathon Match submissions to the specified\n * challenge.\n * @param {String} challengeId Challenge ID.\n * @param {Array} registrants The array of register.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Action}\n */\nfunction getMMSubmissionsDone(challengeId, registrants, tokenV3) {\n var filter = { challengeId: challengeId };\n var memberService = (0, _members.getService)(tokenV3);\n var submissionsService = (0, _submissions.getService)(tokenV3);\n\n // TODO: Move those numbers to configs\n return getAll(function (params) {\n return submissionsService.getSubmissions(filter, params);\n }, 1, 500).then(function (submissions) {\n var userIds = _lodash2.default.uniq(_lodash2.default.map(submissions, function (sub) {\n return sub.memberId;\n }));\n return memberService.getMembersInformation(userIds).then(function (resources) {\n var finalSubmissions = submissionUtil.processMMSubmissions(submissions, resources, registrants);\n return {\n challengeId: challengeId,\n submissions: finalSubmissions,\n tokenV3: tokenV3\n };\n });\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of registration for a\n * challenge.\n * @return {Action}\n */\nfunction registerInit() {}\n\n/**\n * @static\n * @desc Creates an action that registers user for a challenge.\n * @param {Object} auth An object that holds auth tokens. You can directly pass\n * here the `auth` segment of Redux store.\n * @param [auth.tokenV2]{String} Topcoder auth token v2.\n * @param [auth.tokenV3]{String} Topcoder auth token v3.\n * @param {String} challengeId Challenge ID.\n * @return {Action}\n */\nfunction registerDone(auth, challengeId) {\n return (0, _challenges.getService)(auth.tokenV3).register(challengeId)\n /* As a part of registration flow we silently update challenge details,\n * reusing for this purpose the corresponding action handler. */\n // Uses a delay to allow API time to update\n .then(function () {\n return new _promise2.default(function (resolve) {\n return setTimeout(function () {\n return resolve(getDetailsDone(challengeId, auth.tokenV3, auth.tokenV2));\n }, _topcoderReactUtils.config.CHALLENGE_DETAILS_REFRESH_DELAY);\n });\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of user unregistration from a\n * challenge.\n * @return {Action}\n */\nfunction unregisterInit() {}\n\n/**\n * @static\n * @desc Creates an action that unregisters user from a challenge.\n * @param {Object} auth Object that holds Topcoder auth tokens.\n * @param {String} [auth.tokenV2] v2 token.\n * @param {String} [auth.tokenV3] v3 token.\n * @param {String} challengeId Challenge ID.\n * @return {Action}\n */\nfunction unregisterDone(auth, challengeId) {\n return (0, _challenges.getService)(auth.tokenV3).unregister(challengeId)\n /* As a part of unregistration flow we silently update challenge details,\n * reusing for this purpose the corresponding action handler. */\n // Uses a delay to allow API time to update\n .then(function () {\n return new _promise2.default(function (resolve) {\n return setTimeout(function () {\n return resolve(getDetailsDone(challengeId, auth.tokenV3, auth.tokenV2));\n }, _topcoderReactUtils.config.CHALLENGE_DETAILS_REFRESH_DELAY);\n });\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of challenge results loading.\n * @param {Number|String} challengeId Challenge ID\n * @return {Action}\n */\nfunction loadResultsInit(challengeId) {\n return _lodash2.default.toString(challengeId);\n}\n\n/**\n * @static\n * @desc Creates an action that loads challenge results.\n * @param {Object} auth Object that holds Topcoder auth tokens.\n * @param {String} [auth.tokenV2] v2 token.\n * @param {String} [auth.tokenV3] v3 token.\n * @param {Number|String} challengeId Challenge ID. Should match the one passed\n * in the previous {@link module:actions.challenge.loadResultsInit} call.\n * @param {String} type Challenge type.\n * @return {Action}\n */\nfunction loadResultsDone(auth, challengeId, type) {\n return (0, _api.getApi)('V2', auth.tokenV2).fetch('/' + type + '/challenges/result/' + challengeId).then(function (response) {\n return response.json();\n }).then(function (response) {\n return {\n challengeId: _lodash2.default.toString(challengeId),\n results: response.results\n };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of challenge checkpoints data\n * loading.\n * @return {Action}\n */\nfunction fetchCheckpointsInit() {}\n\n/**\n * @static\n * @desc Creates an action that loads challenge checkpoints data.\n * @param {String} tokenV2 Topcoder v2 auth token.\n * @param {String} challengeId Challenge ID.\n */\nfunction fetchCheckpointsDone(tokenV2, challengeId) {\n var endpoint = '/design/challenges/checkpoint/' + challengeId;\n return (0, _api.getApi)('V2', tokenV2).fetch(endpoint).then(function (response) {\n if (response.status !== 200) {\n throw response.status;\n } else {\n return response.json();\n }\n }).then(function (response) {\n // Expanded key is used for UI expand/collapse.\n response.checkpointResults.forEach(function (checkpoint, index) {\n response.checkpointResults[index].expanded = false;\n });\n return {\n challengeId: Number(challengeId),\n checkpoints: response\n };\n }).catch(function (error) {\n return {\n error: error,\n challengeId: Number(challengeId)\n };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that Toggles checkpoint details panel in the Topcoder\n * Submission Management Page.\n * @todo This is UI action relevant to a specific page in specific app. Must be\n * moved back to Community App.\n * @param {Number} id Checkpoint ID.\n * @param {Boolean} open Target state: `true` to expand, `false` to collapse the\n * details.\n * @return {Action}\n */\nfunction toggleCheckpointFeedback(id, open) {\n return { id: id, open: open };\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of challenge details update.\n * @todo No idea, why we have this action. This functionality should be covered\n * by {@link module:actions.challenge.getDetailsInit} and\n * {@link module:actions.challenge.getDetailsDone}. We need to refactor this.\n * @param {String} uuid UUID of the operation (the same should be passed into\n * the corresponding {@link module:actions.challenge.updateChallengeDone}).\n * @return {Action}\n */\nfunction updateChallengeInit(uuid) {\n return uuid;\n}\n\n/**\n * @static\n * @desc Creates an action that updates challenge details.\n * @todo No idea, why we have this action. This functionality should be covered\n * by {@link module:actions.challenge.getDetailsInit} and\n * {@link module:actions.challenge.getDetailsDone}. We need to refactor this.\n * @param {String} uuid Operation UUID. Should match the one passed into the\n * previous {@link module:actions.challenge.updateChallengeInit} call.\n * @param {Object} challenge Challenge data.\n * @param {String} tokenV3 Topcoder v3 auth token.\n * @return {Action}\n */\nfunction updateChallengeDone(uuid, challenge, tokenV3) {\n return (0, _challenges.getService)(tokenV3).updateChallenge(challenge).then(function (res) {\n return { uuid: uuid, res: res };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting count of user's active challenges.\n * @return {Action}\n */\nfunction getActiveChallengesCountInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets count of user's active challenges from the backend.\n * @param {String} handle Topcoder user handle.\n * @param {String} tokenV3 Optional. Topcoder auth token v3. Without token only\n * public challenges will be counted. With the token provided, the action will\n * also count private challenges related to this user.\n * @return {Action}\n */\nfunction getActiveChallengesCountDone(handle, tokenV3) {\n return (0, _challenges.getService)(tokenV3).getActiveChallengesCount(handle);\n}\n\n/**\n * @static\n * @desc Creates an action that gets submission information by submission id\n * @param {String} submissionId The submission id\n * @return {Action}\n */\nfunction getSubmissionInformationInit(challengeId, submissionId) {\n return { challengeId: _lodash2.default.toString(challengeId), submissionId: _lodash2.default.toString(submissionId) };\n}\n\n/**\n * @static\n * @desc Creates an action that gets submission information from the backend.\n * @param {String} submissionId The submission id\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Action}\n */\nfunction getSubmissionInformationDone(challengeId, submissionId, tokenV3) {\n var filter = { challengeId: challengeId };\n var submissionsService = (0, _submissions.getService)(tokenV3);\n\n return getAll(function (params) {\n return submissionsService.getSubmissions(filter, params);\n }, 1, 500).then(function (submissions) {\n var submission = _lodash2.default.find(submissions, { id: submissionId });\n _lodash2.default.remove(submission.review, function (review) {\n return review.typeId === {\"AV_SCAN_SCORER_REVIEW_TYPE_ID\":\"68c5a381-c8ab-48af-92a7-7a869a4ee6c3\",\"PAGE_SIZE\":50,\"REVIEW_OPPORTUNITY_PAGE_SIZE\":1000}.AV_SCAN_SCORER_REVIEW_TYPE_ID;\n });\n return { submissionId: submissionId, submission: submission };\n });\n}\n\nvar _default = (0, _reduxActions.createActions)({\n CHALLENGE: {\n DROP_CHECKPOINTS: dropCheckpoints,\n DROP_RESULTS: dropResults,\n FETCH_CHECKPOINTS_INIT: fetchCheckpointsInit,\n FETCH_CHECKPOINTS_DONE: fetchCheckpointsDone,\n GET_DETAILS_INIT: getDetailsInit,\n GET_DETAILS_DONE: getDetailsDone,\n GET_SUBMISSIONS_INIT: getSubmissionsInit,\n GET_SUBMISSIONS_DONE: getSubmissionsDone,\n LOAD_RESULTS_INIT: loadResultsInit,\n LOAD_RESULTS_DONE: loadResultsDone,\n REGISTER_INIT: registerInit,\n REGISTER_DONE: registerDone,\n TOGGLE_CHECKPOINT_FEEDBACK: toggleCheckpointFeedback,\n UNREGISTER_INIT: unregisterInit,\n UNREGISTER_DONE: unregisterDone,\n UPDATE_CHALLENGE_INIT: updateChallengeInit,\n UPDATE_CHALLENGE_DONE: updateChallengeDone,\n GET_ACTIVE_CHALLENGES_COUNT_INIT: getActiveChallengesCountInit,\n GET_ACTIVE_CHALLENGES_COUNT_DONE: getActiveChallengesCountDone,\n GET_MM_SUBMISSIONS_INIT: getMMSubmissionsInit,\n GET_MM_SUBMISSIONS_DONE: getMMSubmissionsDone,\n GET_SUBMISSION_INFORMATION_INIT: getSubmissionInformationInit,\n GET_SUBMISSION_INFORMATION_DONE: getSubmissionInformationDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(PAGE_SIZE, 'PAGE_SIZE', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getAll, 'getAll', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(dropCheckpoints, 'dropCheckpoints', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(dropResults, 'dropResults', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getDetailsInit, 'getDetailsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getDetailsDone, 'getDetailsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getSubmissionsInit, 'getSubmissionsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getSubmissionsDone, 'getSubmissionsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getMMSubmissionsInit, 'getMMSubmissionsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getMMSubmissionsDone, 'getMMSubmissionsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(registerInit, 'registerInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(registerDone, 'registerDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(unregisterInit, 'unregisterInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(unregisterDone, 'unregisterDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(loadResultsInit, 'loadResultsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(loadResultsDone, 'loadResultsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(fetchCheckpointsInit, 'fetchCheckpointsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(fetchCheckpointsDone, 'fetchCheckpointsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(toggleCheckpointFeedback, 'toggleCheckpointFeedback', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(updateChallengeInit, 'updateChallengeInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(updateChallengeDone, 'updateChallengeDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getActiveChallengesCountInit, 'getActiveChallengesCountInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getActiveChallengesCountDone, 'getActiveChallengesCountDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getSubmissionInformationInit, 'getSubmissionInformationInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getSubmissionInformationDone, 'getSubmissionInformationDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/challenge.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/challenge.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _challenges = __webpack_require__(/*! ../services/challenges */ \"./src/services/challenges.js\");\n\nvar _submissions = __webpack_require__(/*! ../services/submissions */ \"./src/services/submissions.js\");\n\nvar _members = __webpack_require__(/*! ../services/members */ \"./src/services/members.js\");\n\nvar _api = __webpack_require__(/*! ../services/api */ \"./src/services/api.js\");\n\nvar _submission = __webpack_require__(/*! ../utils/submission */ \"./src/utils/submission.js\");\n\nvar submissionUtil = _interopRequireWildcard(_submission);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.challenge\"\n * @desc Actions related to Topcoder challenges APIs.\n */\n\n/* global CONFIG */\n\n\nvar _CONFIG = {\"AV_SCAN_SCORER_REVIEW_TYPE_ID\":\"68c5a381-c8ab-48af-92a7-7a869a4ee6c3\",\"PROVISIONAL_SCORING_COMPLETED_REVIEW_TYPE_ID\":\"52c91e85-745f-4e62-b592-9879a2dfe9fd\",\"PAGE_SIZE\":50,\"REVIEW_OPPORTUNITY_PAGE_SIZE\":1000},\n PAGE_SIZE = _CONFIG.PAGE_SIZE;\n\n/**\n * Private. Loads from the backend all data matching some conditions.\n * @param {Function} getter Given params object of shape { limit, offset }\n * loads from the backend at most \"limit\" data, skipping the first\n * \"offset\" ones. Returns loaded data as an array.\n * @param {Number} page Optional. Next page of data to load.\n * @param {Number} perPage Optional. The size of the page content to load.\n * @param {Array} prev Optional. data loaded so far.\n */\n\nfunction getAll(getter) {\n var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var perPage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : PAGE_SIZE;\n var prev = arguments[3];\n\n /* Amount of submissions to fetch in one API call. 50 is the current maximum\n * amount of submissions the backend returns, event when the larger limit is\n * explicitely required. */\n return getter({\n page: page,\n perPage: perPage\n }).then(function (res) {\n if (res.length === 0) {\n return prev || res;\n }\n // parse submissions\n var current = [];\n if (prev) {\n current = prev.concat(res);\n } else {\n current = res;\n }\n return getAll(getter, 1 + page, perPage, current);\n });\n}\n\n/**\n * @static\n * @desc Creates an action that drops from Redux store all checkpoints loaded\n * before.\n * @return {Action}\n */\nfunction dropCheckpoints() {}\n\n/**\n * @static\n * @desc Creates an action that drops from Redux store all challenge results\n * loaded before.\n * @return {Action}\n */\nfunction dropResults() {}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of challenge details loading.\n * @param {Number|String} challengeId Challenge ID\n * @return {Action}\n */\nfunction getDetailsInit(challengeId) {\n return _lodash2.default.toString(challengeId);\n}\n\n/**\n * @static\n * @desc Creates an action that loads challenge details.\n * @param {Number|String} challengeId Challenge ID.\n * @param {String} tokenV3 Topcoder v3 auth token.\n * @param {String} tokenV2 Topcoder v2 auth token.\n * @return {Action}\n */\nfunction getDetailsDone(challengeId, tokenV3, tokenV2) {\n var service = (0, _challenges.getService)(tokenV3, tokenV2);\n var v3Promise = service.getChallengeDetails(challengeId);\n return v3Promise;\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of user submissions loading.\n * @param {String} challengeId Challenge ID.\n * @return {Action}\n */\nfunction getSubmissionsInit(challengeId) {\n /* As a safeguard, we enforce challengeId to be string (in case somebody\n * passes in a number, by mistake). */\n return _lodash2.default.toString(challengeId);\n}\n\n/**\n * @static\n * @desc Creates an action that loads user's submissions to the specified\n * challenge.\n * @param {String} challengeId Challenge ID.\n * @param {String} tokenV2 Topcoder auth token v2.\n * @return {Action}\n */\nfunction getSubmissionsDone(challengeId, tokenV2) {\n return (0, _api.getApi)('V2', tokenV2).fetch('/challenges/submissions/' + challengeId + '/mySubmissions').then(function (response) {\n return response.json();\n }).then(function (response) {\n return {\n challengeId: _lodash2.default.toString(challengeId),\n submissions: response.submissions\n };\n }).catch(function (error) {\n var err = { challengeId: _lodash2.default.toString(challengeId), error: error };\n throw err;\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of Marathon Match submissions loading.\n * @param {String} challengeId Challenge ID.\n * @return {Action}\n */\nfunction getMMSubmissionsInit(challengeId) {\n /* As a safeguard, we enforce challengeId to be string (in case somebody\n * passes in a number, by mistake). */\n return _lodash2.default.toString(challengeId);\n}\n\n/**\n * @static\n * @desc Creates an action that loads Marathon Match submissions to the specified\n * challenge.\n * @param {String} challengeId Challenge ID.\n * @param {Array} registrants The array of register.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Action}\n */\nfunction getMMSubmissionsDone(challengeId, registrants, tokenV3) {\n var filter = { challengeId: challengeId };\n var memberService = (0, _members.getService)(tokenV3);\n var submissionsService = (0, _submissions.getService)(tokenV3);\n\n // TODO: Move those numbers to configs\n return getAll(function (params) {\n return submissionsService.getSubmissions(filter, params);\n }, 1, 500).then(function (submissions) {\n var userIds = _lodash2.default.uniq(_lodash2.default.map(submissions, function (sub) {\n return sub.memberId;\n }));\n return memberService.getMembersInformation(userIds).then(function (resources) {\n var finalSubmissions = submissionUtil.processMMSubmissions(submissions, resources, registrants);\n return {\n challengeId: challengeId,\n submissions: finalSubmissions,\n tokenV3: tokenV3\n };\n });\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of registration for a\n * challenge.\n * @return {Action}\n */\nfunction registerInit() {}\n\n/**\n * @static\n * @desc Creates an action that registers user for a challenge.\n * @param {Object} auth An object that holds auth tokens. You can directly pass\n * here the `auth` segment of Redux store.\n * @param [auth.tokenV2]{String} Topcoder auth token v2.\n * @param [auth.tokenV3]{String} Topcoder auth token v3.\n * @param {String} challengeId Challenge ID.\n * @return {Action}\n */\nfunction registerDone(auth, challengeId) {\n return (0, _challenges.getService)(auth.tokenV3).register(challengeId)\n /* As a part of registration flow we silently update challenge details,\n * reusing for this purpose the corresponding action handler. */\n // Uses a delay to allow API time to update\n .then(function () {\n return new _promise2.default(function (resolve) {\n return setTimeout(function () {\n return resolve(getDetailsDone(challengeId, auth.tokenV3, auth.tokenV2));\n }, _topcoderReactUtils.config.CHALLENGE_DETAILS_REFRESH_DELAY);\n });\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of user unregistration from a\n * challenge.\n * @return {Action}\n */\nfunction unregisterInit() {}\n\n/**\n * @static\n * @desc Creates an action that unregisters user from a challenge.\n * @param {Object} auth Object that holds Topcoder auth tokens.\n * @param {String} [auth.tokenV2] v2 token.\n * @param {String} [auth.tokenV3] v3 token.\n * @param {String} challengeId Challenge ID.\n * @return {Action}\n */\nfunction unregisterDone(auth, challengeId) {\n return (0, _challenges.getService)(auth.tokenV3).unregister(challengeId)\n /* As a part of unregistration flow we silently update challenge details,\n * reusing for this purpose the corresponding action handler. */\n // Uses a delay to allow API time to update\n .then(function () {\n return new _promise2.default(function (resolve) {\n return setTimeout(function () {\n return resolve(getDetailsDone(challengeId, auth.tokenV3, auth.tokenV2));\n }, _topcoderReactUtils.config.CHALLENGE_DETAILS_REFRESH_DELAY);\n });\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of challenge results loading.\n * @param {Number|String} challengeId Challenge ID\n * @return {Action}\n */\nfunction loadResultsInit(challengeId) {\n return _lodash2.default.toString(challengeId);\n}\n\n/**\n * @static\n * @desc Creates an action that loads challenge results.\n * @param {Object} auth Object that holds Topcoder auth tokens.\n * @param {String} [auth.tokenV2] v2 token.\n * @param {String} [auth.tokenV3] v3 token.\n * @param {Number|String} challengeId Challenge ID. Should match the one passed\n * in the previous {@link module:actions.challenge.loadResultsInit} call.\n * @param {String} type Challenge type.\n * @return {Action}\n */\nfunction loadResultsDone(auth, challengeId, type) {\n return (0, _api.getApi)('V2', auth.tokenV2).fetch('/' + type + '/challenges/result/' + challengeId).then(function (response) {\n return response.json();\n }).then(function (response) {\n return {\n challengeId: _lodash2.default.toString(challengeId),\n results: response.results\n };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of challenge checkpoints data\n * loading.\n * @return {Action}\n */\nfunction fetchCheckpointsInit() {}\n\n/**\n * @static\n * @desc Creates an action that loads challenge checkpoints data.\n * @param {String} tokenV2 Topcoder v2 auth token.\n * @param {String} challengeId Challenge ID.\n */\nfunction fetchCheckpointsDone(tokenV2, challengeId) {\n var endpoint = '/design/challenges/checkpoint/' + challengeId;\n return (0, _api.getApi)('V2', tokenV2).fetch(endpoint).then(function (response) {\n if (response.status !== 200) {\n throw response.status;\n } else {\n return response.json();\n }\n }).then(function (response) {\n // Expanded key is used for UI expand/collapse.\n response.checkpointResults.forEach(function (checkpoint, index) {\n response.checkpointResults[index].expanded = false;\n });\n return {\n challengeId: Number(challengeId),\n checkpoints: response\n };\n }).catch(function (error) {\n return {\n error: error,\n challengeId: Number(challengeId)\n };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that Toggles checkpoint details panel in the Topcoder\n * Submission Management Page.\n * @todo This is UI action relevant to a specific page in specific app. Must be\n * moved back to Community App.\n * @param {Number} id Checkpoint ID.\n * @param {Boolean} open Target state: `true` to expand, `false` to collapse the\n * details.\n * @return {Action}\n */\nfunction toggleCheckpointFeedback(id, open) {\n return { id: id, open: open };\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of challenge details update.\n * @todo No idea, why we have this action. This functionality should be covered\n * by {@link module:actions.challenge.getDetailsInit} and\n * {@link module:actions.challenge.getDetailsDone}. We need to refactor this.\n * @param {String} uuid UUID of the operation (the same should be passed into\n * the corresponding {@link module:actions.challenge.updateChallengeDone}).\n * @return {Action}\n */\nfunction updateChallengeInit(uuid) {\n return uuid;\n}\n\n/**\n * @static\n * @desc Creates an action that updates challenge details.\n * @todo No idea, why we have this action. This functionality should be covered\n * by {@link module:actions.challenge.getDetailsInit} and\n * {@link module:actions.challenge.getDetailsDone}. We need to refactor this.\n * @param {String} uuid Operation UUID. Should match the one passed into the\n * previous {@link module:actions.challenge.updateChallengeInit} call.\n * @param {Object} challenge Challenge data.\n * @param {String} tokenV3 Topcoder v3 auth token.\n * @return {Action}\n */\nfunction updateChallengeDone(uuid, challenge, tokenV3) {\n return (0, _challenges.getService)(tokenV3).updateChallenge(challenge).then(function (res) {\n return { uuid: uuid, res: res };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting count of user's active challenges.\n * @return {Action}\n */\nfunction getActiveChallengesCountInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets count of user's active challenges from the backend.\n * @param {String} handle Topcoder user handle.\n * @param {String} tokenV3 Optional. Topcoder auth token v3. Without token only\n * public challenges will be counted. With the token provided, the action will\n * also count private challenges related to this user.\n * @return {Action}\n */\nfunction getActiveChallengesCountDone(handle, tokenV3) {\n return (0, _challenges.getService)(tokenV3).getActiveChallengesCount(handle);\n}\n\n/**\n * @static\n * @desc Creates an action that gets submission information by submission id\n * @param {String} submissionId The submission id\n * @return {Action}\n */\nfunction getSubmissionInformationInit(challengeId, submissionId) {\n return { challengeId: _lodash2.default.toString(challengeId), submissionId: _lodash2.default.toString(submissionId) };\n}\n\n/**\n * @static\n * @desc Creates an action that gets submission information from the backend.\n * @param {String} submissionId The submission id\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Action}\n */\nfunction getSubmissionInformationDone(challengeId, submissionId, tokenV3) {\n var filter = { challengeId: challengeId };\n var submissionsService = (0, _submissions.getService)(tokenV3);\n\n return getAll(function (params) {\n return submissionsService.getSubmissions(filter, params);\n }, 1, 500).then(function (submissions) {\n var submission = _lodash2.default.find(submissions, { id: submissionId });\n _lodash2.default.remove(submission.review, function (review) {\n return review.typeId === {\"AV_SCAN_SCORER_REVIEW_TYPE_ID\":\"68c5a381-c8ab-48af-92a7-7a869a4ee6c3\",\"PROVISIONAL_SCORING_COMPLETED_REVIEW_TYPE_ID\":\"52c91e85-745f-4e62-b592-9879a2dfe9fd\",\"PAGE_SIZE\":50,\"REVIEW_OPPORTUNITY_PAGE_SIZE\":1000}.AV_SCAN_SCORER_REVIEW_TYPE_ID;\n });\n return { submissionId: submissionId, submission: submission };\n });\n}\n\nvar _default = (0, _reduxActions.createActions)({\n CHALLENGE: {\n DROP_CHECKPOINTS: dropCheckpoints,\n DROP_RESULTS: dropResults,\n FETCH_CHECKPOINTS_INIT: fetchCheckpointsInit,\n FETCH_CHECKPOINTS_DONE: fetchCheckpointsDone,\n GET_DETAILS_INIT: getDetailsInit,\n GET_DETAILS_DONE: getDetailsDone,\n GET_SUBMISSIONS_INIT: getSubmissionsInit,\n GET_SUBMISSIONS_DONE: getSubmissionsDone,\n LOAD_RESULTS_INIT: loadResultsInit,\n LOAD_RESULTS_DONE: loadResultsDone,\n REGISTER_INIT: registerInit,\n REGISTER_DONE: registerDone,\n TOGGLE_CHECKPOINT_FEEDBACK: toggleCheckpointFeedback,\n UNREGISTER_INIT: unregisterInit,\n UNREGISTER_DONE: unregisterDone,\n UPDATE_CHALLENGE_INIT: updateChallengeInit,\n UPDATE_CHALLENGE_DONE: updateChallengeDone,\n GET_ACTIVE_CHALLENGES_COUNT_INIT: getActiveChallengesCountInit,\n GET_ACTIVE_CHALLENGES_COUNT_DONE: getActiveChallengesCountDone,\n GET_MM_SUBMISSIONS_INIT: getMMSubmissionsInit,\n GET_MM_SUBMISSIONS_DONE: getMMSubmissionsDone,\n GET_SUBMISSION_INFORMATION_INIT: getSubmissionInformationInit,\n GET_SUBMISSION_INFORMATION_DONE: getSubmissionInformationDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(PAGE_SIZE, 'PAGE_SIZE', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getAll, 'getAll', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(dropCheckpoints, 'dropCheckpoints', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(dropResults, 'dropResults', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getDetailsInit, 'getDetailsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getDetailsDone, 'getDetailsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getSubmissionsInit, 'getSubmissionsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getSubmissionsDone, 'getSubmissionsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getMMSubmissionsInit, 'getMMSubmissionsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getMMSubmissionsDone, 'getMMSubmissionsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(registerInit, 'registerInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(registerDone, 'registerDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(unregisterInit, 'unregisterInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(unregisterDone, 'unregisterDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(loadResultsInit, 'loadResultsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(loadResultsDone, 'loadResultsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(fetchCheckpointsInit, 'fetchCheckpointsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(fetchCheckpointsDone, 'fetchCheckpointsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(toggleCheckpointFeedback, 'toggleCheckpointFeedback', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(updateChallengeInit, 'updateChallengeInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(updateChallengeDone, 'updateChallengeDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getActiveChallengesCountInit, 'getActiveChallengesCountInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getActiveChallengesCountDone, 'getActiveChallengesCountDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getSubmissionInformationInit, 'getSubmissionInformationInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(getSubmissionInformationDone, 'getSubmissionInformationDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/challenge.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/challenge.js?");
/***/ }),
@@ -447,7 +447,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * @static\n * @desc Creates an action that loads projects related to a user.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {Boolean} hasActiveBillingAccount Optional. Defaults to false.\n * Whether only projects with active billing accounts should be included\n * into the results.\n * @return {Action}\n */\nvar getUserProjectsDone = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(tokenV3, hasActiveBillingAccount) {\n var params, projects;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n params = {};\n\n if (hasActiveBillingAccount) params.hasActiveBillingAccount = true;\n _context.next = 4;\n return (0, _direct.getService)(tokenV3).getUserProjects(params);\n\n case 4:\n projects = _context.sent;\n return _context.abrupt('return', { tokenV3: tokenV3, projects: projects });\n\n case 6:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function getUserProjectsDone(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _direct = __webpack_require__(/*! ../services/direct */ \"./src/services/direct.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.direct\"\n * @desc Actions related to Direct API: access to projects, billing accounts,\n * copilot operations, and other similar stuff is handled by them.\n */\n\n/**\n * @static\n * @desc Creates an action that drops out of Redux store all Direct-related\n * data, loaded by other actions from this module, and also cancels any pending\n * loading operations.\n * @return {Action}\n */\nfunction dropAll() {\n return null;\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of project details loading.\n * @param {Number} projectId Project ID.\n * @return {Action}\n */\nfunction getProjectDetailsInit(projectId) {\n return projectId;\n}\n\n/**\n * @static\n * @desc Creates an action that loads project details.\n * @param {Number} projectId Project ID.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Action}\n */\nfunction getProjectDetailsDone(projectId, tokenV3) {\n return (0, _direct.getService)(tokenV3).getProjectDetails(projectId);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of project permissions\n * loading.\n * @param {Number|String} projectId Project ID.\n * @return {Action}\n */\nfunction getProjectPermissionsInit(projectId) {\n return _lodash2.default.toNumber(projectId);\n}\n\n/**\n * @static\n * @desc Creates an action that loads project permissions.\n * @param {Number|String} projectId Project ID.\n * @param {String} tokenV3 Topcoder v3 auth token.\n * @return {Action}\n */\nfunction getProjectPermissionsDone(projectId, tokenV3) {\n return (0, _direct.getService)(tokenV3).getProjectPermissions(projectId).then(function (permissions) {\n return { permissions: permissions, projectId: projectId };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of loading the projects\n * related with a user.\n * @param {String} tokenV3 Topcoder v3 auth token of the user for who we load\n * the projects.\n * @return {Action}\n */\nfunction getUserProjectsInit(tokenV3) {\n return tokenV3;\n}\nvar _default = (0, _reduxActions.createActions)({\n DIRECT: {\n DROP_ALL: dropAll,\n GET_PROJECT_DETAILS_INIT: getProjectDetailsInit,\n GET_PROJECT_DETAILS_DONE: getProjectDetailsDone,\n GET_PROJECT_PERMISSIONS_INIT: getProjectPermissionsInit,\n GET_PROJECT_PERMISSIONS_DONE: getProjectPermissionsDone,\n GET_USER_PROJECTS_INIT: getUserProjectsInit,\n GET_USER_PROJECTS_DONE: getUserProjectsDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(dropAll, 'dropAll', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/direct.js');\n reactHotLoader.register(getProjectDetailsInit, 'getProjectDetailsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/direct.js');\n reactHotLoader.register(getProjectDetailsDone, 'getProjectDetailsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/direct.js');\n reactHotLoader.register(getProjectPermissionsInit, 'getProjectPermissionsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/direct.js');\n reactHotLoader.register(getProjectPermissionsDone, 'getProjectPermissionsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/direct.js');\n reactHotLoader.register(getUserProjectsInit, 'getUserProjectsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/direct.js');\n reactHotLoader.register(getUserProjectsDone, 'getUserProjectsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/direct.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/direct.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/direct.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * @static\n * @desc Creates an action that loads projects related to a user.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {Boolean} hasActiveBillingAccount Optional. Defaults to false.\n * Whether only projects with active billing accounts should be included\n * into the results.\n * @return {Action}\n */\nvar getUserProjectsDone = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(tokenV3, hasActiveBillingAccount) {\n var params, projects;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n params = {};\n\n if (hasActiveBillingAccount) params.hasActiveBillingAccount = true;\n _context.next = 4;\n return (0, _direct.getService)(tokenV3).getUserProjects(params);\n\n case 4:\n projects = _context.sent;\n return _context.abrupt('return', { tokenV3: tokenV3, projects: projects });\n\n case 6:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function getUserProjectsDone(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _direct = __webpack_require__(/*! ../services/direct */ \"./src/services/direct.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.direct\"\n * @desc Actions related to Direct API: access to projects, billing accounts,\n * copilot operations, and other similar stuff is handled by them.\n */\n\n/**\n * @static\n * @desc Creates an action that drops out of Redux store all Direct-related\n * data, loaded by other actions from this module, and also cancels any pending\n * loading operations.\n * @return {Action}\n */\nfunction dropAll() {\n return null;\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of project details loading.\n * @param {Number} projectId Project ID.\n * @return {Action}\n */\nfunction getProjectDetailsInit(projectId) {\n return projectId;\n}\n\n/**\n * @static\n * @desc Creates an action that loads project details.\n * @param {Number} projectId Project ID.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Action}\n */\nfunction getProjectDetailsDone(projectId, tokenV3) {\n return (0, _direct.getService)(tokenV3).getProjectDetails(projectId);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of project permissions\n * loading.\n * @param {Number|String} projectId Project ID.\n * @return {Action}\n */\nfunction getProjectPermissionsInit(projectId) {\n return _lodash2.default.toNumber(projectId);\n}\n\n/**\n * @static\n * @desc Creates an action that loads project permissions.\n * @param {Number|String} projectId Project ID.\n * @param {String} tokenV3 Topcoder v3 auth token.\n * @return {Action}\n */\nfunction getProjectPermissionsDone(projectId, tokenV3) {\n return (0, _direct.getService)(tokenV3).getProjectPermissions(projectId).then(function (permissions) {\n return { permissions: permissions, projectId: projectId };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of loading the projects\n * related with a user.\n * @param {String} tokenV3 Topcoder v3 auth token of the user for who we load\n * the projects.\n * @return {Action}\n */\nfunction getUserProjectsInit(tokenV3) {\n return tokenV3;\n}\nvar _default = (0, _reduxActions.createActions)({\n DIRECT: {\n DROP_ALL: dropAll,\n GET_PROJECT_DETAILS_INIT: getProjectDetailsInit,\n GET_PROJECT_DETAILS_DONE: getProjectDetailsDone,\n GET_PROJECT_PERMISSIONS_INIT: getProjectPermissionsInit,\n GET_PROJECT_PERMISSIONS_DONE: getProjectPermissionsDone,\n GET_USER_PROJECTS_INIT: getUserProjectsInit,\n GET_USER_PROJECTS_DONE: getUserProjectsDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(dropAll, 'dropAll', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/direct.js');\n reactHotLoader.register(getProjectDetailsInit, 'getProjectDetailsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/direct.js');\n reactHotLoader.register(getProjectDetailsDone, 'getProjectDetailsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/direct.js');\n reactHotLoader.register(getProjectPermissionsInit, 'getProjectPermissionsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/direct.js');\n reactHotLoader.register(getProjectPermissionsDone, 'getProjectPermissionsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/direct.js');\n reactHotLoader.register(getUserProjectsInit, 'getUserProjectsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/direct.js');\n reactHotLoader.register(getUserProjectsDone, 'getUserProjectsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/direct.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/direct.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/direct.js?");
/***/ }),
@@ -459,7 +459,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.errors\"\n * @desc Actions related to the standard application-wide error handling and\n * messaging.\n *\n * Pending to be documented. You are not supposed to use them directly anyway.\n *\n * @todo This module does not belong to `topcoder-react-lib`, it will be moved\n * to `topcoder-react-utils` soon.\n */\n\n\nvar _default = (0, _reduxActions.createActions)({\n ERRORS: {\n CLEAR_ERROR: _lodash2.default.noop,\n NEW_ERROR: function NEW_ERROR(title, details) {\n return { title: title, details: details };\n },\n CLEAR_ALL_ERROR_ICONS: _lodash2.default.noop,\n SET_ERROR_ICON: function SET_ERROR_ICON(id, title, message) {\n return { id: id, title: title, message: message };\n },\n CLEAR_ERROR_ICON: function CLEAR_ERROR_ICON(id) {\n return { id: id };\n }\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/errors.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/errors.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.errors\"\n * @desc Actions related to the standard application-wide error handling and\n * messaging.\n *\n * Pending to be documented. You are not supposed to use them directly anyway.\n *\n * @todo This module does not belong to `topcoder-react-lib`, it will be moved\n * to `topcoder-react-utils` soon.\n */\n\n\nvar _default = (0, _reduxActions.createActions)({\n ERRORS: {\n CLEAR_ERROR: _lodash2.default.noop,\n NEW_ERROR: function NEW_ERROR(title, details) {\n return { title: title, details: details };\n },\n CLEAR_ALL_ERROR_ICONS: _lodash2.default.noop,\n SET_ERROR_ICON: function SET_ERROR_ICON(id, title, message) {\n return { id: id, title: title, message: message };\n },\n CLEAR_ERROR_ICON: function CLEAR_ERROR_ICON(id) {\n return { id: id };\n }\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/errors.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/errors.js?");
/***/ }),
@@ -471,7 +471,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _groups = __webpack_require__(/*! ../services/groups */ \"./src/services/groups.js\");\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.groups\"\n * @desc Actions related to user groups.\n * @todo Some group-related actions can be found elsewhere (e.g. addition of\n * members to group is located inside tc-communities actions, because joining\n * a community is equivalent to adding user to a group). It will be great to\n * move such actions in here.\n */\n\n/**\n * @static\n * @desc Creates an action that removes from Redux store all group data loaded\n * before by other actions in this module, and also cancels any on-going\n * loading operations.\n * @return {Action}\n */\nfunction dropGroups() {\n return undefined;\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of group data loading.\n * @param {String|String[]} groupIds ID, or an array of IDs, for groups to load.\n * @return {Action}\n */\nfunction getGroupsInit(groupIds) {\n return groupIds;\n}\n\n/**\n * @static\n * @desc Creates an action that loads group data.\n * @param {String|String[]} groupIds ID, or an array of IDs, of groups to load.\n * @param {String} tokenV3 Optional. Topcoder v3 auth token.\n * @return {Action}\n */\nfunction getGroupsDone(groupIds, tokenV3) {\n return (0, _groups.getService)(tokenV3).getGroupMap(groupIds);\n}\n\nvar _default = (0, _reduxActions.createActions)({\n GROUPS: {\n DROP_GROUPS: dropGroups,\n GET_GROUPS_INIT: getGroupsInit,\n GET_GROUPS_DONE: getGroupsDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(dropGroups, 'dropGroups', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/groups.js');\n reactHotLoader.register(getGroupsInit, 'getGroupsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/groups.js');\n reactHotLoader.register(getGroupsDone, 'getGroupsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/groups.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/groups.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/groups.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _groups = __webpack_require__(/*! ../services/groups */ \"./src/services/groups.js\");\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.groups\"\n * @desc Actions related to user groups.\n * @todo Some group-related actions can be found elsewhere (e.g. addition of\n * members to group is located inside tc-communities actions, because joining\n * a community is equivalent to adding user to a group). It will be great to\n * move such actions in here.\n */\n\n/**\n * @static\n * @desc Creates an action that removes from Redux store all group data loaded\n * before by other actions in this module, and also cancels any on-going\n * loading operations.\n * @return {Action}\n */\nfunction dropGroups() {\n return undefined;\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of group data loading.\n * @param {String|String[]} groupIds ID, or an array of IDs, for groups to load.\n * @return {Action}\n */\nfunction getGroupsInit(groupIds) {\n return groupIds;\n}\n\n/**\n * @static\n * @desc Creates an action that loads group data.\n * @param {String|String[]} groupIds ID, or an array of IDs, of groups to load.\n * @param {String} tokenV3 Optional. Topcoder v3 auth token.\n * @return {Action}\n */\nfunction getGroupsDone(groupIds, tokenV3) {\n return (0, _groups.getService)(tokenV3).getGroupMap(groupIds);\n}\n\nvar _default = (0, _reduxActions.createActions)({\n GROUPS: {\n DROP_GROUPS: dropGroups,\n GET_GROUPS_INIT: getGroupsInit,\n GET_GROUPS_DONE: getGroupsDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(dropGroups, 'dropGroups', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/groups.js');\n reactHotLoader.register(getGroupsInit, 'getGroupsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/groups.js');\n reactHotLoader.register(getGroupsDone, 'getGroupsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/groups.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/groups.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/groups.js?");
/***/ }),
@@ -483,7 +483,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.actions = undefined;\n\nvar _auth = __webpack_require__(/*! ./auth */ \"./src/actions/auth.js\");\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _smp = __webpack_require__(/*! ./smp */ \"./src/actions/smp.js\");\n\nvar _smp2 = _interopRequireDefault(_smp);\n\nvar _stats = __webpack_require__(/*! ./stats */ \"./src/actions/stats.js\");\n\nvar _stats2 = _interopRequireDefault(_stats);\n\nvar _terms = __webpack_require__(/*! ./terms */ \"./src/actions/terms.js\");\n\nvar _terms2 = _interopRequireDefault(_terms);\n\nvar _direct = __webpack_require__(/*! ./direct */ \"./src/actions/direct.js\");\n\nvar _direct2 = _interopRequireDefault(_direct);\n\nvar _groups = __webpack_require__(/*! ./groups */ \"./src/actions/groups.js\");\n\nvar _groups2 = _interopRequireDefault(_groups);\n\nvar _errors = __webpack_require__(/*! ./errors */ \"./src/actions/errors.js\");\n\nvar _errors2 = _interopRequireDefault(_errors);\n\nvar _challenge = __webpack_require__(/*! ./challenge */ \"./src/actions/challenge.js\");\n\nvar _challenge2 = _interopRequireDefault(_challenge);\n\nvar _profile = __webpack_require__(/*! ./profile */ \"./src/actions/profile.js\");\n\nvar _profile2 = _interopRequireDefault(_profile);\n\nvar _members = __webpack_require__(/*! ./members */ \"./src/actions/members.js\");\n\nvar _members2 = _interopRequireDefault(_members);\n\nvar _memberTasks = __webpack_require__(/*! ./member-tasks */ \"./src/actions/member-tasks.js\");\n\nvar _memberTasks2 = _interopRequireDefault(_memberTasks);\n\nvar _reviewOpportunity = __webpack_require__(/*! ./reviewOpportunity */ \"./src/actions/reviewOpportunity.js\");\n\nvar _reviewOpportunity2 = _interopRequireDefault(_reviewOpportunity);\n\nvar _lookup = __webpack_require__(/*! ./lookup */ \"./src/actions/lookup.js\");\n\nvar _lookup2 = _interopRequireDefault(_lookup);\n\nvar _settings = __webpack_require__(/*! ./settings */ \"./src/actions/settings.js\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nvar _looker = __webpack_require__(/*! ./looker */ \"./src/actions/looker.js\");\n\nvar _looker2 = _interopRequireDefault(_looker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n};\n\nvar actions = exports.actions = {\n auth: _auth2.default.auth,\n smp: _smp2.default.smp,\n challenge: _challenge2.default.challenge,\n terms: _terms2.default.terms,\n stats: _stats2.default.stats,\n direct: _direct2.default.direct,\n groups: _groups2.default.groups,\n errors: _errors2.default.errors,\n profile: _profile2.default.profile,\n members: _members2.default.members,\n memberTasks: _memberTasks2.default.memberTasks,\n reviewOpportunity: _reviewOpportunity2.default.reviewOpportunity,\n lookup: _lookup2.default.lookup,\n settings: _settings2.default.settings,\n looker: _looker2.default.looker\n};\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(actions, 'actions', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/index.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/index.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/index.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.actions = undefined;\n\nvar _auth = __webpack_require__(/*! ./auth */ \"./src/actions/auth.js\");\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _smp = __webpack_require__(/*! ./smp */ \"./src/actions/smp.js\");\n\nvar _smp2 = _interopRequireDefault(_smp);\n\nvar _stats = __webpack_require__(/*! ./stats */ \"./src/actions/stats.js\");\n\nvar _stats2 = _interopRequireDefault(_stats);\n\nvar _terms = __webpack_require__(/*! ./terms */ \"./src/actions/terms.js\");\n\nvar _terms2 = _interopRequireDefault(_terms);\n\nvar _direct = __webpack_require__(/*! ./direct */ \"./src/actions/direct.js\");\n\nvar _direct2 = _interopRequireDefault(_direct);\n\nvar _groups = __webpack_require__(/*! ./groups */ \"./src/actions/groups.js\");\n\nvar _groups2 = _interopRequireDefault(_groups);\n\nvar _errors = __webpack_require__(/*! ./errors */ \"./src/actions/errors.js\");\n\nvar _errors2 = _interopRequireDefault(_errors);\n\nvar _challenge = __webpack_require__(/*! ./challenge */ \"./src/actions/challenge.js\");\n\nvar _challenge2 = _interopRequireDefault(_challenge);\n\nvar _profile = __webpack_require__(/*! ./profile */ \"./src/actions/profile.js\");\n\nvar _profile2 = _interopRequireDefault(_profile);\n\nvar _members = __webpack_require__(/*! ./members */ \"./src/actions/members.js\");\n\nvar _members2 = _interopRequireDefault(_members);\n\nvar _memberTasks = __webpack_require__(/*! ./member-tasks */ \"./src/actions/member-tasks.js\");\n\nvar _memberTasks2 = _interopRequireDefault(_memberTasks);\n\nvar _reviewOpportunity = __webpack_require__(/*! ./reviewOpportunity */ \"./src/actions/reviewOpportunity.js\");\n\nvar _reviewOpportunity2 = _interopRequireDefault(_reviewOpportunity);\n\nvar _lookup = __webpack_require__(/*! ./lookup */ \"./src/actions/lookup.js\");\n\nvar _lookup2 = _interopRequireDefault(_lookup);\n\nvar _settings = __webpack_require__(/*! ./settings */ \"./src/actions/settings.js\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nvar _looker = __webpack_require__(/*! ./looker */ \"./src/actions/looker.js\");\n\nvar _looker2 = _interopRequireDefault(_looker);\n\nvar _memberSearch = __webpack_require__(/*! ./member-search */ \"./src/actions/member-search.js\");\n\nvar _memberSearch2 = _interopRequireDefault(_memberSearch);\n\nvar _notifications = __webpack_require__(/*! ./notifications */ \"./src/actions/notifications.js\");\n\nvar _notifications2 = _interopRequireDefault(_notifications);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n};\n\nvar actions = exports.actions = {\n auth: _auth2.default.auth,\n smp: _smp2.default.smp,\n challenge: _challenge2.default.challenge,\n terms: _terms2.default.terms,\n stats: _stats2.default.stats,\n direct: _direct2.default.direct,\n groups: _groups2.default.groups,\n errors: _errors2.default.errors,\n profile: _profile2.default.profile,\n members: _members2.default.members,\n memberTasks: _memberTasks2.default.memberTasks,\n reviewOpportunity: _reviewOpportunity2.default.reviewOpportunity,\n lookup: _lookup2.default.lookup,\n settings: _settings2.default.settings,\n looker: _looker2.default.looker,\n memberSearch: _memberSearch2.default.memberSearch,\n notifications: _notifications2.default.notifications\n};\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(actions, 'actions', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/index.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/index.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/index.js?");
/***/ }),
@@ -495,7 +495,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * @static\n * @desc Creates an action that gets look data by id.\n * @return {Action}\n */\nvar getLookerDone = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(lookerId) {\n var data;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0, _looker.getService)().getLooker(lookerId);\n\n case 2:\n data = _context.sent;\n return _context.abrupt('return', { data: data, lookerId: lookerId });\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function getLookerDone(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _looker = __webpack_require__(/*! ../services/looker */ \"./src/services/looker.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.looker\"\n * @desc Actions related to looker data.\n */\n\nvar _default = (0, _reduxActions.createActions)({\n LOOKER: {\n GET_LOOKER_DONE: getLookerDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(getLookerDone, 'getLookerDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/looker.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/looker.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/looker.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * @static\n * @desc Creates an action that gets look data by id.\n * @return {Action}\n */\nvar getLookerDone = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(lookerId) {\n var data;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0, _looker.getService)().getLooker(lookerId);\n\n case 2:\n data = _context.sent;\n return _context.abrupt('return', { data: data, lookerId: lookerId });\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function getLookerDone(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _looker = __webpack_require__(/*! ../services/looker */ \"./src/services/looker.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.looker\"\n * @desc Actions related to looker data.\n */\n\nvar _default = (0, _reduxActions.createActions)({\n LOOKER: {\n GET_LOOKER_DONE: getLookerDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(getLookerDone, 'getLookerDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/looker.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/looker.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/looker.js?");
/***/ }),
@@ -507,7 +507,19 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _lookup = __webpack_require__(/*! ../services/lookup */ \"./src/services/lookup.js\");\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.lookup\"\n * @desc Actions related to lookup data.\n */\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting all skill tags.\n * @return {Action}\n */\nfunction getSkillTagsInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets all skill tags.\n * @return {Action}\n */\nfunction getSkillTagsDone() {\n var params = {\n domain: 'SKILLS',\n status: 'APPROVED'\n };\n return (0, _lookup.getService)().getTags(params);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting all countries.\n * @return {Action}\n */\nfunction getCountriesInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets all countries.\n * @return {Action}\n */\nfunction getCountriesDone() {\n return (0, _lookup.getService)().getCountries();\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting all countries api version 5.\n * @return {Action}\n */\nfunction getAllCountriesInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets all countries api version 5.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {Action}\n */\nfunction getAllCountriesDone(tokenV3) {\n return (0, _lookup.getService)(tokenV3).getAllCountries();\n}\n\nvar _default = (0, _reduxActions.createActions)({\n LOOKUP: {\n GET_SKILL_TAGS_INIT: getSkillTagsInit,\n GET_SKILL_TAGS_DONE: getSkillTagsDone,\n GET_COUNTRIES_INIT: getCountriesInit,\n GET_COUNTRIES_DONE: getCountriesDone,\n GET_ALL_COUNTRIES_INIT: getAllCountriesInit,\n GET_ALL_COUNTRIES_DONE: getAllCountriesDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(getSkillTagsInit, 'getSkillTagsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/lookup.js');\n reactHotLoader.register(getSkillTagsDone, 'getSkillTagsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/lookup.js');\n reactHotLoader.register(getCountriesInit, 'getCountriesInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/lookup.js');\n reactHotLoader.register(getCountriesDone, 'getCountriesDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/lookup.js');\n reactHotLoader.register(getAllCountriesInit, 'getAllCountriesInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/lookup.js');\n reactHotLoader.register(getAllCountriesDone, 'getAllCountriesDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/lookup.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/lookup.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/lookup.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _lookup = __webpack_require__(/*! ../services/lookup */ \"./src/services/lookup.js\");\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.lookup\"\n * @desc Actions related to lookup data.\n */\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting all skill tags.\n * @return {Action}\n */\nfunction getSkillTagsInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets all skill tags.\n * @return {Action}\n */\nfunction getSkillTagsDone() {\n var params = {\n filter: {\n domain: 'SKILLS',\n status: 'APPROVED'\n },\n limit: {\n limit: 1000\n }\n };\n return (0, _lookup.getService)().getTags(params);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting all countries.\n * @return {Action}\n */\nfunction getCountriesInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets all countries.\n * @return {Action}\n */\nfunction getCountriesDone() {\n return (0, _lookup.getService)().getCountries();\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting all review types.\n * @return {Action}\n */\nfunction getReviewTypesInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets all review types.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {Action}\n */\nfunction getReviewTypesDone(tokenV3) {\n return (0, _lookup.getService)(tokenV3).getReviewTypes();\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting all countries api version 5.\n * @return {Action}\n */\nfunction getAllCountriesInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets all countries api version 5.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {Action}\n */\nfunction getAllCountriesDone(tokenV3) {\n return (0, _lookup.getService)(tokenV3).getAllCountries();\n}\n\nvar _default = (0, _reduxActions.createActions)({\n LOOKUP: {\n GET_SKILL_TAGS_INIT: getSkillTagsInit,\n GET_SKILL_TAGS_DONE: getSkillTagsDone,\n GET_COUNTRIES_INIT: getCountriesInit,\n GET_COUNTRIES_DONE: getCountriesDone,\n GET_REVIEW_TYPES_INIT: getReviewTypesInit,\n GET_REVIEW_TYPES_DONE: getReviewTypesDone,\n GET_ALL_COUNTRIES_INIT: getAllCountriesInit,\n GET_ALL_COUNTRIES_DONE: getAllCountriesDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(getSkillTagsInit, 'getSkillTagsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/lookup.js');\n reactHotLoader.register(getSkillTagsDone, 'getSkillTagsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/lookup.js');\n reactHotLoader.register(getCountriesInit, 'getCountriesInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/lookup.js');\n reactHotLoader.register(getCountriesDone, 'getCountriesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/lookup.js');\n reactHotLoader.register(getReviewTypesInit, 'getReviewTypesInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/lookup.js');\n reactHotLoader.register(getReviewTypesDone, 'getReviewTypesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/lookup.js');\n reactHotLoader.register(getAllCountriesInit, 'getAllCountriesInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/lookup.js');\n reactHotLoader.register(getAllCountriesDone, 'getAllCountriesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/lookup.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/lookup.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/lookup.js?");
+
+/***/ }),
+
+/***/ "./src/actions/member-search.js":
+/*!**************************************!*\
+ !*** ./src/actions/member-search.js ***!
+ \**************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _memberSearch = __webpack_require__(/*! ../services/member-search */ \"./src/services/member-search.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.member-search\"\n * @desc Actions for management of members search.\n */\n\n\n/**\n * @desc Creates an action that fetchs the members data for a search term, and\n * adds result to the store cumulatively.\n * @param {String} searchTerm the search term\n * @param {Number} offset the number of records to skip\n * @param {Number} limit the maximum number of the return results\n * @return {Action}\n */\nfunction loadMemberSearch(searchTerm) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var limit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10;\n\n return (0, _memberSearch.getService)().getUsernameMatches(searchTerm, offset, limit);\n}\n\n/**\n * @static\n * @desc Creates an action that fetchs the members data for a search tag, and\n * adds result to the store.\n * @param {Object} tag the tag\n * @return {Action}\n */\nfunction loadMemberSearchForTag(tag) {\n return (0, _memberSearch.getService)().getTopMembers(tag);\n}\n\n/**\n * @static\n * @desc Creates an action that check if the term is a tag name. If it is unable to check,\n * or invalid data returned then resets the members data and search terms data in the store\n * to intial values.\n * @param {String} searchTerm the search term\n * @return {Action}\n */\nfunction checkIfSearchTermIsATag(searchTerm) {\n return (0, _memberSearch.getService)().checkIfSearchTermIsATag(searchTerm);\n}\n\n/**\n * @static\n * @desc Creates an action that saves the current search term.\n * @param {String} searchTerm the search term\n * @return {Action}\n */\nfunction setSearchTerm(searchTerm) {\n return {\n previousSearchTerm: searchTerm\n };\n}\n\n/**\n * @static\n * @desc Creates an action that saves the current search tag.\n * @param {Object} searchTag the search tag\n * @return {Action}\n */\nfunction setSearchTag(searchTag) {\n return {\n searchTermTag: searchTag\n };\n}\n\nvar _default = (0, _reduxActions.createActions)({\n MEMBER_SEARCH: {\n USERNAME_SEARCH_SUCCESS: loadMemberSearch,\n CHECK_IF_SEARCH_TERM_IS_A_TAG: checkIfSearchTermIsATag,\n TOP_MEMBER_SEARCH_SUCCESS: loadMemberSearchForTag,\n CLEAR_MEMBER_SEARCH: _lodash2.default.noop,\n LOAD_MORE_USERNAMES: _lodash2.default.noop,\n MEMBER_SEARCH_SUCCESS: _lodash2.default.noop,\n SET_SEARCH_TERM: setSearchTerm,\n SET_SEARCH_TAG: setSearchTag,\n RESET_SEARCH_TERM: _lodash2.default.noop\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(loadMemberSearch, 'loadMemberSearch', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/member-search.js');\n reactHotLoader.register(loadMemberSearchForTag, 'loadMemberSearchForTag', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/member-search.js');\n reactHotLoader.register(checkIfSearchTermIsATag, 'checkIfSearchTermIsATag', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/member-search.js');\n reactHotLoader.register(setSearchTerm, 'setSearchTerm', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/member-search.js');\n reactHotLoader.register(setSearchTag, 'setSearchTag', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/member-search.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/member-search.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/member-search.js?");
/***/ }),
@@ -519,7 +531,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PAGE_SIZE = undefined;\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _challenges = __webpack_require__(/*! ../services/challenges */ \"./src/services/challenges.js\");\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.member-tasks\"\n * @desc Actions for management of member tasks and payments. Under the hood it\n * is very similar to the challenge listing management, as these tasks are in\n * fact just challenges of a special kind); however, due to differences in the\n * use cases, we can implement task management more efficient with dedicated\n * actions and reducer; thus, this module.\n */\n\n/**\n * Holds the size of member tasks page for the MEMBER_TASK/GET_DONE\n * action. Mind that current version of TC API v3 restricts the possible page\n * size by 50 tasks anyway, thus setting this to a larger value will result in\n * problems.\n */\nvar PAGE_SIZE = exports.PAGE_SIZE = 50;\n\n/**\n * @static\n * @desc Creates an action that removes all loaded member tasks from Redux\n * store, and cancels any on-going loading operations.\n * @return {Action}\n */\nfunction dropAll() {\n return null;\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of member tasks page loading.\n * Note that dispatching this action before a previous loading operation has\n * been completed will cancel the previous loading operation.\n * @param {String} uuid UUID of the loading operation.\n * @param {Number} pageNum 0-based index of the page to load (PAGE_SIZE constant\n * holds the page size).\n * @return {Action}\n */\nfunction getInit(uuid, pageNum) {\n return { pageNum: pageNum, uuid: uuid };\n}\n\n/**\n * @static\n * @desc Creates an action that loads a page of member tasks.\n * Prior to this action always dispatch\n * {@link module:actions.member-tasks.getInit} action with\n * the same arguments. The result of this action will be silently\n * discarted if its uuid is not stored in the Redux list of pending requests\n * to load tasks.\n * @param {String} uuid UUID of the loading operation.\n * @param {String} projectId Project filter for tasks.\n * @param {Number} pageNum 0-based index of the page to load (PAGE_SIZE constant\n * holds the page size).\n * @param {String} tokenV3 Topcoder v3 auth token.\n * @return {Action}\n */\nfunction getDone(uuid, projectId, pageNum, tokenV3) {\n return (0, _challenges.getService)(tokenV3).getChallenges({\n isTask: 1,\n projectId: projectId\n }, {\n perPage: PAGE_SIZE,\n page: pageNum + 1\n }).then(function (_ref) {\n var challenges = _ref.challenges,\n totalCount = _ref.totalCount;\n return {\n projectId: projectId,\n tasks: challenges,\n totalCount: totalCount,\n uuid: uuid\n };\n });\n}\n\nvar _default = (0, _reduxActions.createActions)({\n MEMBER_TASKS: {\n DROP_ALL: dropAll,\n GET_INIT: getInit,\n GET_DONE: getDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(PAGE_SIZE, 'PAGE_SIZE', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/member-tasks.js');\n reactHotLoader.register(dropAll, 'dropAll', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/member-tasks.js');\n reactHotLoader.register(getInit, 'getInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/member-tasks.js');\n reactHotLoader.register(getDone, 'getDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/member-tasks.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/member-tasks.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/member-tasks.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.PAGE_SIZE = undefined;\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _challenges = __webpack_require__(/*! ../services/challenges */ \"./src/services/challenges.js\");\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.member-tasks\"\n * @desc Actions for management of member tasks and payments. Under the hood it\n * is very similar to the challenge listing management, as these tasks are in\n * fact just challenges of a special kind); however, due to differences in the\n * use cases, we can implement task management more efficient with dedicated\n * actions and reducer; thus, this module.\n */\n\n/**\n * Holds the size of member tasks page for the MEMBER_TASK/GET_DONE\n * action. Mind that current version of TC API v3 restricts the possible page\n * size by 50 tasks anyway, thus setting this to a larger value will result in\n * problems.\n */\nvar PAGE_SIZE = exports.PAGE_SIZE = 50;\n\n/**\n * @static\n * @desc Creates an action that removes all loaded member tasks from Redux\n * store, and cancels any on-going loading operations.\n * @return {Action}\n */\nfunction dropAll() {\n return null;\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of member tasks page loading.\n * Note that dispatching this action before a previous loading operation has\n * been completed will cancel the previous loading operation.\n * @param {String} uuid UUID of the loading operation.\n * @param {Number} pageNum 0-based index of the page to load (PAGE_SIZE constant\n * holds the page size).\n * @return {Action}\n */\nfunction getInit(uuid, pageNum) {\n return { pageNum: pageNum, uuid: uuid };\n}\n\n/**\n * @static\n * @desc Creates an action that loads a page of member tasks.\n * Prior to this action always dispatch\n * {@link module:actions.member-tasks.getInit} action with\n * the same arguments. The result of this action will be silently\n * discarted if its uuid is not stored in the Redux list of pending requests\n * to load tasks.\n * @param {String} uuid UUID of the loading operation.\n * @param {String} projectId Project filter for tasks.\n * @param {Number} pageNum 0-based index of the page to load (PAGE_SIZE constant\n * holds the page size).\n * @param {String} tokenV3 Topcoder v3 auth token.\n * @return {Action}\n */\nfunction getDone(uuid, projectId, pageNum, tokenV3) {\n return (0, _challenges.getService)(tokenV3).getChallenges({\n isTask: 1,\n projectId: projectId\n }, {\n perPage: PAGE_SIZE,\n page: pageNum + 1\n }).then(function (_ref) {\n var challenges = _ref.challenges,\n totalCount = _ref.totalCount;\n return {\n projectId: projectId,\n tasks: challenges,\n totalCount: totalCount,\n uuid: uuid\n };\n });\n}\n\nvar _default = (0, _reduxActions.createActions)({\n MEMBER_TASKS: {\n DROP_ALL: dropAll,\n GET_INIT: getInit,\n GET_DONE: getDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(PAGE_SIZE, 'PAGE_SIZE', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/member-tasks.js');\n reactHotLoader.register(dropAll, 'dropAll', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/member-tasks.js');\n reactHotLoader.register(getInit, 'getInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/member-tasks.js');\n reactHotLoader.register(getDone, 'getDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/member-tasks.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/member-tasks.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/member-tasks.js?");
/***/ }),
@@ -531,7 +543,19 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _slicedToArray2 = __webpack_require__(/*! babel-runtime/helpers/slicedToArray */ \"babel-runtime/helpers/slicedToArray\");\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * @static\n * @desc Creates an action that loads member achievements.\n * @param {String} handle Member handle.\n * @param {String} uuid Loading operation\n * @return {Action}\n */\nvar getAchievementsDone = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(handle, uuid) {\n var data;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n data = void 0;\n _context.prev = 1;\n _context.next = 4;\n return (0, _user.getService)().getAchievements(handle);\n\n case 4:\n data = _context.sent;\n _context.next = 10;\n break;\n\n case 7:\n _context.prev = 7;\n _context.t0 = _context['catch'](1);\n\n data = [];\n\n case 10:\n return _context.abrupt('return', { data: data, handle: handle, uuid: uuid });\n\n case 11:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this, [[1, 7]]);\n }));\n\n return function getAchievementsDone(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that loads member achievements from v3 API.\n * @param {String} handle Member handle.\n * @param {String} uuid Loading operation\n * @return {Action}\n */\n\n\nvar getAchievementsV3Done = function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(handle, uuid) {\n var data;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n data = void 0;\n _context2.prev = 1;\n _context2.next = 4;\n return (0, _user.getService)().getAchievementsV3(handle);\n\n case 4:\n data = _context2.sent;\n _context2.next = 10;\n break;\n\n case 7:\n _context2.prev = 7;\n _context2.t0 = _context2['catch'](1);\n\n data = [];\n\n case 10:\n return _context2.abrupt('return', { data: data, handle: handle, uuid: uuid });\n\n case 11:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this, [[1, 7]]);\n }));\n\n return function getAchievementsV3Done(_x3, _x4) {\n return _ref2.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that signals beginning of loading the member's\n * financial information.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\n\n\n/**\n * @static\n * @desc Creates an action that loads member's financial information.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\nvar getFinancesDone = function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(handle, uuid, tokenV3) {\n var data;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return (0, _members.getService)(tokenV3).getMemberFinances(handle);\n\n case 2:\n data = _context3.sent;\n return _context3.abrupt('return', { data: data, handle: handle, uuid: uuid });\n\n case 4:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n return function getFinancesDone(_x5, _x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that signals beginning of member stats loading.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\n\n\nvar getStatsInit = function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(handle, uuid) {\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n return _context4.abrupt('return', { handle: handle, uuid: uuid });\n\n case 1:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n return function getStatsInit(_x8, _x9) {\n return _ref4.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that loads member statistics.\n * @param {String} handle Member handle.\n * @param {String} groupIds Group ids.\n * @param {String} uuid Operation UUID.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\n\n\nvar getStatsDone = function () {\n var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(handle, groupIds, uuid, tokenV3) {\n var data;\n return _regenerator2.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return (0, _members.getService)(tokenV3).getStats(handle, groupIds);\n\n case 2:\n data = _context5.sent;\n return _context5.abrupt('return', { data: data, handle: handle, uuid: uuid });\n\n case 4:\n case 'end':\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n return function getStatsDone(_x10, _x11, _x12, _x13) {\n return _ref5.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Payload creator for the action that inits the loading of member active challenges.\n * @param {String} handle\n * @param {String} uuid\n * @returns {Object} Payload\n */\n\n\nvar getActiveChallengesInit = function () {\n var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(handle, uuid) {\n return _regenerator2.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n return _context6.abrupt('return', { handle: handle, uuid: uuid });\n\n case 1:\n case 'end':\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n return function getActiveChallengesInit(_x14, _x15) {\n return _ref6.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Payload creator for the action that loads the member active challenges.\n * @param {String} handle\n * @param {String} uuid\n * @param {String} tokenV3\n * @returns {Object} Payload\n */\n\n\nvar getActiveChallengesDone = function () {\n var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(handle, uuid, tokenV3) {\n var filter, service, getAll, calls, _ref9, _ref10, challenges;\n\n return _regenerator2.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n getAll = function getAll(getter) {\n var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var prev = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n var PAGE_SIZE = 50;\n return getter({\n perPage: PAGE_SIZE,\n page: page + 1\n }).then(function (_ref8) {\n var chunk = _ref8.challenges;\n\n if (!chunk.length) return prev || [];\n return getAll(getter, 1 + page, prev ? prev.concat(chunk) : chunk);\n });\n };\n\n filter = { status: 'Active' };\n service = (0, _challenges.getService)(tokenV3);\n /* TODO: Reuse `getAll` from `actions/challenge-listing`\n /* after it moved from `community-app` to here.\n */\n\n calls = [getAll(function (params) {\n return service.getUserChallenges(handle, filter, params);\n })];\n _context7.next = 6;\n return _promise2.default.all(calls);\n\n case 6:\n _ref9 = _context7.sent;\n _ref10 = (0, _slicedToArray3.default)(_ref9, 1);\n challenges = _ref10[0];\n return _context7.abrupt('return', { handle: handle, challenges: challenges, uuid: uuid });\n\n case 10:\n case 'end':\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n\n return function getActiveChallengesDone(_x16, _x17, _x18) {\n return _ref7.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that signals beginning of member stats distribution history.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\n\n\nvar getStatsHistoryInit = function () {\n var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(handle, uuid) {\n return _regenerator2.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n return _context8.abrupt('return', { handle: handle, uuid: uuid });\n\n case 1:\n case 'end':\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n\n return function getStatsHistoryInit(_x21, _x22) {\n return _ref11.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that loads the member stats history.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\n\n\nvar getStatsHistoryDone = function () {\n var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(handle, uuid, tokenV3) {\n var data;\n return _regenerator2.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return (0, _members.getService)(tokenV3).getStatsHistory(handle);\n\n case 2:\n data = _context9.sent;\n return _context9.abrupt('return', { data: data, handle: handle, uuid: uuid });\n\n case 4:\n case 'end':\n return _context9.stop();\n }\n }\n }, _callee9, this);\n }));\n\n return function getStatsHistoryDone(_x23, _x24, _x25) {\n return _ref12.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that signals beginning of member stats distribution loading.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\n\n\nvar getStatsDistributionInit = function () {\n var _ref13 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(handle, uuid) {\n return _regenerator2.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n return _context10.abrupt('return', { handle: handle, uuid: uuid });\n\n case 1:\n case 'end':\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n\n return function getStatsDistributionInit(_x26, _x27) {\n return _ref13.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that loads the member stats distribution.\n * @param {String} handle Member handle.\n * @param {String} track Main track name.\n * @param {String} subTrack Subtrack name.\n * @param {String} uuid Operation UUID.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\n\n\nvar getStatsDistributionDone = function () {\n var _ref14 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(handle, track, subTrack, uuid, tokenV3) {\n var data;\n return _regenerator2.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n _context11.next = 2;\n return (0, _members.getService)(tokenV3).getStatsDistribution(handle, track, subTrack);\n\n case 2:\n data = _context11.sent;\n return _context11.abrupt('return', { data: data, handle: handle, uuid: uuid });\n\n case 4:\n case 'end':\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n return function getStatsDistributionDone(_x28, _x29, _x30, _x31, _x32) {\n return _ref14.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that signals beginning of subtrack challenges loading.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\n\n\nvar getSubtrackChallengesInit = function () {\n var _ref15 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12(handle, uuid) {\n return _regenerator2.default.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n return _context12.abrupt('return', { handle: handle, uuid: uuid });\n\n case 1:\n case 'end':\n return _context12.stop();\n }\n }\n }, _callee12, this);\n }));\n\n return function getSubtrackChallengesInit(_x33, _x34) {\n return _ref15.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that loads the member subtrack challenges.\n * @param {String} uuid Operation UUID.\n * @param {String} handle Member handle.\n * @param {String} tokenV3 v3 auth token.\n * @param {String} track Main track name.\n * @param {String} subTrack Subtrack name.\n * @param {Number} start page.\n * @param {Number} page size.\n * @param {Boolean} whether to refresh.\n * @return {Action}\n */\n\n\nvar getSubtrackChallengesDone = function () {\n var _ref16 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee13(uuid, handle, tokenV3, track, subTrack, pageNum, pageSize, refresh) {\n var filter, params, service;\n return _regenerator2.default.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n filter = {\n status: 'Completed',\n hasUserSubmittedForReview: 'true',\n track: track,\n subTrack: subTrack\n };\n params = {};\n\n params.orderBy = 'submissionEndDate desc';\n params.limit = pageSize;\n params.offset = pageNum * pageSize;\n\n service = (0, _challenges.getService)(tokenV3);\n return _context13.abrupt('return', service.getUserChallenges(handle, filter, params).then(function (res) {\n return {\n uuid: uuid,\n challenges: res.challenges,\n refresh: refresh,\n handle: handle\n };\n }));\n\n case 7:\n case 'end':\n return _context13.stop();\n }\n }\n }, _callee13, this);\n }));\n\n return function getSubtrackChallengesDone(_x35, _x36, _x37, _x38, _x39, _x40, _x41, _x42) {\n return _ref16.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that signals beginning of member SRM loading.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\n\n\nvar getUserSRMInit = function () {\n var _ref17 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee14(handle, uuid) {\n return _regenerator2.default.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n return _context14.abrupt('return', { handle: handle, uuid: uuid });\n\n case 1:\n case 'end':\n return _context14.stop();\n }\n }\n }, _callee14, this);\n }));\n\n return function getUserSRMInit(_x43, _x44) {\n return _ref17.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that loads the member SRM.\n * @param {String} uuid Operation UUID.\n * @param {String} handle Member handle.\n * @param {String} tokenV3 v3 auth token.\n * @param {Number} start page.\n * @param {Number} page size.\n * @param {Boolean} whether to refresh.\n * @return {Action}\n */\n\n\nvar getUserSRMDone = function () {\n var _ref18 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee15(uuid, handle, tokenV3, pageNum, pageSize, refresh) {\n var filter, params, service;\n return _regenerator2.default.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n filter = {\n status: 'past',\n isRatedForSRM: 'true'\n };\n params = {\n filter: _qs2.default.stringify(filter, { encode: false }),\n limit: pageSize,\n offset: pageNum * pageSize\n };\n service = (0, _challenges.getService)(tokenV3);\n return _context15.abrupt('return', service.getUserSrms(handle, params).then(function (res) {\n return {\n uuid: uuid,\n srms: res,\n refresh: refresh,\n handle: handle\n };\n }));\n\n case 4:\n case 'end':\n return _context15.stop();\n }\n }\n }, _callee15, this);\n }));\n\n return function getUserSRMDone(_x45, _x46, _x47, _x48, _x49, _x50) {\n return _ref18.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that signals beginning of member marathon loading.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\n\n\nvar getUserMarathonInit = function () {\n var _ref19 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee16(handle, uuid) {\n return _regenerator2.default.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n return _context16.abrupt('return', { handle: handle, uuid: uuid });\n\n case 1:\n case 'end':\n return _context16.stop();\n }\n }\n }, _callee16, this);\n }));\n\n return function getUserMarathonInit(_x51, _x52) {\n return _ref19.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that loads the member marathon.\n * @param {String} uuid Operation UUID.\n * @param {String} handle Member handle.\n * @param {String} tokenV3 v3 auth token.\n * @param {Number} start page.\n * @param {Number} page size.\n * @param {Boolean} whether to refresh.\n * @return {Action}\n */\n\n\nvar getUserMarathonDone = function () {\n var _ref20 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee17(uuid, handle, tokenV3, pageNum, pageSize, refresh) {\n var filter, params, service;\n return _regenerator2.default.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n filter = { status: 'PAST', isRatedForMM: 'true' };\n params = {};\n\n params.orderBy = 'endDate desc';\n params.limit = pageSize;\n params.offset = pageNum * pageSize;\n\n service = (0, _challenges.getService)(tokenV3);\n return _context17.abrupt('return', service.getUserMarathonMatches(handle, filter, params).then(function (res) {\n return {\n uuid: uuid,\n marathons: res,\n refresh: refresh,\n handle: handle\n };\n }));\n\n case 7:\n case 'end':\n return _context17.stop();\n }\n }\n }, _callee17, this);\n }));\n\n return function getUserMarathonDone(_x53, _x54, _x55, _x56, _x57, _x58) {\n return _ref20.apply(this, arguments);\n };\n}();\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _members = __webpack_require__(/*! ../services/members */ \"./src/services/members.js\");\n\nvar _user = __webpack_require__(/*! ../services/user */ \"./src/services/user.js\");\n\nvar _challenges = __webpack_require__(/*! ../services/challenges */ \"./src/services/challenges.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.members\"\n * @desc Actions related to members data.\n */\n\n/**\n * @static\n * @desc Creates an action that drops all information related to the specfied\n * member.\n * @param {String} handle Topcoder user handle.\n * @return {Action}\n */\nfunction drop(handle) {\n return handle;\n}\n\n/**\n * @static\n * @desc Creates an action that drops all member information loaded by\n * actions from this module.\n * @return {Action}\n */\nfunction dropAll() {}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of member achievements\n * loading.\n * @param {String} handle Member handle.\n * @param {String} uuid Loading operation UUID.\n * @return {Action}\n */\nfunction getAchievementsInit(handle, uuid) {\n return { handle: handle, uuid: uuid };\n}function getFinancesInit(handle, uuid) {\n return { handle: handle, uuid: uuid };\n}\nvar _default = (0, _reduxActions.createActions)({\n MEMBERS: {\n DROP: drop,\n DROP_ALL: dropAll,\n GET_ACHIEVEMENTS_INIT: getAchievementsInit,\n GET_ACHIEVEMENTS_DONE: getAchievementsDone,\n GET_ACHIEVEMENTS_V3_DONE: getAchievementsV3Done,\n GET_FINANCES_INIT: getFinancesInit,\n GET_FINANCES_DONE: getFinancesDone,\n GET_STATS_INIT: getStatsInit,\n GET_STATS_DONE: getStatsDone,\n GET_STATS_HISTORY_INIT: getStatsHistoryInit,\n GET_STATS_HISTORY_DONE: getStatsHistoryDone,\n GET_STATS_DISTRIBUTION_INIT: getStatsDistributionInit,\n GET_STATS_DISTRIBUTION_DONE: getStatsDistributionDone,\n GET_ACTIVE_CHALLENGES_INIT: getActiveChallengesInit,\n GET_ACTIVE_CHALLENGES_DONE: getActiveChallengesDone,\n GET_SUBTRACK_CHALLENGES_INIT: getSubtrackChallengesInit,\n GET_SUBTRACK_CHALLENGES_DONE: getSubtrackChallengesDone,\n GET_USER_SRM_INIT: getUserSRMInit,\n GET_USER_SRM_DONE: getUserSRMDone,\n GET_USER_MARATHON_INIT: getUserMarathonInit,\n GET_USER_MARATHON_DONE: getUserMarathonDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(drop, 'drop', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(dropAll, 'dropAll', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getAchievementsInit, 'getAchievementsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getAchievementsDone, 'getAchievementsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getAchievementsV3Done, 'getAchievementsV3Done', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getFinancesInit, 'getFinancesInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getFinancesDone, 'getFinancesDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getStatsInit, 'getStatsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getStatsDone, 'getStatsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getActiveChallengesInit, 'getActiveChallengesInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getActiveChallengesDone, 'getActiveChallengesDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getStatsHistoryInit, 'getStatsHistoryInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getStatsHistoryDone, 'getStatsHistoryDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getStatsDistributionInit, 'getStatsDistributionInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getStatsDistributionDone, 'getStatsDistributionDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getSubtrackChallengesInit, 'getSubtrackChallengesInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getSubtrackChallengesDone, 'getSubtrackChallengesDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getUserSRMInit, 'getUserSRMInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getUserSRMDone, 'getUserSRMDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getUserMarathonInit, 'getUserMarathonInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getUserMarathonDone, 'getUserMarathonDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/members.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/members.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _slicedToArray2 = __webpack_require__(/*! babel-runtime/helpers/slicedToArray */ \"babel-runtime/helpers/slicedToArray\");\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * @static\n * @desc Creates an action that loads member achievements.\n * @param {String} handle Member handle.\n * @param {String} uuid Loading operation\n * @return {Action}\n */\nvar getAchievementsDone = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(handle, uuid) {\n var data;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n data = void 0;\n _context.prev = 1;\n _context.next = 4;\n return (0, _user.getService)().getAchievements(handle);\n\n case 4:\n data = _context.sent;\n _context.next = 10;\n break;\n\n case 7:\n _context.prev = 7;\n _context.t0 = _context['catch'](1);\n\n data = [];\n\n case 10:\n return _context.abrupt('return', { data: data, handle: handle, uuid: uuid });\n\n case 11:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this, [[1, 7]]);\n }));\n\n return function getAchievementsDone(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that loads member achievements from v3 API.\n * @param {String} handle Member handle.\n * @param {String} uuid Loading operation\n * @return {Action}\n */\n\n\nvar getAchievementsV3Done = function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(handle, uuid) {\n var data;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n data = void 0;\n _context2.prev = 1;\n _context2.next = 4;\n return (0, _user.getService)().getAchievementsV3(handle);\n\n case 4:\n data = _context2.sent;\n _context2.next = 10;\n break;\n\n case 7:\n _context2.prev = 7;\n _context2.t0 = _context2['catch'](1);\n\n data = [];\n\n case 10:\n return _context2.abrupt('return', { data: data, handle: handle, uuid: uuid });\n\n case 11:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this, [[1, 7]]);\n }));\n\n return function getAchievementsV3Done(_x3, _x4) {\n return _ref2.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that signals beginning of loading the member's\n * financial information.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\n\n\n/**\n * @static\n * @desc Creates an action that loads member's financial information.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\nvar getFinancesDone = function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(handle, uuid, tokenV3) {\n var data;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return (0, _members.getService)(tokenV3).getMemberFinances(handle);\n\n case 2:\n data = _context3.sent;\n return _context3.abrupt('return', { data: data, handle: handle, uuid: uuid });\n\n case 4:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n return function getFinancesDone(_x5, _x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that signals beginning of member stats loading.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\n\n\nvar getStatsInit = function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(handle, uuid) {\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n return _context4.abrupt('return', { handle: handle, uuid: uuid });\n\n case 1:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n return function getStatsInit(_x8, _x9) {\n return _ref4.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that loads member statistics.\n * @param {String} handle Member handle.\n * @param {String} groupIds Group ids.\n * @param {String} uuid Operation UUID.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\n\n\nvar getStatsDone = function () {\n var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(handle, groupIds, uuid, tokenV3) {\n var data;\n return _regenerator2.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return (0, _members.getService)(tokenV3).getStats(handle, groupIds);\n\n case 2:\n data = _context5.sent;\n return _context5.abrupt('return', { data: data, handle: handle, uuid: uuid });\n\n case 4:\n case 'end':\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n return function getStatsDone(_x10, _x11, _x12, _x13) {\n return _ref5.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Payload creator for the action that inits the loading of member active challenges.\n * @param {String} handle\n * @param {String} uuid\n * @returns {Object} Payload\n */\n\n\nvar getActiveChallengesInit = function () {\n var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(handle, uuid) {\n return _regenerator2.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n return _context6.abrupt('return', { handle: handle, uuid: uuid });\n\n case 1:\n case 'end':\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n return function getActiveChallengesInit(_x14, _x15) {\n return _ref6.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Payload creator for the action that loads the member active challenges.\n * @param {String} handle\n * @param {String} uuid\n * @param {String} tokenV3\n * @returns {Object} Payload\n */\n\n\nvar getActiveChallengesDone = function () {\n var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(handle, uuid, tokenV3) {\n var filter, service, getAll, calls, _ref9, _ref10, challenges;\n\n return _regenerator2.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n getAll = function getAll(getter) {\n var page = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var prev = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n var PAGE_SIZE = 50;\n return getter({\n perPage: PAGE_SIZE,\n page: page + 1\n }).then(function (_ref8) {\n var chunk = _ref8.challenges;\n\n if (!chunk.length) return prev || [];\n return getAll(getter, 1 + page, prev ? prev.concat(chunk) : chunk);\n });\n };\n\n filter = { status: 'Active' };\n service = (0, _challenges.getService)(tokenV3);\n /* TODO: Reuse `getAll` from `actions/challenge-listing`\n /* after it moved from `community-app` to here.\n */\n\n calls = [getAll(function (params) {\n return service.getUserChallenges(handle, filter, params);\n })];\n _context7.next = 6;\n return _promise2.default.all(calls);\n\n case 6:\n _ref9 = _context7.sent;\n _ref10 = (0, _slicedToArray3.default)(_ref9, 1);\n challenges = _ref10[0];\n return _context7.abrupt('return', { handle: handle, challenges: challenges, uuid: uuid });\n\n case 10:\n case 'end':\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n\n return function getActiveChallengesDone(_x16, _x17, _x18) {\n return _ref7.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that signals beginning of member stats distribution history.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\n\n\nvar getStatsHistoryInit = function () {\n var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(handle, uuid) {\n return _regenerator2.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n return _context8.abrupt('return', { handle: handle, uuid: uuid });\n\n case 1:\n case 'end':\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n\n return function getStatsHistoryInit(_x21, _x22) {\n return _ref11.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that loads the member stats history.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\n\n\nvar getStatsHistoryDone = function () {\n var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(handle, groupIds, uuid, tokenV3) {\n var data;\n return _regenerator2.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return (0, _members.getService)(tokenV3).getStatsHistory(handle, groupIds);\n\n case 2:\n data = _context9.sent;\n return _context9.abrupt('return', { data: data, handle: handle, uuid: uuid });\n\n case 4:\n case 'end':\n return _context9.stop();\n }\n }\n }, _callee9, this);\n }));\n\n return function getStatsHistoryDone(_x23, _x24, _x25, _x26) {\n return _ref12.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that signals beginning of member stats distribution loading.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\n\n\nvar getStatsDistributionInit = function () {\n var _ref13 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(handle, uuid) {\n return _regenerator2.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n return _context10.abrupt('return', { handle: handle, uuid: uuid });\n\n case 1:\n case 'end':\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n\n return function getStatsDistributionInit(_x27, _x28) {\n return _ref13.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that loads the member stats distribution.\n * @param {String} handle Member handle.\n * @param {String} track Main track name.\n * @param {String} subTrack Subtrack name.\n * @param {String} uuid Operation UUID.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\n\n\nvar getStatsDistributionDone = function () {\n var _ref14 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(handle, track, subTrack, uuid, tokenV3) {\n var data;\n return _regenerator2.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n _context11.next = 2;\n return (0, _members.getService)(tokenV3).getStatsDistribution(handle, track, subTrack);\n\n case 2:\n data = _context11.sent;\n return _context11.abrupt('return', { data: data, handle: handle, uuid: uuid });\n\n case 4:\n case 'end':\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n return function getStatsDistributionDone(_x29, _x30, _x31, _x32, _x33) {\n return _ref14.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that signals beginning of subtrack challenges loading.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\n\n\nvar getSubtrackChallengesInit = function () {\n var _ref15 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12(handle, uuid) {\n return _regenerator2.default.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n return _context12.abrupt('return', { handle: handle, uuid: uuid });\n\n case 1:\n case 'end':\n return _context12.stop();\n }\n }\n }, _callee12, this);\n }));\n\n return function getSubtrackChallengesInit(_x34, _x35) {\n return _ref15.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that loads the member subtrack challenges.\n * @param {String} uuid Operation UUID.\n * @param {String} handle Member handle.\n * @param {String} tokenV3 v3 auth token.\n * @param {String} track Main track name.\n * @param {String} subTrack Subtrack name.\n * @param {Number} start page.\n * @param {Number} page size.\n * @param {Boolean} whether to refresh.\n * @return {Action}\n */\n\n\nvar getSubtrackChallengesDone = function () {\n var _ref16 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee13(uuid, handle, tokenV3, track, subTrack, pageNum, pageSize, refresh) {\n var filter, params, service;\n return _regenerator2.default.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n filter = {\n status: 'Completed',\n hasUserSubmittedForReview: 'true',\n track: track,\n subTrack: subTrack\n };\n params = {};\n\n params.orderBy = 'submissionEndDate desc';\n params.limit = pageSize;\n params.offset = pageNum * pageSize;\n\n service = (0, _challenges.getService)(tokenV3);\n return _context13.abrupt('return', service.getUserChallenges(handle, filter, params).then(function (res) {\n return {\n uuid: uuid,\n challenges: res.challenges,\n refresh: refresh,\n handle: handle\n };\n }));\n\n case 7:\n case 'end':\n return _context13.stop();\n }\n }\n }, _callee13, this);\n }));\n\n return function getSubtrackChallengesDone(_x36, _x37, _x38, _x39, _x40, _x41, _x42, _x43) {\n return _ref16.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that signals beginning of member SRM loading.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\n\n\nvar getUserSRMInit = function () {\n var _ref17 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee14(handle, uuid) {\n return _regenerator2.default.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n return _context14.abrupt('return', { handle: handle, uuid: uuid });\n\n case 1:\n case 'end':\n return _context14.stop();\n }\n }\n }, _callee14, this);\n }));\n\n return function getUserSRMInit(_x44, _x45) {\n return _ref17.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that loads the member SRM.\n * @param {String} uuid Operation UUID.\n * @param {String} handle Member handle.\n * @param {String} tokenV3 v3 auth token.\n * @param {Number} start page.\n * @param {Number} page size.\n * @param {Boolean} whether to refresh.\n * @return {Action}\n */\n\n\nvar getUserSRMDone = function () {\n var _ref18 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee15(uuid, handle, tokenV3, pageNum, pageSize, refresh) {\n var filter, params, service;\n return _regenerator2.default.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n filter = {\n status: 'past',\n isRatedForSRM: 'true'\n };\n params = {\n filter: _qs2.default.stringify(filter, { encode: false }),\n limit: pageSize,\n offset: pageNum * pageSize\n };\n service = (0, _challenges.getService)(tokenV3);\n return _context15.abrupt('return', service.getUserSrms(handle, params).then(function (res) {\n return {\n uuid: uuid,\n srms: res,\n refresh: refresh,\n handle: handle\n };\n }));\n\n case 4:\n case 'end':\n return _context15.stop();\n }\n }\n }, _callee15, this);\n }));\n\n return function getUserSRMDone(_x46, _x47, _x48, _x49, _x50, _x51) {\n return _ref18.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that signals beginning of member marathon loading.\n * @param {String} handle Member handle.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\n\n\nvar getUserMarathonInit = function () {\n var _ref19 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee16(handle, uuid) {\n return _regenerator2.default.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n return _context16.abrupt('return', { handle: handle, uuid: uuid });\n\n case 1:\n case 'end':\n return _context16.stop();\n }\n }\n }, _callee16, this);\n }));\n\n return function getUserMarathonInit(_x52, _x53) {\n return _ref19.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Create an action that loads the member marathon.\n * @param {String} uuid Operation UUID.\n * @param {String} handle Member handle.\n * @param {String} tokenV3 v3 auth token.\n * @param {Number} start page.\n * @param {Number} page size.\n * @param {Boolean} whether to refresh.\n * @return {Action}\n */\n\n\nvar getUserMarathonDone = function () {\n var _ref20 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee17(uuid, handle, tokenV3, pageNum, pageSize, refresh) {\n var filter, params, service;\n return _regenerator2.default.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n filter = { status: 'PAST', isRatedForMM: 'true' };\n params = {};\n\n params.orderBy = 'endDate desc';\n params.limit = pageSize;\n params.offset = pageNum * pageSize;\n\n service = (0, _challenges.getService)(tokenV3);\n return _context17.abrupt('return', service.getUserMarathonMatches(handle, filter, params).then(function (res) {\n return {\n uuid: uuid,\n marathons: res,\n refresh: refresh,\n handle: handle\n };\n }));\n\n case 7:\n case 'end':\n return _context17.stop();\n }\n }\n }, _callee17, this);\n }));\n\n return function getUserMarathonDone(_x54, _x55, _x56, _x57, _x58, _x59) {\n return _ref20.apply(this, arguments);\n };\n}();\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _members = __webpack_require__(/*! ../services/members */ \"./src/services/members.js\");\n\nvar _user = __webpack_require__(/*! ../services/user */ \"./src/services/user.js\");\n\nvar _challenges = __webpack_require__(/*! ../services/challenges */ \"./src/services/challenges.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.members\"\n * @desc Actions related to members data.\n */\n\n/**\n * @static\n * @desc Creates an action that drops all information related to the specfied\n * member.\n * @param {String} handle Topcoder user handle.\n * @return {Action}\n */\nfunction drop(handle) {\n return handle;\n}\n\n/**\n * @static\n * @desc Creates an action that drops all member information loaded by\n * actions from this module.\n * @return {Action}\n */\nfunction dropAll() {}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of member achievements\n * loading.\n * @param {String} handle Member handle.\n * @param {String} uuid Loading operation UUID.\n * @return {Action}\n */\nfunction getAchievementsInit(handle, uuid) {\n return { handle: handle, uuid: uuid };\n}function getFinancesInit(handle, uuid) {\n return { handle: handle, uuid: uuid };\n}\nvar _default = (0, _reduxActions.createActions)({\n MEMBERS: {\n DROP: drop,\n DROP_ALL: dropAll,\n GET_ACHIEVEMENTS_INIT: getAchievementsInit,\n GET_ACHIEVEMENTS_DONE: getAchievementsDone,\n GET_ACHIEVEMENTS_V3_DONE: getAchievementsV3Done,\n GET_FINANCES_INIT: getFinancesInit,\n GET_FINANCES_DONE: getFinancesDone,\n GET_STATS_INIT: getStatsInit,\n GET_STATS_DONE: getStatsDone,\n GET_STATS_HISTORY_INIT: getStatsHistoryInit,\n GET_STATS_HISTORY_DONE: getStatsHistoryDone,\n GET_STATS_DISTRIBUTION_INIT: getStatsDistributionInit,\n GET_STATS_DISTRIBUTION_DONE: getStatsDistributionDone,\n GET_ACTIVE_CHALLENGES_INIT: getActiveChallengesInit,\n GET_ACTIVE_CHALLENGES_DONE: getActiveChallengesDone,\n GET_SUBTRACK_CHALLENGES_INIT: getSubtrackChallengesInit,\n GET_SUBTRACK_CHALLENGES_DONE: getSubtrackChallengesDone,\n GET_USER_SRM_INIT: getUserSRMInit,\n GET_USER_SRM_DONE: getUserSRMDone,\n GET_USER_MARATHON_INIT: getUserMarathonInit,\n GET_USER_MARATHON_DONE: getUserMarathonDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(drop, 'drop', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(dropAll, 'dropAll', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getAchievementsInit, 'getAchievementsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getAchievementsDone, 'getAchievementsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getAchievementsV3Done, 'getAchievementsV3Done', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getFinancesInit, 'getFinancesInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getFinancesDone, 'getFinancesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getStatsInit, 'getStatsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getStatsDone, 'getStatsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getActiveChallengesInit, 'getActiveChallengesInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getActiveChallengesDone, 'getActiveChallengesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getStatsHistoryInit, 'getStatsHistoryInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getStatsHistoryDone, 'getStatsHistoryDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getStatsDistributionInit, 'getStatsDistributionInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getStatsDistributionDone, 'getStatsDistributionDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getSubtrackChallengesInit, 'getSubtrackChallengesInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getSubtrackChallengesDone, 'getSubtrackChallengesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getUserSRMInit, 'getUserSRMInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getUserSRMDone, 'getUserSRMDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getUserMarathonInit, 'getUserMarathonInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(getUserMarathonDone, 'getUserMarathonDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/members.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/members.js?");
+
+/***/ }),
+
+/***/ "./src/actions/notifications.js":
+/*!**************************************!*\
+ !*** ./src/actions/notifications.js ***!
+ \**************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * @static\n * @desc Creates an action that loads member achievements.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\nvar getNotificationsDone = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(tokenV3) {\n var data;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n data = void 0;\n _context.prev = 1;\n _context.next = 4;\n return (0, _notifications.getService)(tokenV3).getNotifications();\n\n case 4:\n data = _context.sent;\n _context.next = 10;\n break;\n\n case 7:\n _context.prev = 7;\n _context.t0 = _context['catch'](1);\n\n data = [];\n\n case 10:\n return _context.abrupt('return', processData(data.items || []));\n\n case 11:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this, [[1, 7]]);\n }));\n\n return function getNotificationsDone(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that signals beginning of mark notification as read\n * loading.\n * @return {Action}\n */\n\n\n/**\n * @static\n * @desc Creates an action that marks notification as read.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\nvar markNotificationAsReadDone = function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(item, tokenV3) {\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n _context2.next = 3;\n return (0, _notifications.getService)(tokenV3).markNotificationAsRead(item.id);\n\n case 3:\n _context2.next = 8;\n break;\n\n case 5:\n _context2.prev = 5;\n _context2.t0 = _context2['catch'](0);\n return _context2.abrupt('return', _context2.t0);\n\n case 8:\n return _context2.abrupt('return', item);\n\n case 9:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this, [[0, 5]]);\n }));\n\n return function markNotificationAsReadDone(_x2, _x3) {\n return _ref2.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that signals beginning of mark all notification as read\n * loading.\n * @return {Action}\n */\n\n\n/**\n * @static\n * @desc Creates an action that marks all notification as read.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\nvar markAllNotificationAsReadDone = function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(tokenV3) {\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.prev = 0;\n _context3.next = 3;\n return (0, _notifications.getService)(tokenV3).markAllNotificationAsRead();\n\n case 3:\n _context3.next = 8;\n break;\n\n case 5:\n _context3.prev = 5;\n _context3.t0 = _context3['catch'](0);\n return _context3.abrupt('return', _context3.t0);\n\n case 8:\n return _context3.abrupt('return', true);\n\n case 9:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this, [[0, 5]]);\n }));\n\n return function markAllNotificationAsReadDone(_x4) {\n return _ref3.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that signals beginning of mark all notification as seen\n * loading.\n * @return {Action}\n */\n\n\n/**\n * @static\n * @desc Creates an action that marks all notification as seen.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\nvar markAllNotificationAsSeenDone = function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(items, tokenV3) {\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.prev = 0;\n _context4.next = 3;\n return (0, _notifications.getService)(tokenV3).markAllNotificationAsSeen(items);\n\n case 3:\n _context4.next = 8;\n break;\n\n case 5:\n _context4.prev = 5;\n _context4.t0 = _context4['catch'](0);\n return _context4.abrupt('return', _context4.t0);\n\n case 8:\n return _context4.abrupt('return', items);\n\n case 9:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this, [[0, 5]]);\n }));\n\n return function markAllNotificationAsSeenDone(_x5, _x6) {\n return _ref4.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that signals beginning of dismiss all challenge notifications\n * loading.\n * @return {Action}\n */\n\n\n/**\n * @static\n * @desc Creates an action that dismisses all challenge notifications\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\nvar dismissChallengeNotificationsDone = function () {\n var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(challengeId, tokenV3) {\n return _regenerator2.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.prev = 0;\n _context5.next = 3;\n return (0, _notifications.getService)(tokenV3).dismissChallengeNotifications(challengeId);\n\n case 3:\n _context5.next = 8;\n break;\n\n case 5:\n _context5.prev = 5;\n _context5.t0 = _context5['catch'](0);\n return _context5.abrupt('return', _context5.t0);\n\n case 8:\n return _context5.abrupt('return', true);\n\n case 9:\n case 'end':\n return _context5.stop();\n }\n }\n }, _callee5, this, [[0, 5]]);\n }));\n\n return function dismissChallengeNotificationsDone(_x7, _x8) {\n return _ref5.apply(this, arguments);\n };\n}();\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _notifications = __webpack_require__(/*! ../services/notifications */ \"./src/services/notifications.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.notifications\"\n * @desc Actions related to notifications data.\n */\n\n/**\n * TODO: We will need to change this based on API and\n * frontend mapping we need later.\n */\nfunction processData(data) {\n var retData = _lodash2.default.map(data, function (item) {\n var object = {};\n object.id = item.id;\n object.sourceId = item.contents.id;\n object.sourceName = item.contents.name || item.contents.title;\n object.eventType = item.type;\n object.isRead = item.read;\n object.isSeen = item.seen;\n object.contents = item.contents.message || item.contents.title;\n object.version = item.version;\n object.date = item.createdAt;\n return object;\n });\n return retData;\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of notifications\n * loading.\n * @return {Action}\n */\nfunction getNotificationsInit() {\n return {};\n}function markNotificationAsReadInit() {\n return {};\n}function markAllNotificationAsReadInit() {\n return {};\n}function markAllNotificationAsSeenInit() {\n return {};\n}function dismissChallengeNotificationsInit() {\n return {};\n}\nvar _default = (0, _reduxActions.createActions)({\n NOTIFICATIONS: {\n GET_NOTIFICATIONS_INIT: getNotificationsInit,\n GET_NOTIFICATIONS_DONE: getNotificationsDone,\n MARK_NOTIFICATION_AS_READ_INIT: markNotificationAsReadInit,\n MARK_NOTIFICATION_AS_READ_DONE: markNotificationAsReadDone,\n MARK_ALL_NOTIFICATION_AS_READ_INIT: markAllNotificationAsReadInit,\n MARK_ALL_NOTIFICATION_AS_READ_DONE: markAllNotificationAsReadDone,\n MARK_ALL_NOTIFICATION_AS_SEEN_INIT: markAllNotificationAsSeenInit,\n MARK_ALL_NOTIFICATION_AS_SEEN_DONE: markAllNotificationAsSeenDone,\n DISMISS_CHALLENGE_NOTIFICATIONS_INIT: dismissChallengeNotificationsInit,\n DISMISS_CHALLENGE_NOTIFICATIONS_DONE: dismissChallengeNotificationsDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(processData, 'processData', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/notifications.js');\n reactHotLoader.register(getNotificationsInit, 'getNotificationsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/notifications.js');\n reactHotLoader.register(getNotificationsDone, 'getNotificationsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/notifications.js');\n reactHotLoader.register(markNotificationAsReadInit, 'markNotificationAsReadInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/notifications.js');\n reactHotLoader.register(markNotificationAsReadDone, 'markNotificationAsReadDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/notifications.js');\n reactHotLoader.register(markAllNotificationAsReadInit, 'markAllNotificationAsReadInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/notifications.js');\n reactHotLoader.register(markAllNotificationAsReadDone, 'markAllNotificationAsReadDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/notifications.js');\n reactHotLoader.register(markAllNotificationAsSeenInit, 'markAllNotificationAsSeenInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/notifications.js');\n reactHotLoader.register(markAllNotificationAsSeenDone, 'markAllNotificationAsSeenDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/notifications.js');\n reactHotLoader.register(dismissChallengeNotificationsInit, 'dismissChallengeNotificationsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/notifications.js');\n reactHotLoader.register(dismissChallengeNotificationsDone, 'dismissChallengeNotificationsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/notifications.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/notifications.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/notifications.js?");
/***/ }),
@@ -543,7 +567,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _user = __webpack_require__(/*! ../services/user */ \"./src/services/user.js\");\n\nvar _members = __webpack_require__(/*! ../services/members */ \"./src/services/members.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.profile\"\n * @desc Actions for interactions with profile details API.\n * @todo Some of them repeat actions in {@link actions.members.md}. The code\n * should be refactored to avoid redundancy.\n */\n\n\n/**\n * @static\n * @desc Creates and action that loads user profile.\n * @todo This action does not follow the pattern with init/done pairs of\n * actions. Should be improved.\n * @param {String} handle User handle.\n * @return {Action}\n */\nfunction loadProfile(handle) {\n return handle;\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of user achievements loading.\n * @todo This duplicates similar action in {@link actions.members.md}!\n * @return {Action}\n */\nfunction getAchievementsInit() {}\n\n/**\n * @static\n * @desc Creates an action that loads user achievements from API v2.\n * @todo This duplicates similar action in {@link actions.members.md}!\n * @param {String} handle User handle.\n * @return {Action}\n */\nfunction getAchievementsDone(handle) {\n return (0, _user.getService)().getUserPublic(handle);\n}\n\n/**\n * @static\n * @desc Creates an action that loads user achievements from API v3.\n * @todo This duplicates similar action in {@link actions.members.md}!\n * @param {String} handle User handle.\n * @return {Action}\n */\nfunction getAchievementsV3Done(handle) {\n return (0, _user.getService)().getUserPublicV3(handle);\n}\n\n/**\n * @static\n * @todo To be documented.\n * @return {Action}\n */\nfunction getExternalAccountsInit() {}\n\n/**\n * @static\n * @todo To be documented.\n * @param {String} handle User handle.\n * @return {Action}\n */\nfunction getExternalAccountsDone(handle) {\n return (0, _members.getService)().getExternalAccounts(handle);\n}\n\n/**\n * @static\n * @todo Figure out what does this action do.\n * @return {Action}\n */\nfunction getExternalLinksInit() {}\n\n/**\n * @static\n * @todo Figure out the purpose of this action\n * @param {String} handle User handle.\n * @return {Action}\n */\nfunction getExternalLinksDone(handle) {\n return (0, _members.getService)().getExternalLinks(handle);\n}\n\n/**\n * @static\n * @todo Figure out the purpose of this action.\n * @return {Action}\n */\nfunction getInfoInit() {}\n\n/**\n * @static\n * @todo Figure out the purpose of this action.\n * @param {String} handle User handle.\n * @return {Action}\n */\nfunction getInfoDone(handle) {\n return (0, _members.getService)().getMemberInfo(handle);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of loading the member's\n * skills info.\n * @return {Action}\n */\nfunction getSkillsInit() {}\n\n/**\n * @static\n * @desc Creates an action that loads member's skills info.\n * @param {String} handle Member handle.\n * @return {Action}\n */\nfunction getSkillsDone(handle) {\n return (0, _members.getService)().getSkills(handle);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of loading member's stats.\n * @todo This is similar to {@link actions.members.md#module_actions.members.getStatsInit}!\n * @return {Action}\n */\nfunction getStatsInit() {}\n\n/**\n * @static\n * @desc Creates an action that loads member's stats.\n * @param {String} handle Member handle.\n * @param {String} groupIds Group ids.\n * @return {Action}\n */\nfunction getStatsDone(handle, groupIds) {\n return (0, _members.getService)().getStats(handle, groupIds);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting linked accounts.\n * @return {Action}\n */\nfunction getLinkedAccountsInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets linked accounts.\n *\n * @param {Object} profile Topcoder member profile.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Action}\n */\nfunction getLinkedAccountsDone(profile, tokenV3) {\n var service = (0, _user.getService)(tokenV3);\n return service.getLinkedAccounts(profile.userId);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting credential.\n * @return {Action}\n */\nfunction getCredentialInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets credential.\n *\n * @param {Object} profile Topcoder member profile.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Action}\n */\nfunction getCredentialDone(profile, tokenV3) {\n var service = (0, _user.getService)(tokenV3);\n return service.getCredential(profile.userId);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting email preferences.\n * @return {Action}\n */\nfunction getEmailPreferencesInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets email preferences.\n *\n * @param {Object} profile Topcoder member profile.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Action}\n */\nfunction getEmailPreferencesDone(profile, tokenV3) {\n var service = (0, _user.getService)(tokenV3);\n return service.getEmailPreferences(profile.userId);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of uploading user's photo.\n * @return {Action}\n */\nfunction uploadPhotoInit() {}\n\n/**\n * @static\n * @desc Creates an action that uploads user's photo.\n * @param {String} handle Topcoder user handle.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {String} file The photo file.\n * @return {Action}\n */\nfunction uploadPhotoDone(handle, tokenV3, file) {\n var service = (0, _members.getService)(tokenV3);\n return service.getPresignedUrl(handle, file).then(function (res) {\n return service.uploadFileToS3(res);\n }).then(function (res) {\n return service.updateMemberPhoto(res);\n }).then(function (photoURL) {\n return { handle: handle, photoURL: photoURL };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of deleting user's photo.\n * @return {Action}\n */\nfunction deletePhotoInit() {}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of updating user's profile.\n * @return {Action}\n */\nfunction updateProfileInit() {}\n\n/**\n * @static\n * @desc Creates an action that updates user's profile.\n * @param {String} profile Topcoder user profile.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Action}\n */\nfunction updateProfileDone(profile, tokenV3) {\n var service = (0, _members.getService)(tokenV3);\n return service.updateMemberProfile(profile);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of adding user's skill.\n * @return {Action}\n */\nfunction addSkillInit() {}\n\n/**\n * @static\n * @desc Creates an action that adds user's skill.\n * @param {String} handle Topcoder user handle.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {Object} skill Skill to add.\n * @return {Action}\n */\nfunction addSkillDone(handle, tokenV3, skill) {\n var service = (0, _members.getService)(tokenV3);\n return service.addSkill(handle, skill.tagId).then(function (res) {\n return { skills: res.skills, handle: handle, skill: skill };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of hiding user's skill.\n * @return {Action}\n */\nfunction hideSkillInit() {}\n\n/**\n * @static\n * @desc Creates an action that hides user's skill.\n * @param {String} handle Topcoder user handle.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {Object} skill Skill to hide.\n * @return {Action}\n */\nfunction hideSkillDone(handle, tokenV3, skill) {\n var service = (0, _members.getService)(tokenV3);\n return service.hideSkill(handle, skill.tagId).then(function (res) {\n return { skills: res.skills, handle: handle, skill: skill };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of adding user's web link.\n * @return {Action}\n */\nfunction addWebLinkInit() {}\n\n/**\n * @static\n * @desc Creates an action that adds user's web link.\n * @param {String} handle Topcoder user handle.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {String} webLink Web link to add.\n * @return {Action}\n */\nfunction addWebLinkDone(handle, tokenV3, webLink) {\n var service = (0, _members.getService)(tokenV3);\n return service.addWebLink(handle, webLink).then(function (res) {\n return { data: res, handle: handle };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of deleting user's web link.\n * @param {Object} key Web link key to delete.\n * @return {Action}\n */\nfunction deleteWebLinkInit(_ref) {\n var key = _ref.key;\n\n return { key: key };\n}\n\n/**\n * @static\n * @desc Creates an action that deletes user's web link.\n * @param {String} handle Topcoder user handle.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {String} webLink Web link to delete.\n * @return {Action}\n */\nfunction deleteWebLinkDone(handle, tokenV3, webLink) {\n var service = (0, _members.getService)(tokenV3);\n return service.deleteWebLink(handle, webLink.key).then(function (res) {\n return { data: res, handle: handle };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of linking external account.\n * @return {Action}\n */\nfunction linkExternalAccountInit() {}\n\n/**\n * @static\n * @desc Creates an action that links external account.\n * @param {Object} profile Topcoder member handle.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {String} providerType The external account service provider\n * @param {String} callbackUrl Optional. The callback url\n * @return {Action}\n */\nfunction linkExternalAccountDone(profile, tokenV3, providerType, callbackUrl) {\n var service = (0, _user.getService)(tokenV3);\n return service.linkExternalAccount(profile.userId, providerType, callbackUrl).then(function (res) {\n return { data: res, handle: profile.handle };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of unlinking external account.\n * @param {Object} providerType External account provider type to delete.\n * @return {Action}\n */\nfunction unlinkExternalAccountInit(_ref2) {\n var providerType = _ref2.providerType;\n\n return { providerType: providerType };\n}\n\n/**\n * @static\n * @desc Creates an action that unlinks external account.\n * @param {Object} profile Topcoder member profile.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {String} providerType The external account service provider\n * @return {Action}\n */\nfunction unlinkExternalAccountDone(profile, tokenV3, providerType) {\n var service = (0, _user.getService)(tokenV3);\n return service.unlinkExternalAccount(profile.userId, providerType).then(function () {\n return { providerType: providerType, handle: profile.handle };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of saving email preferences.\n * @return {Action}\n */\nfunction saveEmailPreferencesInit() {}\n\n/**\n * @static\n * @desc Creates an action that saves email preferences.\n *\n * @param {Object} profile Topcoder member profile.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {Object} preferences The email preferences\n * @return {Action}\n */\nfunction saveEmailPreferencesDone(profile, tokenV3, preferences) {\n var service = (0, _user.getService)(tokenV3);\n return service.saveEmailPreferences(profile, preferences).then(function (res) {\n return { data: res, handle: profile.handle };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of updating user password.\n * @return {Action}\n */\nfunction updatePasswordInit() {}\n\n/**\n * @static\n * @desc Creates an action that updates user password.\n *\n * @param {Object} profile Topcoder member profile.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {String} newPassword The new password\n * @param {String} oldPassword The old password\n * @return {Action}\n */\nfunction updatePasswordDone(profile, tokenV3, newPassword, oldPassword) {\n var service = (0, _user.getService)(tokenV3);\n return service.updatePassword(profile.userId, newPassword, oldPassword).then(function (res) {\n return { data: res, handle: profile.handle };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of verify member new email.\n * @return {Action}\n */\nfunction verifyMemberNewEmailInit() {}\n\n/**\n * @static\n * @desc Creates an action that verify member new email.\n *\n * @param {Object} handle Topcoder member handle.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {String} emailVerifyToken The verify token of new email.\n * @return {Action}\n */\nfunction verifyMemberNewEmailDone(handle, tokenV3, emailVerifyToken) {\n var service = (0, _members.getService)(tokenV3);\n return service.verifyMemberNewEmail(handle, emailVerifyToken).then(function (res) {\n return { data: res };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that toggles isEmailConflict state\n * @param {boolean} state\n * @return {Action}\n */\nfunction updateEmailConflict() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n return state;\n}\n\nvar _default = (0, _reduxActions.createActions)({\n PROFILE: {\n LOAD_PROFILE: loadProfile,\n CLEAR_PROFILE: _lodash2.default.noop,\n GET_ACHIEVEMENTS_INIT: getAchievementsInit,\n GET_ACHIEVEMENTS_DONE: getAchievementsDone,\n GET_ACHIEVEMENTS_V3_DONE: getAchievementsV3Done,\n GET_EXTERNAL_ACCOUNTS_INIT: getExternalAccountsInit,\n GET_EXTERNAL_ACCOUNTS_DONE: getExternalAccountsDone,\n GET_EXTERNAL_LINKS_INIT: getExternalLinksInit,\n GET_EXTERNAL_LINKS_DONE: getExternalLinksDone,\n GET_INFO_INIT: getInfoInit,\n GET_INFO_DONE: getInfoDone,\n GET_SKILLS_INIT: getSkillsInit,\n GET_SKILLS_DONE: getSkillsDone,\n GET_STATS_INIT: getStatsInit,\n GET_STATS_DONE: getStatsDone,\n GET_LINKED_ACCOUNTS_INIT: getLinkedAccountsInit,\n GET_LINKED_ACCOUNTS_DONE: getLinkedAccountsDone,\n GET_EMAIL_PREFERENCES_INIT: getEmailPreferencesInit,\n GET_EMAIL_PREFERENCES_DONE: getEmailPreferencesDone,\n GET_CREDENTIAL_INIT: getCredentialInit,\n GET_CREDENTIAL_DONE: getCredentialDone,\n UPLOAD_PHOTO_INIT: uploadPhotoInit,\n UPLOAD_PHOTO_DONE: uploadPhotoDone,\n DELETE_PHOTO_INIT: deletePhotoInit,\n DELETE_PHOTO_DONE: updateProfileDone,\n UPDATE_PROFILE_INIT: updateProfileInit,\n UPDATE_PROFILE_DONE: updateProfileDone,\n ADD_SKILL_INIT: addSkillInit,\n ADD_SKILL_DONE: addSkillDone,\n HIDE_SKILL_INIT: hideSkillInit,\n HIDE_SKILL_DONE: hideSkillDone,\n ADD_WEB_LINK_INIT: addWebLinkInit,\n ADD_WEB_LINK_DONE: addWebLinkDone,\n DELETE_WEB_LINK_INIT: deleteWebLinkInit,\n DELETE_WEB_LINK_DONE: deleteWebLinkDone,\n LINK_EXTERNAL_ACCOUNT_INIT: linkExternalAccountInit,\n LINK_EXTERNAL_ACCOUNT_DONE: linkExternalAccountDone,\n UNLINK_EXTERNAL_ACCOUNT_INIT: unlinkExternalAccountInit,\n UNLINK_EXTERNAL_ACCOUNT_DONE: unlinkExternalAccountDone,\n SAVE_EMAIL_PREFERENCES_INIT: saveEmailPreferencesInit,\n SAVE_EMAIL_PREFERENCES_DONE: saveEmailPreferencesDone,\n UPDATE_PASSWORD_INIT: updatePasswordInit,\n UPDATE_PASSWORD_DONE: updatePasswordDone,\n VERIFY_MEMBER_NEW_EMAIL_INIT: verifyMemberNewEmailInit,\n VERIFY_MEMBER_NEW_EMAIL_DONE: verifyMemberNewEmailDone,\n UPDATE_EMAIL_CONFLICT: updateEmailConflict\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(loadProfile, 'loadProfile', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getAchievementsInit, 'getAchievementsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getAchievementsDone, 'getAchievementsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getAchievementsV3Done, 'getAchievementsV3Done', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getExternalAccountsInit, 'getExternalAccountsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getExternalAccountsDone, 'getExternalAccountsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getExternalLinksInit, 'getExternalLinksInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getExternalLinksDone, 'getExternalLinksDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getInfoInit, 'getInfoInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getInfoDone, 'getInfoDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getSkillsInit, 'getSkillsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getSkillsDone, 'getSkillsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getStatsInit, 'getStatsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getStatsDone, 'getStatsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getLinkedAccountsInit, 'getLinkedAccountsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getLinkedAccountsDone, 'getLinkedAccountsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getCredentialInit, 'getCredentialInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getCredentialDone, 'getCredentialDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getEmailPreferencesInit, 'getEmailPreferencesInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getEmailPreferencesDone, 'getEmailPreferencesDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(uploadPhotoInit, 'uploadPhotoInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(uploadPhotoDone, 'uploadPhotoDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(deletePhotoInit, 'deletePhotoInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(updateProfileInit, 'updateProfileInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(updateProfileDone, 'updateProfileDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(addSkillInit, 'addSkillInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(addSkillDone, 'addSkillDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(hideSkillInit, 'hideSkillInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(hideSkillDone, 'hideSkillDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(addWebLinkInit, 'addWebLinkInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(addWebLinkDone, 'addWebLinkDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(deleteWebLinkInit, 'deleteWebLinkInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(deleteWebLinkDone, 'deleteWebLinkDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(linkExternalAccountInit, 'linkExternalAccountInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(linkExternalAccountDone, 'linkExternalAccountDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(unlinkExternalAccountInit, 'unlinkExternalAccountInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(unlinkExternalAccountDone, 'unlinkExternalAccountDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(saveEmailPreferencesInit, 'saveEmailPreferencesInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(saveEmailPreferencesDone, 'saveEmailPreferencesDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(updatePasswordInit, 'updatePasswordInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(updatePasswordDone, 'updatePasswordDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(verifyMemberNewEmailInit, 'verifyMemberNewEmailInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(verifyMemberNewEmailDone, 'verifyMemberNewEmailDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(updateEmailConflict, 'updateEmailConflict', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/profile.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/profile.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _user = __webpack_require__(/*! ../services/user */ \"./src/services/user.js\");\n\nvar _members = __webpack_require__(/*! ../services/members */ \"./src/services/members.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.profile\"\n * @desc Actions for interactions with profile details API.\n * @todo Some of them repeat actions in {@link actions.members.md}. The code\n * should be refactored to avoid redundancy.\n */\n\n\n/**\n * @static\n * @desc Creates and action that loads user profile.\n * @todo This action does not follow the pattern with init/done pairs of\n * actions. Should be improved.\n * @param {String} handle User handle.\n * @return {Action}\n */\nfunction loadProfile(handle) {\n return handle;\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of user achievements loading.\n * @todo This duplicates similar action in {@link actions.members.md}!\n * @return {Action}\n */\nfunction getAchievementsInit() {}\n\n/**\n * @static\n * @desc Creates an action that loads user achievements from API v2.\n * @todo This duplicates similar action in {@link actions.members.md}!\n * @param {String} handle User handle.\n * @return {Action}\n */\nfunction getAchievementsDone(handle) {\n return (0, _user.getService)().getUserPublic(handle);\n}\n\n/**\n * @static\n * @desc Creates an action that loads user achievements from API v3.\n * @todo This duplicates similar action in {@link actions.members.md}!\n * @param {String} handle User handle.\n * @return {Action}\n */\nfunction getAchievementsV3Done(handle) {\n return (0, _user.getService)().getUserPublicV3(handle);\n}\n\n/**\n * @static\n * @todo To be documented.\n * @return {Action}\n */\nfunction getExternalAccountsInit() {}\n\n/**\n * @static\n * @todo To be documented.\n * @param {String} handle User handle.\n * @return {Action}\n */\nfunction getExternalAccountsDone(handle) {\n return (0, _members.getService)().getExternalAccounts(handle);\n}\n\n/**\n * @static\n * @todo Figure out what does this action do.\n * @return {Action}\n */\nfunction getExternalLinksInit() {}\n\n/**\n * @static\n * @todo Figure out the purpose of this action\n * @param {String} handle User handle.\n * @return {Action}\n */\nfunction getExternalLinksDone(handle) {\n return (0, _members.getService)().getExternalLinks(handle);\n}\n\n/**\n * @static\n * @todo Figure out the purpose of this action.\n * @return {Action}\n */\nfunction getInfoInit() {}\n\n/**\n * @static\n * @todo Figure out the purpose of this action.\n * @param {String} handle User handle.\n * @return {Action}\n */\nfunction getInfoDone(handle) {\n return (0, _members.getService)().getMemberInfo(handle);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of loading the member's\n * skills info.\n * @return {Action}\n */\nfunction getSkillsInit() {}\n\n/**\n * @static\n * @desc Creates an action that loads member's skills info.\n * @param {String} handle Member handle.\n * @return {Action}\n */\nfunction getSkillsDone(handle) {\n return (0, _members.getService)().getSkills(handle);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of loading member's stats.\n * @todo This is similar to {@link actions.members.md#module_actions.members.getStatsInit}!\n * @return {Action}\n */\nfunction getStatsInit() {}\n\n/**\n * @static\n * @desc Creates an action that loads member's stats.\n * @param {String} handle Member handle.\n * @param {String} groupIds Group ids.\n * @return {Action}\n */\nfunction getStatsDone(handle, groupIds) {\n return (0, _members.getService)().getStats(handle, groupIds);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting linked accounts.\n * @return {Action}\n */\nfunction getLinkedAccountsInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets linked accounts.\n *\n * @param {Object} profile Topcoder member profile.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Action}\n */\nfunction getLinkedAccountsDone(profile, tokenV3) {\n var service = (0, _user.getService)(tokenV3);\n return service.getLinkedAccounts(profile.userId);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting credential.\n * @return {Action}\n */\nfunction getCredentialInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets credential.\n *\n * @param {Object} profile Topcoder member profile.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Action}\n */\nfunction getCredentialDone(profile, tokenV3) {\n var service = (0, _user.getService)(tokenV3);\n return service.getCredential(profile.userId);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting email preferences.\n * @return {Action}\n */\nfunction getEmailPreferencesInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets email preferences.\n *\n * @param {Object} profile Topcoder member profile.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Action}\n */\nfunction getEmailPreferencesDone(profile, tokenV3) {\n var service = (0, _user.getService)(tokenV3);\n return service.getEmailPreferences(profile.userId);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of uploading user's photo.\n * @return {Action}\n */\nfunction uploadPhotoInit() {}\n\n/**\n * @static\n * @desc Creates an action that uploads user's photo.\n * @param {String} handle Topcoder user handle.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {String} file The photo file.\n * @return {Action}\n */\nfunction uploadPhotoDone(handle, tokenV3, file) {\n var service = (0, _members.getService)(tokenV3);\n return service.getPresignedUrl(handle, file).then(function (res) {\n return service.uploadFileToS3(res);\n }).then(function (res) {\n return service.updateMemberPhoto(res);\n }).then(function (photoURL) {\n return { handle: handle, photoURL: photoURL };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of deleting user's photo.\n * @return {Action}\n */\nfunction deletePhotoInit() {}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of updating user's profile.\n * @return {Action}\n */\nfunction updateProfileInit() {}\n\n/**\n * @static\n * @desc Creates an action that updates user's profile.\n * @param {String} profile Topcoder user profile.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Action}\n */\nfunction updateProfileDone(profile, tokenV3) {\n var service = (0, _members.getService)(tokenV3);\n return service.updateMemberProfile(profile);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of adding user's skill.\n * @return {Action}\n */\nfunction addSkillInit() {}\n\n/**\n * @static\n * @desc Creates an action that adds user's skill.\n * @param {String} handle Topcoder user handle.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {Object} skill Skill to add.\n * @return {Action}\n */\nfunction addSkillDone(handle, tokenV3, skill) {\n var service = (0, _members.getService)(tokenV3);\n return service.addSkill(handle, skill.tagId).then(function (res) {\n return { skills: res.skills, handle: handle, skill: skill };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of hiding user's skill.\n * @return {Action}\n */\nfunction hideSkillInit() {}\n\n/**\n * @static\n * @desc Creates an action that hides user's skill.\n * @param {String} handle Topcoder user handle.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {Object} skill Skill to hide.\n * @return {Action}\n */\nfunction hideSkillDone(handle, tokenV3, skill) {\n var service = (0, _members.getService)(tokenV3);\n return service.hideSkill(handle, skill.tagId).then(function (res) {\n return { skills: res.skills, handle: handle, skill: skill };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of adding user's web link.\n * @return {Action}\n */\nfunction addWebLinkInit() {}\n\n/**\n * @static\n * @desc Creates an action that adds user's web link.\n * @param {String} handle Topcoder user handle.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {String} webLink Web link to add.\n * @return {Action}\n */\nfunction addWebLinkDone(handle, tokenV3, webLink) {\n var service = (0, _members.getService)(tokenV3);\n return service.addWebLink(handle, webLink).then(function (res) {\n return { data: res, handle: handle };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of deleting user's web link.\n * @param {Object} key Web link key to delete.\n * @return {Action}\n */\nfunction deleteWebLinkInit(_ref) {\n var key = _ref.key;\n\n return { key: key };\n}\n\n/**\n * @static\n * @desc Creates an action that deletes user's web link.\n * @param {String} handle Topcoder user handle.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {String} webLink Web link to delete.\n * @return {Action}\n */\nfunction deleteWebLinkDone(handle, tokenV3, webLink) {\n var service = (0, _members.getService)(tokenV3);\n return service.deleteWebLink(handle, webLink.key).then(function (res) {\n return { data: res, handle: handle };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of linking external account.\n * @return {Action}\n */\nfunction linkExternalAccountInit() {}\n\n/**\n * @static\n * @desc Creates an action that links external account.\n * @param {Object} profile Topcoder member handle.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {String} providerType The external account service provider\n * @param {String} callbackUrl Optional. The callback url\n * @return {Action}\n */\nfunction linkExternalAccountDone(profile, tokenV3, providerType, callbackUrl) {\n var service = (0, _user.getService)(tokenV3);\n return service.linkExternalAccount(profile.userId, providerType, callbackUrl).then(function (res) {\n return { data: res, handle: profile.handle };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of unlinking external account.\n * @param {Object} providerType External account provider type to delete.\n * @return {Action}\n */\nfunction unlinkExternalAccountInit(_ref2) {\n var providerType = _ref2.providerType;\n\n return { providerType: providerType };\n}\n\n/**\n * @static\n * @desc Creates an action that unlinks external account.\n * @param {Object} profile Topcoder member profile.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {String} providerType The external account service provider\n * @return {Action}\n */\nfunction unlinkExternalAccountDone(profile, tokenV3, providerType) {\n var service = (0, _user.getService)(tokenV3);\n return service.unlinkExternalAccount(profile.userId, providerType).then(function () {\n return { providerType: providerType, handle: profile.handle };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of saving email preferences.\n * @return {Action}\n */\nfunction saveEmailPreferencesInit() {}\n\n/**\n * @static\n * @desc Creates an action that saves email preferences.\n *\n * @param {Object} profile Topcoder member profile.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {Object} preferences The email preferences\n * @return {Action}\n */\nfunction saveEmailPreferencesDone(profile, tokenV3, preferences) {\n var service = (0, _user.getService)(tokenV3);\n return service.saveEmailPreferences(profile, preferences).then(function (res) {\n return { data: res, handle: profile.handle };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of updating user password.\n * @return {Action}\n */\nfunction updatePasswordInit() {}\n\n/**\n * @static\n * @desc Creates an action that updates user password.\n *\n * @param {Object} profile Topcoder member profile.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {String} newPassword The new password\n * @param {String} oldPassword The old password\n * @return {Action}\n */\nfunction updatePasswordDone(profile, tokenV3, newPassword, oldPassword) {\n var service = (0, _user.getService)(tokenV3);\n return service.updatePassword(profile.userId, newPassword, oldPassword).then(function (res) {\n return { data: res, handle: profile.handle };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of verify member new email.\n * @return {Action}\n */\nfunction verifyMemberNewEmailInit() {}\n\n/**\n * @static\n * @desc Creates an action that verify member new email.\n *\n * @param {Object} handle Topcoder member handle.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @param {String} emailVerifyToken The verify token of new email.\n * @return {Action}\n */\nfunction verifyMemberNewEmailDone(handle, tokenV3, emailVerifyToken) {\n var service = (0, _members.getService)(tokenV3);\n return service.verifyMemberNewEmail(handle, emailVerifyToken).then(function (res) {\n return { data: res };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that toggles isEmailConflict state\n * @param {boolean} state\n * @return {Action}\n */\nfunction updateEmailConflict() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n return state;\n}\n\nvar _default = (0, _reduxActions.createActions)({\n PROFILE: {\n LOAD_PROFILE: loadProfile,\n CLEAR_PROFILE: _lodash2.default.noop,\n GET_ACHIEVEMENTS_INIT: getAchievementsInit,\n GET_ACHIEVEMENTS_DONE: getAchievementsDone,\n GET_ACHIEVEMENTS_V3_DONE: getAchievementsV3Done,\n GET_EXTERNAL_ACCOUNTS_INIT: getExternalAccountsInit,\n GET_EXTERNAL_ACCOUNTS_DONE: getExternalAccountsDone,\n GET_EXTERNAL_LINKS_INIT: getExternalLinksInit,\n GET_EXTERNAL_LINKS_DONE: getExternalLinksDone,\n GET_INFO_INIT: getInfoInit,\n GET_INFO_DONE: getInfoDone,\n GET_SKILLS_INIT: getSkillsInit,\n GET_SKILLS_DONE: getSkillsDone,\n GET_STATS_INIT: getStatsInit,\n GET_STATS_DONE: getStatsDone,\n GET_LINKED_ACCOUNTS_INIT: getLinkedAccountsInit,\n GET_LINKED_ACCOUNTS_DONE: getLinkedAccountsDone,\n GET_EMAIL_PREFERENCES_INIT: getEmailPreferencesInit,\n GET_EMAIL_PREFERENCES_DONE: getEmailPreferencesDone,\n GET_CREDENTIAL_INIT: getCredentialInit,\n GET_CREDENTIAL_DONE: getCredentialDone,\n UPLOAD_PHOTO_INIT: uploadPhotoInit,\n UPLOAD_PHOTO_DONE: uploadPhotoDone,\n DELETE_PHOTO_INIT: deletePhotoInit,\n DELETE_PHOTO_DONE: updateProfileDone,\n UPDATE_PROFILE_INIT: updateProfileInit,\n UPDATE_PROFILE_DONE: updateProfileDone,\n ADD_SKILL_INIT: addSkillInit,\n ADD_SKILL_DONE: addSkillDone,\n HIDE_SKILL_INIT: hideSkillInit,\n HIDE_SKILL_DONE: hideSkillDone,\n ADD_WEB_LINK_INIT: addWebLinkInit,\n ADD_WEB_LINK_DONE: addWebLinkDone,\n DELETE_WEB_LINK_INIT: deleteWebLinkInit,\n DELETE_WEB_LINK_DONE: deleteWebLinkDone,\n LINK_EXTERNAL_ACCOUNT_INIT: linkExternalAccountInit,\n LINK_EXTERNAL_ACCOUNT_DONE: linkExternalAccountDone,\n UNLINK_EXTERNAL_ACCOUNT_INIT: unlinkExternalAccountInit,\n UNLINK_EXTERNAL_ACCOUNT_DONE: unlinkExternalAccountDone,\n SAVE_EMAIL_PREFERENCES_INIT: saveEmailPreferencesInit,\n SAVE_EMAIL_PREFERENCES_DONE: saveEmailPreferencesDone,\n UPDATE_PASSWORD_INIT: updatePasswordInit,\n UPDATE_PASSWORD_DONE: updatePasswordDone,\n VERIFY_MEMBER_NEW_EMAIL_INIT: verifyMemberNewEmailInit,\n VERIFY_MEMBER_NEW_EMAIL_DONE: verifyMemberNewEmailDone,\n UPDATE_EMAIL_CONFLICT: updateEmailConflict\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(loadProfile, 'loadProfile', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getAchievementsInit, 'getAchievementsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getAchievementsDone, 'getAchievementsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getAchievementsV3Done, 'getAchievementsV3Done', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getExternalAccountsInit, 'getExternalAccountsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getExternalAccountsDone, 'getExternalAccountsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getExternalLinksInit, 'getExternalLinksInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getExternalLinksDone, 'getExternalLinksDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getInfoInit, 'getInfoInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getInfoDone, 'getInfoDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getSkillsInit, 'getSkillsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getSkillsDone, 'getSkillsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getStatsInit, 'getStatsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getStatsDone, 'getStatsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getLinkedAccountsInit, 'getLinkedAccountsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getLinkedAccountsDone, 'getLinkedAccountsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getCredentialInit, 'getCredentialInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getCredentialDone, 'getCredentialDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getEmailPreferencesInit, 'getEmailPreferencesInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(getEmailPreferencesDone, 'getEmailPreferencesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(uploadPhotoInit, 'uploadPhotoInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(uploadPhotoDone, 'uploadPhotoDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(deletePhotoInit, 'deletePhotoInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(updateProfileInit, 'updateProfileInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(updateProfileDone, 'updateProfileDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(addSkillInit, 'addSkillInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(addSkillDone, 'addSkillDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(hideSkillInit, 'hideSkillInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(hideSkillDone, 'hideSkillDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(addWebLinkInit, 'addWebLinkInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(addWebLinkDone, 'addWebLinkDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(deleteWebLinkInit, 'deleteWebLinkInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(deleteWebLinkDone, 'deleteWebLinkDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(linkExternalAccountInit, 'linkExternalAccountInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(linkExternalAccountDone, 'linkExternalAccountDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(unlinkExternalAccountInit, 'unlinkExternalAccountInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(unlinkExternalAccountDone, 'unlinkExternalAccountDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(saveEmailPreferencesInit, 'saveEmailPreferencesInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(saveEmailPreferencesDone, 'saveEmailPreferencesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(updatePasswordInit, 'updatePasswordInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(updatePasswordDone, 'updatePasswordDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(verifyMemberNewEmailInit, 'verifyMemberNewEmailInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(verifyMemberNewEmailDone, 'verifyMemberNewEmailDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(updateEmailConflict, 'updateEmailConflict', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/profile.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/profile.js?");
/***/ }),
@@ -555,7 +579,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _reviewOpportunities = __webpack_require__(/*! ../services/reviewOpportunities */ \"./src/services/reviewOpportunities.js\");\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.reviewOpportunity\"\n * @desc Actions for review opportunity details API.\n */\n\n/**\n * @static\n * @desc Creates an action that signals beginning of review application\n * cancelation.\n * @return {Action}\n */\nfunction cancelApplicationsInit() {}\n\n/**\n * @static\n * @desc Creates an action that cancels existing applications\n * @param {Number} challengeId The ID of the challenge (not the opportunity id)\n * @param {Array} roleIds Array of roleId Numbers to cancel applications for\n * @param {String} tokenV3 Required. Topcoder auth token v3.\n * @return {Action}\n */\nfunction cancelApplicationsDone(challengeId, roleIds, tokenV3) {\n return (0, _reviewOpportunities.getReviewOpportunitiesService)(tokenV3).cancelApplications(challengeId, roleIds);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of loading the review\n * opportunity details.\n * @return {Action}\n */\nfunction getDetailsInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets details of a review opportunity for\n * the specified challenge.\n * @param {Number} challengeId The ID of the challenge (not the opportunity id)\n * @param {String} tokenV3=null Optional. Topcoder auth token v3.\n * @default test\n * @return {Action}\n */\nfunction getDetailsDone(challengeId, tokenV3) {\n return (0, _reviewOpportunities.getReviewOpportunitiesService)(tokenV3).getDetails(challengeId).catch(function (error) {\n if (error.status !== 401) {\n (0, _errors.fireErrorMessage)('Error Getting Review Opportunity Details', error.content || error);\n }\n return _promise2.default.reject(error.status);\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of review application process.\n * @return {Action}\n */\nfunction submitAppliationInit() {}\n\n/**\n * @static\n * @desc Creates an action that submits application for a review opportunity.\n * @param {Number} challengeId The ID of the challenge (not the opportunity id)\n * @param {Array} roleIds Array of roleId Numbers to cancel applications for\n * @param {String} tokenV3 Required. Topcoder auth token v3.\n * @return {Action}\n */\nfunction submitApplicationsDone(challengeId, roleIds, tokenV3) {\n return (0, _reviewOpportunities.getReviewOpportunitiesService)(tokenV3).submitApplications(challengeId, roleIds);\n}\n\nvar _default = (0, _reduxActions.createActions)({\n REVIEW_OPPORTUNITY: {\n CANCEL_APPLICATIONS_INIT: cancelApplicationsInit,\n CANCEL_APPLICATIONS_DONE: cancelApplicationsDone,\n GET_DETAILS_INIT: getDetailsInit,\n GET_DETAILS_DONE: getDetailsDone,\n SUBMIT_APPLICATIONS_INIT: submitAppliationInit,\n SUBMIT_APPLICATIONS_DONE: submitApplicationsDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(cancelApplicationsInit, 'cancelApplicationsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/reviewOpportunity.js');\n reactHotLoader.register(cancelApplicationsDone, 'cancelApplicationsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/reviewOpportunity.js');\n reactHotLoader.register(getDetailsInit, 'getDetailsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/reviewOpportunity.js');\n reactHotLoader.register(getDetailsDone, 'getDetailsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/reviewOpportunity.js');\n reactHotLoader.register(submitAppliationInit, 'submitAppliationInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/reviewOpportunity.js');\n reactHotLoader.register(submitApplicationsDone, 'submitApplicationsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/reviewOpportunity.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/reviewOpportunity.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/reviewOpportunity.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _reviewOpportunities = __webpack_require__(/*! ../services/reviewOpportunities */ \"./src/services/reviewOpportunities.js\");\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.reviewOpportunity\"\n * @desc Actions for review opportunity details API.\n */\n\n/**\n * @static\n * @desc Creates an action that signals beginning of review application\n * cancelation.\n * @return {Action}\n */\nfunction cancelApplicationsInit() {}\n\n/**\n * @static\n * @desc Creates an action that cancels existing applications\n * @param {Number} challengeId The ID of the challenge (not the opportunity id)\n * @param {Array} roleIds Array of roleId Numbers to cancel applications for\n * @param {String} tokenV3 Required. Topcoder auth token v3.\n * @return {Action}\n */\nfunction cancelApplicationsDone(challengeId, roleIds, tokenV3) {\n return (0, _reviewOpportunities.getReviewOpportunitiesService)(tokenV3).cancelApplications(challengeId, roleIds);\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of loading the review\n * opportunity details.\n * @return {Action}\n */\nfunction getDetailsInit() {}\n\n/**\n * @static\n * @desc Creates an action that gets details of a review opportunity for\n * the specified challenge.\n * @param {Number} challengeId The ID of the challenge (not the opportunity id)\n * @param {String} tokenV3=null Optional. Topcoder auth token v3.\n * @default test\n * @return {Action}\n */\nfunction getDetailsDone(challengeId, tokenV3) {\n return (0, _reviewOpportunities.getReviewOpportunitiesService)(tokenV3).getDetails(challengeId).catch(function (error) {\n if (error.status !== 401) {\n (0, _errors.fireErrorMessage)('Error Getting Review Opportunity Details', error.content || error);\n }\n return _promise2.default.reject(error.status);\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of review application process.\n * @return {Action}\n */\nfunction submitAppliationInit() {}\n\n/**\n * @static\n * @desc Creates an action that submits application for a review opportunity.\n * @param {Number} challengeId The ID of the challenge (not the opportunity id)\n * @param {Array} roleIds Array of roleId Numbers to cancel applications for\n * @param {String} tokenV3 Required. Topcoder auth token v3.\n * @return {Action}\n */\nfunction submitApplicationsDone(challengeId, roleIds, tokenV3) {\n return (0, _reviewOpportunities.getReviewOpportunitiesService)(tokenV3).submitApplications(challengeId, roleIds);\n}\n\nvar _default = (0, _reduxActions.createActions)({\n REVIEW_OPPORTUNITY: {\n CANCEL_APPLICATIONS_INIT: cancelApplicationsInit,\n CANCEL_APPLICATIONS_DONE: cancelApplicationsDone,\n GET_DETAILS_INIT: getDetailsInit,\n GET_DETAILS_DONE: getDetailsDone,\n SUBMIT_APPLICATIONS_INIT: submitAppliationInit,\n SUBMIT_APPLICATIONS_DONE: submitApplicationsDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(cancelApplicationsInit, 'cancelApplicationsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/reviewOpportunity.js');\n reactHotLoader.register(cancelApplicationsDone, 'cancelApplicationsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/reviewOpportunity.js');\n reactHotLoader.register(getDetailsInit, 'getDetailsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/reviewOpportunity.js');\n reactHotLoader.register(getDetailsDone, 'getDetailsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/reviewOpportunity.js');\n reactHotLoader.register(submitAppliationInit, 'submitAppliationInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/reviewOpportunity.js');\n reactHotLoader.register(submitApplicationsDone, 'submitApplicationsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/reviewOpportunity.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/reviewOpportunity.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/reviewOpportunity.js?");
/***/ }),
@@ -567,7 +591,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * @static\n * @desc Creates an action that loads user's all traits.\n * @param {String} handle the topcoder member handle\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\nvar getAllUserTraits = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(handle, tokenV3) {\n var data;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0, _userTraits.getService)(tokenV3).getAllUserTraits(handle);\n\n case 2:\n data = _context.sent;\n return _context.abrupt('return', { data: data, handle: handle });\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function getAllUserTraits(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that add trait by trait id.\n * @param {String} handle member's handle.\n * @param {String} traitId trait id.\n * @param {Array} data trait data array.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\n\n\nvar addUserTrait = function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(handle, traitId, data, tokenV3) {\n var result;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0, _userTraits.getService)(tokenV3).addUserTrait(handle, traitId, data);\n\n case 2:\n result = _context2.sent;\n return _context2.abrupt('return', { result: result, handle: handle, traitId: traitId });\n\n case 4:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n return function addUserTrait(_x3, _x4, _x5, _x6) {\n return _ref2.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that update trait by trait id.\n * @param {String} handle member's handle.\n * @param {String} traitId trait id.\n * @param {Array} data trait data array.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\n\n\nvar updateUserTrait = function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(handle, traitId, data, tokenV3) {\n var result;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return (0, _userTraits.getService)(tokenV3).updateUserTrait(handle, traitId, data);\n\n case 2:\n result = _context3.sent;\n return _context3.abrupt('return', { result: result, handle: handle, traitId: traitId });\n\n case 4:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n return function updateUserTrait(_x7, _x8, _x9, _x10) {\n return _ref3.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that delete trait by trait id.\n * @param {String} handle member's handle.\n * @param {String} traitId trait id.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\n\n\nvar deleteUserTrait = function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(handle, traitId, tokenV3) {\n var data;\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return (0, _userTraits.getService)(tokenV3).deleteUserTrait(handle, traitId);\n\n case 2:\n data = _context4.sent;\n return _context4.abrupt('return', { data: data, handle: handle, traitId: traitId });\n\n case 4:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n return function deleteUserTrait(_x11, _x12, _x13) {\n return _ref4.apply(this, arguments);\n };\n}();\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _userTraits = __webpack_require__(/*! ../services/user-traits */ \"./src/services/user-traits.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.settings\"\n * @desc Actions related to settings page.\n */\n\nvar _default = (0, _reduxActions.createActions)({\n SETTINGS: {\n GET_ALL_USER_TRAITS: getAllUserTraits,\n ADD_USER_TRAIT: addUserTrait,\n DELETE_USER_TRAIT: deleteUserTrait,\n UPDATE_USER_TRAIT: updateUserTrait,\n MODIFY_USER_TRAIT_INIT: _lodash2.default.noop\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(getAllUserTraits, 'getAllUserTraits', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/settings.js');\n reactHotLoader.register(addUserTrait, 'addUserTrait', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/settings.js');\n reactHotLoader.register(updateUserTrait, 'updateUserTrait', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/settings.js');\n reactHotLoader.register(deleteUserTrait, 'deleteUserTrait', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/settings.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/settings.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/settings.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * @static\n * @desc Creates an action that loads user's all traits.\n * @param {String} handle the topcoder member handle\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\nvar getAllUserTraits = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(handle, tokenV3) {\n var data;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return (0, _userTraits.getService)(tokenV3).getAllUserTraits(handle);\n\n case 2:\n data = _context.sent;\n return _context.abrupt('return', { data: data, handle: handle });\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function getAllUserTraits(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that add trait by trait id.\n * @param {String} handle member's handle.\n * @param {String} traitId trait id.\n * @param {Array} data trait data array.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\n\n\nvar addUserTrait = function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(handle, traitId, data, tokenV3) {\n var result;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return (0, _userTraits.getService)(tokenV3).addUserTrait(handle, traitId, data);\n\n case 2:\n result = _context2.sent;\n return _context2.abrupt('return', { result: result, handle: handle, traitId: traitId });\n\n case 4:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n return function addUserTrait(_x3, _x4, _x5, _x6) {\n return _ref2.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that update trait by trait id.\n * @param {String} handle member's handle.\n * @param {String} traitId trait id.\n * @param {Array} data trait data array.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\n\n\nvar updateUserTrait = function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(handle, traitId, data, tokenV3) {\n var result;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return (0, _userTraits.getService)(tokenV3).updateUserTrait(handle, traitId, data);\n\n case 2:\n result = _context3.sent;\n return _context3.abrupt('return', { result: result, handle: handle, traitId: traitId });\n\n case 4:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n return function updateUserTrait(_x7, _x8, _x9, _x10) {\n return _ref3.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @desc Creates an action that delete trait by trait id.\n * @param {String} handle member's handle.\n * @param {String} traitId trait id.\n * @param {String} tokenV3 v3 auth token.\n * @return {Action}\n */\n\n\nvar deleteUserTrait = function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(handle, traitId, tokenV3) {\n var data;\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return (0, _userTraits.getService)(tokenV3).deleteUserTrait(handle, traitId);\n\n case 2:\n data = _context4.sent;\n return _context4.abrupt('return', { data: data, handle: handle, traitId: traitId });\n\n case 4:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n return function deleteUserTrait(_x11, _x12, _x13) {\n return _ref4.apply(this, arguments);\n };\n}();\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _userTraits = __webpack_require__(/*! ../services/user-traits */ \"./src/services/user-traits.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.settings\"\n * @desc Actions related to settings page.\n */\n\nvar _default = (0, _reduxActions.createActions)({\n SETTINGS: {\n GET_ALL_USER_TRAITS: getAllUserTraits,\n ADD_USER_TRAIT: addUserTrait,\n DELETE_USER_TRAIT: deleteUserTrait,\n UPDATE_USER_TRAIT: updateUserTrait,\n MODIFY_USER_TRAIT_INIT: _lodash2.default.noop\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(getAllUserTraits, 'getAllUserTraits', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/settings.js');\n reactHotLoader.register(addUserTrait, 'addUserTrait', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/settings.js');\n reactHotLoader.register(updateUserTrait, 'updateUserTrait', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/settings.js');\n reactHotLoader.register(deleteUserTrait, 'deleteUserTrait', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/settings.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/settings.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/settings.js?");
/***/ }),
@@ -579,7 +603,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _api = __webpack_require__(/*! ../services/api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.smp\"\n * @desc Actions related to *My Submissions Management* page.\n */\n\n/**\n * @static\n * @desc Creates an action that signals beginning of submission download.\n * @return {Action}\n */\nfunction deleteSubmissionInit() {}\n\n/**\n * @static\n * @desc Creates an action that deletes user's submission to a challenge.\n * @param {String} tokenV3 Topcoder v3 auth token.\n * @param {Number|String} submissionId Submission ID.\n * @return {Action}\n */\nfunction deleteSubmissionDone(tokenV3, submissionId) {\n return (0, _api.getApi)('V3', tokenV3).delete('/submissions/' + submissionId).then(function () {\n return submissionId;\n });\n}\n\n/**\n * @static\n * @todo At this moment we don't need any special JS code to download\n * submissions: we get them from legacy Topcoder Studio API, which is\n * authenticated by cookies, and can be done with a simple link in\n * the component. Soon we'll migrate to use the new TC API instead, and\n * then we'll decide, whether we need operate downloads in JS, or can we\n * just remove this action.\n * @return {Action}\n */\nfunction downloadSubmission(tokens, type, submissionId) {\n _lodash2.default.noop(tokens, type, submissionId);\n}\n\nvar _default = (0, _reduxActions.createActions)({\n SMP: {\n DELETE_SUBMISSION_DONE: deleteSubmissionDone,\n DELETE_SUBMISSION_INIT: deleteSubmissionInit,\n DOWNLOAD_SUBMISSION: downloadSubmission\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(deleteSubmissionInit, 'deleteSubmissionInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/smp.js');\n reactHotLoader.register(deleteSubmissionDone, 'deleteSubmissionDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/smp.js');\n reactHotLoader.register(downloadSubmission, 'downloadSubmission', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/smp.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/smp.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/smp.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _api = __webpack_require__(/*! ../services/api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.smp\"\n * @desc Actions related to *My Submissions Management* page.\n */\n\n/**\n * @static\n * @desc Creates an action that signals beginning of submission download.\n * @return {Action}\n */\nfunction deleteSubmissionInit() {}\n\n/**\n * @static\n * @desc Creates an action that deletes user's submission to a challenge.\n * @param {String} tokenV3 Topcoder v3 auth token.\n * @param {Number|String} submissionId Submission ID.\n * @return {Action}\n */\nfunction deleteSubmissionDone(tokenV3, submissionId) {\n return (0, _api.getApi)('V3', tokenV3).delete('/submissions/' + submissionId).then(function () {\n return submissionId;\n });\n}\n\n/**\n * @static\n * @todo At this moment we don't need any special JS code to download\n * submissions: we get them from legacy Topcoder Studio API, which is\n * authenticated by cookies, and can be done with a simple link in\n * the component. Soon we'll migrate to use the new TC API instead, and\n * then we'll decide, whether we need operate downloads in JS, or can we\n * just remove this action.\n * @return {Action}\n */\nfunction downloadSubmission(tokens, type, submissionId) {\n _lodash2.default.noop(tokens, type, submissionId);\n}\n\nvar _default = (0, _reduxActions.createActions)({\n SMP: {\n DELETE_SUBMISSION_DONE: deleteSubmissionDone,\n DELETE_SUBMISSION_INIT: deleteSubmissionInit,\n DOWNLOAD_SUBMISSION: downloadSubmission\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(deleteSubmissionInit, 'deleteSubmissionInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/smp.js');\n reactHotLoader.register(deleteSubmissionDone, 'deleteSubmissionDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/smp.js');\n reactHotLoader.register(downloadSubmission, 'downloadSubmission', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/smp.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/smp.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/smp.js?");
/***/ }),
@@ -591,7 +615,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * @static\n * @desc Create an action that gets statistics related to the specified\n * community. Data will be loaded into `stats.communities[communityId]` path of\n * the Redux store.\n * @todo The action should be refactored, see comments in the code.\n * @param {Object} community details of the community.\n * @param {String} uuid Operation UUID\n * @param {Array} challenges challenges from challengeListing to filter and do statistics\n * @param {String} token V3 Topcoder auth token. It is necessary to get data\n * related to private groups.\n * @return {Action}\n */\n/* TODO: This code should be moved to a dedicated service. */\nvar getCommunityStatsDone = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(community, uuid, challenges, token) {\n var filtered, filterFunction, totalPrize, groupService, result, groupId;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n\n /* TODO: At the moment, this component loads challenge objects to calculate\n * the number of challenges and the total prize. Probably in future, we'll\n * have a special API to get these data. */\n filtered = challenges.filter(function (x) {\n return x.status === 'Active';\n });\n\n if (community.challengeFilter) {\n filterFunction = Filter.getFilterFunction(community.challengeFilter);\n\n filtered = filtered.filter(filterFunction);\n }\n totalPrize = Math.round(filtered.reduce(function (total, challenge) {\n return total + (challenge.totalPrize || 0);\n }, 0));\n groupService = (0, _groups.getService)(token);\n result = {\n community: community.communityId,\n stats: {},\n uuid: uuid\n };\n\n if (filtered.length) result.stats.numChallenges = filtered.length;\n if (totalPrize) result.stats.openPrizes = '$' + totalPrize.toLocaleString();\n\n groupId = _lodash2.default.get(community, 'groupIds[0]');\n\n if (!groupId) {\n _context.next = 13;\n break;\n }\n\n _context.next = 12;\n return groupService.getMembersCount(groupId, true);\n\n case 12:\n result.stats.numMembers = _context.sent;\n\n case 13:\n return _context.abrupt('return', result);\n\n case 16:\n _context.prev = 16;\n _context.t0 = _context['catch'](0);\n return _context.abrupt('return', {\n community: community.communityId,\n stats: {},\n uuid: uuid\n });\n\n case 19:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this, [[0, 16]]);\n }));\n\n return function getCommunityStatsDone(_x, _x2, _x3, _x4) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _filter = __webpack_require__(/*! ../utils/challenge/filter */ \"./src/utils/challenge/filter.js\");\n\nvar Filter = _interopRequireWildcard(_filter);\n\nvar _groups = __webpack_require__(/*! ../services/groups */ \"./src/services/groups.js\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.stats\"\n * @desc Actions related to Topcoder statistics (at the moment, only community\n * statistics).\n */\n\n/**\n * @static\n * @desc Creates an action that signals beginning of the loading community\n * stats.\n * @param {Object} community Community meta-data object.\n * @param {String} [community.communityId] Community ID.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\nfunction getCommunityStatsInit(community, uuid) {\n return { community: community.communityId, uuid: uuid };\n}\nvar _default = (0, _reduxActions.createActions)({\n STATS: {\n GET_COMMUNITY_STATS_INIT: getCommunityStatsInit,\n GET_COMMUNITY_STATS_DONE: getCommunityStatsDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(getCommunityStatsInit, 'getCommunityStatsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/stats.js');\n reactHotLoader.register(getCommunityStatsDone, 'getCommunityStatsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/stats.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/stats.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/stats.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * @static\n * @desc Create an action that gets statistics related to the specified\n * community. Data will be loaded into `stats.communities[communityId]` path of\n * the Redux store.\n * @todo The action should be refactored, see comments in the code.\n * @param {Object} community details of the community.\n * @param {String} uuid Operation UUID\n * @param {Array} challenges challenges from challengeListing to filter and do statistics\n * @param {String} token V3 Topcoder auth token. It is necessary to get data\n * related to private groups.\n * @return {Action}\n */\n/* TODO: This code should be moved to a dedicated service. */\nvar getCommunityStatsDone = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(community, uuid, challenges, token) {\n var filtered, filterFunction, totalPrize, groupService, result, groupId;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n\n /* TODO: At the moment, this component loads challenge objects to calculate\n * the number of challenges and the total prize. Probably in future, we'll\n * have a special API to get these data. */\n filtered = challenges.filter(function (x) {\n return x.status === 'Active';\n });\n\n if (community.challengeFilter) {\n filterFunction = Filter.getFilterFunction(community.challengeFilter);\n\n filtered = filtered.filter(filterFunction);\n }\n totalPrize = Math.round(filtered.reduce(function (total, challenge) {\n return total + (challenge.totalPrize || 0);\n }, 0));\n groupService = (0, _groups.getService)(token);\n result = {\n community: community.communityId,\n stats: {},\n uuid: uuid\n };\n\n if (filtered.length) result.stats.numChallenges = filtered.length;\n if (totalPrize) result.stats.openPrizes = '$' + totalPrize.toLocaleString();\n\n groupId = _lodash2.default.get(community, 'groupIds[0]');\n\n if (!groupId) {\n _context.next = 13;\n break;\n }\n\n _context.next = 12;\n return groupService.getMembersCount(groupId, true);\n\n case 12:\n result.stats.numMembers = _context.sent;\n\n case 13:\n return _context.abrupt('return', result);\n\n case 16:\n _context.prev = 16;\n _context.t0 = _context['catch'](0);\n return _context.abrupt('return', {\n community: community.communityId,\n stats: {},\n uuid: uuid\n });\n\n case 19:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this, [[0, 16]]);\n }));\n\n return function getCommunityStatsDone(_x, _x2, _x3, _x4) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _filter = __webpack_require__(/*! ../utils/challenge/filter */ \"./src/utils/challenge/filter.js\");\n\nvar Filter = _interopRequireWildcard(_filter);\n\nvar _groups = __webpack_require__(/*! ../services/groups */ \"./src/services/groups.js\");\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.stats\"\n * @desc Actions related to Topcoder statistics (at the moment, only community\n * statistics).\n */\n\n/**\n * @static\n * @desc Creates an action that signals beginning of the loading community\n * stats.\n * @param {Object} community Community meta-data object.\n * @param {String} [community.communityId] Community ID.\n * @param {String} uuid Operation UUID.\n * @return {Action}\n */\nfunction getCommunityStatsInit(community, uuid) {\n return { community: community.communityId, uuid: uuid };\n}\nvar _default = (0, _reduxActions.createActions)({\n STATS: {\n GET_COMMUNITY_STATS_INIT: getCommunityStatsInit,\n GET_COMMUNITY_STATS_DONE: getCommunityStatsDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(getCommunityStatsInit, 'getCommunityStatsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/stats.js');\n reactHotLoader.register(getCommunityStatsDone, 'getCommunityStatsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/stats.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/stats.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/stats.js?");
/***/ }),
@@ -603,7 +627,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _terms = __webpack_require__(/*! ../services/terms */ \"./src/services/terms.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.terms\"\n * @desc Actions related to Topcoder terms of use.\n */\n\n/**\n * @static\n * @desc Creates an action that signals beginning of fetching terms data.\n * @todo Figure out the exact meaning of the argument.\n * @param {String} arg An argument. The exact meaning to be figured out.\n * @return {Action}\n */\nfunction getTermsInit(arg) {\n return arg;\n}\n\n/**\n * @static\n * @desc Creates an action that fetches terms of the specified entity.\n * @param {Object} entity entity object\n * @param {String} [entity.type] entity type: `challenge` or `community`\n * @param {String} [entity.id] entity id\n * @param {Object} tokens object with tokenV2 and tokenV3 properties\n * @param {Boolean} mockAgreed if true, then all terms will be mocked as\n * agreed this only makes effect if MOCK_TERMS_SERVICE is `true` and the only\n * purpose of this param is testing terms\n * @return {Action}\n */\nfunction getTermsDone(entity, tokens, mockAgreed) {\n var service = (0, _terms.getService)(tokens.tokenV2);\n var termsPromise = void 0;\n\n // if mockAgreed=true passed, then we create an array of 10 true which we pass to the\n // terms service methods.\n // when terms service is mocked by setting MOCK_TERMS_SERVICE=true\n // it will make all terms to have agreed status (actually only first 10 will be agreed,\n // but we will hardly have even more then 3 terms per entity)\n var mockAgreedArray = mockAgreed ? Array(10 + 1).join('1').split('').map(function () {\n return true;\n }) : [];\n\n switch (entity.type) {\n case 'challenge':\n {\n termsPromise = service.getChallengeTerms(entity.id, mockAgreedArray);\n break;\n }\n case 'community':\n {\n termsPromise = service.getCommunityTerms(entity.id, tokens.tokenV3, mockAgreedArray);\n break;\n }\n case 'reviewOpportunity':\n {\n termsPromise = service.getReviewOpportunityTerms(entity.reviewOpportunityTerms);\n break;\n }\n default:\n throw new Error('Entity type \\'' + entity.type + '\\' is not supported by getTermsDone.');\n }\n\n return termsPromise.then(function (res) {\n return { entity: entity, terms: res.terms };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of terms status check\n * operation.\n * @return {Action}\n */\nfunction checkStatusInit() {}\n\n/**\n * @static\n * @desc Creates an action thatwill check if all terms of specified entity have been agreed,\n *\n * @todo As in some reason backend does not saves immediately that DocuSign term has been agreed\n * In case not all terms were agreed we try again after some delay.\n * Maximum quantity attempts and delay between attempts are configured in\n * MAX_ATTEMPTS and TIME_OUT\n *\n * @todo: Looks like the bug described above was caused by server caching responses\n * at least for getTermDetails which is used by getCommunityTerms.\n * To fix it I've added nocache random value param in the terms service\n * for getTermDetails and it looks like works so we get results immediately.\n * This still have to be tested for challenges as they use another endpoint\n * in method getChallengeTerms.\n * Also terms which use third part service DocuSign has to be also tested prior\n * to removing multiple checks.\n * In case their agreed status is updated immediately, this code\n * has to simplified and don't make several attempts, only one.\n *\n * @param {Object} entity entity object\n * @param {String} [entity.type] entity type `challenge` or `community`.\n * @param {String} [entity.id] entity id\n * @param {Object} tokens object with tokenV2 and tokenV3 properties\n *\n * @return {Acion}\n */\nfunction checkStatusDone(entity, tokens) {\n // timeout between checking status attempts\n var TIME_OUT = 5000;\n\n // maximum attempts to check status\n var MAX_ATTEMPTS = 5;\n\n // we set this flag for getTermsDone when MOCK_TERMS_SERVICE is true\n // so that checkStatusDone resolves to all terms agreed when mocking\n var mockAgreed = _topcoderReactUtils.config.MOCK_TERMS_SERVICE;\n\n /*\n * Promisified setTimeout\n * @param {Number} timeout timeout in milliseconds\n * @return {Promise} resolves after timeout\n */\n var delay = function delay(timeout) {\n return new _promise2.default(function (resolve) {\n setTimeout(resolve, timeout);\n });\n };\n\n /*\n * Makes attempt to check status\n * @param {Number} maxAttempts maximum number of attempts to perform\n * @return {Promise} resolves to the list of term objects\n */\n var checkStatus = function checkStatus(maxAttempts) {\n return getTermsDone(entity, tokens, mockAgreed).then(function (res) {\n var allAgreed = _lodash2.default.every(res.terms, 'agreed');\n\n // if not all terms are agreed and we still have some attempts to try\n if (!allAgreed && maxAttempts > 1) {\n return delay(TIME_OUT).then(function () {\n return checkStatus(maxAttempts - 1);\n });\n }\n\n return res.terms;\n });\n };\n\n return checkStatus(MAX_ATTEMPTS);\n}\n\n/**\n * @static\n * @desc Creates an action that marks that we are about to fetch details of the\n * specified term. If any details for another term are currently being fetched,\n * they will be silently discarded.\n * @param {Number|String} termId\n * @return {Action}\n */\nfunction getTermDetailsInit(termId) {\n return _lodash2.default.toString(termId);\n}\n\n/**\n * @static\n * @desc Creates an action that fetches details of the specified term.\n * @param {Number|String} termId\n * @param {String} tokenV2\n * @return {Action}\n */\nfunction getTermDetailsDone(termId, tokenV2) {\n var service = (0, _terms.getService)(tokenV2);\n return service.getTermDetails(termId).then(function (details) {\n return { termId: termId, details: details };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting a DocuSign URL.\n * @param {Number|String} templateId id of document template to sign\n * @return {Action}\n */\nfunction getDocuSignUrlInit(templateId) {\n return _lodash2.default.toString(templateId);\n}\n\n/**\n * @static\n * @desc Creates an action that generates the url of DoduSign term\n * @param {Number|String} templateId id of document template to sign\n * @param {String} returnUrl callback url after finishing singing\n * @param {String} tokenV2 auth token\n * @return {Action}\n */\nfunction getDocuSignUrlDone(templateId, returnUrl, tokenV2) {\n var service = (0, _terms.getService)(tokenV2);\n return service.getDocuSignUrl(templateId, returnUrl).then(function (resp) {\n return { templateId: templateId, docuSignUrl: resp.recipientViewUrl };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of terms agreement operation.\n * @param {Number|String} termId id of term\n * @return {Action}\n */\nfunction agreeTermInit(termId) {\n return _lodash2.default.toString(termId);\n}\n\n/**\n * @static\n * @desc Creates an action that agrees to a term.\n * @param {Number|String} termId id of term\n * @param {String} tokenV2 auth token\n * @return {Action}\n */\nfunction agreeTermDone(termId, tokenV2) {\n var service = (0, _terms.getService)(tokenV2);\n return service.agreeTerm(termId).then(function (resp) {\n return { termId: termId, success: resp.success };\n });\n}\n\nvar _default = (0, _reduxActions.createActions)({\n TERMS: {\n GET_TERMS_INIT: getTermsInit,\n GET_TERMS_DONE: getTermsDone,\n GET_TERM_DETAILS_INIT: getTermDetailsInit,\n GET_TERM_DETAILS_DONE: getTermDetailsDone,\n GET_DOCU_SIGN_URL_INIT: getDocuSignUrlInit,\n GET_DOCU_SIGN_URL_DONE: getDocuSignUrlDone,\n AGREE_TERM_INIT: agreeTermInit,\n AGREE_TERM_DONE: agreeTermDone,\n CHECK_STATUS_INIT: checkStatusInit,\n CHECK_STATUS_DONE: checkStatusDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(getTermsInit, 'getTermsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(getTermsDone, 'getTermsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(checkStatusInit, 'checkStatusInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(checkStatusDone, 'checkStatusDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(getTermDetailsInit, 'getTermDetailsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(getTermDetailsDone, 'getTermDetailsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(getDocuSignUrlInit, 'getDocuSignUrlInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(getDocuSignUrlDone, 'getDocuSignUrlDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(agreeTermInit, 'agreeTermInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(agreeTermDone, 'agreeTermDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/actions/terms.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/terms.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _terms = __webpack_require__(/*! ../services/terms */ \"./src/services/terms.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"actions.terms\"\n * @desc Actions related to Topcoder terms of use.\n */\n\n/**\n * @static\n * @desc Creates an action that signals beginning of fetching terms data.\n * @todo Figure out the exact meaning of the argument.\n * @param {String} arg An argument. The exact meaning to be figured out.\n * @return {Action}\n */\nfunction getTermsInit(arg) {\n return arg;\n}\n\n/**\n * @static\n * @desc Creates an action that fetches terms of the specified entity.\n * @param {Object} entity entity object\n * @param {String} [entity.type] entity type: `challenge` or `community`\n * @param {String} [entity.id] entity id\n * @param {Object} tokens object with tokenV2 and tokenV3 properties\n * @param {Boolean} mockAgreed if true, then all terms will be mocked as\n * agreed this only makes effect if MOCK_TERMS_SERVICE is `true` and the only\n * purpose of this param is testing terms\n * @return {Action}\n */\nfunction getTermsDone(entity, tokens, mockAgreed) {\n var service = (0, _terms.getService)(tokens.tokenV2);\n var termsPromise = void 0;\n\n // if mockAgreed=true passed, then we create an array of 10 true which we pass to the\n // terms service methods.\n // when terms service is mocked by setting MOCK_TERMS_SERVICE=true\n // it will make all terms to have agreed status (actually only first 10 will be agreed,\n // but we will hardly have even more then 3 terms per entity)\n var mockAgreedArray = mockAgreed ? Array(10 + 1).join('1').split('').map(function () {\n return true;\n }) : [];\n\n switch (entity.type) {\n case 'challenge':\n {\n termsPromise = service.getChallengeTerms(entity.id, mockAgreedArray);\n break;\n }\n case 'community':\n {\n termsPromise = service.getCommunityTerms(entity.id, tokens.tokenV3, mockAgreedArray);\n break;\n }\n case 'reviewOpportunity':\n {\n termsPromise = service.getReviewOpportunityTerms(entity.reviewOpportunityTerms);\n break;\n }\n default:\n throw new Error('Entity type \\'' + entity.type + '\\' is not supported by getTermsDone.');\n }\n\n return termsPromise.then(function (res) {\n return { entity: entity, terms: res.terms };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of terms status check\n * operation.\n * @return {Action}\n */\nfunction checkStatusInit() {}\n\n/**\n * @static\n * @desc Creates an action thatwill check if all terms of specified entity have been agreed,\n *\n * @todo As in some reason backend does not saves immediately that DocuSign term has been agreed\n * In case not all terms were agreed we try again after some delay.\n * Maximum quantity attempts and delay between attempts are configured in\n * MAX_ATTEMPTS and TIME_OUT\n *\n * @todo: Looks like the bug described above was caused by server caching responses\n * at least for getTermDetails which is used by getCommunityTerms.\n * To fix it I've added nocache random value param in the terms service\n * for getTermDetails and it looks like works so we get results immediately.\n * This still have to be tested for challenges as they use another endpoint\n * in method getChallengeTerms.\n * Also terms which use third part service DocuSign has to be also tested prior\n * to removing multiple checks.\n * In case their agreed status is updated immediately, this code\n * has to simplified and don't make several attempts, only one.\n *\n * @param {Object} entity entity object\n * @param {String} [entity.type] entity type `challenge` or `community`.\n * @param {String} [entity.id] entity id\n * @param {Object} tokens object with tokenV2 and tokenV3 properties\n *\n * @return {Acion}\n */\nfunction checkStatusDone(entity, tokens) {\n // timeout between checking status attempts\n var TIME_OUT = 5000;\n\n // maximum attempts to check status\n var MAX_ATTEMPTS = 5;\n\n // we set this flag for getTermsDone when MOCK_TERMS_SERVICE is true\n // so that checkStatusDone resolves to all terms agreed when mocking\n var mockAgreed = _topcoderReactUtils.config.MOCK_TERMS_SERVICE;\n\n /*\n * Promisified setTimeout\n * @param {Number} timeout timeout in milliseconds\n * @return {Promise} resolves after timeout\n */\n var delay = function delay(timeout) {\n return new _promise2.default(function (resolve) {\n setTimeout(resolve, timeout);\n });\n };\n\n /*\n * Makes attempt to check status\n * @param {Number} maxAttempts maximum number of attempts to perform\n * @return {Promise} resolves to the list of term objects\n */\n var checkStatus = function checkStatus(maxAttempts) {\n return getTermsDone(entity, tokens, mockAgreed).then(function (res) {\n var allAgreed = _lodash2.default.every(res.terms, 'agreed');\n\n // if not all terms are agreed and we still have some attempts to try\n if (!allAgreed && maxAttempts > 1) {\n return delay(TIME_OUT).then(function () {\n return checkStatus(maxAttempts - 1);\n });\n }\n\n return res.terms;\n });\n };\n\n return checkStatus(MAX_ATTEMPTS);\n}\n\n/**\n * @static\n * @desc Creates an action that marks that we are about to fetch details of the\n * specified term. If any details for another term are currently being fetched,\n * they will be silently discarded.\n * @param {Number|String} termId\n * @return {Action}\n */\nfunction getTermDetailsInit(termId) {\n return _lodash2.default.toString(termId);\n}\n\n/**\n * @static\n * @desc Creates an action that fetches details of the specified term.\n * @param {Number|String} termId\n * @param {String} tokenV2\n * @return {Action}\n */\nfunction getTermDetailsDone(termId, tokenV2) {\n var service = (0, _terms.getService)(tokenV2);\n return service.getTermDetails(termId).then(function (details) {\n return { termId: termId, details: details };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of getting a DocuSign URL.\n * @param {Number|String} templateId id of document template to sign\n * @return {Action}\n */\nfunction getDocuSignUrlInit(templateId) {\n return _lodash2.default.toString(templateId);\n}\n\n/**\n * @static\n * @desc Creates an action that generates the url of DoduSign term\n * @param {Number|String} templateId id of document template to sign\n * @param {String} returnUrl callback url after finishing singing\n * @param {String} tokenV2 auth token\n * @return {Action}\n */\nfunction getDocuSignUrlDone(templateId, returnUrl, tokenV2) {\n var service = (0, _terms.getService)(tokenV2);\n return service.getDocuSignUrl(templateId, returnUrl).then(function (resp) {\n return { templateId: templateId, docuSignUrl: resp.recipientViewUrl };\n });\n}\n\n/**\n * @static\n * @desc Creates an action that signals beginning of terms agreement operation.\n * @param {Number|String} termId id of term\n * @return {Action}\n */\nfunction agreeTermInit(termId) {\n return _lodash2.default.toString(termId);\n}\n\n/**\n * @static\n * @desc Creates an action that agrees to a term.\n * @param {Number|String} termId id of term\n * @param {String} tokenV2 auth token\n * @return {Action}\n */\nfunction agreeTermDone(termId, tokenV2) {\n var service = (0, _terms.getService)(tokenV2);\n return service.agreeTerm(termId).then(function (resp) {\n return { termId: termId, success: resp.success };\n });\n}\n\nvar _default = (0, _reduxActions.createActions)({\n TERMS: {\n GET_TERMS_INIT: getTermsInit,\n GET_TERMS_DONE: getTermsDone,\n GET_TERM_DETAILS_INIT: getTermDetailsInit,\n GET_TERM_DETAILS_DONE: getTermDetailsDone,\n GET_DOCU_SIGN_URL_INIT: getDocuSignUrlInit,\n GET_DOCU_SIGN_URL_DONE: getDocuSignUrlDone,\n AGREE_TERM_INIT: agreeTermInit,\n AGREE_TERM_DONE: agreeTermDone,\n CHECK_STATUS_INIT: checkStatusInit,\n CHECK_STATUS_DONE: checkStatusDone\n }\n});\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(getTermsInit, 'getTermsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(getTermsDone, 'getTermsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(checkStatusInit, 'checkStatusInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(checkStatusDone, 'checkStatusDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(getTermDetailsInit, 'getTermDetailsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(getTermDetailsDone, 'getTermDetailsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(getDocuSignUrlInit, 'getDocuSignUrlInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(getDocuSignUrlDone, 'getDocuSignUrlDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(agreeTermInit, 'agreeTermInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(agreeTermDone, 'agreeTermDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/terms.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/actions/terms.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/actions/terms.js?");
/***/ }),
@@ -627,7 +651,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.factory = undefined;\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\n/**\n * Creates a new reducer.\n * @param {Object} options={} Optional. Options for customization of initial\n * state.\n * @param {String} [options.auth.tokenV2=''] Optional. Topcoder v2 auth token.\n * @param {String} [options.auth.tokenV3=''] Optional. Topcoder v3 auth token.\n * @returns {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nvar factory = exports.factory = function () {\n var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var state, a;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n state = {\n tokenV2: _lodash2.default.get(options.auth, 'tokenV2'),\n tokenV3: _lodash2.default.get(options.auth, 'tokenV3')\n };\n\n if (!state.tokenV3) {\n _context.next = 8;\n break;\n }\n\n state.user = (0, _tcAccounts.decodeToken)(state.tokenV3);\n a = _auth2.default.auth.loadProfile(state.tokenV3);\n _context.next = 6;\n return _topcoderReactUtils.redux.resolveAction(a);\n\n case 6:\n a = _context.sent;\n return _context.abrupt('return', create(onProfileLoaded(state, a)));\n\n case 8:\n return _context.abrupt('return', create(state));\n\n case 9:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function factory() {\n return _ref6.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _tcAccounts = __webpack_require__(/*! tc-accounts */ \"tc-accounts\");\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _auth = __webpack_require__(/*! ../actions/auth */ \"./src/actions/auth.js\");\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _profile = __webpack_require__(/*! ../actions/profile */ \"./src/actions/profile.js\");\n\nvar _profile2 = _interopRequireDefault(_profile);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.auth\"\n * @desc Reducer for {@link module:actions.auth} actions.\n *\n * State segment managed by this reducer has the following structure:\n * @param {Boolean} authenticating=true `true` if authentication is still in\n * progress; `false` if it has already completed or failed.\n * @param {Object} profile=null Topcoder user profile.\n * @param {String} tokenV2='' Topcoder v2 auth token.\n * @param {String} tokenV3='' Topcoder v3 auth token.\n * @param {Object} user=null Topcoder user object (user information stored in\n * v3 auth token).\n */\n\n/**\n * Handles actions.auth.loadProfile action.\n * @param {Object} state\n * @param {Object} action\n */\nfunction onProfileLoaded(state, action) {\n return (0, _extends3.default)({}, state, {\n authenticating: false,\n profile: action.payload\n });\n}\n\n/**\n * Creates a new Auth reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @param {Object} mergeReducers Optional. Reducers to merge.\n * @return {Function} Auth reducer.\n */\nfunction create(initialState) {\n var _redux$handleActions;\n\n return _topcoderReactUtils.redux.handleActions((_redux$handleActions = {}, (0, _defineProperty3.default)(_redux$handleActions, _auth2.default.auth.loadProfile, onProfileLoaded), (0, _defineProperty3.default)(_redux$handleActions, _auth2.default.auth.setTcTokenV2, function (state, action) {\n return (0, _extends3.default)({}, state, {\n tokenV2: action.payload\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _auth2.default.auth.setTcTokenV3, function (state, _ref) {\n var payload = _ref.payload;\n return (0, _extends3.default)({}, state, {\n tokenV3: payload,\n user: payload ? (0, _tcAccounts.decodeToken)(payload) : null\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, 'COMMUNITY_ACTIONS/TC_COMMUNITY/JOIN_DONE', function COMMUNITY_ACTIONSTC_COMMUNITYJOIN_DONE(state, _ref2) {\n var payload = _ref2.payload;\n return (0, _extends3.default)({}, state, {\n profile: (0, _extends3.default)({}, state.profile, {\n groups: state.profile.groups.concat({ id: payload.groupId.toString() })\n })\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _profile2.default.profile.uploadPhotoDone, function (state, _ref3) {\n var payload = _ref3.payload,\n error = _ref3.error;\n\n if (error) {\n return state;\n }\n if (!state.profile || state.profile.handle !== payload.handle) {\n return state;\n }\n return (0, _extends3.default)({}, state, {\n profile: (0, _extends3.default)({}, state.profile, {\n photoURL: payload.photoURL\n })\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _profile2.default.profile.deletePhotoDone, function (state, _ref4) {\n var payload = _ref4.payload,\n error = _ref4.error;\n\n if (error) {\n return state;\n }\n if (!state.profile || state.profile.handle !== payload.handle) {\n return state;\n }\n return (0, _extends3.default)({}, state, {\n profile: (0, _extends3.default)({}, state.profile, {\n photoURL: null\n })\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _profile2.default.profile.updateProfileDone, function (state, _ref5) {\n var payload = _ref5.payload,\n error = _ref5.error;\n\n if (error) {\n return state;\n }\n if (!state.profile || state.profile.handle !== payload.handle) {\n return state;\n }\n return (0, _extends3.default)({}, state, {\n profile: (0, _extends3.default)({}, state.profile, payload)\n });\n }), _redux$handleActions), _lodash2.default.defaults(initialState, {\n authenticating: true,\n profile: null,\n tokenV2: '',\n tokenV3: '',\n user: null\n }));\n}\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onProfileLoaded, 'onProfileLoaded', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/auth.js');\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/auth.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/auth.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/auth.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/auth.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.factory = undefined;\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\n/**\n * Creates a new reducer.\n * @param {Object} options={} Optional. Options for customization of initial\n * state.\n * @param {String} [options.auth.tokenV2=''] Optional. Topcoder v2 auth token.\n * @param {String} [options.auth.tokenV3=''] Optional. Topcoder v3 auth token.\n * @returns {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nvar factory = exports.factory = function () {\n var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var state, a;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n state = {\n tokenV2: _lodash2.default.get(options.auth, 'tokenV2'),\n tokenV3: _lodash2.default.get(options.auth, 'tokenV3')\n };\n\n if (!state.tokenV3) {\n _context.next = 8;\n break;\n }\n\n state.user = (0, _tcAccounts.decodeToken)(state.tokenV3);\n a = _auth2.default.auth.loadProfile(state.tokenV3);\n _context.next = 6;\n return _topcoderReactUtils.redux.resolveAction(a);\n\n case 6:\n a = _context.sent;\n return _context.abrupt('return', create(onProfileLoaded(state, a)));\n\n case 8:\n return _context.abrupt('return', create(state));\n\n case 9:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function factory() {\n return _ref6.apply(this, arguments);\n };\n}();\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _tcAccounts = __webpack_require__(/*! tc-accounts */ \"tc-accounts\");\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _auth = __webpack_require__(/*! ../actions/auth */ \"./src/actions/auth.js\");\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _profile = __webpack_require__(/*! ../actions/profile */ \"./src/actions/profile.js\");\n\nvar _profile2 = _interopRequireDefault(_profile);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.auth\"\n * @desc Reducer for {@link module:actions.auth} actions.\n *\n * State segment managed by this reducer has the following structure:\n * @param {Boolean} authenticating=true `true` if authentication is still in\n * progress; `false` if it has already completed or failed.\n * @param {Object} profile=null Topcoder user profile.\n * @param {String} tokenV2='' Topcoder v2 auth token.\n * @param {String} tokenV3='' Topcoder v3 auth token.\n * @param {Object} user=null Topcoder user object (user information stored in\n * v3 auth token).\n */\n\n/**\n * Handles actions.auth.loadProfile action.\n * @param {Object} state\n * @param {Object} action\n */\nfunction onProfileLoaded(state, action) {\n return (0, _extends3.default)({}, state, {\n authenticating: false,\n profile: action.payload\n });\n}\n\n/**\n * Creates a new Auth reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @param {Object} mergeReducers Optional. Reducers to merge.\n * @return {Function} Auth reducer.\n */\nfunction create(initialState) {\n var _redux$handleActions;\n\n return _topcoderReactUtils.redux.handleActions((_redux$handleActions = {}, (0, _defineProperty3.default)(_redux$handleActions, _auth2.default.auth.loadProfile, onProfileLoaded), (0, _defineProperty3.default)(_redux$handleActions, _auth2.default.auth.setTcTokenV2, function (state, action) {\n return (0, _extends3.default)({}, state, {\n tokenV2: action.payload\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _auth2.default.auth.setTcTokenV3, function (state, _ref) {\n var payload = _ref.payload;\n return (0, _extends3.default)({}, state, {\n tokenV3: payload,\n user: payload ? (0, _tcAccounts.decodeToken)(payload) : null\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, 'COMMUNITY_ACTIONS/TC_COMMUNITY/JOIN_DONE', function COMMUNITY_ACTIONSTC_COMMUNITYJOIN_DONE(state, _ref2) {\n var payload = _ref2.payload;\n return (0, _extends3.default)({}, state, {\n profile: (0, _extends3.default)({}, state.profile, {\n groups: state.profile.groups.concat({ id: payload.groupId.toString() })\n })\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _profile2.default.profile.uploadPhotoDone, function (state, _ref3) {\n var payload = _ref3.payload,\n error = _ref3.error;\n\n if (error) {\n return state;\n }\n if (!state.profile || state.profile.handle !== payload.handle) {\n return state;\n }\n return (0, _extends3.default)({}, state, {\n profile: (0, _extends3.default)({}, state.profile, {\n photoURL: payload.photoURL\n })\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _profile2.default.profile.deletePhotoDone, function (state, _ref4) {\n var payload = _ref4.payload,\n error = _ref4.error;\n\n if (error) {\n return state;\n }\n if (!state.profile || state.profile.handle !== payload.handle) {\n return state;\n }\n return (0, _extends3.default)({}, state, {\n profile: (0, _extends3.default)({}, state.profile, {\n photoURL: null\n })\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _profile2.default.profile.updateProfileDone, function (state, _ref5) {\n var payload = _ref5.payload,\n error = _ref5.error;\n\n if (error) {\n return state;\n }\n if (!state.profile || state.profile.handle !== payload.handle) {\n return state;\n }\n return (0, _extends3.default)({}, state, {\n profile: (0, _extends3.default)({}, state.profile, payload)\n });\n }), _redux$handleActions), _lodash2.default.defaults(initialState, {\n authenticating: true,\n profile: null,\n tokenV2: '',\n tokenV3: '',\n user: null\n }));\n}\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onProfileLoaded, 'onProfileLoaded', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/auth.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/auth.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/auth.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/auth.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/auth.js?");
/***/ }),
@@ -639,7 +663,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray2 = __webpack_require__(/*! babel-runtime/helpers/slicedToArray */ \"babel-runtime/helpers/slicedToArray\");\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _challenge = __webpack_require__(/*! ../actions/challenge */ \"./src/actions/challenge.js\");\n\nvar _challenge2 = _interopRequireDefault(_challenge);\n\nvar _smp = __webpack_require__(/*! ../actions/smp */ \"./src/actions/smp.js\");\n\nvar _smp2 = _interopRequireDefault(_smp);\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nvar _mySubmissionsManagement = __webpack_require__(/*! ./my-submissions-management */ \"./src/reducers/my-submissions-management.js\");\n\nvar _mySubmissionsManagement2 = _interopRequireDefault(_mySubmissionsManagement);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.challenge\"\n * @desc Reducer for {@link module:actions.challenge} actions.\n *\n * State segment managed by this reducer has the following strcuture:\n * @todo Document the structure.\n */\n\n/**\n * Handles CHALLENGE/GET_DETAILS_INIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state\n */\nfunction onGetDetailsInit(state, action) {\n var challengeId = action.payload;\n return state.details && _lodash2.default.toString(state.details.id) !== challengeId ? (0, _extends3.default)({}, state, {\n fetchChallengeFailure: false,\n loadingDetailsForChallengeId: challengeId,\n details: null\n }) : (0, _extends3.default)({}, state, {\n fetchChallengeFailure: false,\n loadingDetailsForChallengeId: challengeId\n });\n}\n\n/**\n * Handles CHALLENGE/GET_DETAILS_DONE action.\n * Note, that it silently discards received details if the ID of received\n * challenge mismatches the one stored in loadingDetailsForChallengeId field\n * of the state.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetDetailsDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to get challenge details!', action.payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to load the challenge', 'Please, try again a bit later');\n return (0, _extends3.default)({}, state, {\n fetchChallengeFailure: action.error,\n loadingDetailsForChallengeId: ''\n });\n }\n var details = action.payload;\n if (_lodash2.default.toString(details.id) !== state.loadingDetailsForChallengeId) {\n return state;\n }\n\n return (0, _extends3.default)({}, state, {\n details: details,\n fetchChallengeFailure: false,\n loadingDetailsForChallengeId: ''\n });\n}\n\n/**\n * Handles CHALLENGE/GET_SUBMISSION_INIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetSubmissionsInit(state, action) {\n return (0, _extends3.default)({}, state, {\n loadingSubmissionsForChallengeId: action.payload,\n mySubmissions: { challengeId: '', v2: null }\n });\n}\n\n/**\n * Handles challengeActions.fetchSubmissionsDone action.\n * @param {Object} state Previous state.\n * @param {Object} action Action.\n */\nfunction onGetSubmissionsDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to get user\\'s submissions for the challenge', action.payload);\n return (0, _extends3.default)({}, state, {\n loadingSubmissionsForChallengeId: '',\n mySubmissions: { challengeId: '', v2: null }\n });\n }\n\n var _action$payload = action.payload,\n challengeId = _action$payload.challengeId,\n submissions = _action$payload.submissions;\n\n if (challengeId !== state.loadingSubmissionsForChallengeId) return state;\n\n return (0, _extends3.default)({}, state, {\n loadingSubmissionsForChallengeId: '',\n mySubmissions: { challengeId: challengeId, v2: submissions }\n });\n}\n\n/**\n * Handles CHALLENGE/GET_MM_SUBMISSION_INIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetMMSubmissionsInit(state, action) {\n return (0, _extends3.default)({}, state, {\n loadingMMSubmissionsForChallengeId: action.payload,\n mmSubmissions: []\n });\n}\n\n/**\n * Handles CHALLENGE/GET_MM_SUBMISSION_DONE action.\n * @param {Object} state Previous state.\n * @param {Object} action Action.\n */\nfunction onGetMMSubmissionsDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to get Marathon Match submissions for the challenge', action.payload);\n return (0, _extends3.default)({}, state, {\n loadingMMSubmissionsForChallengeId: '',\n mmSubmissions: []\n });\n }\n\n var _action$payload2 = action.payload,\n challengeId = _action$payload2.challengeId,\n submissions = _action$payload2.submissions;\n\n if (challengeId.toString() !== state.loadingMMSubmissionsForChallengeId) return state;\n return (0, _extends3.default)({}, state, {\n loadingMMSubmissionsForChallengeId: '',\n mmSubmissions: submissions\n });\n}\n\n/**\n * Handles challengeActions.fetchCheckpointsDone action.\n * @param {Object} state Previous state.\n * @param {Object} action Action.\n */\nfunction onFetchCheckpointsDone(state, action) {\n if (action.error) {\n return (0, _extends3.default)({}, state, {\n loadingCheckpoints: false\n });\n }\n if (state.details && state.details.id === action.payload.challengeId) {\n return (0, _extends3.default)({}, state, {\n checkpoints: action.payload.checkpoints,\n loadingCheckpoints: false\n });\n }\n return state;\n}\n\n/**\n * Handles CHALLENGE/LOAD_RESULTS_INIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object}\n */\nfunction onLoadResultsInit(state, _ref) {\n var payload = _ref.payload;\n\n return (0, _extends3.default)({}, state, { loadingResultsForChallengeId: payload });\n}\n\n/**\n * Handles CHALLENGE/LOAD_RESULTS_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object}\n */\nfunction onLoadResultsDone(state, action) {\n if (action.payload.challengeId !== state.loadingResultsForChallengeId) {\n return state;\n }\n if (action.error) {\n _logger2.default.error(action.payload);\n return (0, _extends3.default)({}, state, {\n loadingResultsForChallengeId: '',\n results: null,\n resultsLoadedForChallengeId: ''\n });\n }\n return (0, _extends3.default)({}, state, {\n loadingResultsForChallengeId: '',\n results: action.payload.results,\n resultsLoadedForChallengeId: action.payload.challengeId\n });\n}\n\n/**\n * Handles CHALLENGE/REGISTER_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object}\n */\nfunction onRegisterDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to register for the challenge!', action.payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to register for the challenge!');\n return (0, _extends3.default)({}, state, { registering: false });\n }\n /* As a part of registration flow we silently update challenge details,\n * reusing for this purpose the corresponding action handler. Thus, we\n * should also reuse corresponding reducer to generate proper state. */\n return onGetDetailsDone((0, _extends3.default)({}, state, {\n registering: false,\n loadingDetailsForChallengeId: _lodash2.default.toString(state.details.id)\n }), action);\n}\n\n/**\n * Handles CHALLENGE/UNREGISTER_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object}\n */\nfunction onUnregisterDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to register for the challenge!', action.payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to unregister for the challenge!');\n return (0, _extends3.default)({}, state, { unregistering: false });\n }\n /* As a part of unregistration flow we silently update challenge details,\n * reusing for this purpose the corresponding action handler. Thus, we\n * should also reuse corresponding reducer to generate proper state. */\n return onGetDetailsDone((0, _extends3.default)({}, state, {\n unregistering: false,\n loadingDetailsForChallengeId: _lodash2.default.toString(state.details.id)\n }), action);\n}\n\n/**\n * Handles CHALLENGE/UPDATE_CHALLENGE_INIT.\n * @param {Object} state Old state.\n * @param {Object} actions Action.\n * @return {Object} New state.\n */\nfunction onUpdateChallengeInit(state, _ref2) {\n var payload = _ref2.payload;\n\n return (0, _extends3.default)({}, state, { updatingChallengeUuid: payload });\n}\n\n/**\n * Handles CHALLENGE/UPDATE_CHALLENGE_DONE.\n * @param {Object} state Old state.\n * @param {Object} actions Action.\n * @return {Object} New state.\n */\nfunction onUpdateChallengeDone(state, _ref3) {\n var error = _ref3.error,\n payload = _ref3.payload;\n\n if (error) {\n (0, _errors.fireErrorMessage)('Failed to save the challenge!', '');\n _logger2.default.error('Failed to save the challenge', payload);\n return state;\n }\n if (payload.uuid !== state.updatingChallengeUuid) return state;\n\n /* Due to the normalization of challenge APIs responses done when a challenge\n * is loaded, many pieces of our code expect different information in a format\n * different from API v3 response, thus if we just save entire payload.res\n * into the Redux state segment, it will break our app. As a rapid fix, let's\n * just save only the data which are really supposed to be updated in the\n * current use case (editing of challenge specs). */\n var res = _lodash2.default.pick(payload.res, ['detailedRequirements', 'introduction', 'round1Introduction', 'round2Introduction', 'submissionGuidelines']);\n\n return (0, _extends3.default)({}, state, {\n details: (0, _extends3.default)({}, state.details, res),\n updatingChallengeUuid: ''\n });\n}\n\n/**\n * Handles CHALLENGE/GET_ACTIVE_CHALLENGES_COUNT_DONE action.\n * @param {Object} state Old state.\n * @param {Object} action Action payload/error\n * @return {Object} New state\n */\nfunction onGetActiveChallengesCountDone(state, _ref4) {\n var payload = _ref4.payload,\n error = _ref4.error;\n\n if (error) {\n (0, _errors.fireErrorMessage)('Failed to get active challenges count!', '');\n _logger2.default.error('Failed to get active challenges count', payload);\n return state;\n }\n\n return (0, _extends3.default)({}, state, { activeChallengesCount: payload });\n}\n\n/**\n * Handles CHALLENGE/GET_SUBMISSION_INFORMATION_INIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetSubmissionInformationInit(state, action) {\n return (0, _extends3.default)({}, state, {\n loadingSubmissionInformationForChallengeId: action.payload.challengeId,\n loadingSubmissionInformationForSubmissionId: action.payload.submissionId,\n submissionInformation: null\n });\n}\n\n/**\n * Handles CHALLENGE/GET_SUBMISSION_INFORMATION_DONE action.\n * @param {Object} state Previous state.\n * @param {Object} action Action.\n */\nfunction onGetSubmissionInformationDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to get submission information', action.payload);\n return (0, _extends3.default)({}, state, {\n loadingSubmissionInformationForSubmissionId: '',\n submissionInformation: null\n });\n }\n\n var _action$payload3 = action.payload,\n submissionId = _action$payload3.submissionId,\n submission = _action$payload3.submission;\n\n if (submissionId !== state.loadingSubmissionInformationForSubmissionId) return state;\n\n return (0, _extends3.default)({}, state, {\n loadingSubmissionInformationForSubmissionId: '',\n submissionInformation: submission\n });\n}\n\n/**\n * Creates a new Challenge reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Challenge reducer.\n */\nfunction create(initialState) {\n var _handleActions;\n\n var a = _challenge2.default.challenge;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.dropCheckpoints, function (state) {\n return (0, _extends3.default)({}, state, { checkpoints: null });\n }), (0, _defineProperty3.default)(_handleActions, a.dropResults, function (state) {\n return (0, _extends3.default)({}, state, { results: null });\n }), (0, _defineProperty3.default)(_handleActions, a.getDetailsInit, onGetDetailsInit), (0, _defineProperty3.default)(_handleActions, a.getDetailsDone, onGetDetailsDone), (0, _defineProperty3.default)(_handleActions, a.getSubmissionsInit, onGetSubmissionsInit), (0, _defineProperty3.default)(_handleActions, a.getSubmissionsDone, onGetSubmissionsDone), (0, _defineProperty3.default)(_handleActions, a.getMmSubmissionsInit, onGetMMSubmissionsInit), (0, _defineProperty3.default)(_handleActions, a.getMmSubmissionsDone, onGetMMSubmissionsDone), (0, _defineProperty3.default)(_handleActions, _smp2.default.smp.deleteSubmissionDone, function (state, _ref5) {\n var payload = _ref5.payload;\n return (0, _extends3.default)({}, state, {\n mySubmissions: (0, _extends3.default)({}, state.mySubmissions, {\n v2: state.mySubmissions.v2.filter(function (subm) {\n return subm.submissionId !== payload;\n })\n })\n });\n }), (0, _defineProperty3.default)(_handleActions, a.registerInit, function (state) {\n return (0, _extends3.default)({}, state, { registering: true });\n }), (0, _defineProperty3.default)(_handleActions, a.registerDone, onRegisterDone), (0, _defineProperty3.default)(_handleActions, a.unregisterInit, function (state) {\n return (0, _extends3.default)({}, state, { unregistering: true });\n }), (0, _defineProperty3.default)(_handleActions, a.unregisterDone, onUnregisterDone), (0, _defineProperty3.default)(_handleActions, a.loadResultsInit, onLoadResultsInit), (0, _defineProperty3.default)(_handleActions, a.loadResultsDone, onLoadResultsDone), (0, _defineProperty3.default)(_handleActions, a.fetchCheckpointsInit, function (state) {\n return (0, _extends3.default)({}, state, {\n checkpoints: null,\n loadingCheckpoints: true\n });\n }), (0, _defineProperty3.default)(_handleActions, a.fetchCheckpointsDone, onFetchCheckpointsDone), (0, _defineProperty3.default)(_handleActions, a.updateChallengeInit, onUpdateChallengeInit), (0, _defineProperty3.default)(_handleActions, a.updateChallengeDone, onUpdateChallengeDone), (0, _defineProperty3.default)(_handleActions, a.getActiveChallengesCountInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getActiveChallengesCountDone, onGetActiveChallengesCountDone), (0, _defineProperty3.default)(_handleActions, a.getSubmissionInformationInit, onGetSubmissionInformationInit), (0, _defineProperty3.default)(_handleActions, a.getSubmissionInformationDone, onGetSubmissionInformationDone), _handleActions), _lodash2.default.defaults(initialState, {\n details: null,\n loadingCheckpoints: false,\n loadingDetailsForChallengeId: '',\n loadingResultsForChallengeId: '',\n loadingMMSubmissionsForChallengeId: '',\n loadingSubmissionInformationForSubmissionId: '',\n mySubmissions: {},\n checkpoints: null,\n registering: false,\n results: null,\n resultsLoadedForChallengeId: '',\n unregistering: false,\n updatingChallengeUuid: '',\n mmSubmissions: [],\n submissionInformation: null\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n *\n * @param {Object} options={} Optional. Factory options.\n * @param {String} [options.auth.tokenV2=''] Optional. Topcoder v2 auth token.\n * @param {String} [options.auth.tokenV3=''] Optional. Topcoder v3 auth token.\n * @param {String} [options.challenge.challengeDetails.id=''] Optional. ID of\n * the challenge to load details for.\n * @param {Boolean} [options.challenge.challengeDetails.mySubmission=false]\n * Optional. The flag indicates whether load my submission.\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n /* Server-side rendering of Submission Management Page. */\n\n /* TODO: This shares some common logic with the next \"if\" block, which\n * should be re-used there. */\n /* TODO: For completely server-side rendering it is also necessary to load\n * terms, etc. */\n\n var tokens = {\n tokenV2: _lodash2.default.get(options.auth, 'tokenV2'),\n tokenV3: _lodash2.default.get(options.auth, 'tokenV3')\n };\n\n var state = {};\n var challengeId = _lodash2.default.get(options, 'challenge.challengeDetails.id');\n var mySubmission = _lodash2.default.get(options, 'challenge.challengeDetails.mySubmission');\n\n if (challengeId && !mySubmission) {\n return _topcoderReactUtils.redux.resolveAction(_challenge2.default.challenge.getDetailsDone(challengeId, tokens.tokenV3, tokens.tokenV2)).then(function (details) {\n var track = _lodash2.default.get(details, 'payload.track', '').toLowerCase();\n var checkpointsPromise = track === 'design' ? _topcoderReactUtils.redux.resolveAction(_challenge2.default.challenge.fetchCheckpointsDone(tokens.tokenV2, challengeId)) : null;\n var resultsPromise = _lodash2.default.get(details, 'payload.status', '') === 'Completed' ? _topcoderReactUtils.redux.resolveAction(_challenge2.default.challenge.loadResultsDone(tokens, challengeId, track)) : null;\n return _promise2.default.all([details, checkpointsPromise, resultsPromise]);\n }).then(function (_ref6) {\n var _ref7 = (0, _slicedToArray3.default)(_ref6, 3),\n details = _ref7[0],\n checkpoints = _ref7[1],\n results = _ref7[2];\n\n state = (0, _extends3.default)({}, state, {\n loadingCheckpoints: true,\n loadingDetailsForChallengeId: challengeId,\n loadingResultsForChallengeId: challengeId\n });\n state = onGetDetailsDone(state, details);\n if (checkpoints) state = onFetchCheckpointsDone(state, checkpoints);\n if (results) state = onLoadResultsDone(state, results);\n return state;\n }).then(function (res) {\n return _topcoderReactUtils.redux.combineReducers(create(res), { mySubmissionsManagement: _mySubmissionsManagement2.default });\n });\n }\n\n if (challengeId && mySubmission) {\n return _promise2.default.all([_topcoderReactUtils.redux.resolveAction(_challenge2.default.challenge.getDetailsDone(challengeId, tokens.tokenV3, tokens.tokenV2)), _topcoderReactUtils.redux.resolveAction(_challenge2.default.challenge.getSubmissionsDone(challengeId, tokens.tokenV2))]).then(function (_ref8) {\n var _ref9 = (0, _slicedToArray3.default)(_ref8, 2),\n challenge = _ref9[0],\n submissions = _ref9[1];\n\n state = (0, _extends3.default)({}, state, {\n loadingSubmissionsForChallengeId: challengeId,\n loadingDetailsForChallengeId: challengeId\n });\n state = onGetDetailsDone(state, challenge);\n return onGetSubmissionsDone(state, submissions);\n }).then(function (res) {\n return _topcoderReactUtils.redux.combineReducers(create(res), { mySubmissionsManagement: _mySubmissionsManagement2.default });\n });\n }\n\n /* Otherwise this part of Redux state is initialized empty. */\n return _promise2.default.resolve(_topcoderReactUtils.redux.combineReducers(create(state), { mySubmissionsManagement: _mySubmissionsManagement2.default }));\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default intial state.\n */\n\nvar _default = _topcoderReactUtils.redux.combineReducers(create(), { mySubmissionsManagement: _mySubmissionsManagement2.default });\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onGetDetailsInit, 'onGetDetailsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetDetailsDone, 'onGetDetailsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetSubmissionsInit, 'onGetSubmissionsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetSubmissionsDone, 'onGetSubmissionsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetMMSubmissionsInit, 'onGetMMSubmissionsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetMMSubmissionsDone, 'onGetMMSubmissionsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onFetchCheckpointsDone, 'onFetchCheckpointsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onLoadResultsInit, 'onLoadResultsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onLoadResultsDone, 'onLoadResultsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onRegisterDone, 'onRegisterDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onUnregisterDone, 'onUnregisterDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onUpdateChallengeInit, 'onUpdateChallengeInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onUpdateChallengeDone, 'onUpdateChallengeDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetActiveChallengesCountDone, 'onGetActiveChallengesCountDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetSubmissionInformationInit, 'onGetSubmissionInformationInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetSubmissionInformationDone, 'onGetSubmissionInformationDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/challenge.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/challenge.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray2 = __webpack_require__(/*! babel-runtime/helpers/slicedToArray */ \"babel-runtime/helpers/slicedToArray\");\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _challenge = __webpack_require__(/*! ../actions/challenge */ \"./src/actions/challenge.js\");\n\nvar _challenge2 = _interopRequireDefault(_challenge);\n\nvar _smp = __webpack_require__(/*! ../actions/smp */ \"./src/actions/smp.js\");\n\nvar _smp2 = _interopRequireDefault(_smp);\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nvar _mySubmissionsManagement = __webpack_require__(/*! ./my-submissions-management */ \"./src/reducers/my-submissions-management.js\");\n\nvar _mySubmissionsManagement2 = _interopRequireDefault(_mySubmissionsManagement);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.challenge\"\n * @desc Reducer for {@link module:actions.challenge} actions.\n *\n * State segment managed by this reducer has the following strcuture:\n * @todo Document the structure.\n */\n\n/**\n * Handles CHALLENGE/GET_DETAILS_INIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state\n */\nfunction onGetDetailsInit(state, action) {\n var challengeId = action.payload;\n return state.details && _lodash2.default.toString(state.details.id) !== challengeId ? (0, _extends3.default)({}, state, {\n fetchChallengeFailure: false,\n loadingDetailsForChallengeId: challengeId,\n details: null\n }) : (0, _extends3.default)({}, state, {\n fetchChallengeFailure: false,\n loadingDetailsForChallengeId: challengeId\n });\n}\n\n/**\n * Handles CHALLENGE/GET_DETAILS_DONE action.\n * Note, that it silently discards received details if the ID of received\n * challenge mismatches the one stored in loadingDetailsForChallengeId field\n * of the state.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetDetailsDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to get challenge details!', action.payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to load the challenge', 'Please, try again a bit later');\n return (0, _extends3.default)({}, state, {\n fetchChallengeFailure: action.error,\n loadingDetailsForChallengeId: ''\n });\n }\n var details = action.payload;\n if (_lodash2.default.toString(details.id) !== state.loadingDetailsForChallengeId) {\n return state;\n }\n\n return (0, _extends3.default)({}, state, {\n details: details,\n fetchChallengeFailure: false,\n loadingDetailsForChallengeId: ''\n });\n}\n\n/**\n * Handles CHALLENGE/GET_SUBMISSION_INIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetSubmissionsInit(state, action) {\n return (0, _extends3.default)({}, state, {\n loadingSubmissionsForChallengeId: action.payload,\n mySubmissions: { challengeId: '', v2: null }\n });\n}\n\n/**\n * Handles challengeActions.fetchSubmissionsDone action.\n * @param {Object} state Previous state.\n * @param {Object} action Action.\n */\nfunction onGetSubmissionsDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to get user\\'s submissions for the challenge', action.payload);\n return (0, _extends3.default)({}, state, {\n loadingSubmissionsForChallengeId: '',\n mySubmissions: { challengeId: '', v2: null }\n });\n }\n\n var _action$payload = action.payload,\n challengeId = _action$payload.challengeId,\n submissions = _action$payload.submissions;\n\n if (challengeId !== state.loadingSubmissionsForChallengeId) return state;\n\n return (0, _extends3.default)({}, state, {\n loadingSubmissionsForChallengeId: '',\n mySubmissions: { challengeId: challengeId, v2: submissions }\n });\n}\n\n/**\n * Handles CHALLENGE/GET_MM_SUBMISSION_INIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetMMSubmissionsInit(state, action) {\n return (0, _extends3.default)({}, state, {\n loadingMMSubmissionsForChallengeId: action.payload,\n mmSubmissions: []\n });\n}\n\n/**\n * Handles CHALLENGE/GET_MM_SUBMISSION_DONE action.\n * @param {Object} state Previous state.\n * @param {Object} action Action.\n */\nfunction onGetMMSubmissionsDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to get Marathon Match submissions for the challenge', action.payload);\n return (0, _extends3.default)({}, state, {\n loadingMMSubmissionsForChallengeId: '',\n mmSubmissions: []\n });\n }\n\n var _action$payload2 = action.payload,\n challengeId = _action$payload2.challengeId,\n submissions = _action$payload2.submissions;\n\n if (challengeId.toString() !== state.loadingMMSubmissionsForChallengeId) return state;\n return (0, _extends3.default)({}, state, {\n loadingMMSubmissionsForChallengeId: '',\n mmSubmissions: submissions\n });\n}\n\n/**\n * Handles challengeActions.fetchCheckpointsDone action.\n * @param {Object} state Previous state.\n * @param {Object} action Action.\n */\nfunction onFetchCheckpointsDone(state, action) {\n if (action.error) {\n return (0, _extends3.default)({}, state, {\n loadingCheckpoints: false\n });\n }\n if (state.details && state.details.id === action.payload.challengeId) {\n return (0, _extends3.default)({}, state, {\n checkpoints: action.payload.checkpoints,\n loadingCheckpoints: false\n });\n }\n return state;\n}\n\n/**\n * Handles CHALLENGE/LOAD_RESULTS_INIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object}\n */\nfunction onLoadResultsInit(state, _ref) {\n var payload = _ref.payload;\n\n return (0, _extends3.default)({}, state, { loadingResultsForChallengeId: payload });\n}\n\n/**\n * Handles CHALLENGE/LOAD_RESULTS_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object}\n */\nfunction onLoadResultsDone(state, action) {\n if (action.payload.challengeId !== state.loadingResultsForChallengeId) {\n return state;\n }\n if (action.error) {\n _logger2.default.error(action.payload);\n return (0, _extends3.default)({}, state, {\n loadingResultsForChallengeId: '',\n results: null,\n resultsLoadedForChallengeId: ''\n });\n }\n return (0, _extends3.default)({}, state, {\n loadingResultsForChallengeId: '',\n results: action.payload.results,\n resultsLoadedForChallengeId: action.payload.challengeId\n });\n}\n\n/**\n * Handles CHALLENGE/REGISTER_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object}\n */\nfunction onRegisterDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to register for the challenge!', action.payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to register for the challenge!');\n return (0, _extends3.default)({}, state, { registering: false });\n }\n /* As a part of registration flow we silently update challenge details,\n * reusing for this purpose the corresponding action handler. Thus, we\n * should also reuse corresponding reducer to generate proper state. */\n return onGetDetailsDone((0, _extends3.default)({}, state, {\n registering: false,\n loadingDetailsForChallengeId: _lodash2.default.toString(state.details.id)\n }), action);\n}\n\n/**\n * Handles CHALLENGE/UNREGISTER_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object}\n */\nfunction onUnregisterDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to register for the challenge!', action.payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to unregister for the challenge!');\n return (0, _extends3.default)({}, state, { unregistering: false });\n }\n /* As a part of unregistration flow we silently update challenge details,\n * reusing for this purpose the corresponding action handler. Thus, we\n * should also reuse corresponding reducer to generate proper state. */\n return onGetDetailsDone((0, _extends3.default)({}, state, {\n unregistering: false,\n loadingDetailsForChallengeId: _lodash2.default.toString(state.details.id)\n }), action);\n}\n\n/**\n * Handles CHALLENGE/UPDATE_CHALLENGE_INIT.\n * @param {Object} state Old state.\n * @param {Object} actions Action.\n * @return {Object} New state.\n */\nfunction onUpdateChallengeInit(state, _ref2) {\n var payload = _ref2.payload;\n\n return (0, _extends3.default)({}, state, { updatingChallengeUuid: payload });\n}\n\n/**\n * Handles CHALLENGE/UPDATE_CHALLENGE_DONE.\n * @param {Object} state Old state.\n * @param {Object} actions Action.\n * @return {Object} New state.\n */\nfunction onUpdateChallengeDone(state, _ref3) {\n var error = _ref3.error,\n payload = _ref3.payload;\n\n if (error) {\n (0, _errors.fireErrorMessage)('Failed to save the challenge!', '');\n _logger2.default.error('Failed to save the challenge', payload);\n return state;\n }\n if (payload.uuid !== state.updatingChallengeUuid) return state;\n\n /* Due to the normalization of challenge APIs responses done when a challenge\n * is loaded, many pieces of our code expect different information in a format\n * different from API v3 response, thus if we just save entire payload.res\n * into the Redux state segment, it will break our app. As a rapid fix, let's\n * just save only the data which are really supposed to be updated in the\n * current use case (editing of challenge specs). */\n var res = _lodash2.default.pick(payload.res, ['detailedRequirements', 'introduction', 'round1Introduction', 'round2Introduction', 'submissionGuidelines']);\n\n return (0, _extends3.default)({}, state, {\n details: (0, _extends3.default)({}, state.details, res),\n updatingChallengeUuid: ''\n });\n}\n\n/**\n * Handles CHALLENGE/GET_ACTIVE_CHALLENGES_COUNT_DONE action.\n * @param {Object} state Old state.\n * @param {Object} action Action payload/error\n * @return {Object} New state\n */\nfunction onGetActiveChallengesCountDone(state, _ref4) {\n var payload = _ref4.payload,\n error = _ref4.error;\n\n if (error) {\n (0, _errors.fireErrorMessage)('Failed to get active challenges count!', '');\n _logger2.default.error('Failed to get active challenges count', payload);\n return state;\n }\n\n return (0, _extends3.default)({}, state, { activeChallengesCount: payload });\n}\n\n/**\n * Handles CHALLENGE/GET_SUBMISSION_INFORMATION_INIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetSubmissionInformationInit(state, action) {\n return (0, _extends3.default)({}, state, {\n loadingSubmissionInformationForChallengeId: action.payload.challengeId,\n loadingSubmissionInformationForSubmissionId: action.payload.submissionId,\n submissionInformation: null\n });\n}\n\n/**\n * Handles CHALLENGE/GET_SUBMISSION_INFORMATION_DONE action.\n * @param {Object} state Previous state.\n * @param {Object} action Action.\n */\nfunction onGetSubmissionInformationDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to get submission information', action.payload);\n return (0, _extends3.default)({}, state, {\n loadingSubmissionInformationForSubmissionId: '',\n submissionInformation: null\n });\n }\n\n var _action$payload3 = action.payload,\n submissionId = _action$payload3.submissionId,\n submission = _action$payload3.submission;\n\n if (submissionId !== state.loadingSubmissionInformationForSubmissionId) return state;\n\n return (0, _extends3.default)({}, state, {\n loadingSubmissionInformationForSubmissionId: '',\n submissionInformation: submission\n });\n}\n\n/**\n * Creates a new Challenge reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Challenge reducer.\n */\nfunction create(initialState) {\n var _handleActions;\n\n var a = _challenge2.default.challenge;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.dropCheckpoints, function (state) {\n return (0, _extends3.default)({}, state, { checkpoints: null });\n }), (0, _defineProperty3.default)(_handleActions, a.dropResults, function (state) {\n return (0, _extends3.default)({}, state, { results: null });\n }), (0, _defineProperty3.default)(_handleActions, a.getDetailsInit, onGetDetailsInit), (0, _defineProperty3.default)(_handleActions, a.getDetailsDone, onGetDetailsDone), (0, _defineProperty3.default)(_handleActions, a.getSubmissionsInit, onGetSubmissionsInit), (0, _defineProperty3.default)(_handleActions, a.getSubmissionsDone, onGetSubmissionsDone), (0, _defineProperty3.default)(_handleActions, a.getMmSubmissionsInit, onGetMMSubmissionsInit), (0, _defineProperty3.default)(_handleActions, a.getMmSubmissionsDone, onGetMMSubmissionsDone), (0, _defineProperty3.default)(_handleActions, _smp2.default.smp.deleteSubmissionDone, function (state, _ref5) {\n var payload = _ref5.payload;\n return (0, _extends3.default)({}, state, {\n mySubmissions: (0, _extends3.default)({}, state.mySubmissions, {\n v2: state.mySubmissions.v2.filter(function (subm) {\n return subm.submissionId !== payload;\n })\n })\n });\n }), (0, _defineProperty3.default)(_handleActions, a.registerInit, function (state) {\n return (0, _extends3.default)({}, state, { registering: true });\n }), (0, _defineProperty3.default)(_handleActions, a.registerDone, onRegisterDone), (0, _defineProperty3.default)(_handleActions, a.unregisterInit, function (state) {\n return (0, _extends3.default)({}, state, { unregistering: true });\n }), (0, _defineProperty3.default)(_handleActions, a.unregisterDone, onUnregisterDone), (0, _defineProperty3.default)(_handleActions, a.loadResultsInit, onLoadResultsInit), (0, _defineProperty3.default)(_handleActions, a.loadResultsDone, onLoadResultsDone), (0, _defineProperty3.default)(_handleActions, a.fetchCheckpointsInit, function (state) {\n return (0, _extends3.default)({}, state, {\n checkpoints: null,\n loadingCheckpoints: true\n });\n }), (0, _defineProperty3.default)(_handleActions, a.fetchCheckpointsDone, onFetchCheckpointsDone), (0, _defineProperty3.default)(_handleActions, a.updateChallengeInit, onUpdateChallengeInit), (0, _defineProperty3.default)(_handleActions, a.updateChallengeDone, onUpdateChallengeDone), (0, _defineProperty3.default)(_handleActions, a.getActiveChallengesCountInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getActiveChallengesCountDone, onGetActiveChallengesCountDone), (0, _defineProperty3.default)(_handleActions, a.getSubmissionInformationInit, onGetSubmissionInformationInit), (0, _defineProperty3.default)(_handleActions, a.getSubmissionInformationDone, onGetSubmissionInformationDone), _handleActions), _lodash2.default.defaults(initialState, {\n details: null,\n loadingCheckpoints: false,\n loadingDetailsForChallengeId: '',\n loadingResultsForChallengeId: '',\n loadingMMSubmissionsForChallengeId: '',\n loadingSubmissionInformationForSubmissionId: '',\n mySubmissions: {},\n checkpoints: null,\n registering: false,\n results: null,\n resultsLoadedForChallengeId: '',\n unregistering: false,\n updatingChallengeUuid: '',\n mmSubmissions: [],\n submissionInformation: null\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n *\n * @param {Object} options={} Optional. Factory options.\n * @param {String} [options.auth.tokenV2=''] Optional. Topcoder v2 auth token.\n * @param {String} [options.auth.tokenV3=''] Optional. Topcoder v3 auth token.\n * @param {String} [options.challenge.challengeDetails.id=''] Optional. ID of\n * the challenge to load details for.\n * @param {Boolean} [options.challenge.challengeDetails.mySubmission=false]\n * Optional. The flag indicates whether load my submission.\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n /* Server-side rendering of Submission Management Page. */\n\n /* TODO: This shares some common logic with the next \"if\" block, which\n * should be re-used there. */\n /* TODO: For completely server-side rendering it is also necessary to load\n * terms, etc. */\n\n var tokens = {\n tokenV2: _lodash2.default.get(options.auth, 'tokenV2'),\n tokenV3: _lodash2.default.get(options.auth, 'tokenV3')\n };\n\n var state = {};\n var challengeId = _lodash2.default.get(options, 'challenge.challengeDetails.id');\n var mySubmission = _lodash2.default.get(options, 'challenge.challengeDetails.mySubmission');\n\n if (challengeId && !mySubmission) {\n return _topcoderReactUtils.redux.resolveAction(_challenge2.default.challenge.getDetailsDone(challengeId, tokens.tokenV3, tokens.tokenV2)).then(function (details) {\n var track = _lodash2.default.get(details, 'payload.track', '').toLowerCase();\n var checkpointsPromise = track === 'design' ? _topcoderReactUtils.redux.resolveAction(_challenge2.default.challenge.fetchCheckpointsDone(tokens.tokenV2, challengeId)) : null;\n var resultsPromise = _lodash2.default.get(details, 'payload.status', '') === 'Completed' ? _topcoderReactUtils.redux.resolveAction(_challenge2.default.challenge.loadResultsDone(tokens, challengeId, track)) : null;\n return _promise2.default.all([details, checkpointsPromise, resultsPromise]);\n }).then(function (_ref6) {\n var _ref7 = (0, _slicedToArray3.default)(_ref6, 3),\n details = _ref7[0],\n checkpoints = _ref7[1],\n results = _ref7[2];\n\n state = (0, _extends3.default)({}, state, {\n loadingCheckpoints: true,\n loadingDetailsForChallengeId: challengeId,\n loadingResultsForChallengeId: challengeId\n });\n state = onGetDetailsDone(state, details);\n if (checkpoints) state = onFetchCheckpointsDone(state, checkpoints);\n if (results) state = onLoadResultsDone(state, results);\n return state;\n }).then(function (res) {\n return _topcoderReactUtils.redux.combineReducers(create(res), { mySubmissionsManagement: _mySubmissionsManagement2.default });\n });\n }\n\n if (challengeId && mySubmission) {\n return _promise2.default.all([_topcoderReactUtils.redux.resolveAction(_challenge2.default.challenge.getDetailsDone(challengeId, tokens.tokenV3, tokens.tokenV2)), _topcoderReactUtils.redux.resolveAction(_challenge2.default.challenge.getSubmissionsDone(challengeId, tokens.tokenV2))]).then(function (_ref8) {\n var _ref9 = (0, _slicedToArray3.default)(_ref8, 2),\n challenge = _ref9[0],\n submissions = _ref9[1];\n\n state = (0, _extends3.default)({}, state, {\n loadingSubmissionsForChallengeId: challengeId,\n loadingDetailsForChallengeId: challengeId\n });\n state = onGetDetailsDone(state, challenge);\n return onGetSubmissionsDone(state, submissions);\n }).then(function (res) {\n return _topcoderReactUtils.redux.combineReducers(create(res), { mySubmissionsManagement: _mySubmissionsManagement2.default });\n });\n }\n\n /* Otherwise this part of Redux state is initialized empty. */\n return _promise2.default.resolve(_topcoderReactUtils.redux.combineReducers(create(state), { mySubmissionsManagement: _mySubmissionsManagement2.default }));\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default intial state.\n */\n\nvar _default = _topcoderReactUtils.redux.combineReducers(create(), { mySubmissionsManagement: _mySubmissionsManagement2.default });\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onGetDetailsInit, 'onGetDetailsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetDetailsDone, 'onGetDetailsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetSubmissionsInit, 'onGetSubmissionsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetSubmissionsDone, 'onGetSubmissionsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetMMSubmissionsInit, 'onGetMMSubmissionsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetMMSubmissionsDone, 'onGetMMSubmissionsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onFetchCheckpointsDone, 'onFetchCheckpointsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onLoadResultsInit, 'onLoadResultsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onLoadResultsDone, 'onLoadResultsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onRegisterDone, 'onRegisterDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onUnregisterDone, 'onUnregisterDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onUpdateChallengeInit, 'onUpdateChallengeInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onUpdateChallengeDone, 'onUpdateChallengeDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetActiveChallengesCountDone, 'onGetActiveChallengesCountDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetSubmissionInformationInit, 'onGetSubmissionInformationInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(onGetSubmissionInformationDone, 'onGetSubmissionInformationDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/challenge.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/challenge.js?");
/***/ }),
@@ -651,7 +675,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _tcAccounts = __webpack_require__(/*! tc-accounts */ \"tc-accounts\");\n\nvar _direct = __webpack_require__(/*! ../actions/direct */ \"./src/actions/direct.js\");\n\nvar _direct2 = _interopRequireDefault(_direct);\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.direct\"\n * @desc Reducer for handling the results of Direct-related actions.\n * @todo Document state segment structure.\n */\n\nvar ERROR_MSG_GET_USER_PROJECTS_WITHOUT_AUTH_TOKEN = 'Cannot get user projects without auth token';\n\n/**\n * Drops out all data and cancels any ongoing data loading related to this\n * reducer.\n * @param {Object} state\n * @return {Object} New state.\n */\nfunction onDropAll(state) {\n return (0, _extends3.default)({}, state, {\n loadingProjectDetailsForId: 0,\n loadingProjectsForUsername: '',\n projectDetails: {},\n projects: []\n });\n}\n\n/**\n * Inits loading of the specified project, cancelling the ongoing loading of\n * project details, if any.\n * @param {Object} state\n * @param {Object} action Its payload is the projectId.\n * @return {Object} New state.\n */\nfunction onGetProjectDetailsInit(state, _ref) {\n var payload = _ref.payload;\n\n return (0, _extends3.default)({}, state, {\n loadingProjectDetailsForId: payload\n });\n}\n\n/**\n * Stores loaded project details to the state.\n * @param {Object} state\n * @param {Object} action Its payload is the project details object.\n * @return {Object} New state.\n */\nfunction onGetProjectDetailsDone(state, _ref2) {\n var error = _ref2.error,\n payload = _ref2.payload;\n\n if (error) {\n _logger2.default.error('Failed to load project details', payload);\n throw payload;\n }\n if (payload.project.projectId !== state.loadingProjectDetailsForId) {\n return state;\n }\n return (0, _extends3.default)({}, state, {\n loadingProjectDetailsForId: 0,\n projectDetails: payload\n });\n}\n\n/**\n * Handler for the GET_PROJECT_PERMISSIONS_INIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetProjectPermissionsInit(state, _ref3) {\n var payload = _ref3.payload;\n\n var projectPermissions = (0, _extends3.default)({}, state.projectPermissions, {\n loadingForProjectId: payload\n });\n return (0, _extends3.default)({}, state, { projectPermissions: projectPermissions });\n}\n\n/**\n * Handler for the GET_PROJECT_PERMISSIONS_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetProjectPermissionsDone(state, _ref4) {\n var error = _ref4.error,\n payload = _ref4.payload;\n\n if (error) {\n (0, _errors.fireErrorMessage)('Failed to load project permissions', '');\n _logger2.default.error('Failed to load project permissions', payload);\n }\n var permissions = payload.permissions,\n projectId = payload.projectId;\n\n if (projectId !== state.projectPermissions.loadingForProjectId) return state;\n var projectPermissions = {\n loadingForProjectId: 0,\n permissions: permissions,\n projectId: projectId,\n timestamp: Date.now()\n };\n return (0, _extends3.default)({}, state, { projectPermissions: projectPermissions });\n}\n\n/**\n * Handles initialization of projects loading.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetUserProjectsInit(state, _ref5) {\n var tokenV3 = _ref5.payload;\n\n if (!tokenV3) {\n _logger2.default.error(ERROR_MSG_GET_USER_PROJECTS_WITHOUT_AUTH_TOKEN);\n throw new Error(ERROR_MSG_GET_USER_PROJECTS_WITHOUT_AUTH_TOKEN);\n }\n return (0, _extends3.default)({}, state, {\n loadingProjectsForUsername: (0, _tcAccounts.decodeToken)(tokenV3).handle\n });\n}\n\n/**\n * Handles the result of projects loading.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetUserProjectsDone(state, _ref6) {\n var error = _ref6.error,\n payload = _ref6.payload;\n\n if (error) {\n _logger2.default.error(payload);\n throw payload;\n }\n var projects = payload.projects,\n tokenV3 = payload.tokenV3;\n\n if (!tokenV3) {\n _logger2.default.error(ERROR_MSG_GET_USER_PROJECTS_WITHOUT_AUTH_TOKEN);\n throw new Error(ERROR_MSG_GET_USER_PROJECTS_WITHOUT_AUTH_TOKEN);\n }\n if ((0, _tcAccounts.decodeToken)(tokenV3).handle !== state.loadingProjectsForUsername) {\n return state;\n }\n return (0, _extends3.default)({}, state, {\n loadingProjectsForUsername: '',\n projects: projects.sort(function (a, b) {\n return a.name.localeCompare(b.name);\n })\n });\n}\n\n/**\n * Creates a new Direct reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @param {Object} mergeReducers Optional. Reducers to merge.\n * @return {Function} Direct reducer.\n */\nfunction create() {\n var _handleActions;\n\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var a = _direct2.default.direct;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.dropAll, onDropAll), (0, _defineProperty3.default)(_handleActions, a.getProjectDetailsInit, onGetProjectDetailsInit), (0, _defineProperty3.default)(_handleActions, a.getProjectDetailsDone, onGetProjectDetailsDone), (0, _defineProperty3.default)(_handleActions, a.getProjectPermissionsInit, onGetProjectPermissionsInit), (0, _defineProperty3.default)(_handleActions, a.getProjectPermissionsDone, onGetProjectPermissionsDone), (0, _defineProperty3.default)(_handleActions, a.getUserProjectsInit, onGetUserProjectsInit), (0, _defineProperty3.default)(_handleActions, a.getUserProjectsDone, onGetUserProjectsDone), _handleActions), _lodash2.default.defaults(initialState, {\n /* If we are loading details of some project, this field holds the project\n * ID; zero otherwise. */\n loadingProjectDetailsForId: 0,\n\n /* Holds username of the user which projects are being loaded; empty\n * string if nothing is being loaded at the moment. */\n loadingProjectsForUsername: '',\n\n /* Holds details of some project, or an empty object. */\n projectDetails: {},\n\n projectPermissions: {\n loadingForProjectId: 0,\n permissions: [],\n projectId: 0,\n timestamp: 0\n },\n\n /* Holds the array of loaded projects. */\n projects: []\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(ERROR_MSG_GET_USER_PROJECTS_WITHOUT_AUTH_TOKEN, 'ERROR_MSG_GET_USER_PROJECTS_WITHOUT_AUTH_TOKEN', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(onDropAll, 'onDropAll', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(onGetProjectDetailsInit, 'onGetProjectDetailsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(onGetProjectDetailsDone, 'onGetProjectDetailsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(onGetProjectPermissionsInit, 'onGetProjectPermissionsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(onGetProjectPermissionsDone, 'onGetProjectPermissionsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(onGetUserProjectsInit, 'onGetUserProjectsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(onGetUserProjectsDone, 'onGetUserProjectsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/direct.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/direct.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _tcAccounts = __webpack_require__(/*! tc-accounts */ \"tc-accounts\");\n\nvar _direct = __webpack_require__(/*! ../actions/direct */ \"./src/actions/direct.js\");\n\nvar _direct2 = _interopRequireDefault(_direct);\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.direct\"\n * @desc Reducer for handling the results of Direct-related actions.\n * @todo Document state segment structure.\n */\n\nvar ERROR_MSG_GET_USER_PROJECTS_WITHOUT_AUTH_TOKEN = 'Cannot get user projects without auth token';\n\n/**\n * Drops out all data and cancels any ongoing data loading related to this\n * reducer.\n * @param {Object} state\n * @return {Object} New state.\n */\nfunction onDropAll(state) {\n return (0, _extends3.default)({}, state, {\n loadingProjectDetailsForId: 0,\n loadingProjectsForUsername: '',\n projectDetails: {},\n projects: []\n });\n}\n\n/**\n * Inits loading of the specified project, cancelling the ongoing loading of\n * project details, if any.\n * @param {Object} state\n * @param {Object} action Its payload is the projectId.\n * @return {Object} New state.\n */\nfunction onGetProjectDetailsInit(state, _ref) {\n var payload = _ref.payload;\n\n return (0, _extends3.default)({}, state, {\n loadingProjectDetailsForId: payload\n });\n}\n\n/**\n * Stores loaded project details to the state.\n * @param {Object} state\n * @param {Object} action Its payload is the project details object.\n * @return {Object} New state.\n */\nfunction onGetProjectDetailsDone(state, _ref2) {\n var error = _ref2.error,\n payload = _ref2.payload;\n\n if (error) {\n _logger2.default.error('Failed to load project details', payload);\n throw payload;\n }\n if (payload.project.projectId !== state.loadingProjectDetailsForId) {\n return state;\n }\n return (0, _extends3.default)({}, state, {\n loadingProjectDetailsForId: 0,\n projectDetails: payload\n });\n}\n\n/**\n * Handler for the GET_PROJECT_PERMISSIONS_INIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetProjectPermissionsInit(state, _ref3) {\n var payload = _ref3.payload;\n\n var projectPermissions = (0, _extends3.default)({}, state.projectPermissions, {\n loadingForProjectId: payload\n });\n return (0, _extends3.default)({}, state, { projectPermissions: projectPermissions });\n}\n\n/**\n * Handler for the GET_PROJECT_PERMISSIONS_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetProjectPermissionsDone(state, _ref4) {\n var error = _ref4.error,\n payload = _ref4.payload;\n\n if (error) {\n (0, _errors.fireErrorMessage)('Failed to load project permissions', '');\n _logger2.default.error('Failed to load project permissions', payload);\n }\n var permissions = payload.permissions,\n projectId = payload.projectId;\n\n if (projectId !== state.projectPermissions.loadingForProjectId) return state;\n var projectPermissions = {\n loadingForProjectId: 0,\n permissions: permissions,\n projectId: projectId,\n timestamp: Date.now()\n };\n return (0, _extends3.default)({}, state, { projectPermissions: projectPermissions });\n}\n\n/**\n * Handles initialization of projects loading.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetUserProjectsInit(state, _ref5) {\n var tokenV3 = _ref5.payload;\n\n if (!tokenV3) {\n _logger2.default.error(ERROR_MSG_GET_USER_PROJECTS_WITHOUT_AUTH_TOKEN);\n throw new Error(ERROR_MSG_GET_USER_PROJECTS_WITHOUT_AUTH_TOKEN);\n }\n return (0, _extends3.default)({}, state, {\n loadingProjectsForUsername: (0, _tcAccounts.decodeToken)(tokenV3).handle\n });\n}\n\n/**\n * Handles the result of projects loading.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetUserProjectsDone(state, _ref6) {\n var error = _ref6.error,\n payload = _ref6.payload;\n\n if (error) {\n _logger2.default.error(payload);\n throw payload;\n }\n var projects = payload.projects,\n tokenV3 = payload.tokenV3;\n\n if (!tokenV3) {\n _logger2.default.error(ERROR_MSG_GET_USER_PROJECTS_WITHOUT_AUTH_TOKEN);\n throw new Error(ERROR_MSG_GET_USER_PROJECTS_WITHOUT_AUTH_TOKEN);\n }\n if ((0, _tcAccounts.decodeToken)(tokenV3).handle !== state.loadingProjectsForUsername) {\n return state;\n }\n return (0, _extends3.default)({}, state, {\n loadingProjectsForUsername: '',\n projects: projects.sort(function (a, b) {\n return a.name.localeCompare(b.name);\n })\n });\n}\n\n/**\n * Creates a new Direct reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @param {Object} mergeReducers Optional. Reducers to merge.\n * @return {Function} Direct reducer.\n */\nfunction create() {\n var _handleActions;\n\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var a = _direct2.default.direct;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.dropAll, onDropAll), (0, _defineProperty3.default)(_handleActions, a.getProjectDetailsInit, onGetProjectDetailsInit), (0, _defineProperty3.default)(_handleActions, a.getProjectDetailsDone, onGetProjectDetailsDone), (0, _defineProperty3.default)(_handleActions, a.getProjectPermissionsInit, onGetProjectPermissionsInit), (0, _defineProperty3.default)(_handleActions, a.getProjectPermissionsDone, onGetProjectPermissionsDone), (0, _defineProperty3.default)(_handleActions, a.getUserProjectsInit, onGetUserProjectsInit), (0, _defineProperty3.default)(_handleActions, a.getUserProjectsDone, onGetUserProjectsDone), _handleActions), _lodash2.default.defaults(initialState, {\n /* If we are loading details of some project, this field holds the project\n * ID; zero otherwise. */\n loadingProjectDetailsForId: 0,\n\n /* Holds username of the user which projects are being loaded; empty\n * string if nothing is being loaded at the moment. */\n loadingProjectsForUsername: '',\n\n /* Holds details of some project, or an empty object. */\n projectDetails: {},\n\n projectPermissions: {\n loadingForProjectId: 0,\n permissions: [],\n projectId: 0,\n timestamp: 0\n },\n\n /* Holds the array of loaded projects. */\n projects: []\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(ERROR_MSG_GET_USER_PROJECTS_WITHOUT_AUTH_TOKEN, 'ERROR_MSG_GET_USER_PROJECTS_WITHOUT_AUTH_TOKEN', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(onDropAll, 'onDropAll', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(onGetProjectDetailsInit, 'onGetProjectDetailsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(onGetProjectDetailsDone, 'onGetProjectDetailsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(onGetProjectPermissionsInit, 'onGetProjectPermissionsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(onGetProjectPermissionsDone, 'onGetProjectPermissionsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(onGetUserProjectsInit, 'onGetUserProjectsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(onGetUserProjectsDone, 'onGetUserProjectsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/direct.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/direct.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/direct.js?");
/***/ }),
@@ -663,7 +687,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _toConsumableArray2 = __webpack_require__(/*! babel-runtime/helpers/toConsumableArray */ \"babel-runtime/helpers/toConsumableArray\");\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _extends4 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends5 = _interopRequireDefault(_extends4);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _initialErrorIconStat;\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _errors = __webpack_require__(/*! ../actions/errors */ \"./src/actions/errors.js\");\n\nvar _errors2 = _interopRequireDefault(_errors);\n\nvar _errors3 = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.errors\"\n * @desc Redux Reducer for application-wide error handling.\n *\n * Description:\n * Implements state reducers for application-wide error handling.\n * @todo Document state segment structure.\n */\n\n\nvar initialErrorIconState = (_initialErrorIconStat = {}, (0, _defineProperty3.default)(_initialErrorIconStat, _errors3.ERROR_ICON_TYPES.NETWORK, []), (0, _defineProperty3.default)(_initialErrorIconStat, _errors3.ERROR_ICON_TYPES.API, []), _initialErrorIconStat);\n\n/**\n * Creates a new Errors reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @param {Object} mergeReducers Optional. Reducers to merge.\n * @return {Function} Errors reducer.\n */\nfunction create(initialState) {\n var _handleActions;\n\n var a = _errors2.default.errors;\n\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.clearError, function (state) {\n return (0, _extends5.default)({}, state, { alerts: state.alerts.slice(1) });\n }), (0, _defineProperty3.default)(_handleActions, a.newError, function (state, _ref) {\n var payload = _ref.payload;\n return (0, _extends5.default)({}, state, {\n alerts: [].concat((0, _toConsumableArray3.default)(state.alerts), [{ title: payload.title, details: payload.details }])\n });\n }), (0, _defineProperty3.default)(_handleActions, a.clearAllErrorIcons, function (state) {\n return (0, _extends5.default)({}, state, {\n icons: initialErrorIconState\n });\n }), (0, _defineProperty3.default)(_handleActions, a.setErrorIcon, function (state, _ref2) {\n var _ref2$payload = _ref2.payload,\n id = _ref2$payload.id,\n title = _ref2$payload.title,\n message = _ref2$payload.message;\n return (0, _extends5.default)({}, state, {\n icons: (0, _extends5.default)({}, state.icons, (0, _defineProperty3.default)({}, id, [].concat((0, _toConsumableArray3.default)(state.icons[id]), [{ title: title, message: message }])))\n });\n }), (0, _defineProperty3.default)(_handleActions, a.clearErrorIcon, function (state, _ref3) {\n var id = _ref3.payload.id;\n return (0, _extends5.default)({}, state, {\n icons: (0, _extends5.default)({}, state.icons, (0, _defineProperty3.default)({}, id, []))\n });\n }), _handleActions), _lodash2.default.defaults(initialState, { alerts: [], icons: initialErrorIconState }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(initialErrorIconState, 'initialErrorIconState', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/errors.js');\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/errors.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/errors.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/errors.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/errors.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _toConsumableArray2 = __webpack_require__(/*! babel-runtime/helpers/toConsumableArray */ \"babel-runtime/helpers/toConsumableArray\");\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _extends4 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends5 = _interopRequireDefault(_extends4);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _initialErrorIconStat;\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _errors = __webpack_require__(/*! ../actions/errors */ \"./src/actions/errors.js\");\n\nvar _errors2 = _interopRequireDefault(_errors);\n\nvar _errors3 = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.errors\"\n * @desc Redux Reducer for application-wide error handling.\n *\n * Description:\n * Implements state reducers for application-wide error handling.\n * @todo Document state segment structure.\n */\n\n\nvar initialErrorIconState = (_initialErrorIconStat = {}, (0, _defineProperty3.default)(_initialErrorIconStat, _errors3.ERROR_ICON_TYPES.NETWORK, []), (0, _defineProperty3.default)(_initialErrorIconStat, _errors3.ERROR_ICON_TYPES.API, []), _initialErrorIconStat);\n\n/**\n * Creates a new Errors reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @param {Object} mergeReducers Optional. Reducers to merge.\n * @return {Function} Errors reducer.\n */\nfunction create(initialState) {\n var _handleActions;\n\n var a = _errors2.default.errors;\n\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.clearError, function (state) {\n return (0, _extends5.default)({}, state, { alerts: state.alerts.slice(1) });\n }), (0, _defineProperty3.default)(_handleActions, a.newError, function (state, _ref) {\n var payload = _ref.payload;\n return (0, _extends5.default)({}, state, {\n alerts: [].concat((0, _toConsumableArray3.default)(state.alerts), [{ title: payload.title, details: payload.details }])\n });\n }), (0, _defineProperty3.default)(_handleActions, a.clearAllErrorIcons, function (state) {\n return (0, _extends5.default)({}, state, {\n icons: initialErrorIconState\n });\n }), (0, _defineProperty3.default)(_handleActions, a.setErrorIcon, function (state, _ref2) {\n var _ref2$payload = _ref2.payload,\n id = _ref2$payload.id,\n title = _ref2$payload.title,\n message = _ref2$payload.message;\n return (0, _extends5.default)({}, state, {\n icons: (0, _extends5.default)({}, state.icons, (0, _defineProperty3.default)({}, id, [].concat((0, _toConsumableArray3.default)(state.icons[id]), [{ title: title, message: message }])))\n });\n }), (0, _defineProperty3.default)(_handleActions, a.clearErrorIcon, function (state, _ref3) {\n var id = _ref3.payload.id;\n return (0, _extends5.default)({}, state, {\n icons: (0, _extends5.default)({}, state.icons, (0, _defineProperty3.default)({}, id, []))\n });\n }), _handleActions), _lodash2.default.defaults(initialState, { alerts: [], icons: initialErrorIconState }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(initialErrorIconState, 'initialErrorIconState', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/errors.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/errors.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/errors.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/errors.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/errors.js?");
/***/ }),
@@ -675,7 +699,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _values = __webpack_require__(/*! babel-runtime/core-js/object/values */ \"babel-runtime/core-js/object/values\");\n\nvar _values2 = _interopRequireDefault(_values);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _groups = __webpack_require__(/*! ../actions/groups */ \"./src/actions/groups.js\");\n\nvar _groups2 = _interopRequireDefault(_groups);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.groups\"\n * @desc\n * This reducer handles information related to user-groups.\n *\n * Corresponding segment of the Redux state is designed to have the following\n * fields:\n *\n * groups {Object} - Holds loaded information about user groups. Keys of this\n * object are group IDs, and the values are group data object. To keep the state\n * flat, and our code efficient; for any group that has sub-groups, subGroups\n * field is removed, while subGroupsIds {String[]} field is added, and each\n * sub group data object is added to the groups object.\n *\n * loading {Object} - Holds IDs of the groups being loaded. Removing ID from\n * this object will result in silent discard of the data loaded by the\n * corresponding GROUPS/GET_DONE action; though such functionality does\n * not look really necessary at the moment, thus we do not provide an\n * action to really cancel group loading.\n * @todo Document state segment structure better.\n */\n\n/**\n * Private. Given two user group maps, it adds to \"dst\" the root group from\n * \"src\" (specified by \"rootId\"), and all its descendant groups. Any groups\n * in \"src\" not related to the sub-tree of the root group descendants are\n * not added to \"dst\".\n * This function mutates \"dst\"!\n * @param {Object} dst\n * @param {Object} src\n * @param {String} rootId\n */\nfunction mergeGroupTree(dst, src, rootId) {\n var root = src[rootId];\n dst[rootId] = root; // eslint-disable-line no-param-reassign\n if (root.subGroupIds) {\n root.subGroupIds.forEach(function (id) {\n return mergeGroupTree(dst, src, id);\n });\n }\n}\n\n/**\n * Removes from the state all loaded user groups, and cancels any on-going\n * loading of user groups.\n * @param {Object} state\n * @return {Object} New state.\n */\nfunction onDropGroups(state) {\n return (0, _extends3.default)({}, state, { groups: {}, loading: {} });\n}\n\n/**\n * Initiates the loading of data on the specified groups.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetGroupsInit(state, _ref) {\n var payload = _ref.payload;\n\n var groupIds = _lodash2.default.isArray(payload) ? payload : [payload];\n var loading = _lodash2.default.clone(state.loading);\n groupIds.forEach(function (id) {\n loading[id] = true;\n });\n return (0, _extends3.default)({}, state, { loading: loading });\n}\n\n/**\n * Finalizes the loading of data on the specified groups.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetGroupsDone(state, action) {\n var groups = _lodash2.default.clone(state.groups);\n var loading = _lodash2.default.clone(state.loading);\n var loaded = action.payload;\n (0, _values2.default)(loaded).forEach(function (_ref2) {\n var id = _ref2.id;\n\n if (loading[id]) {\n mergeGroupTree(groups, loaded, id);\n delete loading[id];\n }\n });\n return (0, _extends3.default)({}, state, { groups: groups, loading: loading });\n}\n\n/**\n * Creates a new Groups reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Groups reducer.\n */\nfunction create(initialState) {\n var _handleActions;\n\n var a = _groups2.default.groups;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.dropGroups, onDropGroups), (0, _defineProperty3.default)(_handleActions, a.getGroupsInit, onGetGroupsInit), (0, _defineProperty3.default)(_handleActions, a.getGroupsDone, onGetGroupsDone), _handleActions), _lodash2.default.defaults(initialState ? _lodash2.default.clone(initialState) : {}, {\n groups: {},\n loading: {}\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(mergeGroupTree, 'mergeGroupTree', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/groups.js');\n reactHotLoader.register(onDropGroups, 'onDropGroups', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/groups.js');\n reactHotLoader.register(onGetGroupsInit, 'onGetGroupsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/groups.js');\n reactHotLoader.register(onGetGroupsDone, 'onGetGroupsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/groups.js');\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/groups.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/groups.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/groups.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/groups.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _values = __webpack_require__(/*! babel-runtime/core-js/object/values */ \"babel-runtime/core-js/object/values\");\n\nvar _values2 = _interopRequireDefault(_values);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _groups = __webpack_require__(/*! ../actions/groups */ \"./src/actions/groups.js\");\n\nvar _groups2 = _interopRequireDefault(_groups);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.groups\"\n * @desc\n * This reducer handles information related to user-groups.\n *\n * Corresponding segment of the Redux state is designed to have the following\n * fields:\n *\n * groups {Object} - Holds loaded information about user groups. Keys of this\n * object are group IDs, and the values are group data object. To keep the state\n * flat, and our code efficient; for any group that has sub-groups, subGroups\n * field is removed, while subGroupsIds {String[]} field is added, and each\n * sub group data object is added to the groups object.\n *\n * loading {Object} - Holds IDs of the groups being loaded. Removing ID from\n * this object will result in silent discard of the data loaded by the\n * corresponding GROUPS/GET_DONE action; though such functionality does\n * not look really necessary at the moment, thus we do not provide an\n * action to really cancel group loading.\n * @todo Document state segment structure better.\n */\n\n/**\n * Private. Given two user group maps, it adds to \"dst\" the root group from\n * \"src\" (specified by \"rootId\"), and all its descendant groups. Any groups\n * in \"src\" not related to the sub-tree of the root group descendants are\n * not added to \"dst\".\n * This function mutates \"dst\"!\n * @param {Object} dst\n * @param {Object} src\n * @param {String} rootId\n */\nfunction mergeGroupTree(dst, src, rootId) {\n var root = src[rootId];\n dst[rootId] = root; // eslint-disable-line no-param-reassign\n if (root.subGroupIds) {\n root.subGroupIds.forEach(function (id) {\n return mergeGroupTree(dst, src, id);\n });\n }\n}\n\n/**\n * Removes from the state all loaded user groups, and cancels any on-going\n * loading of user groups.\n * @param {Object} state\n * @return {Object} New state.\n */\nfunction onDropGroups(state) {\n return (0, _extends3.default)({}, state, { groups: {}, loading: {} });\n}\n\n/**\n * Initiates the loading of data on the specified groups.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetGroupsInit(state, _ref) {\n var payload = _ref.payload;\n\n var groupIds = _lodash2.default.isArray(payload) ? payload : [payload];\n var loading = _lodash2.default.clone(state.loading);\n groupIds.forEach(function (id) {\n loading[id] = true;\n });\n return (0, _extends3.default)({}, state, { loading: loading });\n}\n\n/**\n * Finalizes the loading of data on the specified groups.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetGroupsDone(state, action) {\n var groups = _lodash2.default.clone(state.groups);\n var loading = _lodash2.default.clone(state.loading);\n var loaded = action.payload;\n (0, _values2.default)(loaded).forEach(function (_ref2) {\n var id = _ref2.id;\n\n if (loading[id]) {\n mergeGroupTree(groups, loaded, id);\n delete loading[id];\n }\n });\n return (0, _extends3.default)({}, state, { groups: groups, loading: loading });\n}\n\n/**\n * Creates a new Groups reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Groups reducer.\n */\nfunction create(initialState) {\n var _handleActions;\n\n var a = _groups2.default.groups;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.dropGroups, onDropGroups), (0, _defineProperty3.default)(_handleActions, a.getGroupsInit, onGetGroupsInit), (0, _defineProperty3.default)(_handleActions, a.getGroupsDone, onGetGroupsDone), _handleActions), _lodash2.default.defaults(initialState ? _lodash2.default.clone(initialState) : {}, {\n groups: {},\n loading: {}\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(mergeGroupTree, 'mergeGroupTree', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/groups.js');\n reactHotLoader.register(onDropGroups, 'onDropGroups', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/groups.js');\n reactHotLoader.register(onGetGroupsInit, 'onGetGroupsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/groups.js');\n reactHotLoader.register(onGetGroupsDone, 'onGetGroupsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/groups.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/groups.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/groups.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/groups.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/groups.js?");
/***/ }),
@@ -687,7 +711,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.factory = factory;\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _auth = __webpack_require__(/*! ./auth */ \"./src/reducers/auth.js\");\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _stats = __webpack_require__(/*! ./stats */ \"./src/reducers/stats.js\");\n\nvar _stats2 = _interopRequireDefault(_stats);\n\nvar _terms = __webpack_require__(/*! ./terms */ \"./src/reducers/terms.js\");\n\nvar _terms2 = _interopRequireDefault(_terms);\n\nvar _direct = __webpack_require__(/*! ./direct */ \"./src/reducers/direct.js\");\n\nvar _direct2 = _interopRequireDefault(_direct);\n\nvar _groups = __webpack_require__(/*! ./groups */ \"./src/reducers/groups.js\");\n\nvar _groups2 = _interopRequireDefault(_groups);\n\nvar _errors = __webpack_require__(/*! ./errors */ \"./src/reducers/errors.js\");\n\nvar _errors2 = _interopRequireDefault(_errors);\n\nvar _challenge = __webpack_require__(/*! ./challenge */ \"./src/reducers/challenge.js\");\n\nvar _challenge2 = _interopRequireDefault(_challenge);\n\nvar _profile = __webpack_require__(/*! ./profile */ \"./src/reducers/profile.js\");\n\nvar _profile2 = _interopRequireDefault(_profile);\n\nvar _members = __webpack_require__(/*! ./members */ \"./src/reducers/members.js\");\n\nvar _members2 = _interopRequireDefault(_members);\n\nvar _lookup = __webpack_require__(/*! ./lookup */ \"./src/reducers/lookup.js\");\n\nvar _lookup2 = _interopRequireDefault(_lookup);\n\nvar _memberTasks = __webpack_require__(/*! ./member-tasks */ \"./src/reducers/member-tasks.js\");\n\nvar _memberTasks2 = _interopRequireDefault(_memberTasks);\n\nvar _reviewOpportunity = __webpack_require__(/*! ./reviewOpportunity */ \"./src/reducers/reviewOpportunity.js\");\n\nvar _reviewOpportunity2 = _interopRequireDefault(_reviewOpportunity);\n\nvar _mySubmissionsManagement = __webpack_require__(/*! ./my-submissions-management */ \"./src/reducers/my-submissions-management.js\");\n\nvar _mySubmissionsManagement2 = _interopRequireDefault(_mySubmissionsManagement);\n\nvar _settings = __webpack_require__(/*! ./settings */ \"./src/reducers/settings.js\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nvar _looker = __webpack_require__(/*! ./looker */ \"./src/reducers/looker.js\");\n\nvar _looker2 = _interopRequireDefault(_looker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * Export reducers.\n */\n\n\nfunction factory(options) {\n return _topcoderReactUtils.redux.resolveReducers({\n auth: (0, _auth.factory)(options),\n stats: (0, _stats.factory)(options),\n terms: (0, _terms.factory)(options),\n direct: (0, _direct.factory)(options),\n groups: (0, _groups.factory)(options),\n errors: (0, _errors.factory)(options),\n challenge: (0, _challenge.factory)(options),\n profile: (0, _profile.factory)(options),\n lookup: (0, _lookup.factory)(options),\n members: (0, _members.factory)(options),\n memberTasks: (0, _memberTasks.factory)(options),\n reviewOpportunity: (0, _reviewOpportunity.factory)(options),\n mySubmissionsManagement: (0, _mySubmissionsManagement.factory)(options),\n settings: (0, _settings.factory)(options),\n looker: (0, _looker.factory)(options)\n });\n}\n\nvar _default = {\n auth: _auth2.default,\n stats: _stats2.default,\n terms: _terms2.default,\n direct: _direct2.default,\n groups: _groups2.default,\n errors: _errors2.default,\n challenge: _challenge2.default,\n profile: _profile2.default,\n lookup: _lookup2.default,\n members: _members2.default,\n memberTasks: _memberTasks2.default,\n reviewOpportunity: _reviewOpportunity2.default,\n mySubmissionsManagement: _mySubmissionsManagement2.default,\n settings: _settings2.default,\n looker: _looker2.default\n};\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/index.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/index.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/index.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.factory = factory;\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _auth = __webpack_require__(/*! ./auth */ \"./src/reducers/auth.js\");\n\nvar _auth2 = _interopRequireDefault(_auth);\n\nvar _stats = __webpack_require__(/*! ./stats */ \"./src/reducers/stats.js\");\n\nvar _stats2 = _interopRequireDefault(_stats);\n\nvar _terms = __webpack_require__(/*! ./terms */ \"./src/reducers/terms.js\");\n\nvar _terms2 = _interopRequireDefault(_terms);\n\nvar _direct = __webpack_require__(/*! ./direct */ \"./src/reducers/direct.js\");\n\nvar _direct2 = _interopRequireDefault(_direct);\n\nvar _groups = __webpack_require__(/*! ./groups */ \"./src/reducers/groups.js\");\n\nvar _groups2 = _interopRequireDefault(_groups);\n\nvar _errors = __webpack_require__(/*! ./errors */ \"./src/reducers/errors.js\");\n\nvar _errors2 = _interopRequireDefault(_errors);\n\nvar _challenge = __webpack_require__(/*! ./challenge */ \"./src/reducers/challenge.js\");\n\nvar _challenge2 = _interopRequireDefault(_challenge);\n\nvar _profile = __webpack_require__(/*! ./profile */ \"./src/reducers/profile.js\");\n\nvar _profile2 = _interopRequireDefault(_profile);\n\nvar _members = __webpack_require__(/*! ./members */ \"./src/reducers/members.js\");\n\nvar _members2 = _interopRequireDefault(_members);\n\nvar _notifications = __webpack_require__(/*! ./notifications */ \"./src/reducers/notifications.js\");\n\nvar _notifications2 = _interopRequireDefault(_notifications);\n\nvar _lookup = __webpack_require__(/*! ./lookup */ \"./src/reducers/lookup.js\");\n\nvar _lookup2 = _interopRequireDefault(_lookup);\n\nvar _memberTasks = __webpack_require__(/*! ./member-tasks */ \"./src/reducers/member-tasks.js\");\n\nvar _memberTasks2 = _interopRequireDefault(_memberTasks);\n\nvar _reviewOpportunity = __webpack_require__(/*! ./reviewOpportunity */ \"./src/reducers/reviewOpportunity.js\");\n\nvar _reviewOpportunity2 = _interopRequireDefault(_reviewOpportunity);\n\nvar _mySubmissionsManagement = __webpack_require__(/*! ./my-submissions-management */ \"./src/reducers/my-submissions-management.js\");\n\nvar _mySubmissionsManagement2 = _interopRequireDefault(_mySubmissionsManagement);\n\nvar _settings = __webpack_require__(/*! ./settings */ \"./src/reducers/settings.js\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nvar _looker = __webpack_require__(/*! ./looker */ \"./src/reducers/looker.js\");\n\nvar _looker2 = _interopRequireDefault(_looker);\n\nvar _memberSearch = __webpack_require__(/*! ./member-search */ \"./src/reducers/member-search.js\");\n\nvar _memberSearch2 = _interopRequireDefault(_memberSearch);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * Export reducers.\n */\n\n\nfunction factory(options) {\n return _topcoderReactUtils.redux.resolveReducers({\n auth: (0, _auth.factory)(options),\n stats: (0, _stats.factory)(options),\n terms: (0, _terms.factory)(options),\n direct: (0, _direct.factory)(options),\n groups: (0, _groups.factory)(options),\n errors: (0, _errors.factory)(options),\n challenge: (0, _challenge.factory)(options),\n profile: (0, _profile.factory)(options),\n lookup: (0, _lookup.factory)(options),\n members: (0, _members.factory)(options),\n memberTasks: (0, _memberTasks.factory)(options),\n reviewOpportunity: (0, _reviewOpportunity.factory)(options),\n mySubmissionsManagement: (0, _mySubmissionsManagement.factory)(options),\n settings: (0, _settings.factory)(options),\n looker: (0, _looker.factory)(options),\n memberSearch: (0, _memberSearch.factory)(options),\n notifications: (0, _notifications.factory)(options)\n });\n}\n\nvar _default = {\n auth: _auth2.default,\n stats: _stats2.default,\n terms: _terms2.default,\n direct: _direct2.default,\n groups: _groups2.default,\n errors: _errors2.default,\n challenge: _challenge2.default,\n profile: _profile2.default,\n lookup: _lookup2.default,\n members: _members2.default,\n memberTasks: _memberTasks2.default,\n reviewOpportunity: _reviewOpportunity2.default,\n mySubmissionsManagement: _mySubmissionsManagement2.default,\n settings: _settings2.default,\n looker: _looker2.default,\n memberSearch: _memberSearch2.default,\n notifications: _notifications2.default\n};\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/index.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/index.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/index.js?");
/***/ }),
@@ -699,7 +723,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _looker = __webpack_require__(/*! ../actions/looker */ \"./src/actions/looker.js\");\n\nvar _looker2 = _interopRequireDefault(_looker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.looker\"\n * @desc Reducer for {@link module:actions.looker} actions.\n *\n * State segment managed by this reducer has the following structure:\n * @param {Object} dataSet={}, index by lookerId.\n */\n\n\n/**\n * Handles LOOKER/GET_LOOKER_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetLookerDone(state, _ref) {\n var payload = _ref.payload;\n var _payload$data = payload.data,\n res = _payload$data.res,\n error = _payload$data.error,\n lookerId = payload.lookerId;\n\n\n var newDataSet = (0, _extends3.default)({}, state.dataSet);\n newDataSet[lookerId] = {\n lookerData: res,\n error: error,\n msg: res.message\n };\n return (0, _extends3.default)({}, state, {\n dataSet: newDataSet\n });\n}\n\n/**\n * Creates a new Looker reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Looker reducer.\n */\nfunction create() {\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var a = _looker2.default.looker;\n return (0, _reduxActions.handleActions)((0, _defineProperty3.default)({}, a.getLookerDone, onGetLookerDone), _lodash2.default.defaults(initialState, {\n dataSet: {}\n }));\n}\n\n/**\n * Factory which creates a new reducer.\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onGetLookerDone, 'onGetLookerDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/looker.js');\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/looker.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/looker.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/looker.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/looker.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _looker = __webpack_require__(/*! ../actions/looker */ \"./src/actions/looker.js\");\n\nvar _looker2 = _interopRequireDefault(_looker);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.looker\"\n * @desc Reducer for {@link module:actions.looker} actions.\n *\n * State segment managed by this reducer has the following structure:\n * @param {Object} dataSet={}, index by lookerId.\n */\n\n\n/**\n * Handles LOOKER/GET_LOOKER_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetLookerDone(state, _ref) {\n var payload = _ref.payload;\n var _payload$data = payload.data,\n res = _payload$data.res,\n error = _payload$data.error,\n lookerId = payload.lookerId;\n\n\n var newDataSet = (0, _extends3.default)({}, state.dataSet);\n newDataSet[lookerId] = {\n lookerData: res,\n error: error,\n msg: res.message\n };\n return (0, _extends3.default)({}, state, {\n dataSet: newDataSet\n });\n}\n\n/**\n * Creates a new Looker reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Looker reducer.\n */\nfunction create() {\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var a = _looker2.default.looker;\n return (0, _reduxActions.handleActions)((0, _defineProperty3.default)({}, a.getLookerDone, onGetLookerDone), _lodash2.default.defaults(initialState, {\n dataSet: {}\n }));\n}\n\n/**\n * Factory which creates a new reducer.\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onGetLookerDone, 'onGetLookerDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/looker.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/looker.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/looker.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/looker.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/looker.js?");
/***/ }),
@@ -711,7 +735,19 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _lookup = __webpack_require__(/*! ../actions/lookup */ \"./src/actions/lookup.js\");\n\nvar _lookup2 = _interopRequireDefault(_lookup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.lookup\"\n * @desc Reducer for {@link module:actions.lookup} actions.\n *\n * State segment managed by this reducer has the following structure:\n * @param {Array} skillTags='' skill tags.\n */\n\n\n/**\n * Handles LOOKUP/GET_SKILL_TAGS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetSkillTagsDone(state, _ref) {\n var payload = _ref.payload,\n error = _ref.error;\n\n if (error) {\n _logger2.default.error('Failed to get skill tags', payload);\n return (0, _extends3.default)({}, state, { loadingSkillTagsError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n loadingSkillTagsError: false,\n skillTags: payload\n });\n}\n\n/**\n * Handles LOOKUP/GET_COUNTRIES_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetCountriesDone(state, _ref2) {\n var payload = _ref2.payload,\n error = _ref2.error;\n\n if (error) {\n _logger2.default.error('Failed to get countries', payload);\n return (0, _extends3.default)({}, state, { loadingCountriesError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n loadingCountriesError: false,\n countries: payload\n });\n}\n\n/**\n * Handles LOOKUP/GET_ALL_COUNTRIES_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetAllCountriesDone(state, _ref3) {\n var payload = _ref3.payload,\n error = _ref3.error;\n\n if (error) {\n _logger2.default.error('Failed to get all countries', payload);\n return (0, _extends3.default)({}, state, { loadingAllCountriesError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n loadingAllCountriesError: false,\n allCountries: payload\n });\n}\n\n/**\n * Creates a new Lookup reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Lookup reducer.\n */\nfunction create() {\n var _handleActions;\n\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var a = _lookup2.default.lookup;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.getSkillTagsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getSkillTagsDone, onGetSkillTagsDone), (0, _defineProperty3.default)(_handleActions, a.getCountriesInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getCountriesDone, onGetCountriesDone), (0, _defineProperty3.default)(_handleActions, a.getAllCountriesInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getAllCountriesDone, onGetAllCountriesDone), _handleActions), _lodash2.default.defaults(initialState, {\n skillTags: [],\n countries: [],\n allCountries: []\n }));\n}\n\n/**\n * Factory which creates a new reducer.\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onGetSkillTagsDone, 'onGetSkillTagsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/lookup.js');\n reactHotLoader.register(onGetCountriesDone, 'onGetCountriesDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/lookup.js');\n reactHotLoader.register(onGetAllCountriesDone, 'onGetAllCountriesDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/lookup.js');\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/lookup.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/lookup.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/lookup.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/lookup.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _lookup = __webpack_require__(/*! ../actions/lookup */ \"./src/actions/lookup.js\");\n\nvar _lookup2 = _interopRequireDefault(_lookup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.lookup\"\n * @desc Reducer for {@link module:actions.lookup} actions.\n *\n * State segment managed by this reducer has the following structure:\n * @param {Array} skillTags='' skill tags.\n */\n\n\n/**\n * Handles LOOKUP/GET_SKILL_TAGS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetSkillTagsDone(state, _ref) {\n var payload = _ref.payload,\n error = _ref.error;\n\n if (error) {\n _logger2.default.error('Failed to get skill tags', payload);\n return (0, _extends3.default)({}, state, { loadingSkillTagsError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n loadingSkillTagsError: false,\n skillTags: payload\n });\n}\n\n/**\n * Handles LOOKUP/GET_COUNTRIES_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetCountriesDone(state, _ref2) {\n var payload = _ref2.payload,\n error = _ref2.error;\n\n if (error) {\n _logger2.default.error('Failed to get countries', payload);\n return (0, _extends3.default)({}, state, { loadingCountriesError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n loadingCountriesError: false,\n countries: payload\n });\n}\n\n/**\n * Handles LOOKUP/GET_REVIEW_TYPES_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetReviewTypesDone(state, _ref3) {\n var payload = _ref3.payload,\n error = _ref3.error;\n\n if (error) {\n _logger2.default.error('Failed to get review types', payload);\n return (0, _extends3.default)({}, state, { loadingReviewTypesError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n loadingReviewTypesError: false,\n reviewTypes: payload\n });\n}\n\n/**\n * Handles LOOKUP/GET_ALL_COUNTRIES_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetAllCountriesDone(state, _ref4) {\n var payload = _ref4.payload,\n error = _ref4.error;\n\n if (error) {\n _logger2.default.error('Failed to get all countries', payload);\n return (0, _extends3.default)({}, state, { loadingAllCountriesError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n loadingAllCountriesError: false,\n allCountries: payload\n });\n}\n\n/**\n * Creates a new Lookup reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Lookup reducer.\n */\nfunction create() {\n var _handleActions;\n\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var a = _lookup2.default.lookup;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.getSkillTagsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getSkillTagsDone, onGetSkillTagsDone), (0, _defineProperty3.default)(_handleActions, a.getCountriesInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getCountriesDone, onGetCountriesDone), (0, _defineProperty3.default)(_handleActions, a.getReviewTypesInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getReviewTypesDone, onGetReviewTypesDone), (0, _defineProperty3.default)(_handleActions, a.getAllCountriesInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getAllCountriesDone, onGetAllCountriesDone), _handleActions), _lodash2.default.defaults(initialState, {\n skillTags: [],\n countries: [],\n allCountries: [],\n reviewTypes: []\n }));\n}\n\n/**\n * Factory which creates a new reducer.\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onGetSkillTagsDone, 'onGetSkillTagsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/lookup.js');\n reactHotLoader.register(onGetCountriesDone, 'onGetCountriesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/lookup.js');\n reactHotLoader.register(onGetReviewTypesDone, 'onGetReviewTypesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/lookup.js');\n reactHotLoader.register(onGetAllCountriesDone, 'onGetAllCountriesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/lookup.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/lookup.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/lookup.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/lookup.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/lookup.js?");
+
+/***/ }),
+
+/***/ "./src/reducers/member-search.js":
+/*!***************************************!*\
+ !*** ./src/reducers/member-search.js ***!
+ \***************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _assign = __webpack_require__(/*! babel-runtime/core-js/object/assign */ \"babel-runtime/core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _memberSearch = __webpack_require__(/*! ../actions/member-search */ \"./src/actions/member-search.js\");\n\nvar _memberSearch2 = _interopRequireDefault(_memberSearch);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.member-search\"\n * @desc Reducer for {@link module:actions.member-search} actions.\n *\n * State segment managed by this reducer has the following structure:\n * @param {Boolean} pageLoaded `true` if loading members data for a search term is done\n * `false`if starting loading members data for a search term,\n * or loading failed\n * @param {Boolean} loadingMore `true` if request for loading more data is in progress;\n * otherwise `false`\n * @param {Boolean} error `true` if failed to load member data; otherwise `false`\n * @param {Number} totalCount the number of matched members for a search term\n * @param {Boolean} moreMatchesAvailable `true` if there are more matched members, for\n * a search term, to load; otherwise `false`\n * @param {Array<{}>} usernameMatches contains loaded members data for a search term\n * @param {Array<{}>} topMembers contains loaded members data for a search tag\n * @param {String} previousSearchTerm the current search term\n * @param {Object} searchTermTag the current search tag data if the search term is a tag name;\n * otherwise `null`\n */\n\n\n/**\n * @private\n * Returns the new state with the intial members data.\n */\nfunction memberSearchFailure(state) {\n return (0, _assign2.default)({}, state, {\n loadingMore: false,\n error: true,\n totalCount: 0,\n usernameMatches: [],\n topMembers: []\n });\n}\n\n/**\n * @private\n * Returns the new state with the intial search terms data.\n */\nfunction resetSearchTerm(state) {\n return (0, _assign2.default)({}, state, {\n pageLoaded: false,\n previousSearchTerm: null,\n searchTermTag: null\n });\n}\n\n/**\n * @private\n * Returns the new state with the intial members and search terms data.\n */\nfunction memberSearchFailureAndResetSearchTerm(state) {\n var newState = state;\n newState = memberSearchFailure(newState);\n newState = resetSearchTerm(newState);\n return newState;\n}\n\n/**\n * Handles the actual results of loading members data for a search term cumulatively,\n * and clear members data on request failure.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onUsernameSearchSuccess(state, action) {\n var payload = action.payload;\n\n if (action.error) {\n (0, _errors.fireErrorMessage)('Could not fetch username matches', '');\n return memberSearchFailure(state);\n }\n\n return (0, _assign2.default)({}, state, {\n loadingMore: false,\n totalCount: payload.totalCount,\n moreMatchesAvailable: state.usernameMatches.length + payload.usernameMatches.length < payload.totalCount,\n usernameMatches: state.usernameMatches.concat(payload.usernameMatches)\n });\n}\n\n/**\n * Clear members data and search terms data on request failure of checking if the search term is\n * a tag name.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state if error; otherwise the same state.\n */\nfunction onCheckIfSearchTermIsATag(state, action) {\n if (action.error) {\n (0, _errors.fireErrorMessage)('Could not determine if search term is a tag', '');\n return memberSearchFailureAndResetSearchTerm(state);\n }\n\n return state;\n}\n\n/**\n * Handles the actual results of loading members data for a search tag, and\n * clear members data and search terms data on request failure.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onTopMemberSearchSuccess(state, action) {\n var payload = action.payload;\n\n if (action.error) {\n (0, _errors.fireErrorMessage)('Could not fetch top members', '');\n return memberSearchFailureAndResetSearchTerm(state);\n }\n\n return (0, _assign2.default)({}, state, {\n topMembers: payload.topMembers\n });\n}\n\n/**\n * Clear members data to the intial state.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onClearMemberSearch(state) {\n return (0, _assign2.default)({}, state, {\n pageLoaded: false,\n loadingMore: false,\n error: false,\n totalCount: 0,\n usernameMatches: [],\n topMembers: []\n });\n}\n\n/**\n * Marks the request of loading more members data for a search term as in progress\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onLoadMoreUsernames(state) {\n return (0, _assign2.default)({}, state, {\n loadingMore: true\n });\n}\n\n/**\n * Marks the loaded members data for a search term or search tag (if any) as ready.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onMemberSearchSuccess(state) {\n return (0, _assign2.default)({}, state, {\n pageLoaded: true\n });\n}\n\n/**\n * Handles setting the current search term.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onSetSearchTerm(state, action) {\n var payload = action.payload;\n\n return (0, _assign2.default)({}, state, {\n error: false,\n previousSearchTerm: payload.previousSearchTerm\n });\n}\n\n/**\n * Handles setting the current search tag.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onSetSearchTag(state, action) {\n var payload = action.payload;\n\n return (0, _assign2.default)({}, state, {\n searchTermTag: payload.searchTermTag\n });\n}\n\n/**\n * Handles clearing the current search term and search tag.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onResetSearchTerm(state) {\n return resetSearchTerm(state);\n}\n\n/**\n * Creates a new member search reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} member search reducer.\n */\nfunction create() {\n var _redux$handleActions;\n\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var a = _memberSearch2.default.memberSearch;\n return _topcoderReactUtils.redux.handleActions((_redux$handleActions = {}, (0, _defineProperty3.default)(_redux$handleActions, a.usernameSearchSuccess, onUsernameSearchSuccess), (0, _defineProperty3.default)(_redux$handleActions, a.checkIfSearchTermIsATag, onCheckIfSearchTermIsATag), (0, _defineProperty3.default)(_redux$handleActions, a.topMemberSearchSuccess, onTopMemberSearchSuccess), (0, _defineProperty3.default)(_redux$handleActions, a.clearMemberSearch, onClearMemberSearch), (0, _defineProperty3.default)(_redux$handleActions, a.loadMoreUsernames, onLoadMoreUsernames), (0, _defineProperty3.default)(_redux$handleActions, a.memberSearchSuccess, onMemberSearchSuccess), (0, _defineProperty3.default)(_redux$handleActions, a.setSearchTerm, onSetSearchTerm), (0, _defineProperty3.default)(_redux$handleActions, a.setSearchTag, onSetSearchTag), (0, _defineProperty3.default)(_redux$handleActions, a.resetSearchTerm, onResetSearchTerm), _redux$handleActions), _lodash2.default.defaults(initialState, {\n pageLoaded: false,\n loadingMore: false,\n error: false,\n totalCount: 0,\n moreMatchesAvailable: false,\n usernameMatches: [],\n topMembers: [],\n previousSearchTerm: null,\n searchTermTag: null\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(memberSearchFailure, 'memberSearchFailure', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n reactHotLoader.register(resetSearchTerm, 'resetSearchTerm', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n reactHotLoader.register(memberSearchFailureAndResetSearchTerm, 'memberSearchFailureAndResetSearchTerm', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n reactHotLoader.register(onUsernameSearchSuccess, 'onUsernameSearchSuccess', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n reactHotLoader.register(onCheckIfSearchTermIsATag, 'onCheckIfSearchTermIsATag', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n reactHotLoader.register(onTopMemberSearchSuccess, 'onTopMemberSearchSuccess', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n reactHotLoader.register(onClearMemberSearch, 'onClearMemberSearch', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n reactHotLoader.register(onLoadMoreUsernames, 'onLoadMoreUsernames', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n reactHotLoader.register(onMemberSearchSuccess, 'onMemberSearchSuccess', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n reactHotLoader.register(onSetSearchTerm, 'onSetSearchTerm', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n reactHotLoader.register(onSetSearchTag, 'onSetSearchTag', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n reactHotLoader.register(onResetSearchTerm, 'onResetSearchTerm', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-search.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/member-search.js?");
/***/ }),
@@ -723,7 +759,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _memberTasks = __webpack_require__(/*! ../actions/member-tasks */ \"./src/actions/member-tasks.js\");\n\nvar _memberTasks2 = _interopRequireDefault(_memberTasks);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reduces.member-tasks\"\n * @desc Member tasks reducer.\n * @todo Document state segment structure.\n */\n/* global alert */\n\n/**\n * Drops all tasks and cancels the ongoing loading operation, if it is pending.\n * @param {Object} state\n * @return {Object} New state.\n */\nfunction onDropAll(state) {\n return (0, _extends3.default)({}, state, {\n allLoaded: false,\n lastRequestedPageNum: -1,\n loadingUuid: '',\n tasks: [],\n timestamp: 0\n });\n}\n\n/**\n * Stores into the state meta data about the initiated loading operation.\n * This will effectively cancel the already pending loading operation, if any.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetInit(state, _ref) {\n var payload = _ref.payload;\n\n return (0, _extends3.default)({}, state, {\n lastRequestedPageNum: payload.pageNum,\n loadingUuid: payload.uuid\n });\n}\n\n/**\n * Handles the actual result of the loading operation.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetDone(state, _ref2) {\n var error = _ref2.error,\n payload = _ref2.payload;\n\n /* Bails out in case of error. */\n if (error) {\n _logger2.default.error(payload);\n /* NOTE: For now, using alert to inform about failures is kind of fine. */\n /* eslint-disable no-alert */\n if (_topcoderReactUtils.isomorphy.isClientSide()) alert('Failed to load member tasks');\n /* eslint-enable no-alert */\n return state;\n }\n\n /* Silently ignores the action, if it has unexpected UUID. */\n var projectId = payload.projectId,\n tasks = payload.tasks,\n uuid = payload.uuid;\n\n if (uuid !== state.loadingUuid) return state;\n\n /* Generates the map of old tasks, and the count of old tasks related to\n * the specified project. */\n var taskMap = {};\n state.tasks.forEach(function (task) {\n taskMap[task.id] = task;\n });\n\n /* Merges newly loaded tasks into the map of old ones. */\n tasks.forEach(function (task) {\n taskMap[task.id] = task;\n });\n\n /* If the first page of tasks has been loaded, updates its timestamp. */\n var timestamps = state.timestamps;\n\n if (!state.lastRequestedPageNum) {\n timestamps = _lodash2.default.clone(timestamps);\n timestamps[projectId] = Date.now();\n }\n\n return (0, _extends3.default)({}, state, {\n allLoaded: tasks.length < _memberTasks.PAGE_SIZE,\n loadingUuid: '',\n tasks: _lodash2.default.values(taskMap),\n timestamps: timestamps\n });\n}\n\n/**\n * Creates a new Member tasks reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Member tasks reducer.\n */\nfunction create() {\n var _redux$handleActions;\n\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var a = _memberTasks2.default.memberTasks;\n return _topcoderReactUtils.redux.handleActions((_redux$handleActions = {}, (0, _defineProperty3.default)(_redux$handleActions, a.dropAll, onDropAll), (0, _defineProperty3.default)(_redux$handleActions, a.getInit, onGetInit), (0, _defineProperty3.default)(_redux$handleActions, a.getDone, onGetDone), _redux$handleActions), _lodash2.default.defaults(initialState, {\n /* It is set true when a request to load tasks loads less tasks than a full\n * task page size. It is reset to false each time the page number 0 starts\n * to load. If you load task pages sequentially from the very first page,\n * with the same projectId and user specified by auth token, this flag\n * signals you when there is no more tasks to load. */\n allLoaded: false,\n\n /* Holds the number of the last requested task page. */\n lastRequestedPageNum: -1,\n\n /* Equals to the loading operation UUID when the result is pending; equals\n * empty string when nothing is being loaded. */\n loadingUuid: '',\n\n /* The list of tasks loaded so far. For better performance and user\n * experience it may contain tasks related to projects queried before;\n * be sure to filter it according to your needs. */\n tasks: [],\n\n /* Keys of this object are projectIds, and values keep the timestamps\n * corresponding to latest updates of the first page of tasks related\n * to those projects. */\n timestamps: {}\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onDropAll, 'onDropAll', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/member-tasks.js');\n reactHotLoader.register(onGetInit, 'onGetInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/member-tasks.js');\n reactHotLoader.register(onGetDone, 'onGetDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/member-tasks.js');\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/member-tasks.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/member-tasks.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/member-tasks.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/member-tasks.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _memberTasks = __webpack_require__(/*! ../actions/member-tasks */ \"./src/actions/member-tasks.js\");\n\nvar _memberTasks2 = _interopRequireDefault(_memberTasks);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reduces.member-tasks\"\n * @desc Member tasks reducer.\n * @todo Document state segment structure.\n */\n/* global alert */\n\n/**\n * Drops all tasks and cancels the ongoing loading operation, if it is pending.\n * @param {Object} state\n * @return {Object} New state.\n */\nfunction onDropAll(state) {\n return (0, _extends3.default)({}, state, {\n allLoaded: false,\n lastRequestedPageNum: -1,\n loadingUuid: '',\n tasks: [],\n timestamp: 0\n });\n}\n\n/**\n * Stores into the state meta data about the initiated loading operation.\n * This will effectively cancel the already pending loading operation, if any.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetInit(state, _ref) {\n var payload = _ref.payload;\n\n return (0, _extends3.default)({}, state, {\n lastRequestedPageNum: payload.pageNum,\n loadingUuid: payload.uuid\n });\n}\n\n/**\n * Handles the actual result of the loading operation.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetDone(state, _ref2) {\n var error = _ref2.error,\n payload = _ref2.payload;\n\n /* Bails out in case of error. */\n if (error) {\n _logger2.default.error(payload);\n /* NOTE: For now, using alert to inform about failures is kind of fine. */\n /* eslint-disable no-alert */\n if (_topcoderReactUtils.isomorphy.isClientSide()) alert('Failed to load member tasks');\n /* eslint-enable no-alert */\n return state;\n }\n\n /* Silently ignores the action, if it has unexpected UUID. */\n var projectId = payload.projectId,\n tasks = payload.tasks,\n uuid = payload.uuid;\n\n if (uuid !== state.loadingUuid) return state;\n\n /* Generates the map of old tasks, and the count of old tasks related to\n * the specified project. */\n var taskMap = {};\n state.tasks.forEach(function (task) {\n taskMap[task.id] = task;\n });\n\n /* Merges newly loaded tasks into the map of old ones. */\n tasks.forEach(function (task) {\n taskMap[task.id] = task;\n });\n\n /* If the first page of tasks has been loaded, updates its timestamp. */\n var timestamps = state.timestamps;\n\n if (!state.lastRequestedPageNum) {\n timestamps = _lodash2.default.clone(timestamps);\n timestamps[projectId] = Date.now();\n }\n\n return (0, _extends3.default)({}, state, {\n allLoaded: tasks.length < _memberTasks.PAGE_SIZE,\n loadingUuid: '',\n tasks: _lodash2.default.values(taskMap),\n timestamps: timestamps\n });\n}\n\n/**\n * Creates a new Member tasks reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Member tasks reducer.\n */\nfunction create() {\n var _redux$handleActions;\n\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var a = _memberTasks2.default.memberTasks;\n return _topcoderReactUtils.redux.handleActions((_redux$handleActions = {}, (0, _defineProperty3.default)(_redux$handleActions, a.dropAll, onDropAll), (0, _defineProperty3.default)(_redux$handleActions, a.getInit, onGetInit), (0, _defineProperty3.default)(_redux$handleActions, a.getDone, onGetDone), _redux$handleActions), _lodash2.default.defaults(initialState, {\n /* It is set true when a request to load tasks loads less tasks than a full\n * task page size. It is reset to false each time the page number 0 starts\n * to load. If you load task pages sequentially from the very first page,\n * with the same projectId and user specified by auth token, this flag\n * signals you when there is no more tasks to load. */\n allLoaded: false,\n\n /* Holds the number of the last requested task page. */\n lastRequestedPageNum: -1,\n\n /* Equals to the loading operation UUID when the result is pending; equals\n * empty string when nothing is being loaded. */\n loadingUuid: '',\n\n /* The list of tasks loaded so far. For better performance and user\n * experience it may contain tasks related to projects queried before;\n * be sure to filter it according to your needs. */\n tasks: [],\n\n /* Keys of this object are projectIds, and values keep the timestamps\n * corresponding to latest updates of the first page of tasks related\n * to those projects. */\n timestamps: {}\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onDropAll, 'onDropAll', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-tasks.js');\n reactHotLoader.register(onGetInit, 'onGetInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-tasks.js');\n reactHotLoader.register(onGetDone, 'onGetDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-tasks.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-tasks.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-tasks.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/member-tasks.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/member-tasks.js?");
/***/ }),
@@ -735,7 +771,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _toConsumableArray2 = __webpack_require__(/*! babel-runtime/helpers/toConsumableArray */ \"babel-runtime/helpers/toConsumableArray\");\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends20 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends21 = _interopRequireDefault(_extends20);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _members = __webpack_require__(/*! ../actions/members */ \"./src/actions/members.js\");\n\nvar _members2 = _interopRequireDefault(_members);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.members\"\n * @desc Reducer for the Redux store segment that holds members data.\n * @todo Document state segment structure.\n */\n\n/**\n * Drops information about a member.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onDrop(state, _ref) {\n var payload = _ref.payload;\n\n if (!state[payload]) return state;\n return _lodash2.default.omit(state, payload);\n}\n\n/**\n * Drops all loaded information on members.\n * @return {Object} New state.\n */\nfunction onDropAll() {\n return {};\n}\n\n/**\n * Inits the loading of member achievements.\n * @param {Object} state\n * @param {String} action.handle\n * @param {String} action.uuid\n * @return {Object} New state.\n */\nfunction onGetAchievementsInit(state, action) {\n var _action$payload = action.payload,\n handle = _action$payload.handle,\n uuid = _action$payload.uuid;\n\n var res = state[handle];\n res = res ? _lodash2.default.clone(res) : {};\n res.achievements = { loadingUuid: uuid };\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, res));\n}\n\n/**\n * Finalizes the loading of member achievements.\n * @param {Object} state\n * @param {Object} error\n * @param {Array} payload.data\n * @param {String} payload.handle\n * @param {String} payload.uuid\n * @return {Object} New state.\n */\nfunction onGetAchievementsDone(state, _ref2) {\n var error = _ref2.error,\n payload = _ref2.payload;\n\n if (error) {\n _logger2.default.error('Failed to load member achievements', payload);\n (0, _errors.fireErrorMessage)('Failed to load member achievements');\n return state;\n }\n\n var data = payload.data,\n handle = payload.handle,\n uuid = payload.uuid;\n\n if (uuid !== _lodash2.default.get(state[handle], 'achievements.loadingUuid')) return state;\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n achievements: { data: data, timestamp: Date.now() }\n })));\n}\n\n/**\n * Initializes the loading of member financial information.\n * @param {Object} state\n * @param {String} action.payload.handle\n * @param {String} action.payload.uuid\n * @return {Object} New state.\n */\nfunction onGetFinancesInit(state, action) {\n var _action$payload2 = action.payload,\n handle = _action$payload2.handle,\n uuid = _action$payload2.uuid;\n\n var envelop = (0, _extends21.default)({}, state[handle] || {}, {\n finances: {\n loadingUuid: uuid,\n timestamp: 0\n }\n });\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, envelop));\n}\n\n/**\n * Finalizes a pending loading of member financial information.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetFinancesDone(state, _ref3) {\n var error = _ref3.error,\n payload = _ref3.payload;\n\n if (error) {\n _logger2.default.error('Failed to get user financial info', payload);\n (0, _errors.fireErrorMessage)('Failed to get user financial info', '');\n return state;\n }\n\n var data = payload.data,\n handle = payload.handle,\n uuid = payload.uuid;\n\n if (uuid !== _lodash2.default.get(state[handle], 'finances.loadingUuid')) return state;\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n finances: {\n data: data,\n loadingUuid: '',\n timestamp: Date.now()\n }\n })));\n}\n\n/**\n * Inits the loading of member stats.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetStatsInit(state, action) {\n var _action$payload3 = action.payload,\n handle = _action$payload3.handle,\n uuid = _action$payload3.uuid;\n\n var res = state[handle];\n res = res ? _lodash2.default.clone(res) : {};\n res.stats = { loadingUuid: uuid };\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, res));\n}\n\n/**\n * Finalizes the loading of member stats.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetStatsDone(state, _ref4) {\n var error = _ref4.error,\n payload = _ref4.payload;\n\n if (error) {\n _logger2.default.error('Failed to get member stats', payload);\n (0, _errors.fireErrorMessage)('Failed to get member stats', '');\n return state;\n }\n\n var data = payload.data,\n handle = payload.handle,\n uuid = payload.uuid;\n\n if (uuid !== _lodash2.default.get(state[handle], 'stats.loadingUuid')) return state;\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n stats: { data: data, timestamp: Date.now() }\n })));\n}\n\n/**\n * Inits the loading of member stats history.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetStatsHistoryInit(state, action) {\n var _action$payload4 = action.payload,\n handle = _action$payload4.handle,\n uuid = _action$payload4.uuid;\n\n var res = state[handle];\n res = res ? _lodash2.default.clone(res) : {};\n res.statsHistory = { loadingUuid: uuid };\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, res));\n}\n\n/**\n * Finalizes the loading of member stats history.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetStatsHistoryDone(state, _ref5) {\n var error = _ref5.error,\n payload = _ref5.payload;\n\n if (error) {\n _logger2.default.error('Failed to get member statsHistory', payload);\n (0, _errors.fireErrorMessage)('Failed to get member statsHistory', '');\n return state;\n }\n\n var data = payload.data,\n handle = payload.handle,\n uuid = payload.uuid;\n\n if (uuid !== _lodash2.default.get(state[handle], 'statsHistory.loadingUuid')) return state;\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n statsHistory: { data: data, timestamp: Date.now() }\n })));\n}\n\n/**\n * Inits the loading of member stats distribution.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetStatsDistributionInit(state, action) {\n var _action$payload5 = action.payload,\n handle = _action$payload5.handle,\n uuid = _action$payload5.uuid;\n\n var res = state[handle];\n res = res ? _lodash2.default.clone(res) : {};\n res.statsDistribution = { loadingUuid: uuid };\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, res));\n}\n\n/**\n * Finalizes the loading of member stats distribution.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetStatsDistributionDone(state, _ref6) {\n var error = _ref6.error,\n payload = _ref6.payload;\n\n if (error) {\n _logger2.default.error('Failed to get member statsDistribution', payload);\n (0, _errors.fireErrorMessage)('Failed to get member statsDistribution', '');\n return state;\n }\n\n var data = payload.data,\n handle = payload.handle,\n uuid = payload.uuid;\n\n if (uuid !== _lodash2.default.get(state[handle], 'statsDistribution.loadingUuid')) return state;\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n statsDistribution: { data: data, timestamp: Date.now() }\n })));\n}\n\n/**\n * Inits the loading of member active challenges.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetActiveChallengesInit(state, action) {\n var handle = action.payload.handle;\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], { activeChallengesCount: null })));\n}\n\n/**\n * Finalizes the loading of member active challenges.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetActiveChallengesDone(state, _ref7) {\n var error = _ref7.error,\n payload = _ref7.payload;\n\n if (error) {\n _logger2.default.error('Failed to get member active challenges', payload);\n (0, _errors.fireErrorMessage)('Failed to get member active challenges', '');\n return state;\n }\n\n var handle = payload.handle,\n challenges = payload.challenges;\n\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n activeChallengesCount: challenges.length\n })));\n}\n\n/**\n * Inits the loading of member subtrack challenges.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetSubtrackChallengesInit(state, _ref8) {\n var payload = _ref8.payload;\n var handle = payload.handle,\n uuid = payload.uuid;\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], { loadingSubTrackChallengesUUID: uuid })));\n}\n\n/**\n * Finalizes the loading of member subtrack challenges.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetSubtrackChallengesDone(state, _ref9) {\n var error = _ref9.error,\n payload = _ref9.payload;\n\n if (error) {\n _logger2.default.error('Failed to get member subtrack challenges', payload);\n (0, _errors.fireErrorMessage)('Failed to get member subtrack challenges', '');\n return state;\n }\n\n var uuid = payload.uuid,\n challenges = payload.challenges,\n refresh = payload.refresh,\n handle = payload.handle;\n\n if (uuid !== state[handle].loadingSubTrackChallengesUUID) return state;\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n subtrackChallenges: state[handle].subtrackChallenges && !refresh ? [].concat((0, _toConsumableArray3.default)(state[handle].subtrackChallenges), (0, _toConsumableArray3.default)(challenges)) : challenges,\n // if current query returns 0 item, mark it completed\n subtrackChallengesHasMore: challenges && challenges.length > 0,\n loadingSubTrackChallengesUUID: ''\n })));\n}\n\n/**\n * Inits the loading of member SRMs.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetUserSRMInit(state, _ref10) {\n var payload = _ref10.payload;\n var handle = payload.handle,\n uuid = payload.uuid;\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], { loadingSRMUUID: uuid })));\n}\n\n/**\n * Finalizes the loading of member SRMs.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetUserSRMDone(state, _ref11) {\n var error = _ref11.error,\n payload = _ref11.payload;\n\n if (error) {\n _logger2.default.error('Failed to get member SRMs', payload);\n (0, _errors.fireErrorMessage)('Failed to get member SRMs', '');\n return state;\n }\n\n var uuid = payload.uuid,\n srms = payload.srms,\n refresh = payload.refresh,\n handle = payload.handle;\n\n if (uuid !== state[handle].loadingSRMUUID) return state;\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n userSRMs: state[handle].userSRMs && !refresh ? [].concat((0, _toConsumableArray3.default)(state[handle].userSRMs), (0, _toConsumableArray3.default)(srms)) : srms,\n userSRMHasMore: srms && srms.length > 0, // if current query returns 0 item, mark it completed\n loadingSRMUUID: ''\n })));\n}\n\n/**\n * Inits the loading of member marathons.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetUserMarathonInit(state, _ref12) {\n var payload = _ref12.payload;\n var handle = payload.handle,\n uuid = payload.uuid;\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], { loadingMarathonUUID: uuid })));\n}\n\n/**\n * Finalizes the loading of member marathons.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetUserMarathonDone(state, _ref13) {\n var error = _ref13.error,\n payload = _ref13.payload;\n\n if (error) {\n _logger2.default.error('Failed to get member marathons', payload);\n (0, _errors.fireErrorMessage)('Failed to get member marathons', '');\n return state;\n }\n\n var uuid = payload.uuid,\n marathons = payload.marathons,\n refresh = payload.refresh,\n handle = payload.handle;\n\n if (uuid !== state[handle].loadingMarathonUUID) return state;\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n userMarathons: state[handle].userMarathons && !refresh ? [].concat((0, _toConsumableArray3.default)(state[handle].userMarathons), (0, _toConsumableArray3.default)(marathons.challenges)) : marathons.challenges,\n // if current query returns 0 item, mark it completed\n userMarathonHasMore: marathons && marathons.challenges && marathons.challenges.length > 0,\n loadingMarathonUUID: ''\n })));\n}\n\n/**\n * Creates a new Members reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Members reducer.\n */\nfunction create() {\n var _handleActions;\n\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var a = _members2.default.members;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.drop, onDrop), (0, _defineProperty3.default)(_handleActions, a.dropAll, onDropAll), (0, _defineProperty3.default)(_handleActions, a.getAchievementsInit, onGetAchievementsInit), (0, _defineProperty3.default)(_handleActions, a.getAchievementsDone, onGetAchievementsDone), (0, _defineProperty3.default)(_handleActions, a.getAchievementsV3Done, onGetAchievementsDone), (0, _defineProperty3.default)(_handleActions, a.getFinancesInit, onGetFinancesInit), (0, _defineProperty3.default)(_handleActions, a.getFinancesDone, onGetFinancesDone), (0, _defineProperty3.default)(_handleActions, a.getStatsInit, onGetStatsInit), (0, _defineProperty3.default)(_handleActions, a.getStatsDone, onGetStatsDone), (0, _defineProperty3.default)(_handleActions, a.getStatsHistoryInit, onGetStatsHistoryInit), (0, _defineProperty3.default)(_handleActions, a.getStatsHistoryDone, onGetStatsHistoryDone), (0, _defineProperty3.default)(_handleActions, a.getStatsDistributionInit, onGetStatsDistributionInit), (0, _defineProperty3.default)(_handleActions, a.getStatsDistributionDone, onGetStatsDistributionDone), (0, _defineProperty3.default)(_handleActions, a.getActiveChallengesInit, onGetActiveChallengesInit), (0, _defineProperty3.default)(_handleActions, a.getActiveChallengesDone, onGetActiveChallengesDone), (0, _defineProperty3.default)(_handleActions, a.getSubtrackChallengesInit, onGetSubtrackChallengesInit), (0, _defineProperty3.default)(_handleActions, a.getSubtrackChallengesDone, onGetSubtrackChallengesDone), (0, _defineProperty3.default)(_handleActions, a.getUserSrmInit, onGetUserSRMInit), (0, _defineProperty3.default)(_handleActions, a.getUserSrmDone, onGetUserSRMDone), (0, _defineProperty3.default)(_handleActions, a.getUserMarathonInit, onGetUserMarathonInit), (0, _defineProperty3.default)(_handleActions, a.getUserMarathonDone, onGetUserMarathonDone), _handleActions), initialState);\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onDrop, 'onDrop', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onDropAll, 'onDropAll', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetAchievementsInit, 'onGetAchievementsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetAchievementsDone, 'onGetAchievementsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetFinancesInit, 'onGetFinancesInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetFinancesDone, 'onGetFinancesDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetStatsInit, 'onGetStatsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetStatsDone, 'onGetStatsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetStatsHistoryInit, 'onGetStatsHistoryInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetStatsHistoryDone, 'onGetStatsHistoryDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetStatsDistributionInit, 'onGetStatsDistributionInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetStatsDistributionDone, 'onGetStatsDistributionDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetActiveChallengesInit, 'onGetActiveChallengesInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetActiveChallengesDone, 'onGetActiveChallengesDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetSubtrackChallengesInit, 'onGetSubtrackChallengesInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetSubtrackChallengesDone, 'onGetSubtrackChallengesDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetUserSRMInit, 'onGetUserSRMInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetUserSRMDone, 'onGetUserSRMDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetUserMarathonInit, 'onGetUserMarathonInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetUserMarathonDone, 'onGetUserMarathonDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/members.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/members.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _toConsumableArray2 = __webpack_require__(/*! babel-runtime/helpers/toConsumableArray */ \"babel-runtime/helpers/toConsumableArray\");\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends20 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends21 = _interopRequireDefault(_extends20);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _members = __webpack_require__(/*! ../actions/members */ \"./src/actions/members.js\");\n\nvar _members2 = _interopRequireDefault(_members);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.members\"\n * @desc Reducer for the Redux store segment that holds members data.\n * @todo Document state segment structure.\n */\n\n/**\n * Drops information about a member.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onDrop(state, _ref) {\n var payload = _ref.payload;\n\n if (!state[payload]) return state;\n return _lodash2.default.omit(state, payload);\n}\n\n/**\n * Drops all loaded information on members.\n * @return {Object} New state.\n */\nfunction onDropAll() {\n return {};\n}\n\n/**\n * Inits the loading of member achievements.\n * @param {Object} state\n * @param {String} action.handle\n * @param {String} action.uuid\n * @return {Object} New state.\n */\nfunction onGetAchievementsInit(state, action) {\n var _action$payload = action.payload,\n handle = _action$payload.handle,\n uuid = _action$payload.uuid;\n\n var res = state[handle];\n res = res ? _lodash2.default.clone(res) : {};\n res.achievements = { loadingUuid: uuid };\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, res));\n}\n\n/**\n * Finalizes the loading of member achievements.\n * @param {Object} state\n * @param {Object} error\n * @param {Array} payload.data\n * @param {String} payload.handle\n * @param {String} payload.uuid\n * @return {Object} New state.\n */\nfunction onGetAchievementsDone(state, _ref2) {\n var error = _ref2.error,\n payload = _ref2.payload;\n\n if (error) {\n _logger2.default.error('Failed to load member achievements', payload);\n (0, _errors.fireErrorMessage)('Failed to load member achievements');\n return state;\n }\n\n var data = payload.data,\n handle = payload.handle,\n uuid = payload.uuid;\n\n if (uuid !== _lodash2.default.get(state[handle], 'achievements.loadingUuid')) return state;\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n achievements: { data: data, timestamp: Date.now() }\n })));\n}\n\n/**\n * Initializes the loading of member financial information.\n * @param {Object} state\n * @param {String} action.payload.handle\n * @param {String} action.payload.uuid\n * @return {Object} New state.\n */\nfunction onGetFinancesInit(state, action) {\n var _action$payload2 = action.payload,\n handle = _action$payload2.handle,\n uuid = _action$payload2.uuid;\n\n var envelop = (0, _extends21.default)({}, state[handle] || {}, {\n finances: {\n loadingUuid: uuid,\n timestamp: 0\n }\n });\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, envelop));\n}\n\n/**\n * Finalizes a pending loading of member financial information.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetFinancesDone(state, _ref3) {\n var error = _ref3.error,\n payload = _ref3.payload;\n\n if (error) {\n _logger2.default.error('Failed to get user financial info', payload);\n (0, _errors.fireErrorMessage)('Failed to get user financial info', '');\n return state;\n }\n\n var data = payload.data,\n handle = payload.handle,\n uuid = payload.uuid;\n\n if (uuid !== _lodash2.default.get(state[handle], 'finances.loadingUuid')) return state;\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n finances: {\n data: data,\n loadingUuid: '',\n timestamp: Date.now()\n }\n })));\n}\n\n/**\n * Inits the loading of member stats.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetStatsInit(state, action) {\n var _action$payload3 = action.payload,\n handle = _action$payload3.handle,\n uuid = _action$payload3.uuid;\n\n var res = state[handle];\n res = res ? _lodash2.default.clone(res) : {};\n res.stats = { loadingUuid: uuid };\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, res));\n}\n\n/**\n * Finalizes the loading of member stats.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetStatsDone(state, _ref4) {\n var error = _ref4.error,\n payload = _ref4.payload;\n\n if (error) {\n _logger2.default.error('Failed to get member stats', payload);\n (0, _errors.fireErrorMessage)('Failed to get member stats', '');\n return state;\n }\n\n var data = payload.data,\n handle = payload.handle,\n uuid = payload.uuid;\n\n if (uuid !== _lodash2.default.get(state[handle], 'stats.loadingUuid')) return state;\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n stats: { data: data, timestamp: Date.now() }\n })));\n}\n\n/**\n * Inits the loading of member stats history.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetStatsHistoryInit(state, action) {\n var _action$payload4 = action.payload,\n handle = _action$payload4.handle,\n uuid = _action$payload4.uuid;\n\n var res = state[handle];\n res = res ? _lodash2.default.clone(res) : {};\n res.statsHistory = { loadingUuid: uuid };\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, res));\n}\n\n/**\n * Finalizes the loading of member stats history.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetStatsHistoryDone(state, _ref5) {\n var error = _ref5.error,\n payload = _ref5.payload;\n\n if (error) {\n _logger2.default.error('Failed to get member statsHistory', payload);\n (0, _errors.fireErrorMessage)('Failed to get member statsHistory', '');\n return state;\n }\n\n var data = payload.data,\n handle = payload.handle,\n uuid = payload.uuid;\n\n if (uuid !== _lodash2.default.get(state[handle], 'statsHistory.loadingUuid')) return state;\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n statsHistory: { data: data, timestamp: Date.now() }\n })));\n}\n\n/**\n * Inits the loading of member stats distribution.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetStatsDistributionInit(state, action) {\n var _action$payload5 = action.payload,\n handle = _action$payload5.handle,\n uuid = _action$payload5.uuid;\n\n var res = state[handle];\n res = res ? _lodash2.default.clone(res) : {};\n res.statsDistribution = { loadingUuid: uuid };\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, res));\n}\n\n/**\n * Finalizes the loading of member stats distribution.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetStatsDistributionDone(state, _ref6) {\n var error = _ref6.error,\n payload = _ref6.payload;\n\n if (error) {\n _logger2.default.error('Failed to get member statsDistribution', payload);\n (0, _errors.fireErrorMessage)('Failed to get member statsDistribution', '');\n return state;\n }\n\n var data = payload.data,\n handle = payload.handle,\n uuid = payload.uuid;\n\n if (uuid !== _lodash2.default.get(state[handle], 'statsDistribution.loadingUuid')) return state;\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n statsDistribution: { data: data, timestamp: Date.now() }\n })));\n}\n\n/**\n * Inits the loading of member active challenges.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetActiveChallengesInit(state, action) {\n var handle = action.payload.handle;\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], { activeChallengesCount: null })));\n}\n\n/**\n * Finalizes the loading of member active challenges.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetActiveChallengesDone(state, _ref7) {\n var error = _ref7.error,\n payload = _ref7.payload;\n\n if (error) {\n _logger2.default.error('Failed to get member active challenges', payload);\n (0, _errors.fireErrorMessage)('Failed to get member active challenges', '');\n return state;\n }\n\n var handle = payload.handle,\n challenges = payload.challenges;\n\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n activeChallengesCount: challenges.length\n })));\n}\n\n/**\n * Inits the loading of member subtrack challenges.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetSubtrackChallengesInit(state, _ref8) {\n var payload = _ref8.payload;\n var handle = payload.handle,\n uuid = payload.uuid;\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], { loadingSubTrackChallengesUUID: uuid })));\n}\n\n/**\n * Finalizes the loading of member subtrack challenges.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetSubtrackChallengesDone(state, _ref9) {\n var error = _ref9.error,\n payload = _ref9.payload;\n\n if (error) {\n _logger2.default.error('Failed to get member subtrack challenges', payload);\n (0, _errors.fireErrorMessage)('Failed to get member subtrack challenges', '');\n return state;\n }\n\n var uuid = payload.uuid,\n challenges = payload.challenges,\n refresh = payload.refresh,\n handle = payload.handle;\n\n if (uuid !== state[handle].loadingSubTrackChallengesUUID) return state;\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n subtrackChallenges: state[handle].subtrackChallenges && !refresh ? [].concat((0, _toConsumableArray3.default)(state[handle].subtrackChallenges), (0, _toConsumableArray3.default)(challenges)) : challenges,\n // if current query returns 0 item, mark it completed\n subtrackChallengesHasMore: challenges && challenges.length > 0,\n loadingSubTrackChallengesUUID: ''\n })));\n}\n\n/**\n * Inits the loading of member SRMs.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetUserSRMInit(state, _ref10) {\n var payload = _ref10.payload;\n var handle = payload.handle,\n uuid = payload.uuid;\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], { loadingSRMUUID: uuid })));\n}\n\n/**\n * Finalizes the loading of member SRMs.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetUserSRMDone(state, _ref11) {\n var error = _ref11.error,\n payload = _ref11.payload;\n\n if (error) {\n _logger2.default.error('Failed to get member SRMs', payload);\n (0, _errors.fireErrorMessage)('Failed to get member SRMs', '');\n return state;\n }\n\n var uuid = payload.uuid,\n srms = payload.srms,\n refresh = payload.refresh,\n handle = payload.handle;\n\n if (uuid !== state[handle].loadingSRMUUID) return state;\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n userSRMs: state[handle].userSRMs && !refresh ? [].concat((0, _toConsumableArray3.default)(state[handle].userSRMs), (0, _toConsumableArray3.default)(srms)) : srms,\n userSRMHasMore: srms && srms.length > 0, // if current query returns 0 item, mark it completed\n loadingSRMUUID: ''\n })));\n}\n\n/**\n * Inits the loading of member marathons.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetUserMarathonInit(state, _ref12) {\n var payload = _ref12.payload;\n var handle = payload.handle,\n uuid = payload.uuid;\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], { loadingMarathonUUID: uuid })));\n}\n\n/**\n * Finalizes the loading of member marathons.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetUserMarathonDone(state, _ref13) {\n var error = _ref13.error,\n payload = _ref13.payload;\n\n if (error) {\n _logger2.default.error('Failed to get member marathons', payload);\n (0, _errors.fireErrorMessage)('Failed to get member marathons', '');\n return state;\n }\n\n var uuid = payload.uuid,\n marathons = payload.marathons,\n refresh = payload.refresh,\n handle = payload.handle;\n\n if (uuid !== state[handle].loadingMarathonUUID) return state;\n\n return (0, _extends21.default)({}, state, (0, _defineProperty3.default)({}, handle, (0, _extends21.default)({}, state[handle], {\n userMarathons: state[handle].userMarathons && !refresh ? [].concat((0, _toConsumableArray3.default)(state[handle].userMarathons), (0, _toConsumableArray3.default)(marathons.challenges)) : marathons.challenges,\n // if current query returns 0 item, mark it completed\n userMarathonHasMore: marathons && marathons.challenges && marathons.challenges.length > 0,\n loadingMarathonUUID: ''\n })));\n}\n\n/**\n * Creates a new Members reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Members reducer.\n */\nfunction create() {\n var _handleActions;\n\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var a = _members2.default.members;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.drop, onDrop), (0, _defineProperty3.default)(_handleActions, a.dropAll, onDropAll), (0, _defineProperty3.default)(_handleActions, a.getAchievementsInit, onGetAchievementsInit), (0, _defineProperty3.default)(_handleActions, a.getAchievementsDone, onGetAchievementsDone), (0, _defineProperty3.default)(_handleActions, a.getAchievementsV3Done, onGetAchievementsDone), (0, _defineProperty3.default)(_handleActions, a.getFinancesInit, onGetFinancesInit), (0, _defineProperty3.default)(_handleActions, a.getFinancesDone, onGetFinancesDone), (0, _defineProperty3.default)(_handleActions, a.getStatsInit, onGetStatsInit), (0, _defineProperty3.default)(_handleActions, a.getStatsDone, onGetStatsDone), (0, _defineProperty3.default)(_handleActions, a.getStatsHistoryInit, onGetStatsHistoryInit), (0, _defineProperty3.default)(_handleActions, a.getStatsHistoryDone, onGetStatsHistoryDone), (0, _defineProperty3.default)(_handleActions, a.getStatsDistributionInit, onGetStatsDistributionInit), (0, _defineProperty3.default)(_handleActions, a.getStatsDistributionDone, onGetStatsDistributionDone), (0, _defineProperty3.default)(_handleActions, a.getActiveChallengesInit, onGetActiveChallengesInit), (0, _defineProperty3.default)(_handleActions, a.getActiveChallengesDone, onGetActiveChallengesDone), (0, _defineProperty3.default)(_handleActions, a.getSubtrackChallengesInit, onGetSubtrackChallengesInit), (0, _defineProperty3.default)(_handleActions, a.getSubtrackChallengesDone, onGetSubtrackChallengesDone), (0, _defineProperty3.default)(_handleActions, a.getUserSrmInit, onGetUserSRMInit), (0, _defineProperty3.default)(_handleActions, a.getUserSrmDone, onGetUserSRMDone), (0, _defineProperty3.default)(_handleActions, a.getUserMarathonInit, onGetUserMarathonInit), (0, _defineProperty3.default)(_handleActions, a.getUserMarathonDone, onGetUserMarathonDone), _handleActions), initialState);\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onDrop, 'onDrop', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onDropAll, 'onDropAll', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetAchievementsInit, 'onGetAchievementsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetAchievementsDone, 'onGetAchievementsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetFinancesInit, 'onGetFinancesInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetFinancesDone, 'onGetFinancesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetStatsInit, 'onGetStatsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetStatsDone, 'onGetStatsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetStatsHistoryInit, 'onGetStatsHistoryInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetStatsHistoryDone, 'onGetStatsHistoryDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetStatsDistributionInit, 'onGetStatsDistributionInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetStatsDistributionDone, 'onGetStatsDistributionDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetActiveChallengesInit, 'onGetActiveChallengesInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetActiveChallengesDone, 'onGetActiveChallengesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetSubtrackChallengesInit, 'onGetSubtrackChallengesInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetSubtrackChallengesDone, 'onGetSubtrackChallengesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetUserSRMInit, 'onGetUserSRMInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetUserSRMDone, 'onGetUserSRMDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetUserMarathonInit, 'onGetUserMarathonInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(onGetUserMarathonDone, 'onGetUserMarathonDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/members.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/members.js?");
/***/ }),
@@ -747,7 +783,19 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _smp = __webpack_require__(/*! ../actions/smp */ \"./src/actions/smp.js\");\n\nvar _smp2 = _interopRequireDefault(_smp);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.my-submissions-management\"\n * @desc This reducer and corresponding actions control the logic for\n * submission management.\n * @todo Document state segment structure.\n */\n\n\n/**\n * Creates a new Submission management reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Submission management reducer.\n */\nfunction create(initialState) {\n var _handleActions;\n\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, _smp2.default.smp.deleteSubmissionDone, function (state) {\n return (0, _extends3.default)({}, state, {\n deletingSubmission: false\n });\n }), (0, _defineProperty3.default)(_handleActions, _smp2.default.smp.deleteSubmissionInit, function (state) {\n return (0, _extends3.default)({}, state, {\n deletingSubmission: true\n });\n }), _handleActions), _lodash2.default.defaults(initialState, {}));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/my-submissions-management.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/my-submissions-management.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/my-submissions-management.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/my-submissions-management.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _smp = __webpack_require__(/*! ../actions/smp */ \"./src/actions/smp.js\");\n\nvar _smp2 = _interopRequireDefault(_smp);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.my-submissions-management\"\n * @desc This reducer and corresponding actions control the logic for\n * submission management.\n * @todo Document state segment structure.\n */\n\n\n/**\n * Creates a new Submission management reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Submission management reducer.\n */\nfunction create(initialState) {\n var _handleActions;\n\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, _smp2.default.smp.deleteSubmissionDone, function (state) {\n return (0, _extends3.default)({}, state, {\n deletingSubmission: false\n });\n }), (0, _defineProperty3.default)(_handleActions, _smp2.default.smp.deleteSubmissionInit, function (state) {\n return (0, _extends3.default)({}, state, {\n deletingSubmission: true\n });\n }), _handleActions), _lodash2.default.defaults(initialState, {}));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/my-submissions-management.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/my-submissions-management.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/my-submissions-management.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/my-submissions-management.js?");
+
+/***/ }),
+
+/***/ "./src/reducers/notifications.js":
+/*!***************************************!*\
+ !*** ./src/reducers/notifications.js ***!
+ \***************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _notifications = __webpack_require__(/*! ../actions/notifications */ \"./src/actions/notifications.js\");\n\nvar _notifications2 = _interopRequireDefault(_notifications);\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.notifications\"\n * @desc Reducer for {@link module:actions.notifications} actions.\n *\n * State segment managed by this reducer has the following strcuture:\n * @param {Array} authenticating=true `true` if authentication is still in\n * progress; `false` if it has already completed or failed.\n * @param {Object} profile=null Topcoder user profile.\n * @param {String} tokenV2='' Topcoder v2 auth token.\n * @param {String} tokenV3='' Topcoder v3 auth token.\n * @param {Object} user=null Topcoder user object (user information stored in\n * v3 auth token).\n */\n\n/**\n * Handles NOTIFICATIONS/GET_NOTIFICATIONS_INIT action.\n * @param {Object} state\n * @return {Object} New state\n */\nfunction onGetNotificationsInit(state) {\n return (0, _extends3.default)({}, state);\n}\n\n/**\n * Handles NOTIFICATIONS/GET_NOTIFICATIONS_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetNotificationsDone(state, _ref) {\n var error = _ref.error,\n payload = _ref.payload;\n\n if (error) {\n _logger2.default.error('Failed to get notifications!', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to load the notifications', 'Please, try again a bit later');\n return (0, _extends3.default)({}, state, {\n fetchNotificationsFailure: true,\n items: []\n });\n }\n\n return (0, _extends3.default)({}, state, {\n items: payload,\n fetchNotificationsFailure: false\n });\n}\n\n/**\n * Handles NOTIFICATIONS/MARK_NOTIFICATION_AS_INIT action.\n * @param {Object} state\n * @return {Object} New state\n */\nfunction onMarkNotificationAsReadInit(state) {\n return (0, _extends3.default)({}, state);\n}\n\n/**\n * Handles NOTIFICATIONS/MARK_NOTIFICATION_AS_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onMarkNotificationAsReadDone(state, _ref2) {\n var error = _ref2.error,\n payload = _ref2.payload;\n\n if (error) {\n _logger2.default.error('Failed to mark notification as read!', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to mark the notification as read', 'Please, try again a bit later');\n return (0, _extends3.default)({}, state, {\n fetchNotificationsFailure: true\n });\n }\n\n var notifications = state.items;\n var itemIndex = state.items.findIndex(function (item) {\n return item.id === payload.id;\n });\n notifications[itemIndex].isRead = true;\n\n return (0, _extends3.default)({}, state, {\n fetchNotificationsFailure: false,\n items: notifications\n });\n}\n\n/**\n * Handles NOTIFICATIONS/MARK_ALL_NOTIFICATION_AS_READ_INIT action.\n * @param {Object} state\n * @return {Object} New state\n */\nfunction onMarkAllNotificationAsReadInit(state) {\n return (0, _extends3.default)({}, state);\n}\n\n/**\n * Handles NOTIFICATIONS/MARK_ALL_NOTIFICATION_AS_READ_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onMarkAllNotificationAsReadDone(state, _ref3) {\n var error = _ref3.error,\n payload = _ref3.payload;\n\n if (error) {\n _logger2.default.error('Failed to mark notification as read!', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to mark the notification as read', 'Please, try again a bit later');\n return (0, _extends3.default)({}, state, {\n fetchNotificationsFailure: true\n });\n }\n\n var notifications = state.items;\n notifications.forEach(function (item, index) {\n notifications[index].isRead = true;\n });\n\n return (0, _extends3.default)({}, state, {\n fetchNotificationsFailure: true,\n items: notifications\n });\n}\n\n/**\n * Handles NOTIFICATIONS/MARK_ALL_NOTIFICATION_AS_SEEN_INIT action.\n * @param {Object} state\n * @return {Object} New state\n */\nfunction onMarkAllNotificationAsSeenInit(state) {\n return (0, _extends3.default)({}, state);\n}\n\n/**\n * Handles NOTIFICATIONS/MARK_ALL_NOTIFICATION_AS_SEEN_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onMarkAllNotificationAsSeenDone(state, _ref4) {\n var error = _ref4.error,\n payload = _ref4.payload;\n\n if (error) {\n _logger2.default.error('Failed to mark notification as seen!', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to mark the notification as seen', 'Please, try again a bit later');\n return (0, _extends3.default)({}, state, {\n fetchNotificationsFailure: true\n });\n }\n\n var items = payload.split('-');\n var notifications = state.items;\n state.items.forEach(function (item, index) {\n if (items.includes(String(item.id))) {\n notifications[index].isSeen = true;\n }\n });\n\n return (0, _extends3.default)({}, state, {\n fetchNotificationsFailure: false,\n items: notifications\n });\n}\n\n/**\n * Handles NOTIFICATIONS/DISMISS_CHALLENGE_NOTIFICATIONS_INIT action.\n * @param {Object} state\n * @return {Object} New state\n */\nfunction onDismissChallengeNotificationsInit(state) {\n return (0, _extends3.default)({}, state);\n}\n\n/**\n * Handles NOTIFICATIONS/DISMISS_CHALLENGE_NOTIFICATIONS_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onDismissChallengeNotificationsDone(state, _ref5) {\n var error = _ref5.error,\n payload = _ref5.payload;\n\n if (error) {\n _logger2.default.error('Failed to dismiss notification!', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to dismiss the notification', 'Please, try again a bit later');\n return (0, _extends3.default)({}, state, {\n fetchNotificationsFailure: true,\n items: []\n });\n }\n\n return (0, _extends3.default)({}, state, {\n fetchNotificationsFailure: false\n });\n}\n\n/**\n * Creates a new Members reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Members reducer.\n */\nfunction create() {\n var _handleActions;\n\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var a = _notifications2.default.notifications;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.getNotificationsInit, onGetNotificationsInit), (0, _defineProperty3.default)(_handleActions, a.getNotificationsDone, onGetNotificationsDone), (0, _defineProperty3.default)(_handleActions, a.markNotificationAsReadInit, onMarkNotificationAsReadInit), (0, _defineProperty3.default)(_handleActions, a.markNotificationAsReadDone, onMarkNotificationAsReadDone), (0, _defineProperty3.default)(_handleActions, a.markAllNotificationAsReadInit, onMarkAllNotificationAsReadInit), (0, _defineProperty3.default)(_handleActions, a.markAllNotificationAsReadDone, onMarkAllNotificationAsReadDone), (0, _defineProperty3.default)(_handleActions, a.markAllNotificationAsSeenInit, onMarkAllNotificationAsSeenInit), (0, _defineProperty3.default)(_handleActions, a.markAllNotificationAsSeenDone, onMarkAllNotificationAsSeenDone), (0, _defineProperty3.default)(_handleActions, a.dismissChallengeNotificationsInit, onDismissChallengeNotificationsInit), (0, _defineProperty3.default)(_handleActions, a.dismissChallengeNotificationsDone, onDismissChallengeNotificationsDone), _handleActions), initialState);\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onGetNotificationsInit, 'onGetNotificationsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/notifications.js');\n reactHotLoader.register(onGetNotificationsDone, 'onGetNotificationsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/notifications.js');\n reactHotLoader.register(onMarkNotificationAsReadInit, 'onMarkNotificationAsReadInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/notifications.js');\n reactHotLoader.register(onMarkNotificationAsReadDone, 'onMarkNotificationAsReadDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/notifications.js');\n reactHotLoader.register(onMarkAllNotificationAsReadInit, 'onMarkAllNotificationAsReadInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/notifications.js');\n reactHotLoader.register(onMarkAllNotificationAsReadDone, 'onMarkAllNotificationAsReadDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/notifications.js');\n reactHotLoader.register(onMarkAllNotificationAsSeenInit, 'onMarkAllNotificationAsSeenInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/notifications.js');\n reactHotLoader.register(onMarkAllNotificationAsSeenDone, 'onMarkAllNotificationAsSeenDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/notifications.js');\n reactHotLoader.register(onDismissChallengeNotificationsInit, 'onDismissChallengeNotificationsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/notifications.js');\n reactHotLoader.register(onDismissChallengeNotificationsDone, 'onDismissChallengeNotificationsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/notifications.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/notifications.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/notifications.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/notifications.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/notifications.js?");
/***/ }),
@@ -759,7 +807,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _toConsumableArray2 = __webpack_require__(/*! babel-runtime/helpers/toConsumableArray */ \"babel-runtime/helpers/toConsumableArray\");\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _profile = __webpack_require__(/*! ../actions/profile */ \"./src/actions/profile.js\");\n\nvar _profile2 = _interopRequireDefault(_profile);\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.profile\"\n * @desc Reducer for Profile API data\n * @todo Document reducer state structure.\n */\n\n\n/**\n * Handles PROFILE/GET_ACHIEVEMENTS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetAchievementsDone(state, _ref) {\n var payload = _ref.payload,\n error = _ref.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n achievements: payload.Achievements,\n copilot: payload.copilot,\n country: payload.country,\n loadingError: false\n });\n}\n\n/**\n * Handles PROFILE/GET_ACHIEVEMENTS_V3_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetAchievementsV3Done(state, _ref2) {\n var payload = _ref2.payload,\n error = _ref2.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n achievements: payload.achievements || [],\n copilot: payload.copilot,\n country: payload.country,\n loadingError: false\n });\n}\n\n/**\n * Handles PROFILE/GET_EXTERNAL_ACCOUNTS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetExternalAccountsDone(state, _ref3) {\n var payload = _ref3.payload,\n error = _ref3.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n externalAccounts: payload\n });\n}\n\n/**\n * Handles PROFILE/GET_EXTERNAL_LINKS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetExternalLinksDone(state, _ref4) {\n var payload = _ref4.payload,\n error = _ref4.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n externalLinks: payload\n });\n}\n\n/**\n * Handles PROFILE/GET_INFO_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetInfoDone(state, _ref5) {\n var payload = _ref5.payload,\n error = _ref5.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, { info: payload, loadingError: false });\n}\n\n/**\n * Handles PROFILE/GET_SKILLS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetSkillsDone(state, _ref6) {\n var payload = _ref6.payload,\n error = _ref6.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, { skills: payload.skills, loadingError: false });\n}\n\n/**\n * Handles PROFILE/GET_STATS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetStatsDone(state, _ref7) {\n var payload = _ref7.payload,\n error = _ref7.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, { stats: payload, loadingError: false });\n}\n\n/**\n * Handles PROFILE/GET_LINKED_ACCOUNTS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetLinkedAccountsDone(state, _ref8) {\n var payload = _ref8.payload,\n error = _ref8.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, { linkedAccounts: payload.profiles, loadingError: false });\n}\n\n/**\n * Handles PROFILE/GET_CREDENTIAL_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetCredentialDone(state, _ref9) {\n var payload = _ref9.payload,\n error = _ref9.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, { credential: payload.credential, loadingError: false });\n}\n\n/**\n * Handles PROFILE/GET_EMAIL_PREFERENCES_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetEmailPreferencesDone(state, _ref10) {\n var payload = _ref10.payload,\n error = _ref10.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, { emailPreferences: payload.subscriptions, loadingError: false });\n}\n\n/**\n * Handles PROFILE/UPLOAD_PHOTO_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onUploadPhotoDone(state, _ref11) {\n var payload = _ref11.payload,\n error = _ref11.error;\n\n var newState = (0, _extends3.default)({}, state, { uploadingPhoto: false });\n\n if (error) {\n _logger2.default.error('Failed to upload user photo', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to upload photo!');\n return newState;\n }\n\n if (!newState.info || newState.info.handle !== payload.handle) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n info: (0, _extends3.default)({}, newState.info, {\n photoURL: payload.photoURL\n })\n });\n}\n\n/**\n * Handles PROFILE/DELETE_PHOTO_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onDeletePhotoDone(state, _ref12) {\n var payload = _ref12.payload,\n error = _ref12.error;\n\n var newState = (0, _extends3.default)({}, state, { deletingPhoto: false });\n\n if (error) {\n _logger2.default.error('Failed to delete user photo', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to delete photo!');\n return newState;\n }\n\n if (!newState.info || newState.info.handle !== payload.handle) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n info: (0, _extends3.default)({}, newState.info, {\n photoURL: null\n })\n });\n}\n\n/**\n * Handles PROFILE/UPDATE_PROFILE_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onUpdateProfileDone(state, _ref13) {\n var payload = _ref13.payload,\n error = _ref13.error;\n\n var newState = (0, _extends3.default)({}, state, { updatingProfile: false });\n\n if (payload.isEmailConflict) {\n return (0, _extends3.default)({}, newState, {\n isEmailConflict: true,\n updateProfileSuccess: false\n });\n }\n\n if (error) {\n _logger2.default.error('Failed to update user profile', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to update user profile!');\n return (0, _extends3.default)({}, newState, {\n updateProfileSuccess: false\n });\n }\n\n if (!newState.info || newState.info.handle !== payload.handle) {\n return (0, _extends3.default)({}, newState, {\n updateProfileSuccess: true\n });\n }\n\n return (0, _extends3.default)({}, newState, {\n info: (0, _extends3.default)({}, newState.info, payload),\n updateProfileSuccess: true\n });\n}\n\n/**\n * Handles PROFILE/ADD_SKILL_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onAddSkillDone(state, _ref14) {\n var payload = _ref14.payload,\n error = _ref14.error;\n\n var newState = (0, _extends3.default)({}, state, { addingSkill: false });\n\n if (error) {\n _logger2.default.error('Failed to add user skill', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to add user skill!');\n return newState;\n }\n\n if (newState.profileForHandle !== payload.handle) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n skills: payload.skills\n });\n}\n\n/**\n * Handles PROFILE/HIDE_SKILL_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onHideSkillDone(state, _ref15) {\n var payload = _ref15.payload,\n error = _ref15.error;\n\n var newState = (0, _extends3.default)({}, state, { hidingSkill: false });\n\n if (error) {\n _logger2.default.error('Failed to remove user skill', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to remove user skill!');\n return newState;\n }\n\n if (newState.profileForHandle !== payload.handle) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n skills: payload.skills\n });\n}\n\n/**\n * Handles PROFILE/ADD_WEB_LINK_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onAddWebLinkDone(state, _ref16) {\n var payload = _ref16.payload,\n error = _ref16.error;\n\n var newState = (0, _extends3.default)({}, state, { addingWebLink: false });\n\n if (error) {\n _logger2.default.error('Failed to add web link', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to add web link!');\n return newState;\n }\n\n if (newState.profileForHandle !== payload.handle || !payload.data) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n externalLinks: [].concat((0, _toConsumableArray3.default)(newState.externalLinks), [payload.data])\n });\n}\n\n/**\n * Handles PROFILE/DELETE_WEB_LINK_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onDeleteWebLinkDone(state, _ref17) {\n var payload = _ref17.payload,\n error = _ref17.error;\n\n var newState = (0, _extends3.default)({}, state, { deletingWebLink: false });\n\n if (error) {\n _logger2.default.error('Failed to delete web link', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to delete web link!');\n return newState;\n }\n\n if (newState.profileForHandle !== payload.handle || !payload.data) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n externalLinks: _lodash2.default.filter(newState.externalLinks, function (el) {\n return el.key !== payload.data.key;\n })\n });\n}\n\n/**\n * Handles PROFILE/LINK_EXTERNAL_ACCOUNT_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onLinkExternalAccountDone(state, _ref18) {\n var payload = _ref18.payload,\n error = _ref18.error;\n\n var newState = (0, _extends3.default)({}, state, { linkingExternalAccount: false });\n\n if (error) {\n _logger2.default.error('Failed to link external account', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to link external account!');\n return newState;\n }\n\n if (newState.profileForHandle !== payload.handle || !payload.data) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n linkedAccounts: [].concat((0, _toConsumableArray3.default)(newState.linkedAccounts), [payload.data])\n });\n}\n\n/**\n * Handles PROFILE/UNLINK_EXTERNAL_ACCOUNT_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onUnlinkExternalAccountDone(state, _ref19) {\n var payload = _ref19.payload,\n error = _ref19.error;\n\n var newState = (0, _extends3.default)({}, state, { unlinkingExternalAccount: false });\n\n if (error) {\n _logger2.default.error('Failed to unlink external account', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to unlink external account!');\n return newState;\n }\n\n if (newState.profileForHandle !== payload.handle) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n linkedAccounts: _lodash2.default.filter(newState.linkedAccounts, function (el) {\n return el.providerType !== payload.providerType;\n })\n });\n}\n\n/**\n * Handles PROFILE/SAVE_EMAIL_PREFERENCES_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onSaveEmailPreferencesDone(state, _ref20) {\n var payload = _ref20.payload,\n error = _ref20.error;\n\n var newState = (0, _extends3.default)({}, state, { savingEmailPreferences: false });\n\n if (error) {\n _logger2.default.error('Failed to save email preferences', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to save email preferences!');\n return newState;\n }\n\n if (newState.profileForHandle !== payload.handle || !payload.data) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n emailPreferences: payload.data.subscriptions\n });\n}\n\n/**\n * Handles PROFILE/UPDATE_PASSWORD_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onUpdatePasswordDone(state, _ref21) {\n var payload = _ref21.payload,\n error = _ref21.error;\n\n var newState = (0, _extends3.default)({}, state, { updatingPassword: false });\n\n if (error) {\n _logger2.default.error('Failed to update password', payload);\n (0, _errors.fireErrorMessage)('The old password is invalid');\n }\n return newState;\n}\n\n/**\n * Handles PROFILE/VERIFY_MEMBER_NEW_EMAIL_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onVerifyMemberNewEmailDone(state, _ref22) {\n var payload = _ref22.payload,\n error = _ref22.error;\n\n var newState = (0, _extends3.default)({}, state, { verifyingEmail: false });\n\n if (error) {\n _logger2.default.error('Failed to verify member new email', payload);\n return (0, _extends3.default)({}, newState, {\n verifyError: true\n });\n }\n\n return (0, _extends3.default)({}, newState, {\n verifyError: false,\n emailChangeResult: payload.data\n });\n}\n\n/**\n * Handles UPDATE_EMAIL_CONFLICT action\n * @param {Object} state\n * @param {Object} action Payload will be a boolean value\n * @return {Object} New state\n */\nfunction onUpdateEmailConflict(state, _ref23) {\n var payload = _ref23.payload;\n\n return (0, _extends3.default)({}, state, {\n isEmailConflict: payload\n });\n}\n\n/**\n * Creates a new Profile reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Profile reducer.\n */\nfunction create(initialState) {\n var _handleActions;\n\n var a = _profile2.default.profile;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.clearProfile, function (state) {\n return (0, _extends3.default)({}, state, { achievements: null, country: '', info: null, skills: null, stats: null\n });\n }), (0, _defineProperty3.default)(_handleActions, a.loadProfile, function (state, action) {\n return (0, _extends3.default)({}, state, { profileForHandle: action.payload });\n }), (0, _defineProperty3.default)(_handleActions, a.getAchievementsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getAchievementsDone, onGetAchievementsDone), (0, _defineProperty3.default)(_handleActions, a.getAchievementsV3Done, onGetAchievementsV3Done), (0, _defineProperty3.default)(_handleActions, a.getExternalAccountsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getExternalAccountsDone, onGetExternalAccountsDone), (0, _defineProperty3.default)(_handleActions, a.getExternalLinksInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getExternalLinksDone, onGetExternalLinksDone), (0, _defineProperty3.default)(_handleActions, a.getInfoInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getInfoDone, onGetInfoDone), (0, _defineProperty3.default)(_handleActions, a.getSkillsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getSkillsDone, onGetSkillsDone), (0, _defineProperty3.default)(_handleActions, a.getStatsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getStatsDone, onGetStatsDone), (0, _defineProperty3.default)(_handleActions, a.getLinkedAccountsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getLinkedAccountsDone, onGetLinkedAccountsDone), (0, _defineProperty3.default)(_handleActions, a.uploadPhotoInit, function (state) {\n return (0, _extends3.default)({}, state, { uploadingPhoto: true });\n }), (0, _defineProperty3.default)(_handleActions, a.uploadPhotoDone, onUploadPhotoDone), (0, _defineProperty3.default)(_handleActions, a.deletePhotoInit, function (state) {\n return (0, _extends3.default)({}, state, { deletingPhoto: true });\n }), (0, _defineProperty3.default)(_handleActions, a.deletePhotoDone, onDeletePhotoDone), (0, _defineProperty3.default)(_handleActions, a.updateProfileInit, function (state) {\n return (0, _extends3.default)({}, state, { updatingProfile: true });\n }), (0, _defineProperty3.default)(_handleActions, a.updateProfileDone, onUpdateProfileDone), (0, _defineProperty3.default)(_handleActions, a.addSkillInit, function (state) {\n return (0, _extends3.default)({}, state, { addingSkill: true });\n }), (0, _defineProperty3.default)(_handleActions, a.addSkillDone, onAddSkillDone), (0, _defineProperty3.default)(_handleActions, a.hideSkillInit, function (state) {\n return (0, _extends3.default)({}, state, { hidingSkill: true });\n }), (0, _defineProperty3.default)(_handleActions, a.hideSkillDone, onHideSkillDone), (0, _defineProperty3.default)(_handleActions, a.addWebLinkInit, function (state) {\n return (0, _extends3.default)({}, state, { addingWebLink: true });\n }), (0, _defineProperty3.default)(_handleActions, a.addWebLinkDone, onAddWebLinkDone), (0, _defineProperty3.default)(_handleActions, a.deleteWebLinkInit, function (state) {\n return (0, _extends3.default)({}, state, { deletingWebLink: true });\n }), (0, _defineProperty3.default)(_handleActions, a.deleteWebLinkDone, onDeleteWebLinkDone), (0, _defineProperty3.default)(_handleActions, a.linkExternalAccountInit, function (state) {\n return (0, _extends3.default)({}, state, { linkingExternalAccount: true });\n }), (0, _defineProperty3.default)(_handleActions, a.linkExternalAccountDone, onLinkExternalAccountDone), (0, _defineProperty3.default)(_handleActions, a.unlinkExternalAccountInit, function (state) {\n return (0, _extends3.default)({}, state, { unlinkingExternalAccount: true });\n }), (0, _defineProperty3.default)(_handleActions, a.unlinkExternalAccountDone, onUnlinkExternalAccountDone), (0, _defineProperty3.default)(_handleActions, a.getCredentialInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getCredentialDone, onGetCredentialDone), (0, _defineProperty3.default)(_handleActions, a.getEmailPreferencesInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getEmailPreferencesDone, onGetEmailPreferencesDone), (0, _defineProperty3.default)(_handleActions, a.saveEmailPreferencesInit, function (state) {\n return (0, _extends3.default)({}, state, { savingEmailPreferences: true });\n }), (0, _defineProperty3.default)(_handleActions, a.saveEmailPreferencesDone, onSaveEmailPreferencesDone), (0, _defineProperty3.default)(_handleActions, a.updatePasswordInit, function (state) {\n return (0, _extends3.default)({}, state, { updatingPassword: true });\n }), (0, _defineProperty3.default)(_handleActions, a.updatePasswordDone, onUpdatePasswordDone), (0, _defineProperty3.default)(_handleActions, a.verifyMemberNewEmailInit, function (state) {\n return (0, _extends3.default)({}, state, { verifyingEmail: true });\n }), (0, _defineProperty3.default)(_handleActions, a.verifyMemberNewEmailDone, onVerifyMemberNewEmailDone), (0, _defineProperty3.default)(_handleActions, a.updateEmailConflict, onUpdateEmailConflict), _handleActions), _lodash2.default.defaults(initialState, {\n achievements: null,\n copilot: false,\n country: '',\n info: null,\n loadingError: false,\n skills: null,\n stats: null,\n verifyError: null,\n updateProfileSuccess: null\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @returns {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/* Reducer with the default initial state. */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onGetAchievementsDone, 'onGetAchievementsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetAchievementsV3Done, 'onGetAchievementsV3Done', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetExternalAccountsDone, 'onGetExternalAccountsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetExternalLinksDone, 'onGetExternalLinksDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetInfoDone, 'onGetInfoDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetSkillsDone, 'onGetSkillsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetStatsDone, 'onGetStatsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetLinkedAccountsDone, 'onGetLinkedAccountsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetCredentialDone, 'onGetCredentialDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetEmailPreferencesDone, 'onGetEmailPreferencesDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onUploadPhotoDone, 'onUploadPhotoDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onDeletePhotoDone, 'onDeletePhotoDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onUpdateProfileDone, 'onUpdateProfileDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onAddSkillDone, 'onAddSkillDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onHideSkillDone, 'onHideSkillDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onAddWebLinkDone, 'onAddWebLinkDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onDeleteWebLinkDone, 'onDeleteWebLinkDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onLinkExternalAccountDone, 'onLinkExternalAccountDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onUnlinkExternalAccountDone, 'onUnlinkExternalAccountDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onSaveEmailPreferencesDone, 'onSaveEmailPreferencesDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onUpdatePasswordDone, 'onUpdatePasswordDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onVerifyMemberNewEmailDone, 'onVerifyMemberNewEmailDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onUpdateEmailConflict, 'onUpdateEmailConflict', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/profile.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/profile.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _toConsumableArray2 = __webpack_require__(/*! babel-runtime/helpers/toConsumableArray */ \"babel-runtime/helpers/toConsumableArray\");\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _profile = __webpack_require__(/*! ../actions/profile */ \"./src/actions/profile.js\");\n\nvar _profile2 = _interopRequireDefault(_profile);\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.profile\"\n * @desc Reducer for Profile API data\n * @todo Document reducer state structure.\n */\n\n\n/**\n * Handles PROFILE/GET_ACHIEVEMENTS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetAchievementsDone(state, _ref) {\n var payload = _ref.payload,\n error = _ref.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n achievements: payload.Achievements,\n copilot: payload.copilot,\n country: payload.country,\n loadingError: false\n });\n}\n\n/**\n * Handles PROFILE/GET_ACHIEVEMENTS_V3_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetAchievementsV3Done(state, _ref2) {\n var payload = _ref2.payload,\n error = _ref2.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n achievements: payload.achievements || [],\n copilot: payload.copilot,\n country: payload.country,\n loadingError: false\n });\n}\n\n/**\n * Handles PROFILE/GET_EXTERNAL_ACCOUNTS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetExternalAccountsDone(state, _ref3) {\n var payload = _ref3.payload,\n error = _ref3.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n externalAccounts: payload\n });\n}\n\n/**\n * Handles PROFILE/GET_EXTERNAL_LINKS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetExternalLinksDone(state, _ref4) {\n var payload = _ref4.payload,\n error = _ref4.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, {\n externalLinks: payload\n });\n}\n\n/**\n * Handles PROFILE/GET_INFO_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetInfoDone(state, _ref5) {\n var payload = _ref5.payload,\n error = _ref5.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, { info: payload, loadingError: false });\n}\n\n/**\n * Handles PROFILE/GET_SKILLS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetSkillsDone(state, _ref6) {\n var payload = _ref6.payload,\n error = _ref6.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, { skills: payload.skills, loadingError: false });\n}\n\n/**\n * Handles PROFILE/GET_STATS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetStatsDone(state, _ref7) {\n var payload = _ref7.payload,\n error = _ref7.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, { stats: payload, loadingError: false });\n}\n\n/**\n * Handles PROFILE/GET_LINKED_ACCOUNTS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetLinkedAccountsDone(state, _ref8) {\n var payload = _ref8.payload,\n error = _ref8.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, { linkedAccounts: payload.profiles, loadingError: false });\n}\n\n/**\n * Handles PROFILE/GET_CREDENTIAL_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetCredentialDone(state, _ref9) {\n var payload = _ref9.payload,\n error = _ref9.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, { credential: payload.credential, loadingError: false });\n}\n\n/**\n * Handles PROFILE/GET_EMAIL_PREFERENCES_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetEmailPreferencesDone(state, _ref10) {\n var payload = _ref10.payload,\n error = _ref10.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, { loadingError: true });\n }\n\n return (0, _extends3.default)({}, state, { emailPreferences: payload.subscriptions, loadingError: false });\n}\n\n/**\n * Handles PROFILE/UPLOAD_PHOTO_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onUploadPhotoDone(state, _ref11) {\n var payload = _ref11.payload,\n error = _ref11.error;\n\n var newState = (0, _extends3.default)({}, state, { uploadingPhoto: false });\n\n if (error) {\n _logger2.default.error('Failed to upload user photo', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to upload photo!');\n return newState;\n }\n\n if (!newState.info || newState.info.handle !== payload.handle) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n info: (0, _extends3.default)({}, newState.info, {\n photoURL: payload.photoURL\n })\n });\n}\n\n/**\n * Handles PROFILE/DELETE_PHOTO_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onDeletePhotoDone(state, _ref12) {\n var payload = _ref12.payload,\n error = _ref12.error;\n\n var newState = (0, _extends3.default)({}, state, { deletingPhoto: false });\n\n if (error) {\n _logger2.default.error('Failed to delete user photo', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to delete photo!');\n return newState;\n }\n\n if (!newState.info || newState.info.handle !== payload.handle) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n info: (0, _extends3.default)({}, newState.info, {\n photoURL: null\n })\n });\n}\n\n/**\n * Handles PROFILE/UPDATE_PROFILE_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onUpdateProfileDone(state, _ref13) {\n var payload = _ref13.payload,\n error = _ref13.error;\n\n var newState = (0, _extends3.default)({}, state, { updatingProfile: false });\n\n if (payload.isEmailConflict) {\n return (0, _extends3.default)({}, newState, {\n isEmailConflict: true,\n updateProfileSuccess: false\n });\n }\n\n if (error) {\n _logger2.default.error('Failed to update user profile', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to update user profile!');\n return (0, _extends3.default)({}, newState, {\n updateProfileSuccess: false\n });\n }\n\n if (!newState.info || newState.info.handle !== payload.handle) {\n return (0, _extends3.default)({}, newState, {\n updateProfileSuccess: true\n });\n }\n\n return (0, _extends3.default)({}, newState, {\n info: (0, _extends3.default)({}, newState.info, payload),\n updateProfileSuccess: true\n });\n}\n\n/**\n * Handles PROFILE/ADD_SKILL_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onAddSkillDone(state, _ref14) {\n var payload = _ref14.payload,\n error = _ref14.error;\n\n var newState = (0, _extends3.default)({}, state, { addingSkill: false });\n\n if (error) {\n _logger2.default.error('Failed to add user skill', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to add user skill!');\n return newState;\n }\n\n if (newState.profileForHandle !== payload.handle) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n skills: payload.skills\n });\n}\n\n/**\n * Handles PROFILE/HIDE_SKILL_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onHideSkillDone(state, _ref15) {\n var payload = _ref15.payload,\n error = _ref15.error;\n\n var newState = (0, _extends3.default)({}, state, { hidingSkill: false });\n\n if (error) {\n _logger2.default.error('Failed to remove user skill', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to remove user skill!');\n return newState;\n }\n\n if (newState.profileForHandle !== payload.handle) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n skills: payload.skills\n });\n}\n\n/**\n * Handles PROFILE/ADD_WEB_LINK_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onAddWebLinkDone(state, _ref16) {\n var payload = _ref16.payload,\n error = _ref16.error;\n\n var newState = (0, _extends3.default)({}, state, { addingWebLink: false });\n\n if (error) {\n _logger2.default.error('Failed to add web link', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to add web link!');\n return newState;\n }\n\n if (newState.profileForHandle !== payload.handle || !payload.data) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n externalLinks: [].concat((0, _toConsumableArray3.default)(newState.externalLinks), [payload.data])\n });\n}\n\n/**\n * Handles PROFILE/DELETE_WEB_LINK_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onDeleteWebLinkDone(state, _ref17) {\n var payload = _ref17.payload,\n error = _ref17.error;\n\n var newState = (0, _extends3.default)({}, state, { deletingWebLink: false });\n\n if (error) {\n _logger2.default.error('Failed to delete web link', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to delete web link!');\n return newState;\n }\n\n if (newState.profileForHandle !== payload.handle || !payload.data) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n externalLinks: _lodash2.default.filter(newState.externalLinks, function (el) {\n return el.key !== payload.data.key;\n })\n });\n}\n\n/**\n * Handles PROFILE/LINK_EXTERNAL_ACCOUNT_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onLinkExternalAccountDone(state, _ref18) {\n var payload = _ref18.payload,\n error = _ref18.error;\n\n var newState = (0, _extends3.default)({}, state, { linkingExternalAccount: false });\n\n if (error) {\n _logger2.default.error('Failed to link external account', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to link external account!');\n return newState;\n }\n\n if (newState.profileForHandle !== payload.handle || !payload.data) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n linkedAccounts: [].concat((0, _toConsumableArray3.default)(newState.linkedAccounts), [payload.data])\n });\n}\n\n/**\n * Handles PROFILE/UNLINK_EXTERNAL_ACCOUNT_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onUnlinkExternalAccountDone(state, _ref19) {\n var payload = _ref19.payload,\n error = _ref19.error;\n\n var newState = (0, _extends3.default)({}, state, { unlinkingExternalAccount: false });\n\n if (error) {\n _logger2.default.error('Failed to unlink external account', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to unlink external account!');\n return newState;\n }\n\n if (newState.profileForHandle !== payload.handle) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n linkedAccounts: _lodash2.default.filter(newState.linkedAccounts, function (el) {\n return el.providerType !== payload.providerType;\n })\n });\n}\n\n/**\n * Handles PROFILE/SAVE_EMAIL_PREFERENCES_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onSaveEmailPreferencesDone(state, _ref20) {\n var payload = _ref20.payload,\n error = _ref20.error;\n\n var newState = (0, _extends3.default)({}, state, { savingEmailPreferences: false });\n\n if (error) {\n _logger2.default.error('Failed to save email preferences', payload);\n (0, _errors.fireErrorMessage)('ERROR: Failed to save email preferences!');\n return newState;\n }\n\n if (newState.profileForHandle !== payload.handle || !payload.data) {\n return newState;\n }\n\n return (0, _extends3.default)({}, newState, {\n emailPreferences: payload.data.subscriptions\n });\n}\n\n/**\n * Handles PROFILE/UPDATE_PASSWORD_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onUpdatePasswordDone(state, _ref21) {\n var payload = _ref21.payload,\n error = _ref21.error;\n\n var newState = (0, _extends3.default)({}, state, { updatingPassword: false });\n\n if (error) {\n _logger2.default.error('Failed to update password', payload);\n (0, _errors.fireErrorMessage)('The old password is invalid');\n }\n return newState;\n}\n\n/**\n * Handles PROFILE/VERIFY_MEMBER_NEW_EMAIL_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onVerifyMemberNewEmailDone(state, _ref22) {\n var payload = _ref22.payload,\n error = _ref22.error;\n\n var newState = (0, _extends3.default)({}, state, { verifyingEmail: false });\n\n if (error) {\n _logger2.default.error('Failed to verify member new email', payload);\n return (0, _extends3.default)({}, newState, {\n verifyError: true\n });\n }\n\n return (0, _extends3.default)({}, newState, {\n verifyError: false,\n emailChangeResult: payload.data\n });\n}\n\n/**\n * Handles UPDATE_EMAIL_CONFLICT action\n * @param {Object} state\n * @param {Object} action Payload will be a boolean value\n * @return {Object} New state\n */\nfunction onUpdateEmailConflict(state, _ref23) {\n var payload = _ref23.payload;\n\n return (0, _extends3.default)({}, state, {\n isEmailConflict: payload\n });\n}\n\n/**\n * Creates a new Profile reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Profile reducer.\n */\nfunction create(initialState) {\n var _handleActions;\n\n var a = _profile2.default.profile;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.clearProfile, function (state) {\n return (0, _extends3.default)({}, state, { achievements: null, country: '', info: null, skills: null, stats: null\n });\n }), (0, _defineProperty3.default)(_handleActions, a.loadProfile, function (state, action) {\n return (0, _extends3.default)({}, state, { profileForHandle: action.payload });\n }), (0, _defineProperty3.default)(_handleActions, a.getAchievementsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getAchievementsDone, onGetAchievementsDone), (0, _defineProperty3.default)(_handleActions, a.getAchievementsV3Done, onGetAchievementsV3Done), (0, _defineProperty3.default)(_handleActions, a.getExternalAccountsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getExternalAccountsDone, onGetExternalAccountsDone), (0, _defineProperty3.default)(_handleActions, a.getExternalLinksInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getExternalLinksDone, onGetExternalLinksDone), (0, _defineProperty3.default)(_handleActions, a.getInfoInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getInfoDone, onGetInfoDone), (0, _defineProperty3.default)(_handleActions, a.getSkillsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getSkillsDone, onGetSkillsDone), (0, _defineProperty3.default)(_handleActions, a.getStatsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getStatsDone, onGetStatsDone), (0, _defineProperty3.default)(_handleActions, a.getLinkedAccountsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getLinkedAccountsDone, onGetLinkedAccountsDone), (0, _defineProperty3.default)(_handleActions, a.uploadPhotoInit, function (state) {\n return (0, _extends3.default)({}, state, { uploadingPhoto: true });\n }), (0, _defineProperty3.default)(_handleActions, a.uploadPhotoDone, onUploadPhotoDone), (0, _defineProperty3.default)(_handleActions, a.deletePhotoInit, function (state) {\n return (0, _extends3.default)({}, state, { deletingPhoto: true });\n }), (0, _defineProperty3.default)(_handleActions, a.deletePhotoDone, onDeletePhotoDone), (0, _defineProperty3.default)(_handleActions, a.updateProfileInit, function (state) {\n return (0, _extends3.default)({}, state, { updatingProfile: true });\n }), (0, _defineProperty3.default)(_handleActions, a.updateProfileDone, onUpdateProfileDone), (0, _defineProperty3.default)(_handleActions, a.addSkillInit, function (state) {\n return (0, _extends3.default)({}, state, { addingSkill: true });\n }), (0, _defineProperty3.default)(_handleActions, a.addSkillDone, onAddSkillDone), (0, _defineProperty3.default)(_handleActions, a.hideSkillInit, function (state) {\n return (0, _extends3.default)({}, state, { hidingSkill: true });\n }), (0, _defineProperty3.default)(_handleActions, a.hideSkillDone, onHideSkillDone), (0, _defineProperty3.default)(_handleActions, a.addWebLinkInit, function (state) {\n return (0, _extends3.default)({}, state, { addingWebLink: true });\n }), (0, _defineProperty3.default)(_handleActions, a.addWebLinkDone, onAddWebLinkDone), (0, _defineProperty3.default)(_handleActions, a.deleteWebLinkInit, function (state) {\n return (0, _extends3.default)({}, state, { deletingWebLink: true });\n }), (0, _defineProperty3.default)(_handleActions, a.deleteWebLinkDone, onDeleteWebLinkDone), (0, _defineProperty3.default)(_handleActions, a.linkExternalAccountInit, function (state) {\n return (0, _extends3.default)({}, state, { linkingExternalAccount: true });\n }), (0, _defineProperty3.default)(_handleActions, a.linkExternalAccountDone, onLinkExternalAccountDone), (0, _defineProperty3.default)(_handleActions, a.unlinkExternalAccountInit, function (state) {\n return (0, _extends3.default)({}, state, { unlinkingExternalAccount: true });\n }), (0, _defineProperty3.default)(_handleActions, a.unlinkExternalAccountDone, onUnlinkExternalAccountDone), (0, _defineProperty3.default)(_handleActions, a.getCredentialInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getCredentialDone, onGetCredentialDone), (0, _defineProperty3.default)(_handleActions, a.getEmailPreferencesInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_handleActions, a.getEmailPreferencesDone, onGetEmailPreferencesDone), (0, _defineProperty3.default)(_handleActions, a.saveEmailPreferencesInit, function (state) {\n return (0, _extends3.default)({}, state, { savingEmailPreferences: true });\n }), (0, _defineProperty3.default)(_handleActions, a.saveEmailPreferencesDone, onSaveEmailPreferencesDone), (0, _defineProperty3.default)(_handleActions, a.updatePasswordInit, function (state) {\n return (0, _extends3.default)({}, state, { updatingPassword: true });\n }), (0, _defineProperty3.default)(_handleActions, a.updatePasswordDone, onUpdatePasswordDone), (0, _defineProperty3.default)(_handleActions, a.verifyMemberNewEmailInit, function (state) {\n return (0, _extends3.default)({}, state, { verifyingEmail: true });\n }), (0, _defineProperty3.default)(_handleActions, a.verifyMemberNewEmailDone, onVerifyMemberNewEmailDone), (0, _defineProperty3.default)(_handleActions, a.updateEmailConflict, onUpdateEmailConflict), _handleActions), _lodash2.default.defaults(initialState, {\n achievements: null,\n copilot: false,\n country: '',\n info: null,\n loadingError: false,\n skills: null,\n stats: null,\n verifyError: null,\n updateProfileSuccess: null\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @returns {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/* Reducer with the default initial state. */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onGetAchievementsDone, 'onGetAchievementsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetAchievementsV3Done, 'onGetAchievementsV3Done', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetExternalAccountsDone, 'onGetExternalAccountsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetExternalLinksDone, 'onGetExternalLinksDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetInfoDone, 'onGetInfoDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetSkillsDone, 'onGetSkillsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetStatsDone, 'onGetStatsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetLinkedAccountsDone, 'onGetLinkedAccountsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetCredentialDone, 'onGetCredentialDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onGetEmailPreferencesDone, 'onGetEmailPreferencesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onUploadPhotoDone, 'onUploadPhotoDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onDeletePhotoDone, 'onDeletePhotoDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onUpdateProfileDone, 'onUpdateProfileDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onAddSkillDone, 'onAddSkillDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onHideSkillDone, 'onHideSkillDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onAddWebLinkDone, 'onAddWebLinkDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onDeleteWebLinkDone, 'onDeleteWebLinkDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onLinkExternalAccountDone, 'onLinkExternalAccountDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onUnlinkExternalAccountDone, 'onUnlinkExternalAccountDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onSaveEmailPreferencesDone, 'onSaveEmailPreferencesDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onUpdatePasswordDone, 'onUpdatePasswordDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onVerifyMemberNewEmailDone, 'onVerifyMemberNewEmailDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(onUpdateEmailConflict, 'onUpdateEmailConflict', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/profile.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/profile.js?");
/***/ }),
@@ -771,7 +819,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _reviewOpportunity = __webpack_require__(/*! ../actions/reviewOpportunity */ \"./src/actions/reviewOpportunity.js\");\n\nvar _reviewOpportunity2 = _interopRequireDefault(_reviewOpportunity);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.reviewOpportunity\"\n * @desc Reducer for state.reviewOpportunity\n * @todo Document state structure.\n */\n\n/**\n * Generates a list of unique terms ids required for the open review roles\n * with an agreed field\n *\n * @param {Object} details Review Opportuny details from API\n * @return {Array} List of unique terms\n */\nfunction buildRequiredTermsList(details) {\n var roles = details.payments.map(function (payment) {\n return payment.role;\n });\n\n var requiredTerms = _lodash2.default.uniqBy(details.challenge.terms\n // Sometimes roles such as Primary Reviewer have no directly equal\n // terms entry. Include the plain Reviewer terms when present as a back-up.\n .filter(function (term) {\n return term.role === 'Reviewer' || _lodash2.default.includes(roles, term.role);\n }).map(function (term) {\n return _lodash2.default.pick(term, ['termsOfUseId', 'agreed', 'title']);\n }), function (term) {\n return term.termsOfUseId;\n });\n\n return requiredTerms || [];\n}\n\n/**\n * Handles REVIEW_OPPORTUNITY/GET__DETAILS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetDetailsDone(state, _ref) {\n var payload = _ref.payload,\n error = _ref.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, {\n authError: true,\n isLoadingDetails: false\n });\n }\n\n return (0, _extends3.default)({}, state, {\n details: payload,\n isLoadingDetails: false,\n requiredTerms: buildRequiredTermsList(payload)\n });\n}\n\n/**\n * Creates a new Review opportunity reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Review opportunity reducer.\n */\nfunction create(initialState) {\n var _redux$handleActions;\n\n var a = _reviewOpportunity2.default.reviewOpportunity;\n return _topcoderReactUtils.redux.handleActions((_redux$handleActions = {}, (0, _defineProperty3.default)(_redux$handleActions, a.cancelApplicationsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_redux$handleActions, a.cancelApplicationsDone, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_redux$handleActions, a.getDetailsInit, function (state) {\n return (0, _extends3.default)({}, state, { isLoadingDetails: true });\n }), (0, _defineProperty3.default)(_redux$handleActions, a.getDetailsDone, onGetDetailsDone), (0, _defineProperty3.default)(_redux$handleActions, a.submitApplicationsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_redux$handleActions, a.submitApplicationsDone, function (state) {\n return state;\n }), _redux$handleActions), _lodash2.default.defaults(initialState, {\n authError: false,\n details: null,\n isLoadingDetails: false,\n requiredTerms: []\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @param {Object} options={} Optional. Options object for initial state.\n * @param {String} [options.auth.tokenV2=''] The V2 auth token\n * @param {String} [options.auth.tokenV3=''] The V3 auth token\n * @param {String} [options.reviewOpportunity.challenge.id=''] The challenge id.\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var challengeId = _lodash2.default.get(options, 'reviewOpportunity.challenge.id');\n\n if (challengeId) {\n var tokens = {\n tokenV2: _lodash2.default.get(options.auth, 'tokenV2'),\n tokenV3: _lodash2.default.get(options.auth, 'tokenV3')\n };\n\n var a = _reviewOpportunity2.default.reviewOpportunity;\n return _topcoderReactUtils.redux.resolveAction(a.getDetailsDone(challengeId, tokens.tokenV3)).then(function (_ref2) {\n var error = _ref2.error,\n payload = _ref2.payload;\n\n var initialState = {};\n initialState.details = error ? null : payload;\n initialState.requiredTerms = error ? [] : buildRequiredTermsList(payload);\n create(initialState);\n });\n }\n\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(buildRequiredTermsList, 'buildRequiredTermsList', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/reviewOpportunity.js');\n reactHotLoader.register(onGetDetailsDone, 'onGetDetailsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/reviewOpportunity.js');\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/reviewOpportunity.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/reviewOpportunity.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/reviewOpportunity.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/reviewOpportunity.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _reviewOpportunity = __webpack_require__(/*! ../actions/reviewOpportunity */ \"./src/actions/reviewOpportunity.js\");\n\nvar _reviewOpportunity2 = _interopRequireDefault(_reviewOpportunity);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.reviewOpportunity\"\n * @desc Reducer for state.reviewOpportunity\n * @todo Document state structure.\n */\n\n/**\n * Generates a list of unique terms ids required for the open review roles\n * with an agreed field\n *\n * @param {Object} details Review Opportuny details from API\n * @return {Array} List of unique terms\n */\nfunction buildRequiredTermsList(details) {\n var roles = details.payments.map(function (payment) {\n return payment.role;\n });\n\n var requiredTerms = _lodash2.default.uniqBy(details.challenge.terms\n // Sometimes roles such as Primary Reviewer have no directly equal\n // terms entry. Include the plain Reviewer terms when present as a back-up.\n .filter(function (term) {\n return term.role === 'Reviewer' || _lodash2.default.includes(roles, term.role);\n }).map(function (term) {\n return _lodash2.default.pick(term, ['termsOfUseId', 'agreed', 'title']);\n }), function (term) {\n return term.termsOfUseId;\n });\n\n return requiredTerms || [];\n}\n\n/**\n * Handles REVIEW_OPPORTUNITY/GET__DETAILS_DONE action.\n * @param {Object} state\n * @param {Object} action Payload will be JSON from api call\n * @return {Object} New state\n */\nfunction onGetDetailsDone(state, _ref) {\n var payload = _ref.payload,\n error = _ref.error;\n\n if (error) {\n return (0, _extends3.default)({}, state, {\n authError: true,\n isLoadingDetails: false\n });\n }\n\n return (0, _extends3.default)({}, state, {\n details: payload,\n isLoadingDetails: false,\n requiredTerms: buildRequiredTermsList(payload)\n });\n}\n\n/**\n * Creates a new Review opportunity reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Review opportunity reducer.\n */\nfunction create(initialState) {\n var _redux$handleActions;\n\n var a = _reviewOpportunity2.default.reviewOpportunity;\n return _topcoderReactUtils.redux.handleActions((_redux$handleActions = {}, (0, _defineProperty3.default)(_redux$handleActions, a.cancelApplicationsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_redux$handleActions, a.cancelApplicationsDone, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_redux$handleActions, a.getDetailsInit, function (state) {\n return (0, _extends3.default)({}, state, { isLoadingDetails: true });\n }), (0, _defineProperty3.default)(_redux$handleActions, a.getDetailsDone, onGetDetailsDone), (0, _defineProperty3.default)(_redux$handleActions, a.submitApplicationsInit, function (state) {\n return state;\n }), (0, _defineProperty3.default)(_redux$handleActions, a.submitApplicationsDone, function (state) {\n return state;\n }), _redux$handleActions), _lodash2.default.defaults(initialState, {\n authError: false,\n details: null,\n isLoadingDetails: false,\n requiredTerms: []\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @param {Object} options={} Optional. Options object for initial state.\n * @param {String} [options.auth.tokenV2=''] The V2 auth token\n * @param {String} [options.auth.tokenV3=''] The V3 auth token\n * @param {String} [options.reviewOpportunity.challenge.id=''] The challenge id.\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var challengeId = _lodash2.default.get(options, 'reviewOpportunity.challenge.id');\n\n if (challengeId) {\n var tokens = {\n tokenV2: _lodash2.default.get(options.auth, 'tokenV2'),\n tokenV3: _lodash2.default.get(options.auth, 'tokenV3')\n };\n\n var a = _reviewOpportunity2.default.reviewOpportunity;\n return _topcoderReactUtils.redux.resolveAction(a.getDetailsDone(challengeId, tokens.tokenV3)).then(function (_ref2) {\n var error = _ref2.error,\n payload = _ref2.payload;\n\n var initialState = {};\n initialState.details = error ? null : payload;\n initialState.requiredTerms = error ? [] : buildRequiredTermsList(payload);\n create(initialState);\n });\n }\n\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(buildRequiredTermsList, 'buildRequiredTermsList', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/reviewOpportunity.js');\n reactHotLoader.register(onGetDetailsDone, 'onGetDetailsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/reviewOpportunity.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/reviewOpportunity.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/reviewOpportunity.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/reviewOpportunity.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/reviewOpportunity.js?");
/***/ }),
@@ -783,7 +831,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _toConsumableArray2 = __webpack_require__(/*! babel-runtime/helpers/toConsumableArray */ \"babel-runtime/helpers/toConsumableArray\");\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _settings = __webpack_require__(/*! ../actions/settings */ \"./src/actions/settings.js\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.settings\"\n * @desc Reducer for the Redux store segment that holds traits data.\n */\n\n/**\n * Handles SETTINGS/GET_ALL_USER_TRAITS action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetAllUserTraits(state, _ref) {\n var error = _ref.error,\n payload = _ref.payload;\n\n if (error) {\n _logger2.default.error('Failed to get all user traits', payload);\n return (0, _extends3.default)({}, state, {\n userTraits: []\n });\n }\n\n return (0, _extends3.default)({}, state, {\n userTraits: payload.data\n });\n}\n\n/**\n * Handles SETTINGS/MODIFY_USER_TRAIT_INIT action.\n * @param {Object} state *\n * @return {Object} New state.\n */\nfunction onModifyUserTraitInit(state) {\n return (0, _extends3.default)({}, state, {\n traitRequestCount: state.traitRequestCount + 1\n });\n}\n\n/**\n * Handles SETTINGS/ADD_USER_TRAIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onAddUserTrait(state, _ref2) {\n var error = _ref2.error,\n payload = _ref2.payload;\n\n if (error) {\n _logger2.default.error('Failed to add user trait', payload);\n (0, _errors.fireErrorMessage)('Failed to add user trait', '');\n return (0, _extends3.default)({}, state, {\n traitRequestCount: state.traitRequestCount - 1\n });\n }\n var newData = payload.result[0];\n return (0, _extends3.default)({}, state, {\n userTraits: [].concat((0, _toConsumableArray3.default)(state.userTraits), [newData]),\n traitRequestCount: state.traitRequestCount - 1\n });\n}\n\n/**\n * Handles SETTINGS/UPDATE_USER_TRAIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onUpdateUserTrait(state, _ref3) {\n var error = _ref3.error,\n payload = _ref3.payload;\n\n if (error) {\n _logger2.default.error('Failed to update user trait', payload);\n (0, _errors.fireErrorMessage)('Failed to update user trait', '');\n return (0, _extends3.default)({}, state, {\n traitRequestCount: state.traitRequestCount - 1\n });\n }\n var newData = payload.result[0];\n var newUserTraits = state.userTraits.filter(function (trait) {\n return trait.traitId !== payload.traitId;\n });\n newUserTraits.push(newData);\n\n return (0, _extends3.default)({}, state, {\n userTraits: newUserTraits,\n traitRequestCount: state.traitRequestCount - 1\n });\n}\n\n/**\n * Handles SETTINGS/DELETE_USER_TRAIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onDeleteUserTrait(state, _ref4) {\n var error = _ref4.error,\n payload = _ref4.payload;\n\n if (error) {\n _logger2.default.error('Failed to delete user trait', payload);\n (0, _errors.fireErrorMessage)('Failed to delete user trait', '');\n return (0, _extends3.default)({}, state, {\n traitRequestCount: state.traitRequestCount - 1\n });\n }\n var newUserTraits = state.userTraits.filter(function (trait) {\n return trait.traitId !== payload.traitId;\n });\n return (0, _extends3.default)({}, state, {\n userTraits: newUserTraits,\n traitRequestCount: state.traitRequestCount - 1\n });\n}\n\n/**\n * Creates a new user trait reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} userTraits reducer.\n */\nfunction create() {\n var _handleActions;\n\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n traitRequestCount: 0,\n userTraits: []\n };\n\n var a = _settings2.default.settings;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.getAllUserTraits, onGetAllUserTraits), (0, _defineProperty3.default)(_handleActions, a.modifyUserTraitInit, onModifyUserTraitInit), (0, _defineProperty3.default)(_handleActions, a.addUserTrait, onAddUserTrait), (0, _defineProperty3.default)(_handleActions, a.deleteUserTrait, onDeleteUserTrait), (0, _defineProperty3.default)(_handleActions, a.updateUserTrait, onUpdateUserTrait), _handleActions), initialState);\n}\n\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onGetAllUserTraits, 'onGetAllUserTraits', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/settings.js');\n reactHotLoader.register(onModifyUserTraitInit, 'onModifyUserTraitInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/settings.js');\n reactHotLoader.register(onAddUserTrait, 'onAddUserTrait', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/settings.js');\n reactHotLoader.register(onUpdateUserTrait, 'onUpdateUserTrait', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/settings.js');\n reactHotLoader.register(onDeleteUserTrait, 'onDeleteUserTrait', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/settings.js');\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/settings.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/settings.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/settings.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/settings.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _toConsumableArray2 = __webpack_require__(/*! babel-runtime/helpers/toConsumableArray */ \"babel-runtime/helpers/toConsumableArray\");\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _settings = __webpack_require__(/*! ../actions/settings */ \"./src/actions/settings.js\");\n\nvar _settings2 = _interopRequireDefault(_settings);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.settings\"\n * @desc Reducer for the Redux store segment that holds traits data.\n */\n\n/**\n * Handles SETTINGS/GET_ALL_USER_TRAITS action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetAllUserTraits(state, _ref) {\n var error = _ref.error,\n payload = _ref.payload;\n\n if (error) {\n _logger2.default.error('Failed to get all user traits', payload);\n return (0, _extends3.default)({}, state, {\n userTraits: []\n });\n }\n\n return (0, _extends3.default)({}, state, {\n userTraits: payload.data\n });\n}\n\n/**\n * Handles SETTINGS/MODIFY_USER_TRAIT_INIT action.\n * @param {Object} state *\n * @return {Object} New state.\n */\nfunction onModifyUserTraitInit(state) {\n return (0, _extends3.default)({}, state, {\n traitRequestCount: state.traitRequestCount + 1\n });\n}\n\n/**\n * Handles SETTINGS/ADD_USER_TRAIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onAddUserTrait(state, _ref2) {\n var error = _ref2.error,\n payload = _ref2.payload;\n\n if (error) {\n _logger2.default.error('Failed to add user trait', payload);\n (0, _errors.fireErrorMessage)('Failed to add user trait', '');\n return (0, _extends3.default)({}, state, {\n traitRequestCount: state.traitRequestCount - 1\n });\n }\n var newData = payload.result[0];\n return (0, _extends3.default)({}, state, {\n userTraits: [].concat((0, _toConsumableArray3.default)(state.userTraits), [newData]),\n traitRequestCount: state.traitRequestCount - 1\n });\n}\n\n/**\n * Handles SETTINGS/UPDATE_USER_TRAIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onUpdateUserTrait(state, _ref3) {\n var error = _ref3.error,\n payload = _ref3.payload;\n\n if (error) {\n _logger2.default.error('Failed to update user trait', payload);\n (0, _errors.fireErrorMessage)('Failed to update user trait', '');\n return (0, _extends3.default)({}, state, {\n traitRequestCount: state.traitRequestCount - 1\n });\n }\n var newData = payload.result[0];\n var newUserTraits = state.userTraits.filter(function (trait) {\n return trait.traitId !== payload.traitId;\n });\n newUserTraits.push(newData);\n\n return (0, _extends3.default)({}, state, {\n userTraits: newUserTraits,\n traitRequestCount: state.traitRequestCount - 1\n });\n}\n\n/**\n * Handles SETTINGS/DELETE_USER_TRAIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onDeleteUserTrait(state, _ref4) {\n var error = _ref4.error,\n payload = _ref4.payload;\n\n if (error) {\n _logger2.default.error('Failed to delete user trait', payload);\n (0, _errors.fireErrorMessage)('Failed to delete user trait', '');\n return (0, _extends3.default)({}, state, {\n traitRequestCount: state.traitRequestCount - 1\n });\n }\n var newUserTraits = state.userTraits.filter(function (trait) {\n return trait.traitId !== payload.traitId;\n });\n return (0, _extends3.default)({}, state, {\n userTraits: newUserTraits,\n traitRequestCount: state.traitRequestCount - 1\n });\n}\n\n/**\n * Creates a new user trait reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} userTraits reducer.\n */\nfunction create() {\n var _handleActions;\n\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n traitRequestCount: 0,\n userTraits: []\n };\n\n var a = _settings2.default.settings;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.getAllUserTraits, onGetAllUserTraits), (0, _defineProperty3.default)(_handleActions, a.modifyUserTraitInit, onModifyUserTraitInit), (0, _defineProperty3.default)(_handleActions, a.addUserTrait, onAddUserTrait), (0, _defineProperty3.default)(_handleActions, a.deleteUserTrait, onDeleteUserTrait), (0, _defineProperty3.default)(_handleActions, a.updateUserTrait, onUpdateUserTrait), _handleActions), initialState);\n}\n\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onGetAllUserTraits, 'onGetAllUserTraits', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/settings.js');\n reactHotLoader.register(onModifyUserTraitInit, 'onModifyUserTraitInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/settings.js');\n reactHotLoader.register(onAddUserTrait, 'onAddUserTrait', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/settings.js');\n reactHotLoader.register(onUpdateUserTrait, 'onUpdateUserTrait', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/settings.js');\n reactHotLoader.register(onDeleteUserTrait, 'onDeleteUserTrait', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/settings.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/settings.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/settings.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/settings.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/settings.js?");
/***/ }),
@@ -795,7 +843,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends4 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends5 = _interopRequireDefault(_extends4);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _stats = __webpack_require__(/*! ../actions/stats */ \"./src/actions/stats.js\");\n\nvar _stats2 = _interopRequireDefault(_stats);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.stats\"\n * @desc Reducer for state.stats. That part of Redux state is intended to keep\n * user- and group-related statistics to render in the frontend.\n * @todo Document state segment structure.\n */\n\n/**\n * Inits the loading of community stats.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetCommunityStatsInit(state, action) {\n var _action$payload = action.payload,\n community = _action$payload.community,\n uuid = _action$payload.uuid;\n\n var res = state.communities[community];\n res = res ? _lodash2.default.clone(res) : {};\n res.loadingUuid = uuid;\n return (0, _extends5.default)({}, state, {\n communities: (0, _extends5.default)({}, state.communities, (0, _defineProperty3.default)({}, community, res))\n });\n}\n\n/**\n * Handles result of the getCommunityStats action.\n * @param {Object} state Previous state.\n * @param {Object} action Action result.\n * @return {Object} New state.\n */\nfunction onGetCommunityStatsDone(state, _ref) {\n var error = _ref.error,\n payload = _ref.payload;\n\n if (error) {\n _logger2.default.error('Failed to load community stats', payload);\n (0, _errors.fireErrorMessage)('Failed to load community stats', '');\n return state;\n }\n\n var community = payload.community,\n stats = payload.stats,\n uuid = payload.uuid;\n\n if (_lodash2.default.get(state.communities[community], 'loadingUuid') !== uuid) {\n return state;\n }\n return (0, _extends5.default)({}, state, {\n communities: (0, _extends5.default)({}, state.communities, (0, _defineProperty3.default)({}, community, {\n data: stats,\n timestamp: Date.now()\n }))\n });\n}\n\n/**\n * Creates a new Stats reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Stats reducer.\n */\nfunction create() {\n var _handleActions;\n\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var a = _stats2.default.stats;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.getCommunityStatsInit, onGetCommunityStatsInit), (0, _defineProperty3.default)(_handleActions, a.getCommunityStatsDone, onGetCommunityStatsDone), _handleActions), _lodash2.default.defaults(_lodash2.default.clone(initialState), {\n communities: {}\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onGetCommunityStatsInit, 'onGetCommunityStatsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/stats.js');\n reactHotLoader.register(onGetCommunityStatsDone, 'onGetCommunityStatsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/stats.js');\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/stats.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/stats.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/stats.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/stats.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends4 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends5 = _interopRequireDefault(_extends4);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _reduxActions = __webpack_require__(/*! redux-actions */ \"redux-actions\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _stats = __webpack_require__(/*! ../actions/stats */ \"./src/actions/stats.js\");\n\nvar _stats2 = _interopRequireDefault(_stats);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.stats\"\n * @desc Reducer for state.stats. That part of Redux state is intended to keep\n * user- and group-related statistics to render in the frontend.\n * @todo Document state segment structure.\n */\n\n/**\n * Inits the loading of community stats.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetCommunityStatsInit(state, action) {\n var _action$payload = action.payload,\n community = _action$payload.community,\n uuid = _action$payload.uuid;\n\n var res = state.communities[community];\n res = res ? _lodash2.default.clone(res) : {};\n res.loadingUuid = uuid;\n return (0, _extends5.default)({}, state, {\n communities: (0, _extends5.default)({}, state.communities, (0, _defineProperty3.default)({}, community, res))\n });\n}\n\n/**\n * Handles result of the getCommunityStats action.\n * @param {Object} state Previous state.\n * @param {Object} action Action result.\n * @return {Object} New state.\n */\nfunction onGetCommunityStatsDone(state, _ref) {\n var error = _ref.error,\n payload = _ref.payload;\n\n if (error) {\n _logger2.default.error('Failed to load community stats', payload);\n (0, _errors.fireErrorMessage)('Failed to load community stats', '');\n return state;\n }\n\n var community = payload.community,\n stats = payload.stats,\n uuid = payload.uuid;\n\n if (_lodash2.default.get(state.communities[community], 'loadingUuid') !== uuid) {\n return state;\n }\n return (0, _extends5.default)({}, state, {\n communities: (0, _extends5.default)({}, state.communities, (0, _defineProperty3.default)({}, community, {\n data: stats,\n timestamp: Date.now()\n }))\n });\n}\n\n/**\n * Creates a new Stats reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function} Stats reducer.\n */\nfunction create() {\n var _handleActions;\n\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var a = _stats2.default.stats;\n return (0, _reduxActions.handleActions)((_handleActions = {}, (0, _defineProperty3.default)(_handleActions, a.getCommunityStatsInit, onGetCommunityStatsInit), (0, _defineProperty3.default)(_handleActions, a.getCommunityStatsDone, onGetCommunityStatsDone), _handleActions), _lodash2.default.defaults(_lodash2.default.clone(initialState), {\n communities: {}\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(onGetCommunityStatsInit, 'onGetCommunityStatsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/stats.js');\n reactHotLoader.register(onGetCommunityStatsDone, 'onGetCommunityStatsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/stats.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/stats.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/stats.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/stats.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/stats.js?");
/***/ }),
@@ -807,7 +855,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _terms = __webpack_require__(/*! ../actions/terms */ \"./src/actions/terms.js\");\n\nvar _terms2 = _interopRequireDefault(_terms);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.terms\"\n * @desc Reducer for state.terms.\n * @todo Document state segment structure.\n */\n\n\n/**\n * sort terms by agreed status\n * @param {Array} terms terms to sort\n * @return {Array} sorted terms\n */\nfunction sortTerms(terms) {\n return _lodash2.default.sortBy(terms, function (t) {\n return t.agreed ? 0 : 1;\n });\n}\n\n/**\n * Handles TERMS/GET_TERMS_DONE action.\n * Note, that it silently discards received terms if the entity of received data\n * mismatches the one stored in loadingTermsForEntity\n * of the state.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetTermsDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to get terms!', action.payload);\n return (0, _extends3.default)({}, state, {\n terms: [],\n getTermsFailure: action.error,\n loadingTermsForEntity: null\n });\n }\n\n if (!_lodash2.default.isEqual(action.payload.entity, state.loadingTermsForEntity)) {\n return state;\n }\n\n return (0, _extends3.default)({}, state, {\n entity: action.payload.entity,\n terms: sortTerms(action.payload.terms),\n getTermsFailure: false,\n loadingTermsForEntity: null\n });\n}\n\n/**\n * Handles TERMS/GET_TERMS_INIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetTermsInit(state, action) {\n return (0, _extends3.default)({}, state, {\n getTermsFailure: false,\n loadingTermsForEntity: action.payload,\n terms: [],\n entity: action.payload\n });\n}\n\n/**\n * Handles TERMS/CHECK_STATUS_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onCheckStatusDone(state, action) {\n if (action.error) {\n _logger2.default.error('Check terms status failed!', action.payload);\n return (0, _extends3.default)({}, state, {\n checkingStatus: false,\n checkStatusError: action.payload,\n canRegister: false\n });\n }\n var canRegister = _lodash2.default.every(action.payload, 'agreed');\n var selectedTerm = _lodash2.default.find(action.payload, function (t) {\n return !t.agreed;\n });\n return (0, _extends3.default)({}, state, {\n checkingStatus: false,\n checkStatusError: false,\n canRegister: canRegister,\n terms: sortTerms(action.payload),\n selectedTerm: selectedTerm\n });\n}\n\n/**\n * Handles TERMS/GET_TERM_DETAILS_DONE action.\n * Note, that it silently discards received details if the termId of received\n * mismatches the one stored in loadingDetailsForTermId field\n * of the state.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetTermDetailsDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to get term details!', action.payload);\n return (0, _extends3.default)({}, state, {\n details: null,\n getTermDetailsFailure: action.payload,\n loadingDetailsForTermId: ''\n });\n }\n\n if (_lodash2.default.toString(action.payload.termId) !== state.loadingDetailsForTermId) {\n return state;\n }\n\n return (0, _extends3.default)({}, state, action.payload, {\n getTermDetailsFailure: false,\n loadingDetailsForTermId: ''\n });\n}\n\n/**\n * Handles TERMS/GET_DOCU_SIGN_URL_DONE action.\n * Note, that it silently discards received url if the templateId of received\n * mismatches the one stored in loadingDocuSignUrl field\n * of the state.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetDocuSignUrlDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to get docu sign url!', action.payload);\n return (0, _extends3.default)({}, state, {\n docuSignUrl: '',\n getDocuSignUrlFailure: action.payload,\n loadingDocuSignUrl: ''\n });\n }\n\n if (_lodash2.default.toString(action.payload.templateId) !== state.loadingDocuSignUrl) {\n return state;\n }\n return (0, _extends3.default)({}, state, action.payload, {\n getDocuSignUrlFailure: false,\n loadingDocuSignUrl: ''\n });\n}\n\n/**\n * Handles TERMS/AGREE_TERM_DONE action.\n * Note, that it silently discards received result if the termId of received\n * mismatches the one stored in agreeingTerm field\n * of the state.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onAgreeTermDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to agree term!', action.payload);\n return (0, _extends3.default)({}, state, {\n agreeTermFailure: action.payload,\n agreeingTerm: ''\n });\n }\n\n if (_lodash2.default.toString(action.payload.termId) !== state.agreeingTerm) {\n return state;\n }\n if (action.payload.success) {\n var terms = _lodash2.default.cloneDeep(state.terms);\n var term = _lodash2.default.find(terms, ['termsOfUseId', action.payload.termId]);\n term.agreed = true;\n var selectedTerm = _lodash2.default.find(terms, function (t) {\n return !t.agreed;\n });\n return (0, _extends3.default)({}, state, {\n terms: terms,\n selectedTerm: selectedTerm,\n agreeTermFailure: false,\n agreeingTerm: ''\n });\n }\n return (0, _extends3.default)({}, state, {\n agreeTermFailure: false,\n agreeingTerm: ''\n });\n}\n\n/**\n * Creates a new Profile reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function(state, action): state} Profile reducer.\n */\nfunction create(initialState) {\n var _redux$handleActions;\n\n return _topcoderReactUtils.redux.handleActions((_redux$handleActions = {}, (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.getTermsInit, onGetTermsInit), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.getTermsDone, onGetTermsDone), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.getTermDetailsInit, function (state, _ref) {\n var payload = _ref.payload;\n return (0, _extends3.default)({}, state, {\n getTermDetailsFailure: false,\n loadingDetailsForTermId: payload,\n details: null,\n termId: payload\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.getTermDetailsDone, onGetTermDetailsDone), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.getDocuSignUrlInit, function (state, _ref2) {\n var payload = _ref2.payload;\n return (0, _extends3.default)({}, state, {\n getDocuSignUrlFailure: false,\n loadingDocuSignUrl: payload,\n docuSignUrl: '',\n templateId: payload\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.getDocuSignUrlDone, onGetDocuSignUrlDone), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.agreeTermInit, function (state, _ref3) {\n var payload = _ref3.payload;\n return (0, _extends3.default)({}, state, {\n agreeTermFailure: false,\n agreeingTerm: payload\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.agreeTermDone, onAgreeTermDone), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.checkStatusInit, function (state) {\n return (0, _extends3.default)({}, state, {\n checkingStatus: true\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.checkStatusDone, onCheckStatusDone), _redux$handleActions), _lodash2.default.defaults(initialState, {\n terms: [],\n selectedTerm: null\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @param {Object} options={} Optional. Options object for initial state.\n * @param {String} [options.auth.tokenV2=''] The V2 auth token\n * @param {String} [options.auth.tokenV3=''] The V3 auth token\n * @param {String} [options.terms.entity.type=''] The terms entity type:\n * - `challenge`\n * - `community`\n * - `reviewOpportunity`\n * @param {String} [options.terms.entity.id=''] The terms entity id\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var entityType = _lodash2.default.get(options, 'terms.entity.type');\n var entityId = _lodash2.default.get(options, 'terms.entity.id');\n\n if (entityType && entityId) {\n var entity = options.terms.entity;\n\n var tokens = {\n tokenV2: _lodash2.default.get(options.auth, 'tokenV2'),\n tokenV3: _lodash2.default.get(options.auth, 'tokenV3')\n };\n return _topcoderReactUtils.redux.resolveAction(_terms2.default.terms.getTermsDone(entity, tokens)).then(function (termsDoneAction) {\n // we have to init first, otherwise results will be ignored by onGetTermsDone\n var state = onGetTermsInit({}, _terms2.default.terms.getTermsInit(entity));\n state = onGetTermsDone(state, termsDoneAction);\n\n return create(state);\n });\n }\n\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(sortTerms, 'sortTerms', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(onGetTermsDone, 'onGetTermsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(onGetTermsInit, 'onGetTermsInit', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(onCheckStatusDone, 'onCheckStatusDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(onGetTermDetailsDone, 'onGetTermDetailsDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(onGetDocuSignUrlDone, 'onGetDocuSignUrlDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(onAgreeTermDone, 'onAgreeTermDone', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(create, 'create', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(factory, 'factory', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/reducers/terms.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/terms.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.factory = factory;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _terms = __webpack_require__(/*! ../actions/terms */ \"./src/actions/terms.js\");\n\nvar _terms2 = _interopRequireDefault(_terms);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"reducers.terms\"\n * @desc Reducer for state.terms.\n * @todo Document state segment structure.\n */\n\n\n/**\n * sort terms by agreed status\n * @param {Array} terms terms to sort\n * @return {Array} sorted terms\n */\nfunction sortTerms(terms) {\n return _lodash2.default.sortBy(terms, function (t) {\n return t.agreed ? 0 : 1;\n });\n}\n\n/**\n * Handles TERMS/GET_TERMS_DONE action.\n * Note, that it silently discards received terms if the entity of received data\n * mismatches the one stored in loadingTermsForEntity\n * of the state.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetTermsDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to get terms!', action.payload);\n return (0, _extends3.default)({}, state, {\n terms: [],\n getTermsFailure: action.error,\n loadingTermsForEntity: null\n });\n }\n\n if (!_lodash2.default.isEqual(action.payload.entity, state.loadingTermsForEntity)) {\n return state;\n }\n\n return (0, _extends3.default)({}, state, {\n entity: action.payload.entity,\n terms: sortTerms(action.payload.terms),\n getTermsFailure: false,\n loadingTermsForEntity: null\n });\n}\n\n/**\n * Handles TERMS/GET_TERMS_INIT action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetTermsInit(state, action) {\n return (0, _extends3.default)({}, state, {\n getTermsFailure: false,\n loadingTermsForEntity: action.payload,\n terms: [],\n entity: action.payload\n });\n}\n\n/**\n * Handles TERMS/CHECK_STATUS_DONE action.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onCheckStatusDone(state, action) {\n if (action.error) {\n _logger2.default.error('Check terms status failed!', action.payload);\n return (0, _extends3.default)({}, state, {\n checkingStatus: false,\n checkStatusError: action.payload,\n canRegister: false\n });\n }\n var canRegister = _lodash2.default.every(action.payload, 'agreed');\n var selectedTerm = _lodash2.default.find(action.payload, function (t) {\n return !t.agreed;\n });\n return (0, _extends3.default)({}, state, {\n checkingStatus: false,\n checkStatusError: false,\n canRegister: canRegister,\n terms: sortTerms(action.payload),\n selectedTerm: selectedTerm\n });\n}\n\n/**\n * Handles TERMS/GET_TERM_DETAILS_DONE action.\n * Note, that it silently discards received details if the termId of received\n * mismatches the one stored in loadingDetailsForTermId field\n * of the state.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetTermDetailsDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to get term details!', action.payload);\n return (0, _extends3.default)({}, state, {\n details: null,\n getTermDetailsFailure: action.payload,\n loadingDetailsForTermId: ''\n });\n }\n\n if (_lodash2.default.toString(action.payload.termId) !== state.loadingDetailsForTermId) {\n return state;\n }\n\n return (0, _extends3.default)({}, state, action.payload, {\n getTermDetailsFailure: false,\n loadingDetailsForTermId: ''\n });\n}\n\n/**\n * Handles TERMS/GET_DOCU_SIGN_URL_DONE action.\n * Note, that it silently discards received url if the templateId of received\n * mismatches the one stored in loadingDocuSignUrl field\n * of the state.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onGetDocuSignUrlDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to get docu sign url!', action.payload);\n return (0, _extends3.default)({}, state, {\n docuSignUrl: '',\n getDocuSignUrlFailure: action.payload,\n loadingDocuSignUrl: ''\n });\n }\n\n if (_lodash2.default.toString(action.payload.templateId) !== state.loadingDocuSignUrl) {\n return state;\n }\n return (0, _extends3.default)({}, state, action.payload, {\n getDocuSignUrlFailure: false,\n loadingDocuSignUrl: ''\n });\n}\n\n/**\n * Handles TERMS/AGREE_TERM_DONE action.\n * Note, that it silently discards received result if the termId of received\n * mismatches the one stored in agreeingTerm field\n * of the state.\n * @param {Object} state\n * @param {Object} action\n * @return {Object} New state.\n */\nfunction onAgreeTermDone(state, action) {\n if (action.error) {\n _logger2.default.error('Failed to agree term!', action.payload);\n return (0, _extends3.default)({}, state, {\n agreeTermFailure: action.payload,\n agreeingTerm: ''\n });\n }\n\n if (_lodash2.default.toString(action.payload.termId) !== state.agreeingTerm) {\n return state;\n }\n if (action.payload.success) {\n var terms = _lodash2.default.cloneDeep(state.terms);\n var term = _lodash2.default.find(terms, ['termsOfUseId', action.payload.termId]);\n term.agreed = true;\n var selectedTerm = _lodash2.default.find(terms, function (t) {\n return !t.agreed;\n });\n return (0, _extends3.default)({}, state, {\n terms: terms,\n selectedTerm: selectedTerm,\n agreeTermFailure: false,\n agreeingTerm: ''\n });\n }\n return (0, _extends3.default)({}, state, {\n agreeTermFailure: false,\n agreeingTerm: ''\n });\n}\n\n/**\n * Creates a new Profile reducer with the specified initial state.\n * @param {Object} initialState Optional. Initial state.\n * @return {Function(state, action): state} Profile reducer.\n */\nfunction create(initialState) {\n var _redux$handleActions;\n\n return _topcoderReactUtils.redux.handleActions((_redux$handleActions = {}, (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.getTermsInit, onGetTermsInit), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.getTermsDone, onGetTermsDone), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.getTermDetailsInit, function (state, _ref) {\n var payload = _ref.payload;\n return (0, _extends3.default)({}, state, {\n getTermDetailsFailure: false,\n loadingDetailsForTermId: payload,\n details: null,\n termId: payload\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.getTermDetailsDone, onGetTermDetailsDone), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.getDocuSignUrlInit, function (state, _ref2) {\n var payload = _ref2.payload;\n return (0, _extends3.default)({}, state, {\n getDocuSignUrlFailure: false,\n loadingDocuSignUrl: payload,\n docuSignUrl: '',\n templateId: payload\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.getDocuSignUrlDone, onGetDocuSignUrlDone), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.agreeTermInit, function (state, _ref3) {\n var payload = _ref3.payload;\n return (0, _extends3.default)({}, state, {\n agreeTermFailure: false,\n agreeingTerm: payload\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.agreeTermDone, onAgreeTermDone), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.checkStatusInit, function (state) {\n return (0, _extends3.default)({}, state, {\n checkingStatus: true\n });\n }), (0, _defineProperty3.default)(_redux$handleActions, _terms2.default.terms.checkStatusDone, onCheckStatusDone), _redux$handleActions), _lodash2.default.defaults(initialState, {\n terms: [],\n selectedTerm: null\n }));\n}\n\n/**\n * Factory which creates a new reducer with its initial state tailored to the\n * given options object, if specified (for server-side rendering). If options\n * object is not specified, it creates just the default reducer. Accepted options are:\n * @param {Object} options={} Optional. Options object for initial state.\n * @param {String} [options.auth.tokenV2=''] The V2 auth token\n * @param {String} [options.auth.tokenV3=''] The V3 auth token\n * @param {String} [options.terms.entity.type=''] The terms entity type:\n * - `challenge`\n * - `community`\n * - `reviewOpportunity`\n * @param {String} [options.terms.entity.id=''] The terms entity id\n * @return {Promise}\n * @resolves {Function(state, action): state} New reducer.\n */\nfunction factory() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var entityType = _lodash2.default.get(options, 'terms.entity.type');\n var entityId = _lodash2.default.get(options, 'terms.entity.id');\n\n if (entityType && entityId) {\n var entity = options.terms.entity;\n\n var tokens = {\n tokenV2: _lodash2.default.get(options.auth, 'tokenV2'),\n tokenV3: _lodash2.default.get(options.auth, 'tokenV3')\n };\n return _topcoderReactUtils.redux.resolveAction(_terms2.default.terms.getTermsDone(entity, tokens)).then(function (termsDoneAction) {\n // we have to init first, otherwise results will be ignored by onGetTermsDone\n var state = onGetTermsInit({}, _terms2.default.terms.getTermsInit(entity));\n state = onGetTermsDone(state, termsDoneAction);\n\n return create(state);\n });\n }\n\n return _promise2.default.resolve(create());\n}\n\n/**\n * @static\n * @member default\n * @desc Reducer with default initial state.\n */\n\nvar _default = create();\n\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(sortTerms, 'sortTerms', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(onGetTermsDone, 'onGetTermsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(onGetTermsInit, 'onGetTermsInit', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(onCheckStatusDone, 'onCheckStatusDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(onGetTermDetailsDone, 'onGetTermDetailsDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(onGetDocuSignUrlDone, 'onGetDocuSignUrlDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(onAgreeTermDone, 'onAgreeTermDone', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(create, 'create', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(factory, 'factory', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/terms.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/reducers/terms.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/reducers/terms.js?");
/***/ }),
@@ -885,7 +933,7 @@ eval("module.exports = JSON.parse(\"{\\\"termsOfUseId\\\":21193,\\\"title\\\":\\
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _termsAuth = __webpack_require__(/*! ./data/terms-auth.json */ \"./src/services/__mocks__/data/terms-auth.json\");\n\nvar _termsAuth2 = _interopRequireDefault(_termsAuth);\n\nvar _termsDocuSignDetails = __webpack_require__(/*! ./data/terms-docu-sign-details.json */ \"./src/services/__mocks__/data/terms-docu-sign-details.json\");\n\nvar _termsDocuSignDetails2 = _interopRequireDefault(_termsDocuSignDetails);\n\nvar _termsNoauth = __webpack_require__(/*! ./data/terms-noauth.json */ \"./src/services/__mocks__/data/terms-noauth.json\");\n\nvar _termsNoauth2 = _interopRequireDefault(_termsNoauth);\n\nvar _termsReviewer = __webpack_require__(/*! ./data/terms-reviewer.json */ \"./src/services/__mocks__/data/terms-reviewer.json\");\n\nvar _termsReviewer2 = _interopRequireDefault(_termsReviewer);\n\nvar _termsReviewerDetails = __webpack_require__(/*! ./data/terms-reviewer-details.json */ \"./src/services/__mocks__/data/terms-reviewer-details.json\");\n\nvar _termsReviewerDetails2 = _interopRequireDefault(_termsReviewerDetails);\n\nvar _termsTopcoderDetails = __webpack_require__(/*! ./data/terms-topcoder-details.json */ \"./src/services/__mocks__/data/terms-topcoder-details.json\");\n\nvar _termsTopcoderDetails2 = _interopRequireDefault(_termsTopcoderDetails);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * Mock version of Terms service. To be used both for Jest testing, and for\n * manual testing inside the app (see MOCK_TERMS_SERVICE constant\n * in the app config).\n *\n * NOTE: At the moment this mock does not care much about authorization\n * (i.e. the presence of auth token), as the real backend api acts a bit\n * surprising and non-intuitive at the moment, so it is a bit difficult\n * to imitate it exactly.\n */\n\nvar reviewTermsAgreed = false;\n\nvar TermsService = function () {\n /**\n * @param {String} tokenV2 Optional. Auth token for Topcoder API v2.\n */\n function TermsService(tokenV2) {\n (0, _classCallCheck3.default)(this, TermsService);\n\n this.private = {\n tokenV2: tokenV2\n };\n }\n\n /**\n * Mock of getChallengeTerms(..) method.\n * The second argument is optional. If present, it should be an array of\n * boolean values, and it will override acceptance status of terms read\n * from the JSON data file.\n * @param {String} challengeId\n * @param {Array} agreed Optional.\n */\n\n\n (0, _createClass3.default)(TermsService, [{\n key: 'getChallengeTerms',\n value: function getChallengeTerms(challengeId, agreed) {\n var res = _lodash2.default.clone(this.private.tokenV2 ? _termsAuth2.default : _termsNoauth2.default);\n res.serverInformation.currentTime = Date.now();\n res.requesterInformation.receivedParams.challengeId = _lodash2.default.toString(challengeId);\n if (this.private.tokenV2 && _lodash2.default.isArray(agreed)) {\n for (var i = 0; i < Math.min(agreed.length, res.terms.length); i += 1) {\n res.terms[i].agreed = agreed[i];\n }\n }\n return _promise2.default.resolve(res);\n }\n\n /**\n * Mock of getCommunityTerms(..) method.\n *\n * @param {String} communityId community id\n * @param {String} tokenV3 auth token V3\n * @param {Array} agreed Optional. If present, it should be an array of\n * boolean values, and it will override acceptance\n * status of terms read from the JSON data file.\n *\n * @return {Promise} resolves to the list of mocked terms\n */\n\n }, {\n key: 'getCommunityTerms',\n value: function getCommunityTerms(challengeId, tokenV3, agreed) {\n var res = _lodash2.default.clone(this.private.tokenV2 ? _termsAuth2.default : _termsNoauth2.default);\n res.serverInformation.currentTime = Date.now();\n if (this.private.tokenV2 && _lodash2.default.isArray(agreed)) {\n for (var i = 0; i < Math.min(agreed.length, res.terms.length); i += 1) {\n res.terms[i].agreed = agreed[i];\n delete res.terms[i].text;\n }\n }\n return _promise2.default.resolve(res);\n }\n\n /**\n * Mock of getReviewOpportunityTerms(..) method.\n */\n /* eslint-disable class-methods-use-this */\n\n }, {\n key: 'getReviewOpportunityTerms',\n value: function getReviewOpportunityTerms() {\n var res = _lodash2.default.clone(_termsReviewer2.default);\n res.terms[0].agreed = reviewTermsAgreed;\n res.terms[1].agreed = reviewTermsAgreed;\n return _promise2.default.resolve(res);\n }\n /* eslint-enable class-methods-use-this */\n\n /**\n * Mock of getTermDetails(..) method.\n * In the case of Topcoder challenge terms there is \"agreed\" field in the\n * response. If the second argument is passed into this method, it will\n * override the value of this field from JSON file with mock data.\n * @param {Number} termId\n * @param {Boolean} agreed Optional.\n */\n\n }, {\n key: 'getTermDetails',\n value: function getTermDetails(termId, agreed) {\n _lodash2.default.noop(this);\n var res = void 0;\n switch (termId) {\n case 20704:\n // eslint-disable-next-line\n agreed = reviewTermsAgreed;\n res = _lodash2.default.clone(_termsReviewerDetails2.default);\n break;\n case 21153:\n // eslint-disable-next-line\n if (reviewTermsAgreed) agreed = reviewTermsAgreed;\n res = _lodash2.default.clone(_termsDocuSignDetails2.default);\n break;\n case 21193:\n case 21194:\n res = _lodash2.default.clone(_termsTopcoderDetails2.default);\n break;\n default:\n throw new Error('Unknown termId \\'' + termId + '\\'!');\n }\n if (!_lodash2.default.isUndefined(agreed)) res.agreed = agreed;\n res.serverInformation.currentTime = Date.now();\n res.termsOfUseId = termId;\n res.requesterInformation.receivedParams.termsOfUseId = _lodash2.default.toString(termId);\n return _promise2.default.resolve(res);\n }\n }, {\n key: 'getDocuSignUrl',\n value: function getDocuSignUrl(templateId, returnUrl) {\n _lodash2.default.noop(this);\n\n /* TODO: It has not been tracked explicitely, what is the response of\n * the real api here. It sure contains \"recipientViewUrl\", and this is\n * the only thing we need for our purposes now. However, it might also\n * have another useful datafields. This should be explored. */\n return _promise2.default.resolve({\n recipientViewUrl: '/community-app-assets/api/mock/docu-sign?returnUrl=' + returnUrl\n });\n }\n }, {\n key: 'agreeTerm',\n value: function agreeTerm(termId) {\n _lodash2.default.noop(termId, this);\n\n if (termId === 20704) {\n reviewTermsAgreed = true;\n }\n\n /* TODO: It has not been tracked explicitely, what is the response of\n * the real api here. It sure contains \"success\" field, and this is\n * the only thing we need for our purposes now. However, it might also\n * have another useful datafields. This should be explored. */\n return _promise2.default.resolve({ success: true });\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return TermsService;\n}();\n\n/**\n * Returns a new or existing terms service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {Object} Terms service object\n */\n\n\nvar lastInstance = null;\nfunction getService(tokenV2) {\n /* eslint-disable no-console */\n console.error('WARNING:\\n Mock version of DocuSign service is used! Should you see this message in\\n production, contact support as soon as possible!');\n /* eslint-enable no-console */\n if (!lastInstance || tokenV2 && lastInstance.private.tokenV2 !== tokenV2) {\n lastInstance = new TermsService(tokenV2);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(reviewTermsAgreed, 'reviewTermsAgreed', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/__mocks__/terms.js');\n reactHotLoader.register(TermsService, 'TermsService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/__mocks__/terms.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/__mocks__/terms.js');\n reactHotLoader.register(getService, 'getService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/__mocks__/terms.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/__mocks__/terms.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/__mocks__/terms.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _termsAuth = __webpack_require__(/*! ./data/terms-auth.json */ \"./src/services/__mocks__/data/terms-auth.json\");\n\nvar _termsAuth2 = _interopRequireDefault(_termsAuth);\n\nvar _termsDocuSignDetails = __webpack_require__(/*! ./data/terms-docu-sign-details.json */ \"./src/services/__mocks__/data/terms-docu-sign-details.json\");\n\nvar _termsDocuSignDetails2 = _interopRequireDefault(_termsDocuSignDetails);\n\nvar _termsNoauth = __webpack_require__(/*! ./data/terms-noauth.json */ \"./src/services/__mocks__/data/terms-noauth.json\");\n\nvar _termsNoauth2 = _interopRequireDefault(_termsNoauth);\n\nvar _termsReviewer = __webpack_require__(/*! ./data/terms-reviewer.json */ \"./src/services/__mocks__/data/terms-reviewer.json\");\n\nvar _termsReviewer2 = _interopRequireDefault(_termsReviewer);\n\nvar _termsReviewerDetails = __webpack_require__(/*! ./data/terms-reviewer-details.json */ \"./src/services/__mocks__/data/terms-reviewer-details.json\");\n\nvar _termsReviewerDetails2 = _interopRequireDefault(_termsReviewerDetails);\n\nvar _termsTopcoderDetails = __webpack_require__(/*! ./data/terms-topcoder-details.json */ \"./src/services/__mocks__/data/terms-topcoder-details.json\");\n\nvar _termsTopcoderDetails2 = _interopRequireDefault(_termsTopcoderDetails);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * Mock version of Terms service. To be used both for Jest testing, and for\n * manual testing inside the app (see MOCK_TERMS_SERVICE constant\n * in the app config).\n *\n * NOTE: At the moment this mock does not care much about authorization\n * (i.e. the presence of auth token), as the real backend api acts a bit\n * surprising and non-intuitive at the moment, so it is a bit difficult\n * to imitate it exactly.\n */\n\nvar reviewTermsAgreed = false;\n\nvar TermsService = function () {\n /**\n * @param {String} tokenV2 Optional. Auth token for Topcoder API v2.\n */\n function TermsService(tokenV2) {\n (0, _classCallCheck3.default)(this, TermsService);\n\n this.private = {\n tokenV2: tokenV2\n };\n }\n\n /**\n * Mock of getChallengeTerms(..) method.\n * The second argument is optional. If present, it should be an array of\n * boolean values, and it will override acceptance status of terms read\n * from the JSON data file.\n * @param {String} challengeId\n * @param {Array} agreed Optional.\n */\n\n\n (0, _createClass3.default)(TermsService, [{\n key: 'getChallengeTerms',\n value: function getChallengeTerms(challengeId, agreed) {\n var res = _lodash2.default.clone(this.private.tokenV2 ? _termsAuth2.default : _termsNoauth2.default);\n res.serverInformation.currentTime = Date.now();\n res.requesterInformation.receivedParams.challengeId = _lodash2.default.toString(challengeId);\n if (this.private.tokenV2 && _lodash2.default.isArray(agreed)) {\n for (var i = 0; i < Math.min(agreed.length, res.terms.length); i += 1) {\n res.terms[i].agreed = agreed[i];\n }\n }\n return _promise2.default.resolve(res);\n }\n\n /**\n * Mock of getCommunityTerms(..) method.\n *\n * @param {String} communityId community id\n * @param {String} tokenV3 auth token V3\n * @param {Array} agreed Optional. If present, it should be an array of\n * boolean values, and it will override acceptance\n * status of terms read from the JSON data file.\n *\n * @return {Promise} resolves to the list of mocked terms\n */\n\n }, {\n key: 'getCommunityTerms',\n value: function getCommunityTerms(challengeId, tokenV3, agreed) {\n var res = _lodash2.default.clone(this.private.tokenV2 ? _termsAuth2.default : _termsNoauth2.default);\n res.serverInformation.currentTime = Date.now();\n if (this.private.tokenV2 && _lodash2.default.isArray(agreed)) {\n for (var i = 0; i < Math.min(agreed.length, res.terms.length); i += 1) {\n res.terms[i].agreed = agreed[i];\n delete res.terms[i].text;\n }\n }\n return _promise2.default.resolve(res);\n }\n\n /**\n * Mock of getReviewOpportunityTerms(..) method.\n */\n /* eslint-disable class-methods-use-this */\n\n }, {\n key: 'getReviewOpportunityTerms',\n value: function getReviewOpportunityTerms() {\n var res = _lodash2.default.clone(_termsReviewer2.default);\n res.terms[0].agreed = reviewTermsAgreed;\n res.terms[1].agreed = reviewTermsAgreed;\n return _promise2.default.resolve(res);\n }\n /* eslint-enable class-methods-use-this */\n\n /**\n * Mock of getTermDetails(..) method.\n * In the case of Topcoder challenge terms there is \"agreed\" field in the\n * response. If the second argument is passed into this method, it will\n * override the value of this field from JSON file with mock data.\n * @param {Number} termId\n * @param {Boolean} agreed Optional.\n */\n\n }, {\n key: 'getTermDetails',\n value: function getTermDetails(termId, agreed) {\n _lodash2.default.noop(this);\n var res = void 0;\n switch (termId) {\n case 20704:\n // eslint-disable-next-line\n agreed = reviewTermsAgreed;\n res = _lodash2.default.clone(_termsReviewerDetails2.default);\n break;\n case 21153:\n // eslint-disable-next-line\n if (reviewTermsAgreed) agreed = reviewTermsAgreed;\n res = _lodash2.default.clone(_termsDocuSignDetails2.default);\n break;\n case 21193:\n case 21194:\n res = _lodash2.default.clone(_termsTopcoderDetails2.default);\n break;\n default:\n throw new Error('Unknown termId \\'' + termId + '\\'!');\n }\n if (!_lodash2.default.isUndefined(agreed)) res.agreed = agreed;\n res.serverInformation.currentTime = Date.now();\n res.termsOfUseId = termId;\n res.requesterInformation.receivedParams.termsOfUseId = _lodash2.default.toString(termId);\n return _promise2.default.resolve(res);\n }\n }, {\n key: 'getDocuSignUrl',\n value: function getDocuSignUrl(templateId, returnUrl) {\n _lodash2.default.noop(this);\n\n /* TODO: It has not been tracked explicitely, what is the response of\n * the real api here. It sure contains \"recipientViewUrl\", and this is\n * the only thing we need for our purposes now. However, it might also\n * have another useful datafields. This should be explored. */\n return _promise2.default.resolve({\n recipientViewUrl: '/community-app-assets/api/mock/docu-sign?returnUrl=' + returnUrl\n });\n }\n }, {\n key: 'agreeTerm',\n value: function agreeTerm(termId) {\n _lodash2.default.noop(termId, this);\n\n if (termId === 20704) {\n reviewTermsAgreed = true;\n }\n\n /* TODO: It has not been tracked explicitely, what is the response of\n * the real api here. It sure contains \"success\" field, and this is\n * the only thing we need for our purposes now. However, it might also\n * have another useful datafields. This should be explored. */\n return _promise2.default.resolve({ success: true });\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return TermsService;\n}();\n\n/**\n * Returns a new or existing terms service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {Object} Terms service object\n */\n\n\nvar lastInstance = null;\nfunction getService(tokenV2) {\n /* eslint-disable no-console */\n console.error('WARNING:\\n Mock version of DocuSign service is used! Should you see this message in\\n production, contact support as soon as possible!');\n /* eslint-enable no-console */\n if (!lastInstance || tokenV2 && lastInstance.private.tokenV2 !== tokenV2) {\n lastInstance = new TermsService(tokenV2);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(reviewTermsAgreed, 'reviewTermsAgreed', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/__mocks__/terms.js');\n reactHotLoader.register(TermsService, 'TermsService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/__mocks__/terms.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/__mocks__/terms.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/__mocks__/terms.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/__mocks__/terms.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/__mocks__/terms.js?");
/***/ }),
@@ -897,7 +945,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getTcM2mToken = exports.getApiV5 = exports.getApiV4 = exports.getApiV3 = exports.getApiV2 = undefined;\n\nvar _keys = __webpack_require__(/*! babel-runtime/core-js/object/keys */ \"babel-runtime/core-js/object/keys\");\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _stringify = __webpack_require__(/*! babel-runtime/core-js/json/stringify */ \"babel-runtime/core-js/json/stringify\");\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\n/**\n * Gets a valid TC M2M token, either requesting one from TC Auth0 API, or\n * serving one from internal cache.\n *\n * @return {Promise} Resolves to a token, valid at least next\n * getTcM2mToken.MIN_LIFETIME milliseconds.\n *\n * @throw if called outside of the server.s\n */\nvar getTcM2mToken = exports.getTcM2mToken = function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var now, cached, TC_M2M, res;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (_topcoderReactUtils.isomorphy.isServerSide()) {\n _context2.next = 2;\n break;\n }\n\n throw new Error('getTcM2mToken() called outside the server');\n\n case 2:\n now = Date.now();\n cached = getTcM2mToken.cached;\n TC_M2M = _topcoderReactUtils.config.SECRET.TC_M2M;\n\n if (!(!cached || cached.expires < now + getTcM2mToken.MIN_LIFETIME)) {\n _context2.next = 13;\n break;\n }\n\n _context2.next = 8;\n return (0, _crossFetch2.default)('https://' + _topcoderReactUtils.config.AUTH0.DOMAIN + '/oauth/token', {\n headers: { 'Content-Type': 'application/json' },\n body: (0, _stringify2.default)({\n client_id: TC_M2M.CLIENT_ID,\n client_secret: TC_M2M.CLIENT_SECRET,\n audience: TC_M2M.AUDIENCE,\n grant_type: TC_M2M.GRANT_TYPE\n }),\n method: 'POST'\n });\n\n case 8:\n res = _context2.sent;\n _context2.next = 11;\n return res.json();\n\n case 11:\n res = _context2.sent;\n\n getTcM2mToken.cached = {\n expires: now + 1000 * res.expires_in, // [ms]\n token: res.access_token\n };\n\n case 13:\n return _context2.abrupt('return', getTcM2mToken.cached.token);\n\n case 14:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n return function getTcM2mToken() {\n return _ref2.apply(this, arguments);\n };\n}();\n\nexports.getApi = getApi;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _crossFetch = __webpack_require__(/*! cross-fetch */ \"./node_modules/cross-fetch/dist/browser-ponyfill.js\");\n\nvar _crossFetch2 = _interopRequireDefault(_crossFetch);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _time = __webpack_require__(/*! ../utils/time */ \"./src/utils/time.js\");\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.api\"\n * @desc This module provides a service for conventient access to Topcoder APIs.\n */\n\n/* The minimal delay [ms] between API calls. To avoid problems with the requests\n * rate limits configured in Topcoder APIs, we throttle requests rate at the\n * client side, and at server-side, in dev mode (which is meant to be used for\n * local development. */\nvar MIN_API_CALL_DELAY = _topcoderReactUtils.isomorphy.isDevBuild() ? 1000 : 200;\n\nvar API_THROTTLING = true;\n\nvar lastApiCallTimestamp = Date.now();\n\n/**\n * @static\n * @member default\n * @desc The default export from the module is\n * {@link module:services.api~Api} class.\n */\n\n/**\n * API service object. It is reused for both Topcoder API v2 and v3,\n * as in these cases we are fine with the same interface, and the only\n * thing we need to be different is the base URL and auth token to use.\n */\n\nvar Api = function () {\n /**\n * Creates a new Api object.\n * @param {String} base Base URL of the API.\n * @param {String} token Optional. Authorization token.\n */\n function Api(base, token) {\n (0, _classCallCheck3.default)(this, Api);\n\n this.private = {\n base: base,\n token: token\n };\n }\n\n /**\n * Sends HTTP request to the specified API endpoint. This method is just\n * a convenient wrapper around isomorphic fetch(..):\n *\n * - If API service has auth token, Authorization header is automatically\n * added to the request;\n *\n * - If no Content-Type header set in options, it is automatically set to\n * \"application/json\". In case you want to avoid it, pass null into\n * Content-Type header option.\n *\n * For additional details see https://github.github.io/fetch/\n * @param {String} enpoint Should start with slash, like /endpoint.\n * @param {Object} options Optional. Fetch options.\n * @return {Promise} It resolves to the HTTP response object. To get the\n * actual data you probably want to call .json() method of that object.\n * Mind that this promise rejects only on network errors. In case of\n * HTTP errors (404, etc.) the promise will be resolved successfully,\n * and you should check .status or .ok fields of the response object\n * to find out the response status.\n */\n\n\n (0, _createClass3.default)(Api, [{\n key: 'fetch',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(endpoint) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _private, base, token, headers, now;\n\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _private = this.private, base = _private.base, token = _private.token;\n headers = options.headers ? _lodash2.default.clone(options.headers) : {};\n\n if (token) headers.Authorization = 'Bearer ' + token;\n\n _context.t0 = headers['Content-Type'];\n _context.next = _context.t0 === null ? 6 : _context.t0 === undefined ? 8 : 10;\n break;\n\n case 6:\n delete headers['Content-Type'];\n return _context.abrupt('break', 10);\n\n case 8:\n headers['Content-Type'] = 'application/json';\n return _context.abrupt('break', 10);\n\n case 10:\n if (!(API_THROTTLING && (_topcoderReactUtils.isomorphy.isClientSide() || _topcoderReactUtils.isomorphy.isDevBuild()))) {\n _context.next = 19;\n break;\n }\n\n now = Date.now();\n\n lastApiCallTimestamp += MIN_API_CALL_DELAY;\n\n if (!(lastApiCallTimestamp > now)) {\n _context.next = 18;\n break;\n }\n\n _context.next = 16;\n return (0, _time.delay)(lastApiCallTimestamp - now);\n\n case 16:\n _context.next = 19;\n break;\n\n case 18:\n lastApiCallTimestamp = now;\n\n case 19:\n return _context.abrupt('return', (0, _crossFetch2.default)('' + base + endpoint, (0, _extends3.default)({}, options, {\n headers: headers\n })).catch(function (e) {\n (0, _errors.setErrorIcon)(_errors.ERROR_ICON_TYPES.NETWORK, '' + base + endpoint, e.message);\n throw e;\n }));\n\n case 20:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function fetch(_x) {\n return _ref.apply(this, arguments);\n }\n\n return fetch;\n }()\n\n /**\n * Sends DELETE request to the specified endpoint.\n * @param {String} endpoint\n * @param {Blob|BufferSource|FormData|String} body\n * @return {Promise}\n */\n\n }, {\n key: 'delete',\n value: function _delete(endpoint, body) {\n return this.fetch(endpoint, {\n body: body,\n method: 'DELETE'\n });\n }\n\n /**\n * Sends GET request to the specified endpoint.\n * @param {String} endpoint\n * @return {Promise}\n */\n\n }, {\n key: 'get',\n value: function get(endpoint) {\n return this.fetch(endpoint);\n }\n\n /**\n * Sends POST request to the specified endpoint.\n * @param {String} endpoint\n * @param {Blob|BufferSource|FormData|String} body\n * @return {Promise}\n */\n\n }, {\n key: 'post',\n value: function post(endpoint, body) {\n return this.fetch(endpoint, {\n body: body,\n method: 'POST'\n });\n }\n\n /**\n * Sends POST request to the specified endpoint, with JSON payload.\n * @param {String} endpoint\n * @param {JSON} json\n * @return {Promise}\n */\n\n }, {\n key: 'postJson',\n value: function postJson(endpoint, json) {\n return this.post(endpoint, (0, _stringify2.default)(json));\n }\n\n /**\n * Sends PUT request to the specified endpoint.\n * @param {String} endpoint\n * @param {Blob|BufferSource|FormData|String} body\n * @return {Promise}\n */\n\n }, {\n key: 'put',\n value: function put(endpoint, body) {\n return this.fetch(endpoint, {\n body: body,\n method: 'PUT'\n });\n }\n\n /**\n * Sends PUT request to the specified endpoint.\n * @param {String} endpoint\n * @param {JSON} json\n * @return {Promise}\n */\n\n }, {\n key: 'putJson',\n value: function putJson(endpoint, json) {\n return this.put(endpoint, (0, _stringify2.default)(json));\n }\n\n /**\n * Sends PATCH request to the specified endpoint.\n * @param {String} endpoint\n * @param {Blob|BufferSource|FormData|String} body\n * @return {Promise}\n */\n\n }, {\n key: 'patch',\n value: function patch(endpoint, body) {\n return this.fetch(endpoint, {\n body: body,\n method: 'PATCH'\n });\n }\n\n /**\n * Sends PATCH request to the specified endpoint.\n * @param {String} endpoint\n * @param {JSON} json\n * @return {Promise}\n */\n\n }, {\n key: 'patchJson',\n value: function patchJson(endpoint, json) {\n return this.patch(endpoint, (0, _stringify2.default)(json));\n }\n\n /**\n * Upload with progress\n * @param {String} endpoint\n * @param {Object} body and headers\n * @param {Function} callback handler for update progress only works for client side for now\n * @return {Promise}\n */\n\n }, {\n key: 'upload',\n value: function upload(endpoint, options, onProgress) {\n var _private2 = this.private,\n base = _private2.base,\n token = _private2.token;\n\n var headers = options.headers ? _lodash2.default.clone(options.headers) : {};\n if (token) headers.Authorization = 'Bearer ' + token;\n if (_topcoderReactUtils.isomorphy.isClientSide()) {\n return new _promise2.default(function (res, rej) {\n var xhr = new XMLHttpRequest(); //eslint-disable-line\n xhr.open(options.method, '' + base + endpoint);\n (0, _keys2.default)(headers).forEach(function (key) {\n if (headers[key] != null) {\n xhr.setRequestHeader(key, headers[key]);\n }\n });\n xhr.onload = function (e) {\n return res(e.target.responseText);\n };\n xhr.onerror = rej;\n if (xhr.upload && onProgress) {\n xhr.upload.onprogress = function (evt) {\n if (evt.lengthComputable) onProgress(evt.loaded / evt.total);\n };\n }\n xhr.send(options.body);\n });\n }\n return this.fetch(endpoint, options);\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return Api;\n}();\n\nvar _default = Api;\nexports.default = _default;\n\n/*\n * Topcoder API\n */\n\nvar lastApiInstances = {};\n\n/**\n * Returns a new or existing Api object for Topcoder API.\n * @param {String} version The API version.\n * @param {String} token Optional. Auth token for Topcoder API.\n * @return {Api} API service object.\n */\nfunction getApi(version, token) {\n if (!version || !_topcoderReactUtils.config.API[version]) {\n throw new Error(version + ' is not a valid API version');\n }\n if (!lastApiInstances[version] || lastApiInstances[version].private.token !== token) {\n lastApiInstances[version] = new Api(_topcoderReactUtils.config.API[version], token);\n }\n return lastApiInstances[version];\n}\n\n/**\n * Keep the old API factories for backwards compatibility\n * DO NOT USE THEM FOR NEW IMPLEMENTATIONS.\n * USE THE getApi(version, token) FACTORY.\n */\nvar getApiV2 = exports.getApiV2 = function getApiV2(token) {\n return getApi('V2', token);\n};\nvar getApiV3 = exports.getApiV3 = function getApiV3(token) {\n return getApi('V3', token);\n};\nvar getApiV4 = exports.getApiV4 = function getApiV4(token) {\n return getApi('V4', token);\n};\nvar getApiV5 = exports.getApiV5 = function getApiV5(token) {\n return getApi('V5', token);\n};\n\ngetTcM2mToken.MIN_LIFETIME = 30 * 1000; // [ms]\n\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(MIN_API_CALL_DELAY, 'MIN_API_CALL_DELAY', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(API_THROTTLING, 'API_THROTTLING', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(lastApiCallTimestamp, 'lastApiCallTimestamp', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(Api, 'Api', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(lastApiInstances, 'lastApiInstances', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(getApi, 'getApi', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(getApiV2, 'getApiV2', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(getApiV3, 'getApiV3', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(getApiV4, 'getApiV4', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(getApiV5, 'getApiV5', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(getTcM2mToken, 'getTcM2mToken', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/api.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/api.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getTcM2mToken = exports.getApiV5 = exports.getApiV4 = exports.getApiV3 = exports.getApiV2 = undefined;\n\nvar _keys = __webpack_require__(/*! babel-runtime/core-js/object/keys */ \"babel-runtime/core-js/object/keys\");\n\nvar _keys2 = _interopRequireDefault(_keys);\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _stringify = __webpack_require__(/*! babel-runtime/core-js/json/stringify */ \"babel-runtime/core-js/json/stringify\");\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\n/**\n * Gets a valid TC M2M token, either requesting one from TC Auth0 API, or\n * serving one from internal cache.\n *\n * @return {Promise} Resolves to a token, valid at least next\n * getTcM2mToken.MIN_LIFETIME milliseconds.\n *\n * @throw if called outside of the server.s\n */\nvar getTcM2mToken = exports.getTcM2mToken = function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var TC_M2M, token;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (_topcoderReactUtils.isomorphy.isServerSide()) {\n _context2.next = 2;\n break;\n }\n\n throw new Error('getTcM2mToken() called outside the server');\n\n case 2:\n TC_M2M = _topcoderReactUtils.config.SECRET.TC_M2M;\n _context2.next = 5;\n return m2m.getMachineToken(TC_M2M.CLIENT_ID, TC_M2M.CLIENT_SECRET);\n\n case 5:\n token = _context2.sent;\n return _context2.abrupt('return', token);\n\n case 7:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n return function getTcM2mToken() {\n return _ref2.apply(this, arguments);\n };\n}();\n\nexports.getApi = getApi;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _crossFetch = __webpack_require__(/*! cross-fetch */ \"./node_modules/cross-fetch/dist/browser-ponyfill.js\");\n\nvar _crossFetch2 = _interopRequireDefault(_crossFetch);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _tcCoreLibraryJs = __webpack_require__(/*! tc-core-library-js */ \"tc-core-library-js\");\n\nvar _time = __webpack_require__(/*! ../utils/time */ \"./src/utils/time.js\");\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.api\"\n * @desc This module provides a service for conventient access to Topcoder APIs.\n */\n\nvar m2mAuth = _tcCoreLibraryJs.auth.m2m;\n\n\nvar m2m = m2mAuth(_lodash2.default.pick(_topcoderReactUtils.config.AUTH_CONFIG, ['AUTH0_URL', 'AUTH0_AUDIENCE', 'TOKEN_CACHE_TIME', 'AUTH0_PROXY_SERVER_URL']));\n\n/* The minimal delay [ms] between API calls. To avoid problems with the requests\n * rate limits configured in Topcoder APIs, we throttle requests rate at the\n * client side, and at server-side, in dev mode (which is meant to be used for\n * local development. */\nvar MIN_API_CALL_DELAY = _topcoderReactUtils.isomorphy.isDevBuild() ? 1000 : 200;\n\nvar API_THROTTLING = true;\n\nvar lastApiCallTimestamp = Date.now();\n\n/**\n * @static\n * @member default\n * @desc The default export from the module is\n * {@link module:services.api~Api} class.\n */\n\n/**\n * API service object. It is reused for both Topcoder API v2 and v3,\n * as in these cases we are fine with the same interface, and the only\n * thing we need to be different is the base URL and auth token to use.\n */\n\nvar Api = function () {\n /**\n * Creates a new Api object.\n * @param {String} base Base URL of the API.\n * @param {String} token Optional. Authorization token.\n */\n function Api(base, token) {\n (0, _classCallCheck3.default)(this, Api);\n\n this.private = {\n base: base,\n token: token\n };\n }\n\n /**\n * Sends HTTP request to the specified API endpoint. This method is just\n * a convenient wrapper around isomorphic fetch(..):\n *\n * - If API service has auth token, Authorization header is automatically\n * added to the request;\n *\n * - If no Content-Type header set in options, it is automatically set to\n * \"application/json\". In case you want to avoid it, pass null into\n * Content-Type header option.\n *\n * For additional details see https://github.github.io/fetch/\n * @param {String} enpoint Should start with slash, like /endpoint.\n * @param {Object} options Optional. Fetch options.\n * @return {Promise} It resolves to the HTTP response object. To get the\n * actual data you probably want to call .json() method of that object.\n * Mind that this promise rejects only on network errors. In case of\n * HTTP errors (404, etc.) the promise will be resolved successfully,\n * and you should check .status or .ok fields of the response object\n * to find out the response status.\n */\n\n\n (0, _createClass3.default)(Api, [{\n key: 'fetch',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(endpoint) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _private, base, token, headers, now;\n\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _private = this.private, base = _private.base, token = _private.token;\n headers = options.headers ? _lodash2.default.clone(options.headers) : {};\n\n if (token) headers.Authorization = 'Bearer ' + token;\n\n _context.t0 = headers['Content-Type'];\n _context.next = _context.t0 === null ? 6 : _context.t0 === undefined ? 8 : 10;\n break;\n\n case 6:\n delete headers['Content-Type'];\n return _context.abrupt('break', 10);\n\n case 8:\n headers['Content-Type'] = 'application/json';\n return _context.abrupt('break', 10);\n\n case 10:\n if (!(API_THROTTLING && (_topcoderReactUtils.isomorphy.isClientSide() || _topcoderReactUtils.isomorphy.isDevBuild()))) {\n _context.next = 19;\n break;\n }\n\n now = Date.now();\n\n lastApiCallTimestamp += MIN_API_CALL_DELAY;\n\n if (!(lastApiCallTimestamp > now)) {\n _context.next = 18;\n break;\n }\n\n _context.next = 16;\n return (0, _time.delay)(lastApiCallTimestamp - now);\n\n case 16:\n _context.next = 19;\n break;\n\n case 18:\n lastApiCallTimestamp = now;\n\n case 19:\n return _context.abrupt('return', (0, _crossFetch2.default)('' + base + endpoint, (0, _extends3.default)({}, options, {\n headers: headers\n })).catch(function (e) {\n (0, _errors.setErrorIcon)(_errors.ERROR_ICON_TYPES.NETWORK, '' + base + endpoint, e.message);\n throw e;\n }));\n\n case 20:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function fetch(_x) {\n return _ref.apply(this, arguments);\n }\n\n return fetch;\n }()\n\n /**\n * Sends DELETE request to the specified endpoint.\n * @param {String} endpoint\n * @param {Blob|BufferSource|FormData|String} body\n * @return {Promise}\n */\n\n }, {\n key: 'delete',\n value: function _delete(endpoint, body) {\n return this.fetch(endpoint, {\n body: body,\n method: 'DELETE'\n });\n }\n\n /**\n * Sends GET request to the specified endpoint.\n * @param {String} endpoint\n * @return {Promise}\n */\n\n }, {\n key: 'get',\n value: function get(endpoint) {\n return this.fetch(endpoint);\n }\n\n /**\n * Sends POST request to the specified endpoint.\n * @param {String} endpoint\n * @param {Blob|BufferSource|FormData|String} body\n * @return {Promise}\n */\n\n }, {\n key: 'post',\n value: function post(endpoint, body) {\n return this.fetch(endpoint, {\n body: body,\n method: 'POST'\n });\n }\n\n /**\n * Sends POST request to the specified endpoint, with JSON payload.\n * @param {String} endpoint\n * @param {JSON} json\n * @return {Promise}\n */\n\n }, {\n key: 'postJson',\n value: function postJson(endpoint, json) {\n return this.post(endpoint, (0, _stringify2.default)(json));\n }\n\n /**\n * Sends PUT request to the specified endpoint.\n * @param {String} endpoint\n * @param {Blob|BufferSource|FormData|String} body\n * @return {Promise}\n */\n\n }, {\n key: 'put',\n value: function put(endpoint, body) {\n return this.fetch(endpoint, {\n body: body,\n method: 'PUT'\n });\n }\n\n /**\n * Sends PUT request to the specified endpoint.\n * @param {String} endpoint\n * @param {JSON} json\n * @return {Promise}\n */\n\n }, {\n key: 'putJson',\n value: function putJson(endpoint, json) {\n return this.put(endpoint, (0, _stringify2.default)(json));\n }\n\n /**\n * Sends PATCH request to the specified endpoint.\n * @param {String} endpoint\n * @param {Blob|BufferSource|FormData|String} body\n * @return {Promise}\n */\n\n }, {\n key: 'patch',\n value: function patch(endpoint, body) {\n return this.fetch(endpoint, {\n body: body,\n method: 'PATCH'\n });\n }\n\n /**\n * Sends PATCH request to the specified endpoint.\n * @param {String} endpoint\n * @param {JSON} json\n * @return {Promise}\n */\n\n }, {\n key: 'patchJson',\n value: function patchJson(endpoint, json) {\n return this.patch(endpoint, (0, _stringify2.default)(json));\n }\n\n /**\n * Upload with progress\n * @param {String} endpoint\n * @param {Object} body and headers\n * @param {Function} callback handler for update progress only works for client side for now\n * @return {Promise}\n */\n\n }, {\n key: 'upload',\n value: function upload(endpoint, options, onProgress) {\n var _private2 = this.private,\n base = _private2.base,\n token = _private2.token;\n\n var headers = options.headers ? _lodash2.default.clone(options.headers) : {};\n if (token) headers.Authorization = 'Bearer ' + token;\n if (_topcoderReactUtils.isomorphy.isClientSide()) {\n return new _promise2.default(function (res, rej) {\n var xhr = new XMLHttpRequest(); //eslint-disable-line\n xhr.open(options.method, '' + base + endpoint);\n (0, _keys2.default)(headers).forEach(function (key) {\n if (headers[key] != null) {\n xhr.setRequestHeader(key, headers[key]);\n }\n });\n xhr.onload = function (e) {\n return res(e.target.responseText);\n };\n xhr.onerror = rej;\n if (xhr.upload && onProgress) {\n xhr.upload.onprogress = function (evt) {\n if (evt.lengthComputable) onProgress(evt.loaded / evt.total);\n };\n }\n xhr.send(options.body);\n });\n }\n return this.fetch(endpoint, options);\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return Api;\n}();\n\nvar _default = Api;\nexports.default = _default;\n\n/*\n * Topcoder API\n */\n\nvar lastApiInstances = {};\n\n/**\n * Returns a new or existing Api object for Topcoder API.\n * @param {String} version The API version.\n * @param {String} token Optional. Auth token for Topcoder API.\n * @return {Api} API service object.\n */\nfunction getApi(version, token) {\n if (!version || !_topcoderReactUtils.config.API[version]) {\n throw new Error(version + ' is not a valid API version');\n }\n if (!lastApiInstances[version] || lastApiInstances[version].private.token !== token) {\n lastApiInstances[version] = new Api(_topcoderReactUtils.config.API[version], token);\n }\n return lastApiInstances[version];\n}\n\n/**\n * Keep the old API factories for backwards compatibility\n * DO NOT USE THEM FOR NEW IMPLEMENTATIONS.\n * USE THE getApi(version, token) FACTORY.\n */\nvar getApiV2 = exports.getApiV2 = function getApiV2(token) {\n return getApi('V2', token);\n};\nvar getApiV3 = exports.getApiV3 = function getApiV3(token) {\n return getApi('V3', token);\n};\nvar getApiV4 = exports.getApiV4 = function getApiV4(token) {\n return getApi('V4', token);\n};\nvar getApiV5 = exports.getApiV5 = function getApiV5(token) {\n return getApi('V5', token);\n};;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(m2mAuth, 'm2mAuth', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(m2m, 'm2m', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(MIN_API_CALL_DELAY, 'MIN_API_CALL_DELAY', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(API_THROTTLING, 'API_THROTTLING', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(lastApiCallTimestamp, 'lastApiCallTimestamp', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(Api, 'Api', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(lastApiInstances, 'lastApiInstances', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(getApi, 'getApi', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(getApiV2, 'getApiV2', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(getApiV3, 'getApiV3', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(getApiV4, 'getApiV4', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(getApiV5, 'getApiV5', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(getTcM2mToken, 'getTcM2mToken', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/api.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/api.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/api.js?");
/***/ }),
@@ -909,7 +957,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.billing\"\n * @desc Access to Topcoder billing accounts.\n */\n\n\n/**\n * @static\n * @member default\n * @desc Default module export is\n * {@link module:services.billing~Billing} class.\n */\n\n/**\n * Billing service object.\n */\nvar Billing = function () {\n /**\n * Creates a new service.\n * @param {String} tokenV3 Topcoder auth token v3.\n */\n function Billing(tokenV3) {\n (0, _classCallCheck3.default)(this, Billing);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Gets billing accounts accessible to service user.\n * @return {Promise} Resolves to the list of billing account objects.\n */\n\n\n (0, _createClass3.default)(Billing, [{\n key: 'getUserBillingAccounts',\n value: function getUserBillingAccounts() {\n return this.private.api.fetch();\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return Billing;\n}();\n\nvar lastInstance = null;\n\n/**\n * Returns a new or existing Billing service for the user specified by token.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Billing} Billing service instance.\n */\nfunction getService(tokenV3) {\n if (!lastInstance || lastInstance.private.tokenV3 !== tokenV3) {\n lastInstance = new Billing(tokenV3);\n }\n return lastInstance;\n}\n\nvar _default = Billing;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(Billing, 'Billing', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/billing.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/billing.js');\n reactHotLoader.register(getService, 'getService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/billing.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/billing.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/billing.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.billing\"\n * @desc Access to Topcoder billing accounts.\n */\n\n\n/**\n * @static\n * @member default\n * @desc Default module export is\n * {@link module:services.billing~Billing} class.\n */\n\n/**\n * Billing service object.\n */\nvar Billing = function () {\n /**\n * Creates a new service.\n * @param {String} tokenV3 Topcoder auth token v3.\n */\n function Billing(tokenV3) {\n (0, _classCallCheck3.default)(this, Billing);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Gets billing accounts accessible to service user.\n * @return {Promise} Resolves to the list of billing account objects.\n */\n\n\n (0, _createClass3.default)(Billing, [{\n key: 'getUserBillingAccounts',\n value: function getUserBillingAccounts() {\n return this.private.api.fetch();\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return Billing;\n}();\n\nvar lastInstance = null;\n\n/**\n * Returns a new or existing Billing service for the user specified by token.\n * @param {String} tokenV3 Topcoder auth token v3.\n * @return {Billing} Billing service instance.\n */\nfunction getService(tokenV3) {\n if (!lastInstance || lastInstance.private.tokenV3 !== tokenV3) {\n lastInstance = new Billing(tokenV3);\n }\n return lastInstance;\n}\n\nvar _default = Billing;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(Billing, 'Billing', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/billing.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/billing.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/billing.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/billing.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/billing.js?");
/***/ }),
@@ -921,7 +969,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ORDER_BY = undefined;\n\nvar _stringify = __webpack_require__(/*! babel-runtime/core-js/json/stringify */ \"babel-runtime/core-js/json/stringify\");\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _set = __webpack_require__(/*! babel-runtime/core-js/set */ \"babel-runtime/core-js/set\");\n\nvar _set2 = _interopRequireDefault(_set);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\n/**\n * Helper method that checks for HTTP error response and throws Error in this case.\n * @param {Object} res HTTP response object\n * @return {Object} API JSON response object\n * @private\n */\nvar checkError = function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(res) {\n var jsonRes;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (res.ok) {\n _context.next = 3;\n break;\n }\n\n if (res.status >= 500) {\n (0, _errors.setErrorIcon)(_errors.ERROR_ICON_TYPES.API, '/challenges', res.statusText);\n }\n throw new Error(res.statusText);\n\n case 3:\n _context.next = 5;\n return res.json();\n\n case 5:\n jsonRes = _context.sent.result;\n\n if (!(jsonRes.status !== 200)) {\n _context.next = 8;\n break;\n }\n\n throw new Error(jsonRes.content);\n\n case 8:\n return _context.abrupt('return', jsonRes);\n\n case 9:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function checkError(_x) {\n return _ref3.apply(this, arguments);\n };\n}();\n\n/**\n * Helper method that checks for HTTP error response v5 and throws Error in this case.\n * @param {Object} res HTTP response object\n * @return {Object} API JSON response object\n * @private\n */\n\n\nvar checkErrorV5 = function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(res) {\n var jsonRes;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (res.ok) {\n _context2.next = 3;\n break;\n }\n\n if (res.status >= 500) {\n (0, _errors.setErrorIcon)(_errors.ERROR_ICON_TYPES.API, '/challenges', res.statusText);\n }\n throw new Error(res.statusText);\n\n case 3:\n _context2.next = 5;\n return res.json();\n\n case 5:\n jsonRes = _context2.sent;\n\n if (!jsonRes.message) {\n _context2.next = 8;\n break;\n }\n\n throw new Error(res.message);\n\n case 8:\n return _context2.abrupt('return', {\n result: jsonRes,\n headers: res.headers\n });\n\n case 9:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n return function checkErrorV5(_x2) {\n return _ref4.apply(this, arguments);\n };\n}();\n\n/**\n * Challenge service.\n */\n\n\nexports.normalizeChallengeDetails = normalizeChallengeDetails;\nexports.normalizeChallenge = normalizeChallenge;\nexports.getService = getService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _moment = __webpack_require__(/*! moment */ \"moment\");\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _tcAccounts = __webpack_require__(/*! tc-accounts */ \"tc-accounts\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nvar _tc = __webpack_require__(/*! ../utils/tc */ \"./src/utils/tc.js\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nvar _members = __webpack_require__(/*! ./members */ \"./src/services/members.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.challenges\"\n * @desc This module provides a service for convenient manipulation with\n * Topcoder challenges via TC API.\n */\n\nvar ORDER_BY = exports.ORDER_BY = {\n SUBMISSION_END_DATE: 'submissionEndDate'\n};\n\n/**\n * Normalizes a regular challenge details object received from the backend APIs.\n * @todo Why this one is exported? It should be only used internally!\n * @param {Object} challenge Challenge object received from the /challenges/{id}\n * endpoint.\n * @param {Object} filtered Challenge object received from the\n * /challenges?filter=id={id} endpoint.\n * @param {Object} user Challenge object received from the\n * /members/{username}/challenges?filter=id={id} endpoint.\n * If action was fired for authenticated visitor, `user` will contain\n * details fetched specifically for the user (thus may include additional\n * data comparing to the standard API response for the challenge details,\n * stored in `filtered`).\n * @param {String} username Optional.\n * @return {Object} Normalized challenge object.\n */\nfunction normalizeChallengeDetails(challenge, filtered, user, username) {\n // Normalize exising data to make it consistent with the rest of the code\n var finalChallenge = (0, _extends3.default)({}, challenge, {\n\n id: challenge.id,\n reliabilityBonus: _lodash2.default.get(filtered, 'reliabilityBonus', 0),\n status: (challenge.currentStatus || '').toUpperCase(),\n\n allPhases: [],\n currentPhases: [],\n challengeType: {},\n name: challenge.challengeName || challenge.challengeTitle || challenge.name || '',\n projectId: Number(challenge.projectId),\n forumId: Number(challenge.forumId),\n introduction: challenge.introduction || '',\n detailedRequirements: challenge.detailedRequirements === 'null' ? '' : challenge.detailedRequirements,\n finalSubmissionGuidelines: challenge.finalSubmissionGuidelines === 'null' ? '' : challenge.finalSubmissionGuidelines,\n screeningScorecardId: Number(challenge.screeningScorecardId),\n reviewScorecardId: Number(challenge.reviewScorecardId),\n numberOfCheckpointsPrizes: challenge.numberOfCheckpointsPrizes,\n topCheckPointPrize: challenge.topCheckPointPrize,\n submissionsViewable: challenge.submissionsViewable || 'false',\n reviewType: challenge.reviewType,\n allowStockArt: challenge.allowStockArt === 'true',\n fileTypes: challenge.filetypes || [],\n environment: challenge.environment,\n codeRepo: challenge.codeRepo,\n forumLink: challenge.forumLink,\n submissionLimit: Number(challenge.submissionLimit) || 0,\n drPoints: challenge.digitalRunPoints,\n directUrl: challenge.directUrl,\n tags: _lodash2.default.union(challenge.technologies || [], challenge.technology || [], challenge.platforms || [], challenge.tags || []),\n prizes: challenge.prize || challenge.prizes || [],\n events: _lodash2.default.map(challenge.event, function (e) {\n return {\n eventName: e.eventShortDesc,\n eventId: e.id,\n description: e.eventDescription\n };\n }),\n terms: challenge.terms,\n submissions: challenge.submissions,\n track: _lodash2.default.toUpper(challenge.challengeCommunity),\n subTrack: challenge.subTrack,\n checkpoints: challenge.checkpoints,\n documents: challenge.documents || [],\n numRegistrants: challenge.numberOfRegistrants,\n numberOfCheckpointSubmissions: challenge.numberOfCheckpointSubmissions,\n registrants: challenge.registrants || []\n });\n\n // Winners have different field names, needs to be normalized to match `filtered` and `challenge`\n finalChallenge.winners = _lodash2.default.map(challenge.winners, function (winner, index) {\n return (0, _extends3.default)({}, winner, {\n handle: winner.submitter,\n placement: winner.rank || index + 1 // Legacy MMs do not have a rank but are sorted by points\n });\n });\n\n if (finalChallenge.subTrack === 'MARATHON_MATCH') {\n finalChallenge.track = 'DATA_SCIENCE';\n }\n\n // It's not clear if this will be the main event, will need to be investigated\n finalChallenge.mainEvent = finalChallenge.events[0] || {};\n\n /* It's unclear if these normalization steps are still required for `challenge` */\n // Fill missing data from filtered\n if (filtered) {\n var groups = {};\n if (filtered.groupIds) {\n filtered.groupIds.forEach(function (id) {\n groups[id] = true;\n });\n }\n\n _lodash2.default.merge(finalChallenge, {\n componentId: filtered.componentId,\n contestId: filtered.contestId,\n\n submissionEndDate: filtered.submissionEndDate, // Dates are not correct in `challenge`\n submissionEndTimestamp: filtered.submissionEndDate, // Dates are not correct in `challenge`\n\n /* Taking phases from filtered, because dates are not correct in `challenge` */\n allPhases: filtered.allPhases || [],\n\n /* Taking phases from filtered, because dates are not correct in `challenge` */\n currentPhases: filtered.currentPhases || [],\n\n /* `challenge` has incorrect value for numberOfSubmissions for some reason */\n numSubmissions: filtered.numSubmissions,\n groups: groups\n });\n }\n\n // Fill missing data from user\n if (user) {\n _lodash2.default.defaults(finalChallenge, {\n userDetails: user.userDetails\n });\n }\n\n var allPhases = finalChallenge.allPhases || finalChallenge.phases || [];\n\n // Fill some derived data\n var registrationOpen = _lodash2.default.some(allPhases, function (phase) {\n return phase.name === 'Registration' && phase.isActive;\n }) ? 'Yes' : 'No';\n _lodash2.default.defaults(finalChallenge, {\n communities: new _set2.default([_tc.COMPETITION_TRACKS[finalChallenge.track]]),\n registrationOpen: registrationOpen,\n users: username ? (0, _defineProperty3.default)({}, username, true) : {}\n });\n\n // A hot fix to show submissions for on-going challenges\n if (!finalChallenge.submissions || !finalChallenge.submissions.length) {\n finalChallenge.submissions = finalChallenge.registrants.filter(function (r) {\n return r.submissionDate || '';\n }).sort(function (a, b) {\n return (a.submissionDate || '').localeCompare(b.submissionDate || '');\n });\n }\n\n if (!finalChallenge.allPhases) finalChallenge.allPhases = [];\n if (!finalChallenge.track) finalChallenge.track = '';\n\n return finalChallenge;\n}\n\n/**\n * Normalizes a regular challenge object received from the backend.\n * NOTE: This function is copied from the existing code in the challenge listing\n * component. It is possible, that this normalization is not necessary after we\n * have moved to Topcoder API, but it is kept for now to minimize a risk of\n * breaking anything.\n * @todo Should be used only internally!\n * @param {Object} challenge Challenge object received from the backend.\n * @param {String} username Optional.\n */\nfunction normalizeChallenge(challenge, username) {\n var registrationOpen = (challenge.allPhases || challenge.phases || []).filter(function (d) {\n return d.name === 'Registration' || !d.name;\n })[0].isActive ? 'Yes' : 'No';\n var groups = {};\n if (challenge.groupIds) {\n challenge.groupIds.forEach(function (id) {\n groups[id] = true;\n });\n }\n /* eslint-disable no-param-reassign */\n if (!challenge.prizes) challenge.prizes = challenge.prize || [];\n if (!challenge.totalPrize) {\n challenge.totalPrize = challenge.prizes.reduce(function (sum, x) {\n return sum + x;\n }, 0);\n }\n if (!challenge.technologies) challenge.technologies = [];\n if (!challenge.platforms) challenge.platforms = [];\n\n if (challenge.subTrack === 'DEVELOP_MARATHON_MATCH') {\n challenge.track = 'DATA_SCIENCE';\n }\n /* eslint-enable no-param-reassign */\n\n _lodash2.default.defaults(challenge, {\n communities: new _set2.default([_tc.COMPETITION_TRACKS[challenge.track]]),\n groups: groups,\n registrationOpen: registrationOpen,\n submissionEndTimestamp: challenge.submissionEndDate,\n users: username ? (0, _defineProperty3.default)({}, username, true) : {},\n challengeType: {}\n });\n}\nvar ChallengesService = function () {\n /**\n * Creates a new ChallengeService instance.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @param {String} tokenV2 Optional. Auth token for Topcoder API v2.\n */\n function ChallengesService(tokenV3, tokenV2) {\n var _this = this;\n\n (0, _classCallCheck3.default)(this, ChallengesService);\n\n /**\n * Private function being re-used in all methods related to getting\n * challenges. It handles query-related arguments in the uniform way:\n * @param {String} endpoint API endpoint, where the request will be send.\n * @param {Object} filters Optional. A map of filters to pass as `filter`\n * query parameter (this function takes care to stringify it properly).\n * @param {Object} params Optional. A map of any other parameters beside\n * `filter`.\n */\n var getChallenges = function () {\n var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(endpoint) {\n var filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var query, url, res;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n query = (0, _extends3.default)({}, filters, params);\n url = endpoint + '?' + _qs2.default.stringify(query);\n _context3.next = 4;\n return _this.private.apiV5.get(url).then(checkErrorV5);\n\n case 4:\n res = _context3.sent;\n return _context3.abrupt('return', {\n challenges: res.result || [],\n totalCount: res.headers.get('x-total'),\n meta: {\n allChallengesCount: res.headers.get('x-total'),\n myChallengesCount: 0,\n ongoingChallengesCount: 0,\n openChallengesCount: 0,\n totalCount: res.headers.get('x-total')\n }\n });\n\n case 6:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, _this);\n }));\n\n return function getChallenges(_x3) {\n return _ref5.apply(this, arguments);\n };\n }();\n /**\n * Private function being re-used in all methods related to getting\n * challenges. It handles query-related arguments in the uniform way:\n * @param {String} endpoint API endpoint, where the request will be send.\n * @param {Object} filters Optional. A map of filters to pass as `filter`\n * query parameter (this function takes care to stringify it properly).\n * @param {Object} params Optional. A map of any other parameters beside\n * `filter`.\n */\n var getMemberChallenges = function () {\n var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(endpoint) {\n var filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var query, url, res;\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n query = (0, _extends3.default)({\n filter: _qs2.default.stringify(filters, { encode: false })\n }, params);\n url = endpoint + '?' + _qs2.default.stringify(query);\n _context4.next = 4;\n return _this.private.api.get(url).then(checkError);\n\n case 4:\n res = _context4.sent;\n return _context4.abrupt('return', {\n challenges: res.content || [],\n totalCount: res.metadata.totalCount,\n meta: res.metadata\n });\n\n case 6:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, _this);\n }));\n\n return function getMemberChallenges(_x6) {\n return _ref6.apply(this, arguments);\n };\n }();\n\n this.private = {\n api: (0, _api.getApi)('V4', tokenV3),\n apiV5: (0, _api.getApi)('V5', tokenV3),\n apiV2: (0, _api.getApi)('V2', tokenV2),\n getChallenges: getChallenges,\n getMemberChallenges: getMemberChallenges,\n tokenV2: tokenV2,\n tokenV3: tokenV3,\n memberService: (0, _members.getService)()\n };\n }\n\n /**\n * Activates the specified challenge.\n * @param {Number} challengeId\n * @return {Promise} Resolves to null value in case of success; otherwise it\n * is rejected.\n */\n\n\n (0, _createClass3.default)(ChallengesService, [{\n key: 'activate',\n value: function () {\n var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(challengeId) {\n var res;\n return _regenerator2.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return this.private.api.post('/challenges/' + challengeId + '/activate');\n\n case 2:\n res = _context5.sent;\n\n if (res.ok) {\n _context5.next = 5;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 5:\n _context5.next = 7;\n return res.json();\n\n case 7:\n res = _context5.sent.result;\n\n if (!(res.status !== 200)) {\n _context5.next = 10;\n break;\n }\n\n throw new Error(res.content);\n\n case 10:\n return _context5.abrupt('return', res.content);\n\n case 11:\n case 'end':\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function activate(_x9) {\n return _ref7.apply(this, arguments);\n }\n\n return activate;\n }()\n\n /**\n * Closes the specified challenge.\n * @param {Number} challengeId\n * @param {Number} winnerId Optional. ID of the assignee to declare the\n * winner.\n * @return {Promise} Resolves to null value in case of success; otherwise it\n * is rejected.\n */\n\n }, {\n key: 'close',\n value: function () {\n var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(challengeId, winnerId) {\n var url, res;\n return _regenerator2.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n url = '/challenges/' + challengeId + '/close';\n\n if (winnerId) url = url + '?winnerId=' + winnerId;\n _context6.next = 4;\n return this.private.api.post(url);\n\n case 4:\n res = _context6.sent;\n\n if (res.ok) {\n _context6.next = 7;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 7:\n _context6.next = 9;\n return res.json();\n\n case 9:\n res = _context6.sent.result;\n\n if (!(res.status !== 200)) {\n _context6.next = 12;\n break;\n }\n\n throw new Error(res.content);\n\n case 12:\n return _context6.abrupt('return', res.content);\n\n case 13:\n case 'end':\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function close(_x10, _x11) {\n return _ref8.apply(this, arguments);\n }\n\n return close;\n }()\n\n /**\n * Creates a new payment task.\n * @param {Number} projectId\n * @param {Number} accountId Billing account ID.\n * @param {String} title\n * @param {String} description\n * @param {String} assignee\n * @param {Number} payment\n * @param {String} submissionGuidelines\n * @param {Number} copilotId\n * @param {Number} copilotFee\n * @param {?} technologies\n * @return {Promise} Resolves to the created challenge object (payment task).\n */\n\n }, {\n key: 'createTask',\n value: function () {\n var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(projectId, accountId, title, description, assignee, payment, submissionGuidelines, copilotId, copilotFee, technologies) {\n var payload, res;\n return _regenerator2.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n payload = {\n param: {\n assignees: [assignee],\n billingAccountId: accountId,\n confidentialityType: 'public',\n detailedRequirements: description,\n submissionGuidelines: submissionGuidelines,\n milestoneId: 1,\n name: title,\n technologies: technologies,\n prizes: payment ? [payment] : [],\n projectId: projectId,\n registrationStartsAt: (0, _moment2.default)().toISOString(),\n reviewType: 'INTERNAL',\n subTrack: 'FIRST_2_FINISH',\n task: true\n }\n };\n\n if (copilotId) {\n _lodash2.default.assign(payload.param, {\n copilotId: copilotId,\n copilotFee: copilotFee\n });\n }\n _context7.next = 4;\n return this.private.api.postJson('/challenges', payload);\n\n case 4:\n res = _context7.sent;\n\n if (res.ok) {\n _context7.next = 7;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 7:\n _context7.next = 9;\n return res.json();\n\n case 9:\n res = _context7.sent.result;\n\n if (!(res.status !== 200)) {\n _context7.next = 12;\n break;\n }\n\n throw new Error(res.content);\n\n case 12:\n return _context7.abrupt('return', res.content);\n\n case 13:\n case 'end':\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n\n function createTask(_x12, _x13, _x14, _x15, _x16, _x17, _x18, _x19, _x20, _x21) {\n return _ref9.apply(this, arguments);\n }\n\n return createTask;\n }()\n\n /**\n * Gets challenge details from Topcoder API.\n * NOTE: This function also uses API v2 and other endpoints for now, due\n * to some information is missing or\n * incorrect in the main endpoint. This may change in the future.\n * @param {Number|String} challengeId\n * @return {Promise} Resolves to the challenge object.\n */\n\n }, {\n key: 'getChallengeDetails',\n value: function () {\n var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(challengeId) {\n var challenge, challengeFiltered, username, challengeUser, finalChallenge;\n return _regenerator2.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return this.private.apiV5.get('/challenges/' + challengeId).then(checkErrorV5).then(function (res) {\n return res.result;\n });\n\n case 2:\n challenge = _context8.sent;\n _context8.next = 5;\n return this.private.getChallenges('/challenges/', { id: challengeId }).then(function (res) {\n return res.challenges[0];\n });\n\n case 5:\n challengeFiltered = _context8.sent;\n username = this.private.tokenV3 && (0, _tcAccounts.decodeToken)(this.private.tokenV3).handle;\n challengeUser = {};\n\n if (!challenge.legacyId) {\n _context8.next = 15;\n break;\n }\n\n _context8.t0 = username;\n\n if (!_context8.t0) {\n _context8.next = 14;\n break;\n }\n\n _context8.next = 13;\n return this.getUserChallenges(username, { id: challenge.legacyId }).then(function (res) {\n return res.challenges[0];\n }).catch(function () {\n return null;\n });\n\n case 13:\n _context8.t0 = _context8.sent;\n\n case 14:\n challengeUser = _context8.t0;\n\n case 15:\n finalChallenge = normalizeChallengeDetails(challenge, challengeFiltered, challengeUser, username);\n\n\n finalChallenge.fetchedWithAuth = Boolean(this.private.api.private.token);\n\n return _context8.abrupt('return', finalChallenge);\n\n case 18:\n case 'end':\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n\n function getChallengeDetails(_x22) {\n return _ref10.apply(this, arguments);\n }\n\n return getChallengeDetails;\n }()\n\n /**\n * Gets challenge registrants from Topcoder API.\n * @param {Number|String} challengeId\n * @return {Promise} Resolves to the challenge registrants array.\n */\n\n }, {\n key: 'getChallengeRegistrants',\n value: function () {\n var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(challengeId) {\n var challenge;\n return _regenerator2.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return this.private.apiV5.get('/challenges/' + challengeId).then(checkError).then(function (res) {\n return res;\n });\n\n case 2:\n challenge = _context9.sent;\n return _context9.abrupt('return', challenge.registrants || []);\n\n case 4:\n case 'end':\n return _context9.stop();\n }\n }\n }, _callee9, this);\n }));\n\n function getChallengeRegistrants(_x23) {\n return _ref11.apply(this, arguments);\n }\n\n return getChallengeRegistrants;\n }()\n\n /**\n * Gets possible challenge subtracks.\n * @return {Promise} Resolves to the array of subtrack names.\n */\n\n }, {\n key: 'getChallengeSubtracks',\n value: function getChallengeSubtracks() {\n return this.private.apiV5.get('/challengetypes').then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n }).then(function (res) {\n return res.message ? new Error(res.message) : res;\n });\n }\n\n /**\n * Gets possible challenge tags (technologies).\n * @return {Promise} Resolves to the array of tag strings.\n */\n\n }, {\n key: 'getChallengeTags',\n value: function getChallengeTags() {\n return this.private.api.get('/technologies').then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n }).then(function (res) {\n return res.result.status === 200 ? res.result.content : new Error(res.result.content);\n });\n }\n\n /**\n * Gets challenges.\n * @param {Object} filters Optional.\n * @param {Object} params Optional.\n * @return {Promise} Resolves to the api response.\n */\n\n }, {\n key: 'getChallenges',\n value: function getChallenges(filters, params) {\n return this.private.getChallenges('/challenges/', filters, params).then(function (res) {\n res.challenges.forEach(function (item) {\n return normalizeChallenge(item);\n });\n return res;\n });\n }\n\n /**\n * Gets SRM matches.\n * @param {Object} params\n * @return {Promise}\n */\n\n }, {\n key: 'getSrms',\n value: function () {\n var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(params) {\n var res;\n return _regenerator2.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return this.private.api.get('/srms/?' + _qs2.default.stringify(params));\n\n case 2:\n res = _context10.sent;\n return _context10.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n\n function getSrms(_x24) {\n return _ref12.apply(this, arguments);\n }\n\n return getSrms;\n }()\n }, {\n key: 'getUserChallenges',\n\n\n /**\n * Gets challenges of the specified user.\n * @param {String} username User whose challenges we want to fetch.\n * @param {Object} filters Optional.\n * @param {Number} params Optional.\n * @return {Promise} Resolves to the api response.\n */\n value: function getUserChallenges(username, filters, params) {\n var userFilters = _lodash2.default.cloneDeep(filters);\n ChallengesService.updateFiltersParamsForGettingMemberChallenges(userFilters, params);\n var endpoint = '/members/' + username.toLowerCase() + '/challenges/';\n return this.private.getMemberChallenges(endpoint, userFilters, params).then(function (res) {\n res.challenges.forEach(function (item) {\n return normalizeChallenge(item, username);\n });\n return res;\n });\n }\n\n /**\n * Gets marathon matches of the specified user.\n * @param {String} username User whose challenges we want to fetch.\n * @param {Object} filters Optional.\n * @param {Number} params Optional.\n * @return {Promise} Resolves to the api response.\n */\n\n }, {\n key: 'getUserMarathonMatches',\n value: function getUserMarathonMatches(username, filters, params) {\n ChallengesService.updateFiltersParamsForGettingMemberChallenges(filters, params);\n var endpoint = '/members/' + username.toLowerCase() + '/mms/';\n return this.private.getMemberChallenges(endpoint, filters, params);\n }\n\n /**\n * Gets SRM matches related to the user.\n * @param {String} handle\n * @param {Object} params\n * @return {Promise}\n */\n\n }, {\n key: 'getUserSrms',\n value: function () {\n var _ref13 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(handle, params) {\n var url, res;\n return _regenerator2.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n url = '/members/' + handle + '/srms/?' + _qs2.default.stringify(params);\n _context11.next = 3;\n return this.private.api.get(url);\n\n case 3:\n res = _context11.sent;\n return _context11.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n function getUserSrms(_x25, _x26) {\n return _ref13.apply(this, arguments);\n }\n\n return getUserSrms;\n }()\n\n /**\n * Registers user to the specified challenge.\n * @param {String} challengeId\n * @return {Promise}\n */\n\n }, {\n key: 'register',\n value: function () {\n var _ref14 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12(challengeId) {\n var endpoint, res;\n return _regenerator2.default.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n endpoint = '/challenges/' + challengeId + '/register';\n _context12.next = 3;\n return this.private.api.postJson(endpoint);\n\n case 3:\n res = _context12.sent;\n\n if (res.ok) {\n _context12.next = 6;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 6:\n return _context12.abrupt('return', res.json());\n\n case 7:\n case 'end':\n return _context12.stop();\n }\n }\n }, _callee12, this);\n }));\n\n function register(_x27) {\n return _ref14.apply(this, arguments);\n }\n\n return register;\n }()\n\n /**\n * Unregisters user from the specified challenge.\n * @param {String} challengeId\n * @return {Promise}\n */\n\n }, {\n key: 'unregister',\n value: function () {\n var _ref15 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee13(challengeId) {\n var endpoint, res;\n return _regenerator2.default.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n endpoint = '/challenges/' + challengeId + '/unregister';\n _context13.next = 3;\n return this.private.api.post(endpoint);\n\n case 3:\n res = _context13.sent;\n\n if (res.ok) {\n _context13.next = 6;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 6:\n return _context13.abrupt('return', res.json());\n\n case 7:\n case 'end':\n return _context13.stop();\n }\n }\n }, _callee13, this);\n }));\n\n function unregister(_x28) {\n return _ref15.apply(this, arguments);\n }\n\n return unregister;\n }()\n\n /**\n * Gets count of user's active challenges.\n * @param {String} handle Topcoder user handle.\n * @return {Action} Resolves to the api response.\n */\n\n }, {\n key: 'getActiveChallengesCount',\n value: function getActiveChallengesCount(handle) {\n var filter = { status: 'Active' };\n var params = { limit: 1, offset: 0 };\n return this.getUserChallenges(handle, filter, params).then(function (res) {\n return res.totalCount;\n });\n }\n\n /**\n * Submits a challenge submission. Uses APIV2 for Development submission\n * and APIV3 for Design submisisons.\n * @param {Object} body\n * @param {String} challengeId\n * @param {String} track Either DESIGN or DEVELOP\n * @return {Promise}\n */\n\n }, {\n key: 'submit',\n value: function submit(body, challengeId, track, onProgress) {\n var api = void 0;\n var contentType = void 0;\n var url = void 0;\n\n if (track === 'DESIGN') {\n api = this.private.api;\n\n contentType = 'application/json';\n url = '/submissions/'; // The submission info is contained entirely in the JSON body\n } else {\n api = this.private.apiV2;\n // contentType = 'multipart/form-data';\n contentType = null;\n url = '/develop/challenges/' + challengeId + '/upload';\n }\n\n return api.upload(url, {\n body: body,\n headers: { 'Content-Type': contentType },\n method: 'POST'\n }, onProgress).then(function (res) {\n var jres = JSON.parse(res);\n // Return result for Develop submission\n if (track === 'DEVELOP') {\n return jres;\n }\n // Design Submission requires an extra \"Processing\" POST\n var procId = jres.result.content.id;\n return api.upload('/submissions/' + procId + '/process/', {\n body: (0, _stringify2.default)({ param: jres.result.content }),\n headers: { 'Content-Type': contentType },\n method: 'POST'\n }, onProgress).then(function (procres) {\n return JSON.parse(procres);\n });\n }, function (err) {\n _logger2.default.error('Failed to submit to the challenge #' + challengeId, err);\n throw err;\n });\n }\n\n /**\n * Updates the challenge (saves the give challenge to the API).\n * @param {Object} challenge\n * @param {String} tokenV3\n * @return {Promise}\n */\n\n }, {\n key: 'updateChallenge',\n value: function () {\n var _ref16 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee14(challenge) {\n var URL, body, res;\n return _regenerator2.default.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n URL = '/challenges/' + challenge.id;\n body = { param: challenge };\n _context14.next = 4;\n return this.private.api.putJson(URL, body);\n\n case 4:\n res = _context14.sent;\n\n if (res.ok) {\n _context14.next = 7;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 7:\n _context14.next = 9;\n return res.json();\n\n case 9:\n res = _context14.sent.result;\n\n if (!(res.status !== 200)) {\n _context14.next = 12;\n break;\n }\n\n throw new Error(res.content);\n\n case 12:\n return _context14.abrupt('return', res.content);\n\n case 13:\n case 'end':\n return _context14.stop();\n }\n }\n }, _callee14, this);\n }));\n\n function updateChallenge(_x29) {\n return _ref16.apply(this, arguments);\n }\n\n return updateChallenge;\n }()\n\n /**\n * Gets roles of a user in the specified challenge. The user tested is\n * the owner of authentication token used to instantiate the service.\n *\n * Notice, if you have already loaded the challenge as that user, these roles\n * are attached to the challenge object under `userDetails.roles` path during\n * challenge normalization. However, if you have not, this method is the most\n * efficient way to get them, as it by-passes any unnecessary normalizations\n * of the challenge object.\n *\n * @param {Number} challengeId Challenge ID.\n */\n\n }, {\n key: 'getUserRolesInChallenge',\n value: function () {\n var _ref17 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee15(challengeId) {\n var user, username, url, data;\n return _regenerator2.default.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n user = (0, _tcAccounts.decodeToken)(this.private.tokenV3);\n username = user.handle || user.payload.handle;\n url = '/members/' + username.toLowerCase() + '/challenges';\n _context15.next = 5;\n return this.private.getMemberChallenges(url, { id: challengeId });\n\n case 5:\n data = _context15.sent;\n return _context15.abrupt('return', data.challenges[0].userDetails.roles);\n\n case 7:\n case 'end':\n return _context15.stop();\n }\n }\n }, _callee15, this);\n }));\n\n function getUserRolesInChallenge(_x30) {\n return _ref17.apply(this, arguments);\n }\n\n return getUserRolesInChallenge;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }], [{\n key: 'updateFiltersParamsForGettingMemberChallenges',\n value: function updateFiltersParamsForGettingMemberChallenges(filters, params) {\n if (filters && filters.status === 'Active') {\n // eslint-disable-next-line no-param-reassign\n filters.status = 'ACTIVE';\n }\n if (params && params.perPage) {\n // eslint-disable-next-line no-param-reassign\n params.offset = (params.page - 1) * params.perPage;\n // eslint-disable-next-line no-param-reassign\n params.limit = params.perPage;\n }\n }\n }]);\n return ChallengesService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing challenges service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @param {String} tokenV2 Optional. Auth token for Topcoder API v2.\n * @return {ChallengesService} Challenges service object\n */\nfunction getService(tokenV3, tokenV2) {\n if (!lastInstance || lastInstance.private.tokenV3 !== tokenV3 || lastInstance.tokenV2 !== tokenV2) {\n lastInstance = new ChallengesService(tokenV3, tokenV2);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(ORDER_BY, 'ORDER_BY', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(normalizeChallengeDetails, 'normalizeChallengeDetails', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(normalizeChallenge, 'normalizeChallenge', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(checkError, 'checkError', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(checkErrorV5, 'checkErrorV5', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(ChallengesService, 'ChallengesService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(getService, 'getService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/challenges.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/challenges.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ORDER_BY = undefined;\n\nvar _stringify = __webpack_require__(/*! babel-runtime/core-js/json/stringify */ \"babel-runtime/core-js/json/stringify\");\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _set = __webpack_require__(/*! babel-runtime/core-js/set */ \"babel-runtime/core-js/set\");\n\nvar _set2 = _interopRequireDefault(_set);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\n/**\n * Helper method that checks for HTTP error response and throws Error in this case.\n * @param {Object} res HTTP response object\n * @return {Object} API JSON response object\n * @private\n */\nvar checkError = function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(res) {\n var jsonRes;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (res.ok) {\n _context.next = 3;\n break;\n }\n\n if (res.status >= 500) {\n (0, _errors.setErrorIcon)(_errors.ERROR_ICON_TYPES.API, '/challenges', res.statusText);\n }\n throw new Error(res.statusText);\n\n case 3:\n _context.next = 5;\n return res.json();\n\n case 5:\n jsonRes = _context.sent.result;\n\n if (!(jsonRes.status !== 200)) {\n _context.next = 8;\n break;\n }\n\n throw new Error(jsonRes.content);\n\n case 8:\n return _context.abrupt('return', jsonRes);\n\n case 9:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function checkError(_x) {\n return _ref3.apply(this, arguments);\n };\n}();\n\n/**\n * Helper method that checks for HTTP error response v5 and throws Error in this case.\n * @param {Object} res HTTP response object\n * @return {Object} API JSON response object\n * @private\n */\n\n\nvar checkErrorV5 = function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(res) {\n var jsonRes;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (res.ok) {\n _context2.next = 3;\n break;\n }\n\n if (res.status >= 500) {\n (0, _errors.setErrorIcon)(_errors.ERROR_ICON_TYPES.API, '/challenges', res.statusText);\n }\n throw new Error(res.statusText);\n\n case 3:\n _context2.next = 5;\n return res.json();\n\n case 5:\n jsonRes = _context2.sent;\n\n if (!jsonRes.message) {\n _context2.next = 8;\n break;\n }\n\n throw new Error(res.message);\n\n case 8:\n return _context2.abrupt('return', {\n result: jsonRes,\n headers: res.headers\n });\n\n case 9:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n return function checkErrorV5(_x2) {\n return _ref4.apply(this, arguments);\n };\n}();\n\n/**\n * Challenge service.\n */\n\n\nexports.normalizeChallengeDetails = normalizeChallengeDetails;\nexports.normalizeChallenge = normalizeChallenge;\nexports.getService = getService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _moment = __webpack_require__(/*! moment */ \"moment\");\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _tcAccounts = __webpack_require__(/*! tc-accounts */ \"tc-accounts\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _errors = __webpack_require__(/*! ../utils/errors */ \"./src/utils/errors.js\");\n\nvar _tc = __webpack_require__(/*! ../utils/tc */ \"./src/utils/tc.js\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nvar _members = __webpack_require__(/*! ./members */ \"./src/services/members.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.challenges\"\n * @desc This module provides a service for convenient manipulation with\n * Topcoder challenges via TC API.\n */\n\nvar ORDER_BY = exports.ORDER_BY = {\n SUBMISSION_END_DATE: 'submissionEndDate'\n};\n\n/**\n * Normalizes a regular challenge details object received from the backend APIs.\n * @todo Why this one is exported? It should be only used internally!\n * @param {Object} challenge Challenge object received from the /challenges/{id}\n * endpoint.\n * @param {Object} filtered Challenge object received from the\n * /challenges?filter=id={id} endpoint.\n * @param {Object} user Challenge object received from the\n * /members/{username}/challenges?filter=id={id} endpoint.\n * If action was fired for authenticated visitor, `user` will contain\n * details fetched specifically for the user (thus may include additional\n * data comparing to the standard API response for the challenge details,\n * stored in `filtered`).\n * @param {String} username Optional.\n * @return {Object} Normalized challenge object.\n */\nfunction normalizeChallengeDetails(challenge, filtered, user, username) {\n // Normalize exising data to make it consistent with the rest of the code\n var finalChallenge = (0, _extends3.default)({}, challenge, {\n\n id: challenge.id,\n reliabilityBonus: _lodash2.default.get(filtered, 'reliabilityBonus', 0),\n status: (challenge.currentStatus || '').toUpperCase(),\n\n allPhases: [],\n currentPhases: [],\n challengeType: {},\n name: challenge.challengeName || challenge.challengeTitle || challenge.name || '',\n projectId: Number(challenge.projectId),\n forumId: Number(challenge.forumId),\n introduction: challenge.introduction || '',\n detailedRequirements: challenge.detailedRequirements === 'null' ? '' : challenge.detailedRequirements,\n finalSubmissionGuidelines: challenge.finalSubmissionGuidelines === 'null' ? '' : challenge.finalSubmissionGuidelines,\n screeningScorecardId: Number(challenge.screeningScorecardId),\n reviewScorecardId: Number(challenge.reviewScorecardId),\n numberOfCheckpointsPrizes: challenge.numberOfCheckpointsPrizes,\n topCheckPointPrize: challenge.topCheckPointPrize,\n submissionsViewable: challenge.submissionsViewable || 'false',\n reviewType: challenge.reviewType,\n allowStockArt: challenge.allowStockArt === 'true',\n fileTypes: challenge.filetypes || [],\n environment: challenge.environment,\n codeRepo: challenge.codeRepo,\n forumLink: challenge.forumLink,\n submissionLimit: Number(challenge.submissionLimit) || 0,\n drPoints: challenge.digitalRunPoints,\n directUrl: challenge.directUrl,\n tags: _lodash2.default.union(challenge.technologies || [], challenge.technology || [], challenge.platforms || [], challenge.tags || []),\n prizes: challenge.prize || challenge.prizes || [],\n events: _lodash2.default.map(challenge.event, function (e) {\n return {\n eventName: e.eventShortDesc,\n eventId: e.id,\n description: e.eventDescription\n };\n }),\n terms: challenge.terms,\n submissions: challenge.submissions,\n track: _lodash2.default.toUpper(challenge.challengeCommunity),\n subTrack: challenge.subTrack,\n checkpoints: challenge.checkpoints,\n documents: challenge.documents || [],\n numRegistrants: challenge.numberOfRegistrants,\n numberOfCheckpointSubmissions: challenge.numberOfCheckpointSubmissions,\n registrants: challenge.registrants || []\n });\n\n // Winners have different field names, needs to be normalized to match `filtered` and `challenge`\n finalChallenge.winners = _lodash2.default.map(challenge.winners, function (winner, index) {\n return (0, _extends3.default)({}, winner, {\n handle: winner.submitter,\n placement: winner.rank || index + 1 // Legacy MMs do not have a rank but are sorted by points\n });\n });\n\n if (finalChallenge.subTrack === 'MARATHON_MATCH') {\n finalChallenge.track = 'DATA_SCIENCE';\n }\n\n // It's not clear if this will be the main event, will need to be investigated\n finalChallenge.mainEvent = finalChallenge.events[0] || {};\n\n /* It's unclear if these normalization steps are still required for `challenge` */\n // Fill missing data from filtered\n if (filtered) {\n var groups = {};\n if (filtered.groupIds) {\n filtered.groupIds.forEach(function (id) {\n groups[id] = true;\n });\n }\n\n _lodash2.default.merge(finalChallenge, {\n componentId: filtered.componentId,\n contestId: filtered.contestId,\n\n submissionEndDate: filtered.submissionEndDate, // Dates are not correct in `challenge`\n submissionEndTimestamp: filtered.submissionEndDate, // Dates are not correct in `challenge`\n\n /* Taking phases from filtered, because dates are not correct in `challenge` */\n allPhases: filtered.allPhases || [],\n\n /* Taking phases from filtered, because dates are not correct in `challenge` */\n currentPhases: filtered.currentPhases || [],\n\n /* `challenge` has incorrect value for numberOfSubmissions for some reason */\n numSubmissions: filtered.numSubmissions,\n groups: groups\n });\n }\n\n // Fill missing data from user\n if (user) {\n _lodash2.default.defaults(finalChallenge, {\n userDetails: user.userDetails\n });\n }\n\n var allPhases = finalChallenge.allPhases || finalChallenge.phases || [];\n\n // Fill some derived data\n var registrationOpen = _lodash2.default.some(allPhases, function (phase) {\n return phase.name === 'Registration' && phase.isActive;\n }) ? 'Yes' : 'No';\n _lodash2.default.defaults(finalChallenge, {\n communities: new _set2.default([_tc.COMPETITION_TRACKS[finalChallenge.track]]),\n registrationOpen: registrationOpen,\n users: username ? (0, _defineProperty3.default)({}, username, true) : {}\n });\n\n // A hot fix to show submissions for on-going challenges\n if (!finalChallenge.submissions || !finalChallenge.submissions.length) {\n finalChallenge.submissions = finalChallenge.registrants.filter(function (r) {\n return r.submissionDate || '';\n }).sort(function (a, b) {\n return (a.submissionDate || '').localeCompare(b.submissionDate || '');\n });\n }\n\n if (!finalChallenge.allPhases) finalChallenge.allPhases = [];\n if (!finalChallenge.track) finalChallenge.track = '';\n\n return finalChallenge;\n}\n\n/**\n * Normalizes a regular challenge object received from the backend.\n * NOTE: This function is copied from the existing code in the challenge listing\n * component. It is possible, that this normalization is not necessary after we\n * have moved to Topcoder API, but it is kept for now to minimize a risk of\n * breaking anything.\n * @todo Should be used only internally!\n * @param {Object} challenge Challenge object received from the backend.\n * @param {String} username Optional.\n */\nfunction normalizeChallenge(challenge, username) {\n var registrationOpen = (challenge.allPhases || challenge.phases || []).filter(function (d) {\n return d.name === 'Registration' || !d.name;\n })[0].isActive ? 'Yes' : 'No';\n var groups = {};\n if (challenge.groupIds) {\n challenge.groupIds.forEach(function (id) {\n groups[id] = true;\n });\n }\n /* eslint-disable no-param-reassign */\n if (!challenge.prizes) challenge.prizes = challenge.prize || [];\n if (!challenge.totalPrize) {\n challenge.totalPrize = challenge.prizes.reduce(function (sum, x) {\n return sum + x;\n }, 0);\n }\n if (!challenge.technologies) challenge.technologies = [];\n if (!challenge.platforms) challenge.platforms = [];\n\n if (challenge.subTrack === 'DEVELOP_MARATHON_MATCH') {\n challenge.track = 'DATA_SCIENCE';\n }\n /* eslint-enable no-param-reassign */\n\n _lodash2.default.defaults(challenge, {\n communities: new _set2.default([_tc.COMPETITION_TRACKS[challenge.track]]),\n groups: groups,\n registrationOpen: registrationOpen,\n submissionEndTimestamp: challenge.submissionEndDate,\n users: username ? (0, _defineProperty3.default)({}, username, true) : {},\n challengeType: {}\n });\n}\nvar ChallengesService = function () {\n /**\n * Creates a new ChallengeService instance.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @param {String} tokenV2 Optional. Auth token for Topcoder API v2.\n */\n function ChallengesService(tokenV3, tokenV2) {\n var _this = this;\n\n (0, _classCallCheck3.default)(this, ChallengesService);\n\n /**\n * Private function being re-used in all methods related to getting\n * challenges. It handles query-related arguments in the uniform way:\n * @param {String} endpoint API endpoint, where the request will be send.\n * @param {Object} filters Optional. A map of filters to pass as `filter`\n * query parameter (this function takes care to stringify it properly).\n * @param {Object} params Optional. A map of any other parameters beside\n * `filter`.\n */\n var getChallenges = function () {\n var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(endpoint) {\n var filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var query, url, res;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n query = (0, _extends3.default)({}, filters, params);\n url = endpoint + '?' + _qs2.default.stringify(query);\n _context3.next = 4;\n return _this.private.apiV5.get(url).then(checkErrorV5);\n\n case 4:\n res = _context3.sent;\n return _context3.abrupt('return', {\n challenges: res.result || [],\n totalCount: res.headers.get('x-total'),\n meta: {\n allChallengesCount: res.headers.get('x-total'),\n myChallengesCount: 0,\n ongoingChallengesCount: 0,\n openChallengesCount: 0,\n totalCount: res.headers.get('x-total')\n }\n });\n\n case 6:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, _this);\n }));\n\n return function getChallenges(_x3) {\n return _ref5.apply(this, arguments);\n };\n }();\n /**\n * Private function being re-used in all methods related to getting\n * challenges. It handles query-related arguments in the uniform way:\n * @param {String} endpoint API endpoint, where the request will be send.\n * @param {Object} filters Optional. A map of filters to pass as `filter`\n * query parameter (this function takes care to stringify it properly).\n * @param {Object} params Optional. A map of any other parameters beside\n * `filter`.\n */\n var getMemberChallenges = function () {\n var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(endpoint) {\n var filters = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var query, url, res;\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n query = (0, _extends3.default)({\n filter: _qs2.default.stringify(filters, { encode: false })\n }, params);\n url = endpoint + '?' + _qs2.default.stringify(query);\n _context4.next = 4;\n return _this.private.api.get(url).then(checkError);\n\n case 4:\n res = _context4.sent;\n return _context4.abrupt('return', {\n challenges: res.content || [],\n totalCount: res.metadata.totalCount,\n meta: res.metadata\n });\n\n case 6:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, _this);\n }));\n\n return function getMemberChallenges(_x6) {\n return _ref6.apply(this, arguments);\n };\n }();\n\n this.private = {\n api: (0, _api.getApi)('V4', tokenV3),\n apiV5: (0, _api.getApi)('V5', tokenV3),\n apiV2: (0, _api.getApi)('V2', tokenV2),\n getChallenges: getChallenges,\n getMemberChallenges: getMemberChallenges,\n tokenV2: tokenV2,\n tokenV3: tokenV3,\n memberService: (0, _members.getService)()\n };\n }\n\n /**\n * Activates the specified challenge.\n * @param {Number} challengeId\n * @return {Promise} Resolves to null value in case of success; otherwise it\n * is rejected.\n */\n\n\n (0, _createClass3.default)(ChallengesService, [{\n key: 'activate',\n value: function () {\n var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(challengeId) {\n var res;\n return _regenerator2.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return this.private.api.post('/challenges/' + challengeId + '/activate');\n\n case 2:\n res = _context5.sent;\n\n if (res.ok) {\n _context5.next = 5;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 5:\n _context5.next = 7;\n return res.json();\n\n case 7:\n res = _context5.sent.result;\n\n if (!(res.status !== 200)) {\n _context5.next = 10;\n break;\n }\n\n throw new Error(res.content);\n\n case 10:\n return _context5.abrupt('return', res.content);\n\n case 11:\n case 'end':\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function activate(_x9) {\n return _ref7.apply(this, arguments);\n }\n\n return activate;\n }()\n\n /**\n * Closes the specified challenge.\n * @param {Number} challengeId\n * @param {Number} winnerId Optional. ID of the assignee to declare the\n * winner.\n * @return {Promise} Resolves to null value in case of success; otherwise it\n * is rejected.\n */\n\n }, {\n key: 'close',\n value: function () {\n var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(challengeId, winnerId) {\n var url, res;\n return _regenerator2.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n url = '/challenges/' + challengeId + '/close';\n\n if (winnerId) url = url + '?winnerId=' + winnerId;\n _context6.next = 4;\n return this.private.api.post(url);\n\n case 4:\n res = _context6.sent;\n\n if (res.ok) {\n _context6.next = 7;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 7:\n _context6.next = 9;\n return res.json();\n\n case 9:\n res = _context6.sent.result;\n\n if (!(res.status !== 200)) {\n _context6.next = 12;\n break;\n }\n\n throw new Error(res.content);\n\n case 12:\n return _context6.abrupt('return', res.content);\n\n case 13:\n case 'end':\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function close(_x10, _x11) {\n return _ref8.apply(this, arguments);\n }\n\n return close;\n }()\n\n /**\n * Creates a new payment task.\n * @param {Number} projectId\n * @param {Number} accountId Billing account ID.\n * @param {String} title\n * @param {String} description\n * @param {String} assignee\n * @param {Number} payment\n * @param {String} submissionGuidelines\n * @param {Number} copilotId\n * @param {Number} copilotFee\n * @param {?} technologies\n * @return {Promise} Resolves to the created challenge object (payment task).\n */\n\n }, {\n key: 'createTask',\n value: function () {\n var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(projectId, accountId, title, description, assignee, payment, submissionGuidelines, copilotId, copilotFee, technologies) {\n var payload, res;\n return _regenerator2.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n payload = {\n param: {\n assignees: [assignee],\n billingAccountId: accountId,\n confidentialityType: 'public',\n detailedRequirements: description,\n submissionGuidelines: submissionGuidelines,\n milestoneId: 1,\n name: title,\n technologies: technologies,\n prizes: payment ? [payment] : [],\n projectId: projectId,\n registrationStartsAt: (0, _moment2.default)().toISOString(),\n reviewType: 'INTERNAL',\n subTrack: 'FIRST_2_FINISH',\n task: true\n }\n };\n\n if (copilotId) {\n _lodash2.default.assign(payload.param, {\n copilotId: copilotId,\n copilotFee: copilotFee\n });\n }\n _context7.next = 4;\n return this.private.api.postJson('/challenges', payload);\n\n case 4:\n res = _context7.sent;\n\n if (res.ok) {\n _context7.next = 7;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 7:\n _context7.next = 9;\n return res.json();\n\n case 9:\n res = _context7.sent.result;\n\n if (!(res.status !== 200)) {\n _context7.next = 12;\n break;\n }\n\n throw new Error(res.content);\n\n case 12:\n return _context7.abrupt('return', res.content);\n\n case 13:\n case 'end':\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n\n function createTask(_x12, _x13, _x14, _x15, _x16, _x17, _x18, _x19, _x20, _x21) {\n return _ref9.apply(this, arguments);\n }\n\n return createTask;\n }()\n\n /**\n * Gets challenge details from Topcoder API.\n * NOTE: This function also uses API v2 and other endpoints for now, due\n * to some information is missing or\n * incorrect in the main endpoint. This may change in the future.\n * @param {Number|String} challengeId\n * @return {Promise} Resolves to the challenge object.\n */\n\n }, {\n key: 'getChallengeDetails',\n value: function () {\n var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(challengeId) {\n var challenge, challengeFiltered, username, challengeUser, finalChallenge;\n return _regenerator2.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return this.private.apiV5.get('/challenges/' + challengeId).then(checkErrorV5).then(function (res) {\n return res.result;\n });\n\n case 2:\n challenge = _context8.sent;\n _context8.next = 5;\n return this.private.getChallenges('/challenges/', { id: challengeId }).then(function (res) {\n return res.challenges[0];\n });\n\n case 5:\n challengeFiltered = _context8.sent;\n username = this.private.tokenV3 && (0, _tcAccounts.decodeToken)(this.private.tokenV3).handle;\n challengeUser = {};\n\n if (!challenge.legacyId) {\n _context8.next = 15;\n break;\n }\n\n _context8.t0 = username;\n\n if (!_context8.t0) {\n _context8.next = 14;\n break;\n }\n\n _context8.next = 13;\n return this.getUserChallenges(username, { id: challenge.legacyId }).then(function (res) {\n return res.challenges[0];\n }).catch(function () {\n return null;\n });\n\n case 13:\n _context8.t0 = _context8.sent;\n\n case 14:\n challengeUser = _context8.t0;\n\n case 15:\n finalChallenge = normalizeChallengeDetails(challenge, challengeFiltered, challengeUser, username);\n\n\n finalChallenge.fetchedWithAuth = Boolean(this.private.api.private.token);\n\n return _context8.abrupt('return', finalChallenge);\n\n case 18:\n case 'end':\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n\n function getChallengeDetails(_x22) {\n return _ref10.apply(this, arguments);\n }\n\n return getChallengeDetails;\n }()\n\n /**\n * Gets challenge registrants from Topcoder API.\n * @param {Number|String} challengeId\n * @return {Promise} Resolves to the challenge registrants array.\n */\n\n }, {\n key: 'getChallengeRegistrants',\n value: function () {\n var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(challengeId) {\n var challenge;\n return _regenerator2.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return this.private.apiV5.get('/challenges/' + challengeId).then(checkError).then(function (res) {\n return res;\n });\n\n case 2:\n challenge = _context9.sent;\n return _context9.abrupt('return', challenge.registrants || []);\n\n case 4:\n case 'end':\n return _context9.stop();\n }\n }\n }, _callee9, this);\n }));\n\n function getChallengeRegistrants(_x23) {\n return _ref11.apply(this, arguments);\n }\n\n return getChallengeRegistrants;\n }()\n\n /**\n * Gets possible challenge subtracks.\n * @return {Promise} Resolves to the array of subtrack names.\n */\n\n }, {\n key: 'getChallengeSubtracks',\n value: function getChallengeSubtracks() {\n return this.private.apiV5.get('/challengetypes').then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n }).then(function (res) {\n return res.message ? new Error(res.message) : res;\n });\n }\n\n /**\n * Gets possible challenge tags (technologies).\n * @return {Promise} Resolves to the array of tag strings.\n */\n\n }, {\n key: 'getChallengeTags',\n value: function getChallengeTags() {\n return this.private.api.get('/technologies').then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n }).then(function (res) {\n return res.result.status === 200 ? res.result.content : new Error(res.result.content);\n });\n }\n\n /**\n * Gets challenges.\n * @param {Object} filters Optional.\n * @param {Object} params Optional.\n * @return {Promise} Resolves to the api response.\n */\n\n }, {\n key: 'getChallenges',\n value: function getChallenges(filters, params) {\n return this.private.getChallenges('/challenges/', filters, params).then(function (res) {\n res.challenges.forEach(function (item) {\n return normalizeChallenge(item);\n });\n return res;\n });\n }\n\n /**\n * Gets SRM matches.\n * @param {Object} params\n * @return {Promise}\n */\n\n }, {\n key: 'getSrms',\n value: function () {\n var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(params) {\n var res;\n return _regenerator2.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return this.private.api.get('/srms/?' + _qs2.default.stringify(params));\n\n case 2:\n res = _context10.sent;\n return _context10.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n\n function getSrms(_x24) {\n return _ref12.apply(this, arguments);\n }\n\n return getSrms;\n }()\n }, {\n key: 'getUserChallenges',\n\n\n /**\n * Gets challenges of the specified user.\n * @param {String} username User whose challenges we want to fetch.\n * @param {Object} filters Optional.\n * @param {Number} params Optional.\n * @return {Promise} Resolves to the api response.\n */\n value: function getUserChallenges(username, filters, params) {\n var userFilters = _lodash2.default.cloneDeep(filters);\n ChallengesService.updateFiltersParamsForGettingMemberChallenges(userFilters, params);\n var endpoint = '/members/' + username.toLowerCase() + '/challenges/';\n return this.private.getMemberChallenges(endpoint, userFilters, params).then(function (res) {\n res.challenges.forEach(function (item) {\n return normalizeChallenge(item, username);\n });\n return res;\n });\n }\n\n /**\n * Gets marathon matches of the specified user.\n * @param {String} username User whose challenges we want to fetch.\n * @param {Object} filters Optional.\n * @param {Number} params Optional.\n * @return {Promise} Resolves to the api response.\n */\n\n }, {\n key: 'getUserMarathonMatches',\n value: function getUserMarathonMatches(username, filters, params) {\n ChallengesService.updateFiltersParamsForGettingMemberChallenges(filters, params);\n var endpoint = '/members/' + username.toLowerCase() + '/mms/';\n return this.private.getMemberChallenges(endpoint, filters, params);\n }\n\n /**\n * Gets SRM matches related to the user.\n * @param {String} handle\n * @param {Object} params\n * @return {Promise}\n */\n\n }, {\n key: 'getUserSrms',\n value: function () {\n var _ref13 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(handle, params) {\n var url, res;\n return _regenerator2.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n url = '/members/' + handle + '/srms/?' + _qs2.default.stringify(params);\n _context11.next = 3;\n return this.private.api.get(url);\n\n case 3:\n res = _context11.sent;\n return _context11.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n function getUserSrms(_x25, _x26) {\n return _ref13.apply(this, arguments);\n }\n\n return getUserSrms;\n }()\n\n /**\n * Registers user to the specified challenge.\n * @param {String} challengeId\n * @return {Promise}\n */\n\n }, {\n key: 'register',\n value: function () {\n var _ref14 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12(challengeId) {\n var endpoint, res;\n return _regenerator2.default.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n endpoint = '/challenges/' + challengeId + '/register';\n _context12.next = 3;\n return this.private.api.postJson(endpoint);\n\n case 3:\n res = _context12.sent;\n\n if (res.ok) {\n _context12.next = 6;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 6:\n return _context12.abrupt('return', res.json());\n\n case 7:\n case 'end':\n return _context12.stop();\n }\n }\n }, _callee12, this);\n }));\n\n function register(_x27) {\n return _ref14.apply(this, arguments);\n }\n\n return register;\n }()\n\n /**\n * Unregisters user from the specified challenge.\n * @param {String} challengeId\n * @return {Promise}\n */\n\n }, {\n key: 'unregister',\n value: function () {\n var _ref15 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee13(challengeId) {\n var endpoint, res;\n return _regenerator2.default.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n endpoint = '/challenges/' + challengeId + '/unregister';\n _context13.next = 3;\n return this.private.api.post(endpoint);\n\n case 3:\n res = _context13.sent;\n\n if (res.ok) {\n _context13.next = 6;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 6:\n return _context13.abrupt('return', res.json());\n\n case 7:\n case 'end':\n return _context13.stop();\n }\n }\n }, _callee13, this);\n }));\n\n function unregister(_x28) {\n return _ref15.apply(this, arguments);\n }\n\n return unregister;\n }()\n\n /**\n * Gets count of user's active challenges.\n * @param {String} handle Topcoder user handle.\n * @return {Action} Resolves to the api response.\n */\n\n }, {\n key: 'getActiveChallengesCount',\n value: function getActiveChallengesCount(handle) {\n var filter = { status: 'Active' };\n var params = { limit: 1, offset: 0 };\n return this.getUserChallenges(handle, filter, params).then(function (res) {\n return res.totalCount;\n });\n }\n\n /**\n * Submits a challenge submission. Uses APIV2 for Development submission\n * and APIV3 for Design submisisons.\n * @param {Object} body\n * @param {String} challengeId\n * @param {String} track Either DESIGN or DEVELOP\n * @return {Promise}\n */\n\n }, {\n key: 'submit',\n value: function submit(body, challengeId, track, onProgress) {\n var api = void 0;\n var contentType = void 0;\n var url = void 0;\n\n if (track === 'DESIGN') {\n api = this.private.api;\n\n contentType = 'application/json';\n url = '/submissions/'; // The submission info is contained entirely in the JSON body\n } else {\n api = this.private.apiV2;\n // contentType = 'multipart/form-data';\n contentType = null;\n url = '/develop/challenges/' + challengeId + '/upload';\n }\n\n return api.upload(url, {\n body: body,\n headers: { 'Content-Type': contentType },\n method: 'POST'\n }, onProgress).then(function (res) {\n var jres = JSON.parse(res);\n // Return result for Develop submission\n if (track === 'DEVELOP') {\n return jres;\n }\n // Design Submission requires an extra \"Processing\" POST\n var procId = jres.result.content.id;\n return api.upload('/submissions/' + procId + '/process/', {\n body: (0, _stringify2.default)({ param: jres.result.content }),\n headers: { 'Content-Type': contentType },\n method: 'POST'\n }, onProgress).then(function (procres) {\n return JSON.parse(procres);\n });\n }, function (err) {\n _logger2.default.error('Failed to submit to the challenge #' + challengeId, err);\n throw err;\n });\n }\n\n /**\n * Updates the challenge (saves the give challenge to the API).\n * @param {Object} challenge\n * @param {String} tokenV3\n * @return {Promise}\n */\n\n }, {\n key: 'updateChallenge',\n value: function () {\n var _ref16 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee14(challenge) {\n var URL, body, res;\n return _regenerator2.default.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n URL = '/challenges/' + challenge.id;\n body = { param: challenge };\n _context14.next = 4;\n return this.private.api.putJson(URL, body);\n\n case 4:\n res = _context14.sent;\n\n if (res.ok) {\n _context14.next = 7;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 7:\n _context14.next = 9;\n return res.json();\n\n case 9:\n res = _context14.sent.result;\n\n if (!(res.status !== 200)) {\n _context14.next = 12;\n break;\n }\n\n throw new Error(res.content);\n\n case 12:\n return _context14.abrupt('return', res.content);\n\n case 13:\n case 'end':\n return _context14.stop();\n }\n }\n }, _callee14, this);\n }));\n\n function updateChallenge(_x29) {\n return _ref16.apply(this, arguments);\n }\n\n return updateChallenge;\n }()\n\n /**\n * Gets roles of a user in the specified challenge. The user tested is\n * the owner of authentication token used to instantiate the service.\n *\n * Notice, if you have already loaded the challenge as that user, these roles\n * are attached to the challenge object under `userDetails.roles` path during\n * challenge normalization. However, if you have not, this method is the most\n * efficient way to get them, as it by-passes any unnecessary normalizations\n * of the challenge object.\n *\n * @param {Number} challengeId Challenge ID.\n */\n\n }, {\n key: 'getUserRolesInChallenge',\n value: function () {\n var _ref17 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee15(challengeId) {\n var user, username, url, data;\n return _regenerator2.default.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n user = (0, _tcAccounts.decodeToken)(this.private.tokenV3);\n username = user.handle || user.payload.handle;\n url = '/members/' + username.toLowerCase() + '/challenges';\n _context15.next = 5;\n return this.private.getMemberChallenges(url, { id: challengeId });\n\n case 5:\n data = _context15.sent;\n return _context15.abrupt('return', data.challenges[0].userDetails.roles);\n\n case 7:\n case 'end':\n return _context15.stop();\n }\n }\n }, _callee15, this);\n }));\n\n function getUserRolesInChallenge(_x30) {\n return _ref17.apply(this, arguments);\n }\n\n return getUserRolesInChallenge;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }], [{\n key: 'updateFiltersParamsForGettingMemberChallenges',\n value: function updateFiltersParamsForGettingMemberChallenges(filters, params) {\n if (filters && filters.status === 'Active') {\n // eslint-disable-next-line no-param-reassign\n filters.status = 'ACTIVE';\n }\n if (params && params.perPage) {\n // eslint-disable-next-line no-param-reassign\n params.offset = (params.page - 1) * params.perPage;\n // eslint-disable-next-line no-param-reassign\n params.limit = params.perPage;\n }\n }\n }]);\n return ChallengesService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing challenges service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @param {String} tokenV2 Optional. Auth token for Topcoder API v2.\n * @return {ChallengesService} Challenges service object\n */\nfunction getService(tokenV3, tokenV2) {\n if (!lastInstance || lastInstance.private.tokenV3 !== tokenV3 || lastInstance.tokenV2 !== tokenV2) {\n lastInstance = new ChallengesService(tokenV3, tokenV2);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(ORDER_BY, 'ORDER_BY', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(normalizeChallengeDetails, 'normalizeChallengeDetails', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(normalizeChallenge, 'normalizeChallenge', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(checkError, 'checkError', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(checkErrorV5, 'checkErrorV5', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(ChallengesService, 'ChallengesService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/challenges.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/challenges.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/challenges.js?");
/***/ }),
@@ -933,7 +981,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _isomorphicFetch = __webpack_require__(/*! isomorphic-fetch */ \"isomorphic-fetch\");\n\nvar _isomorphicFetch2 = _interopRequireDefault(_isomorphicFetch);\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.communities\"\n * @desc Communities service.\n */\n\n\n/**\n * Returns Community App URL, or throws an error if URL cannot be found in\n * config.\n */\nfunction getCommunityAppUrl() {\n var url = _lodash2.default.get(_topcoderReactUtils.config, 'URL.COMMUNITY_APP');\n if (!url) throw new Error('No URL.COMMUNITY_APP param found in config');\n return url;\n}\n\n/**\n * Client-side version of the service.\n */\n\nvar Communities = function () {\n /**\n * Creates a new {@link module:services.communities~Communities} instance.\n * @param {String} tokenV3\n */\n function Communities(tokenV3) {\n (0, _classCallCheck3.default)(this, Communities);\n\n this.private = { tokenV3: tokenV3 };\n }\n\n /**\n * Gets the list of communities accessible to the member of specified groups.\n * @param {String[]} userGroupIds\n * @return {Promise} Resolves to the array of community data objects. Each of\n * the objects indludes only the most important data on the community.\n */\n\n\n (0, _createClass3.default)(Communities, [{\n key: 'getList',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(userGroupIds) {\n var url, res;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n url = getCommunityAppUrl();\n\n url += '/community-app-assets/api/tc-communities?';\n url += _qs2.default.stringify({ groups: userGroupIds });\n _context.next = 5;\n return (0, _isomorphicFetch2.default)(url, {\n headers: {\n authorization: this.private.tokenV3\n }\n });\n\n case 5:\n res = _context.sent;\n return _context.abrupt('return', res.json());\n\n case 7:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getList(_x) {\n return _ref.apply(this, arguments);\n }\n\n return getList;\n }()\n\n /**\n * Gets metadata for the specified community.\n * @param {String} communityId\n * @return {Promise} Resolves to the community metadata.\n */\n\n }, {\n key: 'getMetadata',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(communityId) {\n var url, res;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n url = getCommunityAppUrl();\n\n url += '/community-app-assets/api/tc-communities/' + communityId + '/meta';\n _context2.next = 4;\n return (0, _isomorphicFetch2.default)(url, {\n headers: {\n authorization: this.private.tokenV3\n }\n });\n\n case 4:\n res = _context2.sent;\n return _context2.abrupt('return', res.json());\n\n case 6:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getMetadata(_x2) {\n return _ref2.apply(this, arguments);\n }\n\n return getMetadata;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return Communities;\n}();\n\nvar lastInstance = null;\n\n/**\n * Returns a new or existing communities service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {Communities} Communties service object\n */\nfunction getService(tokenV3) {\n if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {\n lastInstance = new Communities(tokenV3);\n }\n return lastInstance;\n}\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(getCommunityAppUrl, 'getCommunityAppUrl', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/communities.js');\n reactHotLoader.register(Communities, 'Communities', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/communities.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/communities.js');\n reactHotLoader.register(getService, 'getService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/communities.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/communities.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/communities.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _isomorphicFetch = __webpack_require__(/*! isomorphic-fetch */ \"isomorphic-fetch\");\n\nvar _isomorphicFetch2 = _interopRequireDefault(_isomorphicFetch);\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.communities\"\n * @desc Communities service.\n */\n\n\n/**\n * Returns Community App URL, or throws an error if URL cannot be found in\n * config.\n */\nfunction getCommunityAppUrl() {\n var url = _lodash2.default.get(_topcoderReactUtils.config, 'URL.COMMUNITY_APP');\n if (!url) throw new Error('No URL.COMMUNITY_APP param found in config');\n return url;\n}\n\n/**\n * Client-side version of the service.\n */\n\nvar Communities = function () {\n /**\n * Creates a new {@link module:services.communities~Communities} instance.\n * @param {String} tokenV3\n */\n function Communities(tokenV3) {\n (0, _classCallCheck3.default)(this, Communities);\n\n this.private = { tokenV3: tokenV3 };\n }\n\n /**\n * Gets the list of communities accessible to the member of specified groups.\n * @param {String[]} userGroupIds\n * @return {Promise} Resolves to the array of community data objects. Each of\n * the objects indludes only the most important data on the community.\n */\n\n\n (0, _createClass3.default)(Communities, [{\n key: 'getList',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(userGroupIds) {\n var url, res;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n url = getCommunityAppUrl();\n\n url += '/community-app-assets/api/tc-communities?';\n url += _qs2.default.stringify({ groups: userGroupIds });\n _context.next = 5;\n return (0, _isomorphicFetch2.default)(url, {\n headers: {\n authorization: this.private.tokenV3\n }\n });\n\n case 5:\n res = _context.sent;\n return _context.abrupt('return', res.json());\n\n case 7:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getList(_x) {\n return _ref.apply(this, arguments);\n }\n\n return getList;\n }()\n\n /**\n * Gets metadata for the specified community.\n * @param {String} communityId\n * @return {Promise} Resolves to the community metadata.\n */\n\n }, {\n key: 'getMetadata',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(communityId) {\n var url, res;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n url = getCommunityAppUrl();\n\n url += '/community-app-assets/api/tc-communities/' + communityId + '/meta';\n _context2.next = 4;\n return (0, _isomorphicFetch2.default)(url, {\n headers: {\n authorization: this.private.tokenV3\n }\n });\n\n case 4:\n res = _context2.sent;\n return _context2.abrupt('return', res.json());\n\n case 6:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getMetadata(_x2) {\n return _ref2.apply(this, arguments);\n }\n\n return getMetadata;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return Communities;\n}();\n\nvar lastInstance = null;\n\n/**\n * Returns a new or existing communities service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {Communities} Communties service object\n */\nfunction getService(tokenV3) {\n if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {\n lastInstance = new Communities(tokenV3);\n }\n return lastInstance;\n}\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(getCommunityAppUrl, 'getCommunityAppUrl', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/communities.js');\n reactHotLoader.register(Communities, 'Communities', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/communities.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/communities.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/communities.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/communities.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/communities.js?");
/***/ }),
@@ -945,7 +993,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.direct\"\n * @desc The Direct service takes care about communication with Direct APIs:\n * projects, billing accounts, copilots, all these stuff should be added here,\n * at least for now.\n */\n\n/**\n * Direct service class.\n */\nvar Direct = function () {\n /**\n * Creates a new {@link module:services.direct~Direct} instance.\n * @param {String} tokenV3 Optional. Topcoder auth token v3. Though optional,\n * most probably most, if not all, of the service functionality won't work\n * for non-authenticated visitors.\n */\n function Direct(tokenV3) {\n (0, _classCallCheck3.default)(this, Direct);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Gets details of the specified project.\n * @param {Number} projectId\n * @return {Promise} Resolves to the project details object.\n */\n\n\n (0, _createClass3.default)(Direct, [{\n key: 'getProjectDetails',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(projectId) {\n var res;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.private.api.get('/direct/projects/' + projectId);\n\n case 2:\n res = _context.sent;\n\n if (res.ok) {\n _context.next = 5;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 5:\n _context.next = 7;\n return res.json();\n\n case 7:\n res = _context.sent.result;\n\n if (!(res.status !== 200)) {\n _context.next = 10;\n break;\n }\n\n throw new Error(res.content);\n\n case 10:\n return _context.abrupt('return', res.content);\n\n case 11:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getProjectDetails(_x) {\n return _ref.apply(this, arguments);\n }\n\n return getProjectDetails;\n }()\n\n /**\n * Gets user permissions on the specified project.\n * @param {Number|String} projectId\n * @param {String} tokenV3 Auth token for API v3.\n * @return {Promise} Resolves to the user permissions data.\n */\n\n }, {\n key: 'getProjectPermissions',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(projectId) {\n var URL, res;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n URL = '/direct/projects/' + projectId + '/permissions';\n _context2.next = 3;\n return this.private.api.get(URL);\n\n case 3:\n res = _context2.sent;\n\n if (res.ok) {\n _context2.next = 6;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 6:\n _context2.next = 8;\n return res.json();\n\n case 8:\n res = _context2.sent.result;\n\n if (!(res.status !== 200)) {\n _context2.next = 11;\n break;\n }\n\n throw new Error(res.content);\n\n case 11:\n return _context2.abrupt('return', res.content);\n\n case 12:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getProjectPermissions(_x2) {\n return _ref2.apply(this, arguments);\n }\n\n return getProjectPermissions;\n }()\n\n /**\n * Gets all projects the user can see.\n * @param {Object} query Optional. Query params for the request.\n * @return {Promise} Resolves to an array of project objects.\n */\n\n }, {\n key: 'getUserProjects',\n value: function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(query) {\n var url, res;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n url = '/direct/projects/user';\n\n if (query) url += '?' + _qs2.default.stringify(query);\n _context3.next = 4;\n return this.private.api.get(url);\n\n case 4:\n res = _context3.sent;\n\n if (res.ok) {\n _context3.next = 7;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 7:\n _context3.next = 9;\n return res.json();\n\n case 9:\n res = _context3.sent.result;\n\n if (!(res.status !== 200)) {\n _context3.next = 12;\n break;\n }\n\n throw new Error(res.content);\n\n case 12:\n return _context3.abrupt('return', res.content);\n\n case 13:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function getUserProjects(_x3) {\n return _ref3.apply(this, arguments);\n }\n\n return getUserProjects;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return Direct;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing {@link module:services.direct~Direct} service.\n * @param {String} tokenV3 Optional. Topcoder auth token v3.\n * @return {Direct} Direct service object.\n */\nfunction getService(tokenV3) {\n if (!lastInstance || lastInstance.private.tokenV3 !== tokenV3) {\n lastInstance = new Direct(tokenV3);\n }\n return lastInstance;\n}\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(Direct, 'Direct', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/direct.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/direct.js');\n reactHotLoader.register(getService, 'getService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/direct.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/direct.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/direct.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.direct\"\n * @desc The Direct service takes care about communication with Direct APIs:\n * projects, billing accounts, copilots, all these stuff should be added here,\n * at least for now.\n */\n\n/**\n * Direct service class.\n */\nvar Direct = function () {\n /**\n * Creates a new {@link module:services.direct~Direct} instance.\n * @param {String} tokenV3 Optional. Topcoder auth token v3. Though optional,\n * most probably most, if not all, of the service functionality won't work\n * for non-authenticated visitors.\n */\n function Direct(tokenV3) {\n (0, _classCallCheck3.default)(this, Direct);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Gets details of the specified project.\n * @param {Number} projectId\n * @return {Promise} Resolves to the project details object.\n */\n\n\n (0, _createClass3.default)(Direct, [{\n key: 'getProjectDetails',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(projectId) {\n var res;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.private.api.get('/direct/projects/' + projectId);\n\n case 2:\n res = _context.sent;\n\n if (res.ok) {\n _context.next = 5;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 5:\n _context.next = 7;\n return res.json();\n\n case 7:\n res = _context.sent.result;\n\n if (!(res.status !== 200)) {\n _context.next = 10;\n break;\n }\n\n throw new Error(res.content);\n\n case 10:\n return _context.abrupt('return', res.content);\n\n case 11:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getProjectDetails(_x) {\n return _ref.apply(this, arguments);\n }\n\n return getProjectDetails;\n }()\n\n /**\n * Gets user permissions on the specified project.\n * @param {Number|String} projectId\n * @param {String} tokenV3 Auth token for API v3.\n * @return {Promise} Resolves to the user permissions data.\n */\n\n }, {\n key: 'getProjectPermissions',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(projectId) {\n var URL, res;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n URL = '/direct/projects/' + projectId + '/permissions';\n _context2.next = 3;\n return this.private.api.get(URL);\n\n case 3:\n res = _context2.sent;\n\n if (res.ok) {\n _context2.next = 6;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 6:\n _context2.next = 8;\n return res.json();\n\n case 8:\n res = _context2.sent.result;\n\n if (!(res.status !== 200)) {\n _context2.next = 11;\n break;\n }\n\n throw new Error(res.content);\n\n case 11:\n return _context2.abrupt('return', res.content);\n\n case 12:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getProjectPermissions(_x2) {\n return _ref2.apply(this, arguments);\n }\n\n return getProjectPermissions;\n }()\n\n /**\n * Gets all projects the user can see.\n * @param {Object} query Optional. Query params for the request.\n * @return {Promise} Resolves to an array of project objects.\n */\n\n }, {\n key: 'getUserProjects',\n value: function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(query) {\n var url, res;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n url = '/direct/projects/user';\n\n if (query) url += '?' + _qs2.default.stringify(query);\n _context3.next = 4;\n return this.private.api.get(url);\n\n case 4:\n res = _context3.sent;\n\n if (res.ok) {\n _context3.next = 7;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 7:\n _context3.next = 9;\n return res.json();\n\n case 9:\n res = _context3.sent.result;\n\n if (!(res.status !== 200)) {\n _context3.next = 12;\n break;\n }\n\n throw new Error(res.content);\n\n case 12:\n return _context3.abrupt('return', res.content);\n\n case 13:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function getUserProjects(_x3) {\n return _ref3.apply(this, arguments);\n }\n\n return getUserProjects;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return Direct;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing {@link module:services.direct~Direct} service.\n * @param {String} tokenV3 Optional. Topcoder auth token v3.\n * @return {Direct} Direct service object.\n */\nfunction getService(tokenV3) {\n if (!lastInstance || lastInstance.private.tokenV3 !== tokenV3) {\n lastInstance = new Direct(tokenV3);\n }\n return lastInstance;\n}\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(Direct, 'Direct', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/direct.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/direct.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/direct.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/direct.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/direct.js?");
/***/ }),
@@ -957,7 +1005,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _set = __webpack_require__(/*! babel-runtime/core-js/set */ \"babel-runtime/core-js/set\");\n\nvar _set2 = _interopRequireDefault(_set);\n\nexports.addDescendantGroups = addDescendantGroups;\nexports.checkGroupsStatus = checkGroupsStatus;\nexports.checkUserGroups = checkUserGroups;\nexports.reduceGroupIds = reduceGroupIds;\nexports.getService = getService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.groups\"\n * @desc Service for communication with group-related part of Topcoder API.\n *\n * NOTE: Through this file, and in related contexts, by loading a user group,\n * or user groups data, we refer to loading the information about descendant\n * user groups; i.e. given some user group(s) we speak about loading the sub-\n * three of related child groups.\n *\n * By group maps we refer to the object having group IDs as the keys, and\n * group data objects as the values. Any group object included into a group map\n * has its \"subGroups\" array (if present) replaced by \"subGroupIds\", that lists\n * only the IDs of immediate child groups; actual child group objects from\n * \"subGroups\" are recursively added to the top level of the group map.\n * Also each group in the group map is timestamped to keep caching of\n * the loaded data.\n */\n\n/* The value of USER_GROUP_MAXAGE constant converted to [ms]. */\nvar USER_GROUP_MAXAGE = _topcoderReactUtils.config.USER_GROUP_MAXAGE * 1000;\n\n/**\n * Given an array of IDs (or a single ID) of user groups, and a map of known\n * user groups, it returns the array including all specified user groups, and\n * all their known descendant groups.\n * @param {String|String[]} groupIds\n * @param {Object} knownGroups\n * @return {String[]}\n */\nfunction addDescendantGroups(groupIds, knownGroups) {\n var res = _lodash2.default.isArray(groupIds) ? groupIds : [groupIds];\n var visitedGroupsIds = new _set2.default();\n var pos = 0;\n while (pos < res.length) {\n var id = res[pos];\n if (!visitedGroupsIds.has(id)) {\n visitedGroupsIds.add(id);\n var g = knownGroups[id];\n if (g && g.subGroupIds) res = res.concat(g.subGroupIds);\n }\n pos += 1;\n }\n return _lodash2.default.uniq(res);\n}\n\n/**\n * Splits the given list of group IDs into the lists of groups being loaded,\n * loaded, and others.\n * @param {String|String[]} groupIds ID, or an array of IDs, of the group(s) we\n * are interested in.\n * @param {Object} knownGroups Optional. The map of already known groups (some\n * of them may be outdated, though). This should be of the same format as the\n * object on \"groups.groups\" path of the Redux store. Defaults to empty object.\n * @param {Object} loadingGroups Optional. Set of groups beign loaded now. This\n * should be of the same format as the object on \"groups.loading\" path of the\n * Redux store. Defaults to empty object.\n * @return {Object} Resulting object may hold four arrays with group IDs from\n * \"groupIds\" (empty arrays will not be included into the result object):\n * - \"loaded\" - the groups that are present in \"knownGroups\" and are not\n * outdated;\n * - \"loading\" - the groups that are not present in \"knownGroups\" (or present,\n * but outdated); but they are already being loaded;\n * - \"missing\" - the groups that are not present in \"knownGroups\"\n * (or outdated), and are not being loaded.\n * - \"unknown\" - the groups that are absent in \"knownGroups\" map.\n */\nfunction checkGroupsStatus(groupIds) {\n var knownGroups = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var loadingGroups = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var loaded = [];\n var loading = [];\n var missing = [];\n var unknown = [];\n var now = Date.now();\n var tested = new _set2.default();\n var ids = _lodash2.default.isArray(groupIds) ? groupIds : [groupIds];\n ids.forEach(function (id) {\n if (tested.has(id)) return;\n tested.add(id);\n var g = knownGroups[id];\n if (!g) unknown.push(id);\n if (g && (now - g.timestamp || 0) < USER_GROUP_MAXAGE) loaded.push(id);else if (loadingGroups[id]) loading.push(id);else missing.push(id);\n });\n return {\n loaded: loaded.length ? loaded : null,\n loading: loading.length ? loading : null,\n missing: missing.length ? missing : null,\n unknown: unknown.length ? unknown : null\n };\n}\n\n/**\n * Returns \"true\" if \"userGroups\" arrays includes any group specified by\n * \"groupIds\", or any group descendant from a group specified by \"groupIds\".\n * The is the map of known groups\n * @param {String|String[]} groupIds\n * @param {Object[]|String[]} userGroups Array of user's groups or their IDs.\n * @param {Object} knownGroups Map of known groups.\n * @return {Boolean}\n */\nfunction checkUserGroups(groupIds, userGroups, knownGroups) {\n var queue = _lodash2.default.isArray(groupIds) ? groupIds : [groupIds];\n if (!queue.length) return true;\n if (!userGroups.length) return false;\n\n /* Algorithmically, \"knownGroups\" stores, in compressed form, data on\n * known trees of user groups; and we want to check whether any of groups\n * from \"userGroups\" belong to sub-trees having groups from \"groupIds\" as\n * their roots. So, we do a breadth-frist search through the group trees. */\n var userGroupIds = new _set2.default();\n var visitedGroupIds = new _set2.default();\n userGroups.forEach(function (g) {\n return userGroupIds.add(_lodash2.default.isObject(g) ? g.id : g);\n });\n var pos = 0;\n while (pos < queue.length) {\n var id = queue[pos];\n if (userGroupIds.has(id)) return true;\n visitedGroupIds.add(id);\n var g = knownGroups[id];\n if (g && g.subGroupIds) {\n g.subGroupIds.forEach(function (sgId) {\n return !visitedGroupIds.has(sgId) ? queue.push(sgId) : null;\n });\n }\n pos += 1;\n }\n return false;\n}\n\n/**\n * Private. Handles given response from the groups API.\n * @param {Object} response\n * @return {Promise} On success resolves to the data fetched from the API.\n */\nfunction handleApiResponse(response) {\n if (!response.ok) throw new Error(response.statusText);\n return response.json();\n}\n\n/**\n * Private. Merges given user group (possibly a tree of user groups) into\n * groups map. This function intended only for internal use inside this module,\n * as it may mutate both arguments (hence, the corresponding ESLint rule is\n * disabled within this function), thus should be used only where it is safe.\n * For external use a similar function is provided by \"utils/tc\" module.\n * @param {Object} groups\n * @param {Object} group\n */\nfunction mergeGroup(groups, group) {\n /* eslint-disable no-param-reassign */\n var sg = group.subGroups;\n group.timestamp = Date.now();\n if (sg && sg.length) {\n group.subGroupIds = sg.map(function (g) {\n return g.id;\n });\n sg.forEach(function (g) {\n return mergeGroup(groups, g);\n });\n }\n delete group.subGroups;\n groups[group.id] = group;\n /* eslint-enable no-param-reassign */\n}\n\n/**\n * Given a group tree, reduces it to the array of all group IDs encountered in\n * the tree.\n * @param {Object} group\n * @return {String[]} Array of IDs.\n */\nfunction reduceGroupIds(_ref) {\n var oldId = _ref.oldId,\n subGroups = _ref.subGroups;\n\n var res = [oldId];\n if (subGroups) {\n subGroups.forEach(function (g) {\n res = res.concat(reduceGroupIds(g));\n });\n }\n return res;\n}\n\n/**\n * Service class.\n */\n\nvar GroupService = function () {\n /**\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n */\n function GroupService(tokenV3) {\n (0, _classCallCheck3.default)(this, GroupService);\n\n var now = Date.now();\n this.private = {\n api: (0, _api.getApi)('V5', tokenV3),\n cache: {\n groupTreeIds: {\n lastCleanUp: now,\n data: {}\n }\n },\n tokenV3: tokenV3\n };\n }\n\n /**\n * Adds new member to the group.\n * @param {String} groupId\n * @param {String} memberId\n * @param {String} membershipType\n * @return {Promise}\n */\n\n\n (0, _createClass3.default)(GroupService, [{\n key: 'addMember',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(groupId, memberId, membershipType) {\n var response;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.private.api.postJson('/groups/' + groupId + '/members', {\n param: { memberId: memberId, membershipType: membershipType }\n });\n\n case 2:\n response = _context.sent;\n return _context.abrupt('return', handleApiResponse(response));\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function addMember(_x3, _x4, _x5) {\n return _ref2.apply(this, arguments);\n }\n\n return addMember;\n }()\n\n /**\n * Gets detailed information about the group.\n *\n * Notice, when \"withSubGroups\" argument is true (default) this method returns\n * a tree of group data objects, connected via their \"subGroups\" fields.\n * getMap(..) method below wraps this functionality in a more practical way!\n *\n * @param {String} groupId\n * @param {Boolean} withSubGroups Optional. Defaults to true. Specifies,\n * whether the response should information about sub-groups, if any.\n * @return {Promise} On success resolves to the group data object.\n */\n\n }, {\n key: 'getGroup',\n value: function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(groupId) {\n var withSubGroups = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var url, response;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n url = '/groups/' + groupId;\n\n if (withSubGroups) {\n url = url + '/?includeSubGroups=true&oneLevel=false';\n }\n\n _context2.next = 4;\n return this.private.api.get(url);\n\n case 4:\n response = _context2.sent;\n return _context2.abrupt('return', handleApiResponse(response));\n\n case 6:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getGroup(_x6) {\n return _ref3.apply(this, arguments);\n }\n\n return getGroup;\n }()\n\n /**\n * Gets detailed information about the specified user group(s) and their\n * descendant sub-groups.\n *\n * @param {String|String[]} groupIds Group ID, or an array of group IDs,\n * to query from Topcoder API.\n * @return {Promise} Resolves to the group map. That object will have group\n * IDs as the keys, and corresponding group data objects as the values. In\n * each group data object the \"subGroups\" field, if any, will be replaced by\n * \"subGroupIds\" (array of IDs of the immediate child groups), and the actual\n * data on the sub-groups will be moved to the root of the map object.\n * It also timestamps each fetched group.\n */\n\n }, {\n key: 'getGroupMap',\n value: function getGroupMap(groupIds) {\n var _this = this;\n\n var res = {};\n var seen = new _set2.default();\n var query = _lodash2.default.isArray(groupIds) ? groupIds : [groupIds];\n var promises = query.map(function (id) {\n if (seen.has(id)) return null;\n seen.add(id);\n return _this.getGroup(id).then(function (group) {\n return mergeGroup(res, group);\n }).catch(function (err) {\n /* In case we have failed to get some of the requested groups,\n * we just send error message to logs, and serve the result with\n * those groups that we managed to get. Otherwise it will be to\n * easy to break our code by minor mistakes in the group-related\n * configuration in the API and in the App. */\n _logger2.default.error('Failed to get user group #' + id, err);\n\n /* Empty group with timestamp is added to the result, as we still\n * want to cache the result, even if the result is that we cannot\n * load this group, at least for this visitor. */\n res[id] = { id: id, timestamp: Date.now() };\n });\n });\n return _promise2.default.all(promises).then(function () {\n return res;\n });\n }\n\n /**\n * Given a root group ID, returns an ID array that contains the root group ID,\n * and IDs of all descendant groups in the group (sub-)tree rooted at the\n * specified group.\n *\n * Results are cached inside the class instance to minimize the load on TC\n * Group API. To take advantage of that, be sure to keep and reuse the same\n * class instance.\n *\n * The reason to have such strange method and pay an extra attention to its\n * optimization for smaller API load is that it is essential for authorization\n * checks.\n *\n * @param {String} rootGroupId\n * @param {Number} maxage Optional. Max age [ms] of records served from the\n * cache. Defaults to 5 minutes.\n * @return {Promise} Resolves to ID array.\n */\n\n }, {\n key: 'getGroupTreeIds',\n value: function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(rootGroupId) {\n var maxage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5 * 60 * 1000;\n var now, cache, CLEAN_UP_INTERVAL, cached, res;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n now = Date.now();\n cache = this.private.cache.groupTreeIds;\n\n /* Clean-up: removes stale records from the cache. */\n\n CLEAN_UP_INTERVAL = 24 * 60 * 60 * 1000; // 1 day in ms.\n\n if (now - cache.lastCleanUp > CLEAN_UP_INTERVAL) {\n _lodash2.default.forOwn(cache, function (_ref5, key) {\n var timestamp = _ref5.timestamp;\n\n if (now - timestamp > CLEAN_UP_INTERVAL) delete cache[key];\n });\n cache.lastCleanUp = now;\n }\n\n /* If result is found in cache, and is fresh enough, return it. */\n cached = cache[rootGroupId];\n\n if (!(cached && now - cached.timestamp < maxage)) {\n _context3.next = 7;\n break;\n }\n\n return _context3.abrupt('return', _lodash2.default.clone(cached.data));\n\n case 7:\n _context3.t0 = reduceGroupIds;\n _context3.next = 10;\n return this.getGroup(rootGroupId);\n\n case 10:\n _context3.t1 = _context3.sent;\n res = (0, _context3.t0)(_context3.t1);\n\n cache[rootGroupId] = { data: res, timestamp: now };\n return _context3.abrupt('return', _lodash2.default.clone(res));\n\n case 14:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function getGroupTreeIds(_x8) {\n return _ref4.apply(this, arguments);\n }\n\n return getGroupTreeIds;\n }()\n\n /**\n * Gets group members.\n * @param {String} groupId\n * @return {Promise} On sucess resolves to the array of member objects,\n * which include user IDs, membership time, and some bookkeeping data.\n */\n\n }, {\n key: 'getMembers',\n value: function () {\n var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(groupId) {\n var response;\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this.private.api.get('/groups/' + groupId + '/members');\n\n case 2:\n response = _context4.sent;\n return _context4.abrupt('return', handleApiResponse(response));\n\n case 4:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function getMembers(_x10) {\n return _ref6.apply(this, arguments);\n }\n\n return getMembers;\n }()\n\n /**\n * Gets the number of members in the group.\n * @param {Number|String} groupId ID of the group.\n * @param {Boolean} withSubGroups Optional. When this flag is set, the count\n * will include members of sub-groups of the specified group.\n * @return {Promise} Resolves to the members count.\n */\n\n }, {\n key: 'getMembersCount',\n value: function () {\n var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(groupId, withSubGroups) {\n var url, res;\n return _regenerator2.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n url = '/groups/' + groupId + '/membersCount';\n\n if (withSubGroups) url += '?includeSubGroups=true';\n _context5.next = 4;\n return this.private.api.get(url);\n\n case 4:\n res = _context5.sent;\n\n if (res.ok) {\n _context5.next = 7;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 7:\n _context5.next = 9;\n return res.json();\n\n case 9:\n res = _context5.sent;\n return _context5.abrupt('return', Number(res.count));\n\n case 11:\n case 'end':\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function getMembersCount(_x11, _x12) {\n return _ref7.apply(this, arguments);\n }\n\n return getMembersCount;\n }()\n\n /**\n * Returns TC Auth Token V3 used by the service instance.\n * @return {String} Token.\n */\n\n }, {\n key: 'getTokenV3',\n value: function getTokenV3() {\n return this.private.tokenV3;\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return GroupService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing instance of challenge service, which works with\n * the specified auth token.\n * @param {String} tokenV3 Optional. Topcoder API v3 auth token.\n * @return {GroupService} Instance of the service.\n */\nfunction getService(tokenV3) {\n if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {\n lastInstance = new GroupService(tokenV3);\n }\n return lastInstance;\n}\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(USER_GROUP_MAXAGE, 'USER_GROUP_MAXAGE', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(addDescendantGroups, 'addDescendantGroups', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(checkGroupsStatus, 'checkGroupsStatus', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(checkUserGroups, 'checkUserGroups', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(handleApiResponse, 'handleApiResponse', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(mergeGroup, 'mergeGroup', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(reduceGroupIds, 'reduceGroupIds', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(GroupService, 'GroupService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(getService, 'getService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/groups.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/groups.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _set = __webpack_require__(/*! babel-runtime/core-js/set */ \"babel-runtime/core-js/set\");\n\nvar _set2 = _interopRequireDefault(_set);\n\nexports.addDescendantGroups = addDescendantGroups;\nexports.checkGroupsStatus = checkGroupsStatus;\nexports.checkUserGroups = checkUserGroups;\nexports.reduceGroupIds = reduceGroupIds;\nexports.getService = getService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.groups\"\n * @desc Service for communication with group-related part of Topcoder API.\n *\n * NOTE: Through this file, and in related contexts, by loading a user group,\n * or user groups data, we refer to loading the information about descendant\n * user groups; i.e. given some user group(s) we speak about loading the sub-\n * three of related child groups.\n *\n * By group maps we refer to the object having group IDs as the keys, and\n * group data objects as the values. Any group object included into a group map\n * has its \"subGroups\" array (if present) replaced by \"subGroupIds\", that lists\n * only the IDs of immediate child groups; actual child group objects from\n * \"subGroups\" are recursively added to the top level of the group map.\n * Also each group in the group map is timestamped to keep caching of\n * the loaded data.\n */\n\n/* The value of USER_GROUP_MAXAGE constant converted to [ms]. */\nvar USER_GROUP_MAXAGE = _topcoderReactUtils.config.USER_GROUP_MAXAGE * 1000;\n\n/**\n * Given an array of IDs (or a single ID) of user groups, and a map of known\n * user groups, it returns the array including all specified user groups, and\n * all their known descendant groups.\n * @param {String|String[]} groupIds\n * @param {Object} knownGroups\n * @return {String[]}\n */\nfunction addDescendantGroups(groupIds, knownGroups) {\n var res = _lodash2.default.isArray(groupIds) ? groupIds : [groupIds];\n var visitedGroupsIds = new _set2.default();\n var pos = 0;\n while (pos < res.length) {\n var id = res[pos];\n if (!visitedGroupsIds.has(id)) {\n visitedGroupsIds.add(id);\n var g = knownGroups[id];\n if (g && g.subGroupIds) res = res.concat(g.subGroupIds);\n }\n pos += 1;\n }\n return _lodash2.default.uniq(res);\n}\n\n/**\n * Splits the given list of group IDs into the lists of groups being loaded,\n * loaded, and others.\n * @param {String|String[]} groupIds ID, or an array of IDs, of the group(s) we\n * are interested in.\n * @param {Object} knownGroups Optional. The map of already known groups (some\n * of them may be outdated, though). This should be of the same format as the\n * object on \"groups.groups\" path of the Redux store. Defaults to empty object.\n * @param {Object} loadingGroups Optional. Set of groups beign loaded now. This\n * should be of the same format as the object on \"groups.loading\" path of the\n * Redux store. Defaults to empty object.\n * @return {Object} Resulting object may hold four arrays with group IDs from\n * \"groupIds\" (empty arrays will not be included into the result object):\n * - \"loaded\" - the groups that are present in \"knownGroups\" and are not\n * outdated;\n * - \"loading\" - the groups that are not present in \"knownGroups\" (or present,\n * but outdated); but they are already being loaded;\n * - \"missing\" - the groups that are not present in \"knownGroups\"\n * (or outdated), and are not being loaded.\n * - \"unknown\" - the groups that are absent in \"knownGroups\" map.\n */\nfunction checkGroupsStatus(groupIds) {\n var knownGroups = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var loadingGroups = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var loaded = [];\n var loading = [];\n var missing = [];\n var unknown = [];\n var now = Date.now();\n var tested = new _set2.default();\n var ids = _lodash2.default.isArray(groupIds) ? groupIds : [groupIds];\n ids.forEach(function (id) {\n if (tested.has(id)) return;\n tested.add(id);\n var g = knownGroups[id];\n if (!g) unknown.push(id);\n if (g && (now - g.timestamp || 0) < USER_GROUP_MAXAGE) loaded.push(id);else if (loadingGroups[id]) loading.push(id);else missing.push(id);\n });\n return {\n loaded: loaded.length ? loaded : null,\n loading: loading.length ? loading : null,\n missing: missing.length ? missing : null,\n unknown: unknown.length ? unknown : null\n };\n}\n\n/**\n * Returns \"true\" if \"userGroups\" arrays includes any group specified by\n * \"groupIds\", or any group descendant from a group specified by \"groupIds\".\n * The is the map of known groups\n * @param {String|String[]} groupIds\n * @param {Object[]|String[]} userGroups Array of user's groups or their IDs.\n * @param {Object} knownGroups Map of known groups.\n * @return {Boolean}\n */\nfunction checkUserGroups(groupIds, userGroups, knownGroups) {\n var queue = _lodash2.default.isArray(groupIds) ? groupIds : [groupIds];\n if (!queue.length) return true;\n if (!userGroups.length) return false;\n\n /* Algorithmically, \"knownGroups\" stores, in compressed form, data on\n * known trees of user groups; and we want to check whether any of groups\n * from \"userGroups\" belong to sub-trees having groups from \"groupIds\" as\n * their roots. So, we do a breadth-frist search through the group trees. */\n var userGroupIds = new _set2.default();\n var visitedGroupIds = new _set2.default();\n userGroups.forEach(function (g) {\n return userGroupIds.add(_lodash2.default.isObject(g) ? g.id : g);\n });\n var pos = 0;\n while (pos < queue.length) {\n var id = queue[pos];\n if (userGroupIds.has(id)) return true;\n visitedGroupIds.add(id);\n var g = knownGroups[id];\n if (g && g.subGroupIds) {\n g.subGroupIds.forEach(function (sgId) {\n return !visitedGroupIds.has(sgId) ? queue.push(sgId) : null;\n });\n }\n pos += 1;\n }\n return false;\n}\n\n/**\n * Private. Handles given response from the groups API.\n * @param {Object} response\n * @return {Promise} On success resolves to the data fetched from the API.\n */\nfunction handleApiResponse(response) {\n if (!response.ok) throw new Error(response.statusText);\n return response.json();\n}\n\n/**\n * Private. Merges given user group (possibly a tree of user groups) into\n * groups map. This function intended only for internal use inside this module,\n * as it may mutate both arguments (hence, the corresponding ESLint rule is\n * disabled within this function), thus should be used only where it is safe.\n * For external use a similar function is provided by \"utils/tc\" module.\n * @param {Object} groups\n * @param {Object} group\n */\nfunction mergeGroup(groups, group) {\n /* eslint-disable no-param-reassign */\n var sg = group.subGroups;\n group.timestamp = Date.now();\n if (sg && sg.length) {\n group.subGroupIds = sg.map(function (g) {\n return g.id;\n });\n sg.forEach(function (g) {\n return mergeGroup(groups, g);\n });\n }\n delete group.subGroups;\n groups[group.id] = group;\n /* eslint-enable no-param-reassign */\n}\n\n/**\n * Given a group tree, reduces it to the array of all group IDs encountered in\n * the tree.\n * @param {Object} group\n * @return {String[]} Array of IDs.\n */\nfunction reduceGroupIds(_ref) {\n var oldId = _ref.oldId,\n subGroups = _ref.subGroups;\n\n var res = [oldId];\n if (subGroups) {\n subGroups.forEach(function (g) {\n res = res.concat(reduceGroupIds(g));\n });\n }\n return res;\n}\n\n/**\n * Service class.\n */\n\nvar GroupService = function () {\n /**\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n */\n function GroupService(tokenV3) {\n (0, _classCallCheck3.default)(this, GroupService);\n\n var now = Date.now();\n this.private = {\n api: (0, _api.getApi)('V5', tokenV3),\n cache: {\n groupTreeIds: {\n lastCleanUp: now,\n data: {}\n }\n },\n tokenV3: tokenV3\n };\n }\n\n /**\n * Adds new member to the group.\n * @param {String} groupId\n * @param {String} memberId\n * @param {String} membershipType\n * @return {Promise}\n */\n\n\n (0, _createClass3.default)(GroupService, [{\n key: 'addMember',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(groupId, memberId, membershipType) {\n var response;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.private.api.postJson('/groups/' + groupId + '/members', {\n param: { memberId: memberId, membershipType: membershipType }\n });\n\n case 2:\n response = _context.sent;\n return _context.abrupt('return', handleApiResponse(response));\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function addMember(_x3, _x4, _x5) {\n return _ref2.apply(this, arguments);\n }\n\n return addMember;\n }()\n\n /**\n * Gets detailed information about the group.\n *\n * Notice, when \"withSubGroups\" argument is true (default) this method returns\n * a tree of group data objects, connected via their \"subGroups\" fields.\n * getMap(..) method below wraps this functionality in a more practical way!\n *\n * @param {String} groupId\n * @param {Boolean} withSubGroups Optional. Defaults to true. Specifies,\n * whether the response should information about sub-groups, if any.\n * @return {Promise} On success resolves to the group data object.\n */\n\n }, {\n key: 'getGroup',\n value: function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(groupId) {\n var withSubGroups = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var url, response;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n url = '/groups/' + groupId;\n\n if (withSubGroups) {\n url = url + '/?includeSubGroups=true&oneLevel=false';\n }\n\n _context2.next = 4;\n return this.private.api.get(url);\n\n case 4:\n response = _context2.sent;\n return _context2.abrupt('return', handleApiResponse(response));\n\n case 6:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getGroup(_x6) {\n return _ref3.apply(this, arguments);\n }\n\n return getGroup;\n }()\n\n /**\n * Gets detailed information about the specified user group(s) and their\n * descendant sub-groups.\n *\n * @param {String|String[]} groupIds Group ID, or an array of group IDs,\n * to query from Topcoder API.\n * @return {Promise} Resolves to the group map. That object will have group\n * IDs as the keys, and corresponding group data objects as the values. In\n * each group data object the \"subGroups\" field, if any, will be replaced by\n * \"subGroupIds\" (array of IDs of the immediate child groups), and the actual\n * data on the sub-groups will be moved to the root of the map object.\n * It also timestamps each fetched group.\n */\n\n }, {\n key: 'getGroupMap',\n value: function getGroupMap(groupIds) {\n var _this = this;\n\n var res = {};\n var seen = new _set2.default();\n var query = _lodash2.default.isArray(groupIds) ? groupIds : [groupIds];\n var promises = query.map(function (id) {\n if (seen.has(id)) return null;\n seen.add(id);\n return _this.getGroup(id).then(function (group) {\n return mergeGroup(res, group);\n }).catch(function (err) {\n /* In case we have failed to get some of the requested groups,\n * we just send error message to logs, and serve the result with\n * those groups that we managed to get. Otherwise it will be to\n * easy to break our code by minor mistakes in the group-related\n * configuration in the API and in the App. */\n _logger2.default.error('Failed to get user group #' + id, err);\n\n /* Empty group with timestamp is added to the result, as we still\n * want to cache the result, even if the result is that we cannot\n * load this group, at least for this visitor. */\n res[id] = { id: id, timestamp: Date.now() };\n });\n });\n return _promise2.default.all(promises).then(function () {\n return res;\n });\n }\n\n /**\n * Given a root group ID, returns an ID array that contains the root group ID,\n * and IDs of all descendant groups in the group (sub-)tree rooted at the\n * specified group.\n *\n * Results are cached inside the class instance to minimize the load on TC\n * Group API. To take advantage of that, be sure to keep and reuse the same\n * class instance.\n *\n * The reason to have such strange method and pay an extra attention to its\n * optimization for smaller API load is that it is essential for authorization\n * checks.\n *\n * @param {String} rootGroupId\n * @param {Number} maxage Optional. Max age [ms] of records served from the\n * cache. Defaults to 5 minutes.\n * @return {Promise} Resolves to ID array.\n */\n\n }, {\n key: 'getGroupTreeIds',\n value: function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(rootGroupId) {\n var maxage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5 * 60 * 1000;\n var now, cache, CLEAN_UP_INTERVAL, cached, res;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n now = Date.now();\n cache = this.private.cache.groupTreeIds;\n\n /* Clean-up: removes stale records from the cache. */\n\n CLEAN_UP_INTERVAL = 24 * 60 * 60 * 1000; // 1 day in ms.\n\n if (now - cache.lastCleanUp > CLEAN_UP_INTERVAL) {\n _lodash2.default.forOwn(cache, function (_ref5, key) {\n var timestamp = _ref5.timestamp;\n\n if (now - timestamp > CLEAN_UP_INTERVAL) delete cache[key];\n });\n cache.lastCleanUp = now;\n }\n\n /* If result is found in cache, and is fresh enough, return it. */\n cached = cache[rootGroupId];\n\n if (!(cached && now - cached.timestamp < maxage)) {\n _context3.next = 7;\n break;\n }\n\n return _context3.abrupt('return', _lodash2.default.clone(cached.data));\n\n case 7:\n _context3.t0 = reduceGroupIds;\n _context3.next = 10;\n return this.getGroup(rootGroupId);\n\n case 10:\n _context3.t1 = _context3.sent;\n res = (0, _context3.t0)(_context3.t1);\n\n cache[rootGroupId] = { data: res, timestamp: now };\n return _context3.abrupt('return', _lodash2.default.clone(res));\n\n case 14:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function getGroupTreeIds(_x8) {\n return _ref4.apply(this, arguments);\n }\n\n return getGroupTreeIds;\n }()\n\n /**\n * Gets group members.\n * @param {String} groupId\n * @return {Promise} On sucess resolves to the array of member objects,\n * which include user IDs, membership time, and some bookkeeping data.\n */\n\n }, {\n key: 'getMembers',\n value: function () {\n var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(groupId) {\n var response;\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this.private.api.get('/groups/' + groupId + '/members');\n\n case 2:\n response = _context4.sent;\n return _context4.abrupt('return', handleApiResponse(response));\n\n case 4:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function getMembers(_x10) {\n return _ref6.apply(this, arguments);\n }\n\n return getMembers;\n }()\n\n /**\n * Gets the number of members in the group.\n * @param {Number|String} groupId ID of the group.\n * @param {Boolean} withSubGroups Optional. When this flag is set, the count\n * will include members of sub-groups of the specified group.\n * @return {Promise} Resolves to the members count.\n */\n\n }, {\n key: 'getMembersCount',\n value: function () {\n var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(groupId, withSubGroups) {\n var url, res;\n return _regenerator2.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n url = '/groups/' + groupId + '/membersCount';\n\n if (withSubGroups) url += '?includeSubGroups=true';\n _context5.next = 4;\n return this.private.api.get(url);\n\n case 4:\n res = _context5.sent;\n\n if (res.ok) {\n _context5.next = 7;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 7:\n _context5.next = 9;\n return res.json();\n\n case 9:\n res = _context5.sent;\n return _context5.abrupt('return', Number(res.count));\n\n case 11:\n case 'end':\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function getMembersCount(_x11, _x12) {\n return _ref7.apply(this, arguments);\n }\n\n return getMembersCount;\n }()\n\n /**\n * Returns TC Auth Token V3 used by the service instance.\n * @return {String} Token.\n */\n\n }, {\n key: 'getTokenV3',\n value: function getTokenV3() {\n return this.private.tokenV3;\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return GroupService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing instance of challenge service, which works with\n * the specified auth token.\n * @param {String} tokenV3 Optional. Topcoder API v3 auth token.\n * @return {GroupService} Instance of the service.\n */\nfunction getService(tokenV3) {\n if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {\n lastInstance = new GroupService(tokenV3);\n }\n return lastInstance;\n}\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(USER_GROUP_MAXAGE, 'USER_GROUP_MAXAGE', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(addDescendantGroups, 'addDescendantGroups', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(checkGroupsStatus, 'checkGroupsStatus', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(checkUserGroups, 'checkUserGroups', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(handleApiResponse, 'handleApiResponse', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(mergeGroup, 'mergeGroup', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(reduceGroupIds, 'reduceGroupIds', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(GroupService, 'GroupService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/groups.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/groups.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/groups.js?");
/***/ }),
@@ -969,7 +1017,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.services = undefined;\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nvar api = _interopRequireWildcard(_api);\n\nvar _billing = __webpack_require__(/*! ./billing */ \"./src/services/billing.js\");\n\nvar billing = _interopRequireWildcard(_billing);\n\nvar _challenges = __webpack_require__(/*! ./challenges */ \"./src/services/challenges.js\");\n\nvar challenge = _interopRequireWildcard(_challenges);\n\nvar _direct = __webpack_require__(/*! ./direct */ \"./src/services/direct.js\");\n\nvar direct = _interopRequireWildcard(_direct);\n\nvar _groups = __webpack_require__(/*! ./groups */ \"./src/services/groups.js\");\n\nvar groups = _interopRequireWildcard(_groups);\n\nvar _members = __webpack_require__(/*! ./members */ \"./src/services/members.js\");\n\nvar members = _interopRequireWildcard(_members);\n\nvar _terms = __webpack_require__(/*! ./terms */ \"./src/services/terms.js\");\n\nvar terms = _interopRequireWildcard(_terms);\n\nvar _communities = __webpack_require__(/*! ./communities */ \"./src/services/communities.js\");\n\nvar communities = _interopRequireWildcard(_communities);\n\nvar _reviewOpportunities = __webpack_require__(/*! ./reviewOpportunities */ \"./src/services/reviewOpportunities.js\");\n\nvar reviewOpportunities = _interopRequireWildcard(_reviewOpportunities);\n\nvar _userSettings = __webpack_require__(/*! ./user-settings */ \"./src/services/user-settings.js\");\n\nvar userSetting = _interopRequireWildcard(_userSettings);\n\nvar _user = __webpack_require__(/*! ./user */ \"./src/services/user.js\");\n\nvar user = _interopRequireWildcard(_user);\n\nvar _lookup = __webpack_require__(/*! ./lookup */ \"./src/services/lookup.js\");\n\nvar lookup = _interopRequireWildcard(_lookup);\n\nvar _userTraits = __webpack_require__(/*! ./user-traits */ \"./src/services/user-traits.js\");\n\nvar userTraits = _interopRequireWildcard(_userTraits);\n\nvar _submissions = __webpack_require__(/*! ./submissions */ \"./src/services/submissions.js\");\n\nvar submissions = _interopRequireWildcard(_submissions);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * Export services.\n */\n\n\nvar services = exports.services = {\n api: api,\n billing: billing,\n terms: terms,\n communities: communities,\n challenge: challenge,\n direct: direct,\n groups: groups,\n members: members,\n user: user,\n userSetting: userSetting,\n reviewOpportunities: reviewOpportunities,\n lookup: lookup,\n userTraits: userTraits,\n submissions: submissions\n};\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(services, 'services', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/index.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/index.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/index.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.services = undefined;\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nvar api = _interopRequireWildcard(_api);\n\nvar _billing = __webpack_require__(/*! ./billing */ \"./src/services/billing.js\");\n\nvar billing = _interopRequireWildcard(_billing);\n\nvar _challenges = __webpack_require__(/*! ./challenges */ \"./src/services/challenges.js\");\n\nvar challenge = _interopRequireWildcard(_challenges);\n\nvar _direct = __webpack_require__(/*! ./direct */ \"./src/services/direct.js\");\n\nvar direct = _interopRequireWildcard(_direct);\n\nvar _groups = __webpack_require__(/*! ./groups */ \"./src/services/groups.js\");\n\nvar groups = _interopRequireWildcard(_groups);\n\nvar _members = __webpack_require__(/*! ./members */ \"./src/services/members.js\");\n\nvar members = _interopRequireWildcard(_members);\n\nvar _terms = __webpack_require__(/*! ./terms */ \"./src/services/terms.js\");\n\nvar terms = _interopRequireWildcard(_terms);\n\nvar _communities = __webpack_require__(/*! ./communities */ \"./src/services/communities.js\");\n\nvar communities = _interopRequireWildcard(_communities);\n\nvar _reviewOpportunities = __webpack_require__(/*! ./reviewOpportunities */ \"./src/services/reviewOpportunities.js\");\n\nvar reviewOpportunities = _interopRequireWildcard(_reviewOpportunities);\n\nvar _userSettings = __webpack_require__(/*! ./user-settings */ \"./src/services/user-settings.js\");\n\nvar userSetting = _interopRequireWildcard(_userSettings);\n\nvar _user = __webpack_require__(/*! ./user */ \"./src/services/user.js\");\n\nvar user = _interopRequireWildcard(_user);\n\nvar _lookup = __webpack_require__(/*! ./lookup */ \"./src/services/lookup.js\");\n\nvar lookup = _interopRequireWildcard(_lookup);\n\nvar _userTraits = __webpack_require__(/*! ./user-traits */ \"./src/services/user-traits.js\");\n\nvar userTraits = _interopRequireWildcard(_userTraits);\n\nvar _submissions = __webpack_require__(/*! ./submissions */ \"./src/services/submissions.js\");\n\nvar submissions = _interopRequireWildcard(_submissions);\n\nvar _memberSearch = __webpack_require__(/*! ./member-search */ \"./src/services/member-search.js\");\n\nvar memberSearch = _interopRequireWildcard(_memberSearch);\n\nvar _notifications = __webpack_require__(/*! ./notifications */ \"./src/services/notifications.js\");\n\nvar notifications = _interopRequireWildcard(_notifications);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * Export services.\n */\n\n\nvar services = exports.services = {\n api: api,\n billing: billing,\n terms: terms,\n communities: communities,\n challenge: challenge,\n direct: direct,\n groups: groups,\n members: members,\n user: user,\n userSetting: userSetting,\n reviewOpportunities: reviewOpportunities,\n lookup: lookup,\n userTraits: userTraits,\n submissions: submissions,\n memberSearch: memberSearch,\n notifications: notifications\n};\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(services, 'services', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/index.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/index.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/index.js?");
/***/ }),
@@ -981,7 +1029,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _tc = __webpack_require__(/*! ../utils/tc */ \"./src/utils/tc.js\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.looker\"\n * @desc This module provides a service to get look data json via Topcoder API.\n */\n\n\n/**\n * Service class.\n */\nvar LookerService = function () {\n /**\n * @param {String} token Optional. Auth token for Topcoder API.\n */\n function LookerService(token) {\n (0, _classCallCheck3.default)(this, LookerService);\n\n this.private = {\n api: (0, _api.getApi)('V4', token),\n token: token\n };\n }\n\n /**\n * Get json look data by id.\n * @param {String} lookerId Look id.\n * @return {Promise} Resolves to the json data.\n */\n\n\n (0, _createClass3.default)(LookerService, [{\n key: 'getLooker',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(lookerId) {\n var res;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.private.api.get('/looks/' + lookerId + '/run/json');\n\n case 2:\n res = _context.sent;\n return _context.abrupt('return', (0, _tc.getLookerApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getLooker(_x) {\n return _ref.apply(this, arguments);\n }\n\n return getLooker;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return LookerService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing looker service.\n * @param {String} token Optional. Auth token for Topcoder API.\n * @return {LookerService} looker service object\n */\nfunction getService(token) {\n if (!lastInstance || token !== lastInstance.private.token) {\n lastInstance = new LookerService(token);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(LookerService, 'LookerService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/looker.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/looker.js');\n reactHotLoader.register(getService, 'getService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/looker.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/looker.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/looker.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _tc = __webpack_require__(/*! ../utils/tc */ \"./src/utils/tc.js\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.looker\"\n * @desc This module provides a service to get look data json via Topcoder API.\n */\n\n\n/**\n * Service class.\n */\nvar LookerService = function () {\n /**\n * @param {String} token Optional. Auth token for Topcoder API.\n */\n function LookerService(token) {\n (0, _classCallCheck3.default)(this, LookerService);\n\n this.private = {\n api: (0, _api.getApi)('V4', token),\n token: token\n };\n }\n\n /**\n * Get json look data by id.\n * @param {String} lookerId Look id.\n * @return {Promise} Resolves to the json data.\n */\n\n\n (0, _createClass3.default)(LookerService, [{\n key: 'getLooker',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(lookerId) {\n var res;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.private.api.get('/looks/' + lookerId + '/run/json');\n\n case 2:\n res = _context.sent;\n return _context.abrupt('return', (0, _tc.getLookerApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getLooker(_x) {\n return _ref.apply(this, arguments);\n }\n\n return getLooker;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return LookerService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing looker service.\n * @param {String} token Optional. Auth token for Topcoder API.\n * @return {LookerService} looker service object\n */\nfunction getService(token) {\n if (!lastInstance || token !== lastInstance.private.token) {\n lastInstance = new LookerService(token);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(LookerService, 'LookerService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/looker.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/looker.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/looker.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/looker.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/looker.js?");
/***/ }),
@@ -993,7 +1041,19 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _tc = __webpack_require__(/*! ../utils/tc */ \"./src/utils/tc.js\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.lookup\"\n * @desc This module provides a service to get lookup data from Topcoder\n * via API V3.\n */\n\n\nvar LookupService = function () {\n /**\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n */\n function LookupService(tokenV3) {\n (0, _classCallCheck3.default)(this, LookupService);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n apiV5: (0, _api.getApi)('V5', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Gets tags.\n * @param {Object} params Parameters\n * @return {Promise} Resolves to the tags.\n */\n\n\n (0, _createClass3.default)(LookupService, [{\n key: 'getTags',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(params) {\n var res;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.private.api.get('/tags/?' + _qs2.default.stringify(params));\n\n case 2:\n res = _context.sent;\n return _context.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getTags(_x) {\n return _ref.apply(this, arguments);\n }\n\n return getTags;\n }()\n\n /**\n * Gets countries.\n * @param {Object} params Parameters\n * @return {Promise} Resolves to the countries.\n */\n\n }, {\n key: 'getCountries',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var res;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.private.api.get('/members/lookup/countries');\n\n case 2:\n res = _context2.sent;\n return _context2.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getCountries() {\n return _ref2.apply(this, arguments);\n }\n\n return getCountries;\n }()\n\n /**\n * Gets all countries.\n * @return {Promise} Resolves to the countries.\n */\n\n }, {\n key: 'getAllCountries',\n value: function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3() {\n var res, jsonResult;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this.private.apiV5.get('/lookups/countries');\n\n case 2:\n res = _context3.sent;\n _context3.next = 5;\n return res.json();\n\n case 5:\n jsonResult = _context3.sent;\n return _context3.abrupt('return', jsonResult);\n\n case 7:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function getAllCountries() {\n return _ref3.apply(this, arguments);\n }\n\n return getAllCountries;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return LookupService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing lookup service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {LookupService} Lookup service object\n */\nfunction getService(tokenV3) {\n if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {\n lastInstance = new LookupService(tokenV3);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(LookupService, 'LookupService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/lookup.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/lookup.js');\n reactHotLoader.register(getService, 'getService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/lookup.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/lookup.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/lookup.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _tc = __webpack_require__(/*! ../utils/tc */ \"./src/utils/tc.js\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.lookup\"\n * @desc This module provides a service to get lookup data from Topcoder\n * via API V3.\n */\n\n\nvar LookupService = function () {\n /**\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n */\n function LookupService(tokenV3) {\n (0, _classCallCheck3.default)(this, LookupService);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n apiV5: (0, _api.getApi)('V5', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Gets tags.\n * @param {Object} params Parameters\n * @return {Promise} Resolves to the tags.\n */\n\n\n (0, _createClass3.default)(LookupService, [{\n key: 'getTags',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(params) {\n var res;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.private.api.get('/tags/?filter=' + encodeURIComponent(_qs2.default.stringify(params.filter)) + '&' + _qs2.default.stringify(params.limit));\n\n case 2:\n res = _context.sent;\n return _context.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getTags(_x) {\n return _ref.apply(this, arguments);\n }\n\n return getTags;\n }()\n\n /**\n * Gets countries.\n * @param {Object} params Parameters\n * @return {Promise} Resolves to the countries.\n */\n\n }, {\n key: 'getCountries',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var res;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.private.api.get('/members/lookup/countries');\n\n case 2:\n res = _context2.sent;\n return _context2.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getCountries() {\n return _ref2.apply(this, arguments);\n }\n\n return getCountries;\n }()\n\n /**\n * Gets all countries.\n * @return {Promise} Resolves to the countries.\n */\n\n }, {\n key: 'getAllCountries',\n value: function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3() {\n var res, jsonResult;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this.private.apiV5.get('/lookups/countries');\n\n case 2:\n res = _context3.sent;\n _context3.next = 5;\n return res.json();\n\n case 5:\n jsonResult = _context3.sent;\n return _context3.abrupt('return', jsonResult);\n\n case 7:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function getAllCountries() {\n return _ref3.apply(this, arguments);\n }\n\n return getAllCountries;\n }()\n\n /**\n * Gets all reviewTypes.\n * @return {Promise} Resolves to the review types.\n */\n\n }, {\n key: 'getReviewTypes',\n value: function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4() {\n var res, jsonResult;\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this.private.apiV5.get('/reviewTypes');\n\n case 2:\n res = _context4.sent;\n _context4.next = 5;\n return res.json();\n\n case 5:\n jsonResult = _context4.sent;\n return _context4.abrupt('return', jsonResult);\n\n case 7:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function getReviewTypes() {\n return _ref4.apply(this, arguments);\n }\n\n return getReviewTypes;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return LookupService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing lookup service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {LookupService} Lookup service object\n */\nfunction getService(tokenV3) {\n if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {\n lastInstance = new LookupService(tokenV3);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(LookupService, 'LookupService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/lookup.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/lookup.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/lookup.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/lookup.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/lookup.js?");
+
+/***/ }),
+
+/***/ "./src/services/member-search.js":
+/*!***************************************!*\
+ !*** ./src/services/member-search.js ***!
+ \***************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nvar _memberSearch = __webpack_require__(/*! ../utils/member-search */ \"./src/utils/member-search.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.member-search\"\n * @desc This module provides a service for searching members.\n */\n\n\n/**\n * Member search service class.\n */\nvar MemberSearchService = function () {\n /**\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n */\n function MemberSearchService(tokenV3) {\n (0, _classCallCheck3.default)(this, MemberSearchService);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Get matched members for a search term.\n * @param {String} searchTerm the search term\n * @param {Number} offset the number of members to skip from starting\n * @param {Number} limit the maximum number of return members\n * @return {Promise} Resolves to an object containing the array of matched members\n * and the total count\n */\n\n\n (0, _createClass3.default)(MemberSearchService, [{\n key: 'getUsernameMatches',\n value: function getUsernameMatches(searchTerm, offset, limit) {\n var params = {\n query: 'MEMBER_SEARCH',\n handle: encodeURIComponent(searchTerm),\n offset: offset,\n limit: limit\n };\n\n return this.private.api.get('/members/_search/?' + _qs2.default.stringify(params)).then(_memberSearch.checkResponseSucess).then(function (data) {\n var usernameMatches = _lodash2.default.get(data, 'result.content');\n var totalCount = _lodash2.default.get(data, 'result.metadata.totalCount');\n\n if (!_lodash2.default.isArray(usernameMatches)) {\n throw new Error('Expected array for username response results');\n } else if (!_lodash2.default.isNumber(totalCount)) {\n throw new Error('Expected number for metadata total count');\n }\n\n return {\n usernameMatches: usernameMatches,\n totalCount: totalCount\n };\n }).catch(function (err) {\n throw new Error('Could not fetch username matches. Reason: ' + err);\n });\n }\n\n /**\n * Check if the search term is a tag.\n * @param {String} searchTerm the search term\n * @return {Promise} Resolves to a tag object\n */\n\n }, {\n key: 'checkIfSearchTermIsATag',\n value: function checkIfSearchTermIsATag(searchTerm) {\n return this.private.api.get('/tags/?filter=name%3D' + encodeURIComponent(searchTerm)).then(_memberSearch.checkResponseSucess).then(function (data) {\n var tagInfo = _lodash2.default.get(data, 'result.content');\n\n if (!_lodash2.default.isArray(tagInfo)) {\n throw new Error('Tag response must be an array');\n }\n\n return tagInfo[0];\n }).catch(function (err) {\n throw new Error('Could not determine if search term is a tag. Reason: ' + err);\n });\n }\n\n /**\n * Get matched members for a search tag.\n * @param {Object} tag the tag\n * @return {Promise} Resolves to an object containing the array of matched members\n */\n\n }, {\n key: 'getTopMembers',\n value: function getTopMembers(tag) {\n var leaderboardType = (0, _memberSearch.mapTagToLeaderboardType)(tag.domain);\n\n return this.private.api.get('/leaderboards/?filter=id%3D' + tag.id + '%26type%3D' + leaderboardType).then(_memberSearch.checkResponseSucess).then(function (data) {\n var topMembers = _lodash2.default.get(data, 'result.content', []);\n\n return {\n topMembers: topMembers\n };\n }).catch(function (err) {\n throw new Error('Could not fetch top members. Reason: ' + err);\n });\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return MemberSearchService;\n}();\n\nvar lastInstance = null;\n\n/**\n * Returns a new or existing member-search service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {MemberSearchService} Member search service object\n */\nfunction getService(tokenV3) {\n if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {\n lastInstance = new MemberSearchService(tokenV3);\n }\n return lastInstance;\n}\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(MemberSearchService, 'MemberSearchService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/member-search.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/member-search.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/member-search.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/member-search.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/member-search.js?");
/***/ }),
@@ -1005,7 +1065,19 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _assign = __webpack_require__(/*! babel-runtime/core-js/object/assign */ \"babel-runtime/core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _stringify = __webpack_require__(/*! babel-runtime/core-js/json/stringify */ \"babel-runtime/core-js/json/stringify\");\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _tc = __webpack_require__(/*! ../utils/tc */ \"./src/utils/tc.js\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.members\"\n * @desc This module provides a service for searching for Topcoder\n * members via API V3.\n */\n\n/* global XMLHttpRequest */\n\n\n/**\n * Service class.\n */\nvar MembersService = function () {\n /**\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n */\n function MembersService(tokenV3) {\n (0, _classCallCheck3.default)(this, MembersService);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Gets member's financial information.\n * @param {String} handle User handle.\n * @return {Promise} Resolves to the financial information object.\n */\n\n\n (0, _createClass3.default)(MembersService, [{\n key: 'getMemberFinances',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(handle) {\n var res;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.private.api.get('/members/' + handle + '/financial');\n\n case 2:\n res = _context.sent;\n return _context.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getMemberFinances(_x) {\n return _ref.apply(this, arguments);\n }\n\n return getMemberFinances;\n }()\n\n /**\n * Gets public information on a member.\n *\n * This method does not require any authorization.\n *\n * @param {String} handle Member handle.\n * @return {Promise} Resolves to the data object.\n */\n\n }, {\n key: 'getMemberInfo',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(handle) {\n var res;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.private.api.get('/members/' + handle);\n\n case 2:\n res = _context2.sent;\n return _context2.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getMemberInfo(_x2) {\n return _ref2.apply(this, arguments);\n }\n\n return getMemberInfo;\n }()\n\n /**\n * Gets member external account info.\n * @param {String} handle\n * @return {Promise} Resolves to the stats object.\n */\n\n }, {\n key: 'getExternalAccounts',\n value: function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(handle) {\n var res;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this.private.api.get('/members/' + handle + '/externalAccounts');\n\n case 2:\n res = _context3.sent;\n return _context3.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function getExternalAccounts(_x3) {\n return _ref3.apply(this, arguments);\n }\n\n return getExternalAccounts;\n }()\n\n /**\n * Gets member external links.\n * @param {String} handle\n * @return {Promise} Resolves to the stats object.\n */\n\n }, {\n key: 'getExternalLinks',\n value: function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(handle) {\n var res;\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this.private.api.get('/members/' + handle + '/externalLinks');\n\n case 2:\n res = _context4.sent;\n return _context4.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function getExternalLinks(_x4) {\n return _ref4.apply(this, arguments);\n }\n\n return getExternalLinks;\n }()\n\n /**\n * Gets member skills.\n * @param {String} handle\n * @return {Promise} Resolves to the stats object.\n */\n\n }, {\n key: 'getSkills',\n value: function () {\n var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(handle) {\n var res;\n return _regenerator2.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return this.private.api.get('/members/' + handle + '/skills');\n\n case 2:\n res = _context5.sent;\n return _context5.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function getSkills(_x5) {\n return _ref5.apply(this, arguments);\n }\n\n return getSkills;\n }()\n\n /**\n * Gets member statistics.\n * @param {String} handle\n * @param {String} groupIds\n * @return {Promise} Resolves to the stats object.\n */\n\n }, {\n key: 'getStats',\n value: function () {\n var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(handle, groupIds) {\n var res;\n return _regenerator2.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n res = void 0;\n\n if (!groupIds) {\n _context6.next = 7;\n break;\n }\n\n _context6.next = 4;\n return this.private.api.get('/members/' + handle + '/stats?groupIds=' + groupIds);\n\n case 4:\n res = _context6.sent;\n _context6.next = 10;\n break;\n\n case 7:\n _context6.next = 9;\n return this.private.api.get('/members/' + handle + '/stats');\n\n case 9:\n res = _context6.sent;\n\n case 10:\n return _context6.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 11:\n case 'end':\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function getStats(_x6, _x7) {\n return _ref6.apply(this, arguments);\n }\n\n return getStats;\n }()\n\n /**\n * Gets member statistics history\n * @param {String} handle\n * @return {Promise} Resolves to the stats object.\n */\n\n }, {\n key: 'getStatsHistory',\n value: function () {\n var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(handle) {\n var res;\n return _regenerator2.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n _context7.next = 2;\n return this.private.api.get('/members/' + handle + '/stats/history');\n\n case 2:\n res = _context7.sent;\n return _context7.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n\n function getStatsHistory(_x8) {\n return _ref7.apply(this, arguments);\n }\n\n return getStatsHistory;\n }()\n\n /**\n * Gets member statistics distribution\n * @param {String} handle\n * @param {String} track\n * @param {String} subTrack\n * @return {Promise} Resolves to the stats object.\n */\n\n }, {\n key: 'getStatsDistribution',\n value: function () {\n var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(handle, track, subTrack) {\n var res;\n return _regenerator2.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return this.private.api.get('/members/stats/distribution?filter=' + encodeURIComponent(_qs2.default.stringify({\n track: track,\n subTrack: subTrack\n })));\n\n case 2:\n res = _context8.sent;\n return _context8.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n\n function getStatsDistribution(_x9, _x10, _x11) {\n return _ref8.apply(this, arguments);\n }\n\n return getStatsDistribution;\n }()\n\n /**\n * Gets a list of suggested member names for the supplied partial.\n *\n * WARNING: This method requires v3 authorization.\n *\n * @param {String} keyword Partial string to find suggestions for\n * @return {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'getMemberSuggestions',\n value: function () {\n var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(keyword) {\n var res;\n return _regenerator2.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return this.private.api.get('/members/_suggest/' + keyword);\n\n case 2:\n res = _context9.sent;\n return _context9.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context9.stop();\n }\n }\n }, _callee9, this);\n }));\n\n function getMemberSuggestions(_x12) {\n return _ref9.apply(this, arguments);\n }\n\n return getMemberSuggestions;\n }()\n\n /**\n * Adds external web link for member.\n * @param {String} userHandle The user handle\n * @param {String} webLink The external web link\n * @return {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'addWebLink',\n value: function () {\n var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(userHandle, webLink) {\n var res;\n return _regenerator2.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return this.private.api.postJson('/members/' + userHandle + '/externalLinks', { param: { url: webLink } });\n\n case 2:\n res = _context10.sent;\n return _context10.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n\n function addWebLink(_x13, _x14) {\n return _ref10.apply(this, arguments);\n }\n\n return addWebLink;\n }()\n\n /**\n * Deletes external web link for member.\n * @param {String} userHandle The user handle\n * @param {String} webLinkHandle The external web link handle\n * @return {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'deleteWebLink',\n value: function () {\n var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(userHandle, webLinkHandle) {\n var body, res;\n return _regenerator2.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n body = {\n param: {\n handle: webLinkHandle\n }\n };\n _context11.next = 3;\n return this.private.api.delete('/members/' + userHandle + '/externalLinks/' + webLinkHandle, (0, _stringify2.default)(body));\n\n case 3:\n res = _context11.sent;\n return _context11.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n function deleteWebLink(_x15, _x16) {\n return _ref11.apply(this, arguments);\n }\n\n return deleteWebLink;\n }()\n\n /**\n * Adds user skill.\n * @param {String} handle Topcoder user handle\n * @param {Number} skillTagId Skill tag id\n * @return {Promise} Resolves to operation result\n */\n\n }, {\n key: 'addSkill',\n value: function () {\n var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12(handle, skillTagId) {\n var body, res;\n return _regenerator2.default.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n body = {\n param: {\n skills: (0, _defineProperty3.default)({}, skillTagId, {\n hidden: false\n })\n }\n };\n _context12.next = 3;\n return this.private.api.patchJson('/members/' + handle + '/skills', body);\n\n case 3:\n res = _context12.sent;\n return _context12.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context12.stop();\n }\n }\n }, _callee12, this);\n }));\n\n function addSkill(_x17, _x18) {\n return _ref12.apply(this, arguments);\n }\n\n return addSkill;\n }()\n\n /**\n * Hides user skill.\n * @param {String} handle Topcoder user handle\n * @param {Number} skillTagId Skill tag id\n * @return {Promise} Resolves to operation result\n */\n\n }, {\n key: 'hideSkill',\n value: function () {\n var _ref13 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee13(handle, skillTagId) {\n var body, res;\n return _regenerator2.default.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n body = {\n param: {\n skills: (0, _defineProperty3.default)({}, skillTagId, {\n hidden: true\n })\n }\n };\n _context13.next = 3;\n return this.private.api.fetch('/members/' + handle + '/skills', {\n body: (0, _stringify2.default)(body),\n method: 'PATCH'\n });\n\n case 3:\n res = _context13.sent;\n return _context13.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context13.stop();\n }\n }\n }, _callee13, this);\n }));\n\n function hideSkill(_x19, _x20) {\n return _ref13.apply(this, arguments);\n }\n\n return hideSkill;\n }()\n\n /**\n * Updates member profile.\n * @param {Object} profile The profile to update.\n * @return {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'updateMemberProfile',\n value: function () {\n var _ref14 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee14(profile) {\n var url, res;\n return _regenerator2.default.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n url = profile.verifyUrl ? '/members/' + profile.handle + '?verifyUrl=' + profile.verifyUrl : '/members/' + profile.handle;\n _context14.next = 3;\n return this.private.api.putJson(url, { param: profile.verifyUrl ? _lodash2.default.omit(profile, ['verifyUrl']) : profile });\n\n case 3:\n res = _context14.sent;\n\n if (!(profile.verifyUrl && res.status === 409)) {\n _context14.next = 6;\n break;\n }\n\n return _context14.abrupt('return', _promise2.default.resolve((0, _assign2.default)({}, profile, { isEmailConflict: true })));\n\n case 6:\n return _context14.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 7:\n case 'end':\n return _context14.stop();\n }\n }\n }, _callee14, this);\n }));\n\n function updateMemberProfile(_x21) {\n return _ref14.apply(this, arguments);\n }\n\n return updateMemberProfile;\n }()\n\n /**\n * Gets presigned url for member photo file.\n * @param {String} userHandle The user handle\n * @param {File} file The file to get its presigned url\n * @return {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'getPresignedUrl',\n value: function () {\n var _ref15 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee15(userHandle, file) {\n var res, payload;\n return _regenerator2.default.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n _context15.next = 2;\n return this.private.api.postJson('/members/' + userHandle + '/photoUploadUrl', { param: { contentType: file.type } });\n\n case 2:\n res = _context15.sent;\n _context15.next = 5;\n return (0, _tc.getApiResponsePayload)(res);\n\n case 5:\n payload = _context15.sent;\n return _context15.abrupt('return', {\n preSignedURL: payload.preSignedURL,\n token: payload.token,\n file: file,\n userHandle: userHandle\n });\n\n case 7:\n case 'end':\n return _context15.stop();\n }\n }\n }, _callee15, this);\n }));\n\n function getPresignedUrl(_x22, _x23) {\n return _ref15.apply(this, arguments);\n }\n\n return getPresignedUrl;\n }()\n\n /**\n * Updates member photo.\n * @param {Object} S3Response The response from uploadFileToS3() function.\n * @return {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'updateMemberPhoto',\n value: function () {\n var _ref16 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee16(S3Response) {\n var res;\n return _regenerator2.default.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n _context16.next = 2;\n return this.private.api.putJson('/members/' + S3Response.userHandle + '/photo', { param: S3Response.body });\n\n case 2:\n res = _context16.sent;\n return _context16.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context16.stop();\n }\n }\n }, _callee16, this);\n }));\n\n function updateMemberPhoto(_x24) {\n return _ref16.apply(this, arguments);\n }\n\n return updateMemberPhoto;\n }()\n\n /**\n * Uploads file to S3.\n * @param {Object} presignedUrlResponse The presigned url response from\n * getPresignedUrl() function.\n * @return {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'uploadFileToS3',\n value: function uploadFileToS3(presignedUrlResponse) {\n _lodash2.default.noop(this);\n return new _promise2.default(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n\n xhr.open('PUT', presignedUrlResponse.preSignedURL, true);\n xhr.setRequestHeader('Content-Type', presignedUrlResponse.file.type);\n\n xhr.onreadystatechange = function () {\n var status = xhr.status;\n\n if ((status >= 200 && status < 300 || status === 304) && xhr.readyState === 4) {\n resolve({\n userHandle: presignedUrlResponse.userHandle,\n body: {\n token: presignedUrlResponse.token,\n contentType: presignedUrlResponse.file.type\n }\n });\n } else if (status >= 400) {\n var err = new Error('Could not upload image to S3');\n err.status = status;\n reject(err);\n }\n };\n\n xhr.onerror = function (err) {\n _logger2.default.error('Could not upload image to S3', err);\n\n reject(err);\n };\n\n xhr.send(presignedUrlResponse.file);\n });\n }\n\n /**\n * Verify member new email\n * @param {String} handle handle Topcoder user handle\n * @param {String} emailVerifyToken The verify token of new email\n * @returns {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'verifyMemberNewEmail',\n value: function () {\n var _ref17 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee17(handle, emailVerifyToken) {\n var res;\n return _regenerator2.default.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n _context17.next = 2;\n return this.private.api.get('/members/' + handle + '/verify?token=' + emailVerifyToken);\n\n case 2:\n res = _context17.sent;\n return _context17.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context17.stop();\n }\n }\n }, _callee17, this);\n }));\n\n function verifyMemberNewEmail(_x25, _x26) {\n return _ref17.apply(this, arguments);\n }\n\n return verifyMemberNewEmail;\n }()\n\n /**\n * Get members information\n * @param {Array} userIds the member ids\n */\n\n }, {\n key: 'getMembersInformation',\n value: function () {\n var _ref18 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee18(userIds) {\n var query, limit, url, res;\n return _regenerator2.default.wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n query = 'query=' + encodeURI(_lodash2.default.map(userIds, function (id) {\n return 'userId:' + id;\n }).join(' OR '));\n limit = 'limit=' + userIds.length;\n url = '/members/_search?fields=userId%2Chandle&' + query + '&' + limit;\n _context18.next = 5;\n return this.private.api.get(url);\n\n case 5:\n res = _context18.sent;\n return _context18.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 7:\n case 'end':\n return _context18.stop();\n }\n }\n }, _callee18, this);\n }));\n\n function getMembersInformation(_x27) {\n return _ref18.apply(this, arguments);\n }\n\n return getMembersInformation;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return MembersService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing members service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {MembersService} Members service object\n */\nfunction getService(tokenV3) {\n if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {\n lastInstance = new MembersService(tokenV3);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(MembersService, 'MembersService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/members.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/members.js');\n reactHotLoader.register(getService, 'getService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/members.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/members.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/members.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _assign = __webpack_require__(/*! babel-runtime/core-js/object/assign */ \"babel-runtime/core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _defineProperty2 = __webpack_require__(/*! babel-runtime/helpers/defineProperty */ \"babel-runtime/helpers/defineProperty\");\n\nvar _defineProperty3 = _interopRequireDefault(_defineProperty2);\n\nvar _stringify = __webpack_require__(/*! babel-runtime/core-js/json/stringify */ \"babel-runtime/core-js/json/stringify\");\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _tc = __webpack_require__(/*! ../utils/tc */ \"./src/utils/tc.js\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.members\"\n * @desc This module provides a service for searching for Topcoder\n * members via API V3.\n */\n\n/* global XMLHttpRequest */\n\n\n/**\n * Service class.\n */\nvar MembersService = function () {\n /**\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n */\n function MembersService(tokenV3) {\n (0, _classCallCheck3.default)(this, MembersService);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Gets member's financial information.\n * @param {String} handle User handle.\n * @return {Promise} Resolves to the financial information object.\n */\n\n\n (0, _createClass3.default)(MembersService, [{\n key: 'getMemberFinances',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(handle) {\n var res;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.private.api.get('/members/' + handle + '/financial');\n\n case 2:\n res = _context.sent;\n return _context.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getMemberFinances(_x) {\n return _ref.apply(this, arguments);\n }\n\n return getMemberFinances;\n }()\n\n /**\n * Gets public information on a member.\n *\n * This method does not require any authorization.\n *\n * @param {String} handle Member handle.\n * @return {Promise} Resolves to the data object.\n */\n\n }, {\n key: 'getMemberInfo',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(handle) {\n var res;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.private.api.get('/members/' + handle);\n\n case 2:\n res = _context2.sent;\n return _context2.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getMemberInfo(_x2) {\n return _ref2.apply(this, arguments);\n }\n\n return getMemberInfo;\n }()\n\n /**\n * Gets member external account info.\n * @param {String} handle\n * @return {Promise} Resolves to the stats object.\n */\n\n }, {\n key: 'getExternalAccounts',\n value: function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(handle) {\n var res;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this.private.api.get('/members/' + handle + '/externalAccounts');\n\n case 2:\n res = _context3.sent;\n return _context3.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function getExternalAccounts(_x3) {\n return _ref3.apply(this, arguments);\n }\n\n return getExternalAccounts;\n }()\n\n /**\n * Gets member external links.\n * @param {String} handle\n * @return {Promise} Resolves to the stats object.\n */\n\n }, {\n key: 'getExternalLinks',\n value: function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(handle) {\n var res;\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this.private.api.get('/members/' + handle + '/externalLinks');\n\n case 2:\n res = _context4.sent;\n return _context4.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function getExternalLinks(_x4) {\n return _ref4.apply(this, arguments);\n }\n\n return getExternalLinks;\n }()\n\n /**\n * Gets member skills.\n * @param {String} handle\n * @return {Promise} Resolves to the stats object.\n */\n\n }, {\n key: 'getSkills',\n value: function () {\n var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(handle) {\n var res;\n return _regenerator2.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return this.private.api.get('/members/' + handle + '/skills');\n\n case 2:\n res = _context5.sent;\n return _context5.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function getSkills(_x5) {\n return _ref5.apply(this, arguments);\n }\n\n return getSkills;\n }()\n\n /**\n * Gets member statistics.\n * @param {String} handle\n * @param {String} groupIds\n * @return {Promise} Resolves to the stats object.\n */\n\n }, {\n key: 'getStats',\n value: function () {\n var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(handle, groupIds) {\n var res;\n return _regenerator2.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n res = void 0;\n\n if (!groupIds) {\n _context6.next = 7;\n break;\n }\n\n _context6.next = 4;\n return this.private.api.get('/members/' + handle + '/stats?groupIds=' + groupIds);\n\n case 4:\n res = _context6.sent;\n _context6.next = 10;\n break;\n\n case 7:\n _context6.next = 9;\n return this.private.api.get('/members/' + handle + '/stats');\n\n case 9:\n res = _context6.sent;\n\n case 10:\n return _context6.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 11:\n case 'end':\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function getStats(_x6, _x7) {\n return _ref6.apply(this, arguments);\n }\n\n return getStats;\n }()\n\n /**\n * Gets member statistics history\n * @param {String} handle\n * @return {Promise} Resolves to the stats object.\n */\n\n }, {\n key: 'getStatsHistory',\n value: function () {\n var _ref7 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(handle, groupIds) {\n var res;\n return _regenerator2.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n res = void 0;\n\n if (!groupIds) {\n _context7.next = 7;\n break;\n }\n\n _context7.next = 4;\n return this.private.api.get('/members/' + handle + '/stats/history?groupIds=' + groupIds);\n\n case 4:\n res = _context7.sent;\n _context7.next = 10;\n break;\n\n case 7:\n _context7.next = 9;\n return this.private.api.get('/members/' + handle + '/stats/history');\n\n case 9:\n res = _context7.sent;\n\n case 10:\n return _context7.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 11:\n case 'end':\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n\n function getStatsHistory(_x8, _x9) {\n return _ref7.apply(this, arguments);\n }\n\n return getStatsHistory;\n }()\n\n /**\n * Gets member statistics distribution\n * @param {String} handle\n * @param {String} track\n * @param {String} subTrack\n * @return {Promise} Resolves to the stats object.\n */\n\n }, {\n key: 'getStatsDistribution',\n value: function () {\n var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(handle, track, subTrack) {\n var res;\n return _regenerator2.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n _context8.next = 2;\n return this.private.api.get('/members/stats/distribution?filter=' + encodeURIComponent(_qs2.default.stringify({\n track: track,\n subTrack: subTrack\n })));\n\n case 2:\n res = _context8.sent;\n return _context8.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n\n function getStatsDistribution(_x10, _x11, _x12) {\n return _ref8.apply(this, arguments);\n }\n\n return getStatsDistribution;\n }()\n\n /**\n * Gets a list of suggested member names for the supplied partial.\n *\n * WARNING: This method requires v3 authorization.\n *\n * @param {String} keyword Partial string to find suggestions for\n * @return {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'getMemberSuggestions',\n value: function () {\n var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(keyword) {\n var res;\n return _regenerator2.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n _context9.next = 2;\n return this.private.api.get('/members/_suggest/' + keyword);\n\n case 2:\n res = _context9.sent;\n return _context9.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context9.stop();\n }\n }\n }, _callee9, this);\n }));\n\n function getMemberSuggestions(_x13) {\n return _ref9.apply(this, arguments);\n }\n\n return getMemberSuggestions;\n }()\n\n /**\n * Adds external web link for member.\n * @param {String} userHandle The user handle\n * @param {String} webLink The external web link\n * @return {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'addWebLink',\n value: function () {\n var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(userHandle, webLink) {\n var res;\n return _regenerator2.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n _context10.next = 2;\n return this.private.api.postJson('/members/' + userHandle + '/externalLinks', { param: { url: webLink } });\n\n case 2:\n res = _context10.sent;\n return _context10.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n\n function addWebLink(_x14, _x15) {\n return _ref10.apply(this, arguments);\n }\n\n return addWebLink;\n }()\n\n /**\n * Deletes external web link for member.\n * @param {String} userHandle The user handle\n * @param {String} webLinkHandle The external web link handle\n * @return {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'deleteWebLink',\n value: function () {\n var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(userHandle, webLinkHandle) {\n var body, res;\n return _regenerator2.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n body = {\n param: {\n handle: webLinkHandle\n }\n };\n _context11.next = 3;\n return this.private.api.delete('/members/' + userHandle + '/externalLinks/' + webLinkHandle, (0, _stringify2.default)(body));\n\n case 3:\n res = _context11.sent;\n return _context11.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n function deleteWebLink(_x16, _x17) {\n return _ref11.apply(this, arguments);\n }\n\n return deleteWebLink;\n }()\n\n /**\n * Adds user skill.\n * @param {String} handle Topcoder user handle\n * @param {Number} skillTagId Skill tag id\n * @return {Promise} Resolves to operation result\n */\n\n }, {\n key: 'addSkill',\n value: function () {\n var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee12(handle, skillTagId) {\n var body, res;\n return _regenerator2.default.wrap(function _callee12$(_context12) {\n while (1) {\n switch (_context12.prev = _context12.next) {\n case 0:\n body = {\n param: {\n skills: (0, _defineProperty3.default)({}, skillTagId, {\n hidden: false\n })\n }\n };\n _context12.next = 3;\n return this.private.api.patchJson('/members/' + handle + '/skills', body);\n\n case 3:\n res = _context12.sent;\n return _context12.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context12.stop();\n }\n }\n }, _callee12, this);\n }));\n\n function addSkill(_x18, _x19) {\n return _ref12.apply(this, arguments);\n }\n\n return addSkill;\n }()\n\n /**\n * Hides user skill.\n * @param {String} handle Topcoder user handle\n * @param {Number} skillTagId Skill tag id\n * @return {Promise} Resolves to operation result\n */\n\n }, {\n key: 'hideSkill',\n value: function () {\n var _ref13 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee13(handle, skillTagId) {\n var body, res;\n return _regenerator2.default.wrap(function _callee13$(_context13) {\n while (1) {\n switch (_context13.prev = _context13.next) {\n case 0:\n body = {\n param: {\n skills: (0, _defineProperty3.default)({}, skillTagId, {\n hidden: true\n })\n }\n };\n _context13.next = 3;\n return this.private.api.fetch('/members/' + handle + '/skills', {\n body: (0, _stringify2.default)(body),\n method: 'PATCH'\n });\n\n case 3:\n res = _context13.sent;\n return _context13.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context13.stop();\n }\n }\n }, _callee13, this);\n }));\n\n function hideSkill(_x20, _x21) {\n return _ref13.apply(this, arguments);\n }\n\n return hideSkill;\n }()\n\n /**\n * Updates member profile.\n * @param {Object} profile The profile to update.\n * @return {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'updateMemberProfile',\n value: function () {\n var _ref14 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee14(profile) {\n var url, res;\n return _regenerator2.default.wrap(function _callee14$(_context14) {\n while (1) {\n switch (_context14.prev = _context14.next) {\n case 0:\n url = profile.verifyUrl ? '/members/' + profile.handle + '?verifyUrl=' + profile.verifyUrl : '/members/' + profile.handle;\n _context14.next = 3;\n return this.private.api.putJson(url, { param: profile.verifyUrl ? _lodash2.default.omit(profile, ['verifyUrl']) : profile });\n\n case 3:\n res = _context14.sent;\n\n if (!(profile.verifyUrl && res.status === 409)) {\n _context14.next = 6;\n break;\n }\n\n return _context14.abrupt('return', _promise2.default.resolve((0, _assign2.default)({}, profile, { isEmailConflict: true })));\n\n case 6:\n return _context14.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 7:\n case 'end':\n return _context14.stop();\n }\n }\n }, _callee14, this);\n }));\n\n function updateMemberProfile(_x22) {\n return _ref14.apply(this, arguments);\n }\n\n return updateMemberProfile;\n }()\n\n /**\n * Gets presigned url for member photo file.\n * @param {String} userHandle The user handle\n * @param {File} file The file to get its presigned url\n * @return {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'getPresignedUrl',\n value: function () {\n var _ref15 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee15(userHandle, file) {\n var res, payload;\n return _regenerator2.default.wrap(function _callee15$(_context15) {\n while (1) {\n switch (_context15.prev = _context15.next) {\n case 0:\n _context15.next = 2;\n return this.private.api.postJson('/members/' + userHandle + '/photoUploadUrl', { param: { contentType: file.type } });\n\n case 2:\n res = _context15.sent;\n _context15.next = 5;\n return (0, _tc.getApiResponsePayload)(res);\n\n case 5:\n payload = _context15.sent;\n return _context15.abrupt('return', {\n preSignedURL: payload.preSignedURL,\n token: payload.token,\n file: file,\n userHandle: userHandle\n });\n\n case 7:\n case 'end':\n return _context15.stop();\n }\n }\n }, _callee15, this);\n }));\n\n function getPresignedUrl(_x23, _x24) {\n return _ref15.apply(this, arguments);\n }\n\n return getPresignedUrl;\n }()\n\n /**\n * Updates member photo.\n * @param {Object} S3Response The response from uploadFileToS3() function.\n * @return {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'updateMemberPhoto',\n value: function () {\n var _ref16 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee16(S3Response) {\n var res;\n return _regenerator2.default.wrap(function _callee16$(_context16) {\n while (1) {\n switch (_context16.prev = _context16.next) {\n case 0:\n _context16.next = 2;\n return this.private.api.putJson('/members/' + S3Response.userHandle + '/photo', { param: S3Response.body });\n\n case 2:\n res = _context16.sent;\n return _context16.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context16.stop();\n }\n }\n }, _callee16, this);\n }));\n\n function updateMemberPhoto(_x25) {\n return _ref16.apply(this, arguments);\n }\n\n return updateMemberPhoto;\n }()\n\n /**\n * Uploads file to S3.\n * @param {Object} presignedUrlResponse The presigned url response from\n * getPresignedUrl() function.\n * @return {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'uploadFileToS3',\n value: function uploadFileToS3(presignedUrlResponse) {\n _lodash2.default.noop(this);\n return new _promise2.default(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n\n xhr.open('PUT', presignedUrlResponse.preSignedURL, true);\n xhr.setRequestHeader('Content-Type', presignedUrlResponse.file.type);\n\n xhr.onreadystatechange = function () {\n var status = xhr.status;\n\n if ((status >= 200 && status < 300 || status === 304) && xhr.readyState === 4) {\n resolve({\n userHandle: presignedUrlResponse.userHandle,\n body: {\n token: presignedUrlResponse.token,\n contentType: presignedUrlResponse.file.type\n }\n });\n } else if (status >= 400) {\n var err = new Error('Could not upload image to S3');\n err.status = status;\n reject(err);\n }\n };\n\n xhr.onerror = function (err) {\n _logger2.default.error('Could not upload image to S3', err);\n\n reject(err);\n };\n\n xhr.send(presignedUrlResponse.file);\n });\n }\n\n /**\n * Verify member new email\n * @param {String} handle handle Topcoder user handle\n * @param {String} emailVerifyToken The verify token of new email\n * @returns {Promise} Resolves to the api response content\n */\n\n }, {\n key: 'verifyMemberNewEmail',\n value: function () {\n var _ref17 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee17(handle, emailVerifyToken) {\n var res;\n return _regenerator2.default.wrap(function _callee17$(_context17) {\n while (1) {\n switch (_context17.prev = _context17.next) {\n case 0:\n _context17.next = 2;\n return this.private.api.get('/members/' + handle + '/verify?token=' + emailVerifyToken);\n\n case 2:\n res = _context17.sent;\n return _context17.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context17.stop();\n }\n }\n }, _callee17, this);\n }));\n\n function verifyMemberNewEmail(_x26, _x27) {\n return _ref17.apply(this, arguments);\n }\n\n return verifyMemberNewEmail;\n }()\n\n /**\n * Get members information\n * @param {Array} userIds the member ids\n */\n\n }, {\n key: 'getMembersInformation',\n value: function () {\n var _ref18 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee18(userIds) {\n var query, limit, url, res;\n return _regenerator2.default.wrap(function _callee18$(_context18) {\n while (1) {\n switch (_context18.prev = _context18.next) {\n case 0:\n query = 'query=' + encodeURI(_lodash2.default.map(userIds, function (id) {\n return 'userId:' + id;\n }).join(' OR '));\n limit = 'limit=' + userIds.length;\n url = '/members/_search?fields=userId%2Chandle&' + query + '&' + limit;\n _context18.next = 5;\n return this.private.api.get(url);\n\n case 5:\n res = _context18.sent;\n return _context18.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 7:\n case 'end':\n return _context18.stop();\n }\n }\n }, _callee18, this);\n }));\n\n function getMembersInformation(_x28) {\n return _ref18.apply(this, arguments);\n }\n\n return getMembersInformation;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return MembersService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing members service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {MembersService} Members service object\n */\nfunction getService(tokenV3) {\n if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {\n lastInstance = new MembersService(tokenV3);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(MembersService, 'MembersService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/members.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/members.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/members.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/members.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/members.js?");
+
+/***/ }),
+
+/***/ "./src/services/notifications.js":
+/*!***************************************!*\
+ !*** ./src/services/notifications.js ***!
+ \***************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.notifications\"\n * @desc This module provides a service for searching for Topcoder\n * notifications.\n */\n\n/**\n * Service class for Notifications.\n */\nvar NotificationService = function () {\n /**\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v5.\n */\n function NotificationService(tokenV3) {\n (0, _classCallCheck3.default)(this, NotificationService);\n\n this.private = {\n apiV5: (0, _api.getApi)('V5', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Gets member's notification information.\n * @return {Promise} Resolves to the notification information object.\n */\n\n\n (0, _createClass3.default)(NotificationService, [{\n key: 'getNotifications',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt('return', this.private.apiV5.get('/notifications/?platform=community&limit=20').then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n }));\n\n case 1:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getNotifications() {\n return _ref.apply(this, arguments);\n }\n\n return getNotifications;\n }()\n\n /**\n * Marks given notification as read.\n * @return {Promise} Resolves to the notification information object.\n */\n\n }, {\n key: 'markNotificationAsRead',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(item) {\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n return _context2.abrupt('return', this.private.apiV5.put('/notifications/' + item + '/read').then(function (res) {\n return res.ok ? null : _promise2.default.reject(new Error(res.statusText));\n }));\n\n case 1:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function markNotificationAsRead(_x) {\n return _ref2.apply(this, arguments);\n }\n\n return markNotificationAsRead;\n }()\n\n /**\n * Marks all notification as read.\n * @return {Promise} Resolves to the notification information object.\n */\n\n }, {\n key: 'markAllNotificationAsRead',\n value: function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3() {\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt('return', this.private.apiV5.put('/notifications/read').then(function (res) {\n return res.ok ? null : _promise2.default.reject(new Error(res.statusText));\n }));\n\n case 1:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function markAllNotificationAsRead() {\n return _ref3.apply(this, arguments);\n }\n\n return markAllNotificationAsRead;\n }()\n\n /**\n * Marks all notification as seen.\n * @return {Promise} Resolves to the notification information object.\n */\n\n }, {\n key: 'markAllNotificationAsSeen',\n value: function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(items) {\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n return _context4.abrupt('return', this.private.apiV5.put('/notifications/' + items + '/seen').then(function (res) {\n return res.ok ? null : _promise2.default.reject(new Error(res.statusText));\n }));\n\n case 1:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function markAllNotificationAsSeen(_x2) {\n return _ref4.apply(this, arguments);\n }\n\n return markAllNotificationAsSeen;\n }()\n\n /**\n * Dismiss challenge notifications.\n * @return {Promise} Resolves to the notification information object.\n */\n\n }, {\n key: 'dismissChallengeNotifications',\n value: function () {\n var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(challengeID) {\n return _regenerator2.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n return _context5.abrupt('return', this.private.apiV5.put('/notifications/' + challengeID + '/dismiss').then(function (res) {\n return res.ok ? null : _promise2.default.reject(new Error(res.statusText));\n }));\n\n case 1:\n case 'end':\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function dismissChallengeNotifications(_x3) {\n return _ref5.apply(this, arguments);\n }\n\n return dismissChallengeNotifications;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return NotificationService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing notifications service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {NotificationService} Notification service object\n */\nfunction getService(tokenV3) {\n if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {\n lastInstance = new NotificationService(tokenV3);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(NotificationService, 'NotificationService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/notifications.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/notifications.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/notifications.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/notifications.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/notifications.js?");
/***/ }),
@@ -1017,7 +1089,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getReviewOpportunitiesService = getReviewOpportunitiesService;\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.reviewOpportunities\"\n * @desc This module provides a service for retrieving Review Opportunities and\n * submitting applications.\n */\n\n\n/**\n * Service class.\n */\nvar ReviewOpportunitiesService = function () {\n /**\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n */\n function ReviewOpportunitiesService(tokenV3) {\n (0, _classCallCheck3.default)(this, ReviewOpportunitiesService);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Gets a list of currently open Review Opportunities.\n * @param {Number} limit The max number to return in one call.\n * @param {Number} offset Offset, used with limit to lazy load.\n * @return {Promise} Resolves to the api response in JSON.\n */\n\n\n (0, _createClass3.default)(ReviewOpportunitiesService, [{\n key: 'getReviewOpportunities',\n value: function getReviewOpportunities(limit, offset) {\n var endpoint = '/reviewOpportunities?limit=' + limit + '&offset=' + offset;\n return this.private.api.get(endpoint).then(function (res) {\n return res.ok ? res.json() : _promise2.default.reject(new Error('Error Code: ' + res.status));\n }).then(function (res) {\n return res.result.status === 200 ? res.result.content : _promise2.default.reject(res.result.content);\n });\n }\n\n /**\n * Gets the details of the review opportunity for the corresponding challenge\n * @param {Number} challengeId The ID of the challenge (not the opportunity id)\n * @return {Promise} Resolves to the api response in JSON.\n */\n\n }, {\n key: 'getDetails',\n value: function getDetails(challengeId) {\n var endpoint = '/reviewOpportunities/' + challengeId;\n return this.private.api.get(endpoint).then(function (res) {\n return res.json();\n }).then(function (res) {\n return res.result.status === 200 ? res.result.content : _promise2.default.reject(res.result);\n });\n }\n\n /**\n * Submits review opportunity application for the specified challenge\n * @param {Number} challengeId The ID of the challenge (not the opportunity id)\n * @param {Array} roleIds List of review role IDs to apply for\n * @return {Promise} Resolves to the api response in JSON.\n */\n\n }, {\n key: 'submitApplications',\n value: function submitApplications(challengeId, roleIds) {\n var endpoint = '/reviewOpportunities/' + challengeId + '/applications?reviewApplicationRoleIds=' + roleIds.join(',');\n return this.private.api.post(endpoint, {}).then(function (res) {\n return JSON.parse(res);\n });\n }\n\n /**\n * Cancels review opportunity application for the specified challenge\n * @param {Number} challengeId The ID of the challenge (not the opportunity id)\n * @param {Array} roleIds List of review role IDs to cancel applications for\n * @return {Promise} Resolves to the api response in JSON.\n */\n\n }, {\n key: 'cancelApplications',\n value: function cancelApplications(challengeId, roleIds) {\n var endpoint = '/reviewOpportunities/' + challengeId + '/applications?reviewApplicationRoleIds=' + roleIds.join(',');\n return this.private.api.delete(endpoint, {}).then(function (res) {\n return JSON.parse(res);\n });\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return ReviewOpportunitiesService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing review opportunities service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {MembersService} Members service object\n */\nfunction getReviewOpportunitiesService(tokenV3) {\n if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {\n lastInstance = new ReviewOpportunitiesService(tokenV3);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(ReviewOpportunitiesService, 'ReviewOpportunitiesService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/reviewOpportunities.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/reviewOpportunities.js');\n reactHotLoader.register(getReviewOpportunitiesService, 'getReviewOpportunitiesService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/reviewOpportunities.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/reviewOpportunities.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/reviewOpportunities.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getReviewOpportunitiesService = getReviewOpportunitiesService;\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.reviewOpportunities\"\n * @desc This module provides a service for retrieving Review Opportunities and\n * submitting applications.\n */\n\n\n/**\n * Service class.\n */\nvar ReviewOpportunitiesService = function () {\n /**\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n */\n function ReviewOpportunitiesService(tokenV3) {\n (0, _classCallCheck3.default)(this, ReviewOpportunitiesService);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Gets a list of currently open Review Opportunities.\n * @param {Number} limit The max number to return in one call.\n * @param {Number} offset Offset, used with limit to lazy load.\n * @return {Promise} Resolves to the api response in JSON.\n */\n\n\n (0, _createClass3.default)(ReviewOpportunitiesService, [{\n key: 'getReviewOpportunities',\n value: function getReviewOpportunities(limit, offset) {\n var endpoint = '/reviewOpportunities?limit=' + limit + '&offset=' + offset;\n return this.private.api.get(endpoint).then(function (res) {\n return res.ok ? res.json() : _promise2.default.reject(new Error('Error Code: ' + res.status));\n }).then(function (res) {\n return res.result.status === 200 ? res.result.content : _promise2.default.reject(res.result.content);\n });\n }\n\n /**\n * Gets the details of the review opportunity for the corresponding challenge\n * @param {Number} challengeId The ID of the challenge (not the opportunity id)\n * @return {Promise} Resolves to the api response in JSON.\n */\n\n }, {\n key: 'getDetails',\n value: function getDetails(challengeId) {\n var endpoint = '/reviewOpportunities/' + challengeId;\n return this.private.api.get(endpoint).then(function (res) {\n return res.json();\n }).then(function (res) {\n return res.result.status === 200 ? res.result.content : _promise2.default.reject(res.result);\n });\n }\n\n /**\n * Submits review opportunity application for the specified challenge\n * @param {Number} challengeId The ID of the challenge (not the opportunity id)\n * @param {Array} roleIds List of review role IDs to apply for\n * @return {Promise} Resolves to the api response in JSON.\n */\n\n }, {\n key: 'submitApplications',\n value: function submitApplications(challengeId, roleIds) {\n var endpoint = '/reviewOpportunities/' + challengeId + '/applications?reviewApplicationRoleIds=' + roleIds.join(',');\n return this.private.api.post(endpoint, {}).then(function (res) {\n return JSON.parse(res);\n });\n }\n\n /**\n * Cancels review opportunity application for the specified challenge\n * @param {Number} challengeId The ID of the challenge (not the opportunity id)\n * @param {Array} roleIds List of review role IDs to cancel applications for\n * @return {Promise} Resolves to the api response in JSON.\n */\n\n }, {\n key: 'cancelApplications',\n value: function cancelApplications(challengeId, roleIds) {\n var endpoint = '/reviewOpportunities/' + challengeId + '/applications?reviewApplicationRoleIds=' + roleIds.join(',');\n return this.private.api.delete(endpoint, {}).then(function (res) {\n return JSON.parse(res);\n });\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return ReviewOpportunitiesService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing review opportunities service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {MembersService} Members service object\n */\nfunction getReviewOpportunitiesService(tokenV3) {\n if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {\n lastInstance = new ReviewOpportunitiesService(tokenV3);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(ReviewOpportunitiesService, 'ReviewOpportunitiesService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/reviewOpportunities.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/reviewOpportunities.js');\n reactHotLoader.register(getReviewOpportunitiesService, 'getReviewOpportunitiesService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/reviewOpportunities.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/reviewOpportunities.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/reviewOpportunities.js?");
/***/ }),
@@ -1029,7 +1101,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.submission\"\n * @desc This module provides a service for convenient manipulation with\n * Topcoder submissions via TC API. Currently only used for MM challenges\n */\n\n\n/**\n * Submission service.\n */\nvar SubmissionsService = function () {\n /**\n * Creates a new SubmissionService instance.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n */\n function SubmissionsService(tokenV3) {\n (0, _classCallCheck3.default)(this, SubmissionsService);\n\n this.private = {\n apiV5: (0, _api.getApi)('V5', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Get submissions of challenge\n * @param {Object} filters\n * @param {Object} params\n * @return {Promise} Resolves to the api response.\n */\n\n\n (0, _createClass3.default)(SubmissionsService, [{\n key: 'getSubmissions',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(filters, params) {\n var query, url;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n query = (0, _extends3.default)({}, filters, params);\n url = '/submissions?' + _qs2.default.stringify(query, { encode: false });\n return _context.abrupt('return', this.private.apiV5.get(url).then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n }).then(function (res) {\n return res;\n }));\n\n case 3:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getSubmissions(_x, _x2) {\n return _ref.apply(this, arguments);\n }\n\n return getSubmissions;\n }()\n\n /**\n * Get submission information by submission id\n * @param submissionId The submission id\n * @returns {Promise} Resolves to the api response.\n */\n\n }, {\n key: 'getSubmissionInformation',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(submissionId) {\n var url;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n url = '/submissions/' + submissionId;\n return _context2.abrupt('return', this.private.apiV5.get(url).then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n }).then(function (res) {\n return res;\n }));\n\n case 2:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getSubmissionInformation(_x3) {\n return _ref2.apply(this, arguments);\n }\n\n return getSubmissionInformation;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return SubmissionsService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing submissions service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {SubmissionsService} Submissions service object\n */\nfunction getService(tokenV3) {\n if (!lastInstance || lastInstance.private.tokenV3 !== tokenV3) {\n lastInstance = new SubmissionsService(tokenV3);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(SubmissionsService, 'SubmissionsService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/submissions.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/submissions.js');\n reactHotLoader.register(getService, 'getService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/submissions.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/submissions.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/submissions.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _qs = __webpack_require__(/*! qs */ \"qs\");\n\nvar _qs2 = _interopRequireDefault(_qs);\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.submission\"\n * @desc This module provides a service for convenient manipulation with\n * Topcoder submissions via TC API. Currently only used for MM challenges\n */\n\n\n/**\n * Submission service.\n */\nvar SubmissionsService = function () {\n /**\n * Creates a new SubmissionService instance.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n */\n function SubmissionsService(tokenV3) {\n (0, _classCallCheck3.default)(this, SubmissionsService);\n\n this.private = {\n apiV5: (0, _api.getApi)('V5', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Get submissions of challenge\n * @param {Object} filters\n * @param {Object} params\n * @return {Promise} Resolves to the api response.\n */\n\n\n (0, _createClass3.default)(SubmissionsService, [{\n key: 'getSubmissions',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(filters, params) {\n var query, url;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n query = (0, _extends3.default)({}, filters, params);\n url = '/submissions?' + _qs2.default.stringify(query, { encode: false });\n return _context.abrupt('return', this.private.apiV5.get(url).then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n }).then(function (res) {\n return res;\n }));\n\n case 3:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getSubmissions(_x, _x2) {\n return _ref.apply(this, arguments);\n }\n\n return getSubmissions;\n }()\n\n /**\n * Get submission information by submission id\n * @param submissionId The submission id\n * @returns {Promise} Resolves to the api response.\n */\n\n }, {\n key: 'getSubmissionInformation',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(submissionId) {\n var url;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n url = '/submissions/' + submissionId;\n return _context2.abrupt('return', this.private.apiV5.get(url).then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n }).then(function (res) {\n return res;\n }));\n\n case 2:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getSubmissionInformation(_x3) {\n return _ref2.apply(this, arguments);\n }\n\n return getSubmissionInformation;\n }()\n\n /**\n * Download submission.\n * @param {Number|String} submissionId Submission ID.\n * @return {Promise} Resolves to the list of submission object.\n */\n\n }, {\n key: 'downloadSubmission',\n value: function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(submissionId) {\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt('return', this.private.apiV5.get('/submissions/' + submissionId + '/download').then(function (response) {\n return response.blob();\n }));\n\n case 1:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function downloadSubmission(_x4) {\n return _ref3.apply(this, arguments);\n }\n\n return downloadSubmission;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return SubmissionsService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing submissions service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {SubmissionsService} Submissions service object\n */\nfunction getService(tokenV3) {\n if (!lastInstance || lastInstance.private.tokenV3 !== tokenV3) {\n lastInstance = new SubmissionsService(tokenV3);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(SubmissionsService, 'SubmissionsService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/submissions.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/submissions.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/submissions.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/submissions.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/submissions.js?");
/***/ }),
@@ -1041,7 +1113,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _communities = __webpack_require__(/*! ./communities */ \"./src/services/communities.js\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.terms\"\n * @desc This module provides a service for convenient manipulation with\n * Topcoder challenges' terms via TC API.\n */\n\n/**\n * Service class.\n */\nvar TermsService = function () {\n /**\n * @param {String} tokenV2 Optional. Auth token for Topcoder API v2.\n */\n function TermsService(tokenV2) {\n (0, _classCallCheck3.default)(this, TermsService);\n\n this.private = {\n api: (0, _api.getApi)('V2', tokenV2),\n tokenV2: tokenV2\n };\n }\n\n /**\n * get all terms of specified challenge\n * @param {Number|String} challengeId id of the challenge\n * @return {Promise} promise of the request result\n */\n\n\n (0, _createClass3.default)(TermsService, [{\n key: 'getChallengeTerms',\n value: function getChallengeTerms(challengeId) {\n var _this = this;\n\n if (this.private.tokenV2) {\n var registered = false;\n return this.private.api.get('/terms/' + challengeId + '?role=Submitter').then(function (res) {\n return res.json();\n }).then(function (res) {\n if (res.error) {\n if (res.error.details === 'You are already registered for this challenge.') {\n registered = true;\n }\n return _this.private.api.get('/terms/' + challengeId + '?role=Submitter&noauth=true').then(function (resp) {\n if (resp.ok) {\n return resp.json().then(function (result) {\n if (registered) {\n // eslint-disable-next-line no-param-reassign\n _lodash2.default.forEach(result.terms, function (t) {\n t.agreed = true;\n });\n }\n return result;\n });\n }\n return new Error(resp.statusText);\n });\n }\n return res;\n });\n }\n return this.private.api.get('/terms/' + challengeId + '?role=Submitter&noauth=true').then(function (resp) {\n if (resp.ok) {\n return resp.json();\n }\n throw new Error(resp.statusText);\n });\n }\n\n /**\n * get all terms for community\n *\n * NOTE: As there is no specific endpoint to get community terms by one call\n * currently we get community term ids from community service and after\n * we get community terms using term ids list one by one\n *\n * @param {String} communityId community id\n * @param {String} tokenV3 auth token V3 - we need to get community meta data\n *\n * @return {Promise} resolves to the list of community terms\n */\n\n }, {\n key: 'getCommunityTerms',\n value: function getCommunityTerms(communityId, tokenV3) {\n var _this2 = this;\n\n var communityService = (0, _communities.getService)(tokenV3);\n\n return communityService.getMetadata(communityId).then(function (meta) {\n if (meta.terms && meta.terms.length) {\n return _promise2.default.all(meta.terms.map(function (termId) {\n return _this2.getTermDetails(termId);\n })).then(function (terms) {\n return terms.map(function (term) {\n return _lodash2.default.omit(term, 'text');\n }) // don't include text as it's big and we need it for list\n ;\n });\n }\n\n return [];\n }).then(function (terms) {\n return {\n terms: terms\n };\n });\n }\n\n /**\n * Get the terms for Review Opportunities. This will ensure that the\n * provided terms have all the necessary fields by getting anything missing\n * from the terms details endpoint\n *\n * @param {Object} requiredTerms Required terms for review opportunity\n *\n * @return {Promise} resolves to the list of validated terms\n */\n\n }, {\n key: 'getReviewOpportunityTerms',\n value: function getReviewOpportunityTerms(requiredTerms) {\n var _this3 = this;\n\n var promises = requiredTerms.map(function (term) {\n // Agreed field is present, all the necessary information is present for this term, but will\n // need to verify if agreed is false as user may have agreed to terms after data was loaded\n if (term.agreed) {\n return _promise2.default.resolve(term);\n }\n // Otherwise grab new details from terms api\n return _this3.getTermDetails(term.termsOfUseId).then(function (res) {\n return _lodash2.default.pick(res, ['termsOfUseId', 'agreed', 'title']);\n });\n });\n\n return _promise2.default.all(promises).then(function (terms) {\n return { terms: terms };\n });\n }\n\n /**\n * get details of specified term\n * @param {Number|String} termId id of the term\n * @return {Promise} promise of the request result\n */\n\n }, {\n key: 'getTermDetails',\n value: function getTermDetails(termId) {\n // looks like server cache responses, to prevent it we add nocache param with always new value\n var nocache = new Date().getTime();\n return this.private.api.get('/terms/detail/' + termId + '?nocache=' + nocache).then(function (res) {\n return res.ok ? res.json() : _promise2.default.reject(res.json());\n });\n }\n\n /**\n * generate the url of DocuSign term\n * @param {Number|String} templateId id of the term's template\n * @param {String} returnUrl callback url after finishing signing\n * @return {Promise} promise of the request result\n */\n\n }, {\n key: 'getDocuSignUrl',\n value: function getDocuSignUrl(templateId, returnUrl) {\n return this.private.api.post('/terms/docusign/viewURL?templateId=' + templateId + '&returnUrl=' + returnUrl).then(function (res) {\n return res.ok ? res.json() : _promise2.default.reject(res.json());\n });\n }\n\n /**\n * Agree a term\n * @param {Number|String} termId id of the term\n * @return {Promise} promise of the request result\n */\n\n }, {\n key: 'agreeTerm',\n value: function agreeTerm(termId) {\n return this.private.api.post('/terms/' + termId + '/agree').then(function (res) {\n return res.ok ? res.json() : _promise2.default.reject(res.json());\n });\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return TermsService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing terms service.\n * @param {String} tokenV2 Optional. Auth token for Topcoder API v2.\n * @return {TermsService} Terms service object\n */\nfunction getService(tokenV2) {\n /* Because of Topcoder backend restrictions, it is not straightforward to test\n * terms-related functionality in any other way than just providing an option\n * to run the app against mock terms service. */\n if (_topcoderReactUtils.config.MOCK_TERMS_SERVICE) {\n /* eslint-disable global-require */\n return __webpack_require__(/*! ./__mocks__/terms */ \"./src/services/__mocks__/terms.js\").getService(tokenV2);\n /* eslint-enable global-require */\n }\n if (!lastInstance || tokenV2 && lastInstance.private.tokenV2 !== tokenV2) {\n lastInstance = new TermsService(tokenV2);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(TermsService, 'TermsService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/terms.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/terms.js');\n reactHotLoader.register(getService, 'getService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/terms.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/terms.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/terms.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _communities = __webpack_require__(/*! ./communities */ \"./src/services/communities.js\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.terms\"\n * @desc This module provides a service for convenient manipulation with\n * Topcoder challenges' terms via TC API.\n */\n\n/**\n * Service class.\n */\nvar TermsService = function () {\n /**\n * @param {String} tokenV2 Optional. Auth token for Topcoder API v2.\n */\n function TermsService(tokenV2) {\n (0, _classCallCheck3.default)(this, TermsService);\n\n this.private = {\n api: (0, _api.getApi)('V2', tokenV2),\n tokenV2: tokenV2\n };\n }\n\n /**\n * get all terms of specified challenge\n * @param {Number|String} challengeId id of the challenge\n * @return {Promise} promise of the request result\n */\n\n\n (0, _createClass3.default)(TermsService, [{\n key: 'getChallengeTerms',\n value: function getChallengeTerms(challengeId) {\n var _this = this;\n\n if (this.private.tokenV2) {\n var registered = false;\n return this.private.api.get('/terms/' + challengeId + '?role=Submitter').then(function (res) {\n return res.json();\n }).then(function (res) {\n if (res.error) {\n if (res.error.details === 'You are already registered for this challenge.') {\n registered = true;\n }\n return _this.private.api.get('/terms/' + challengeId + '?role=Submitter&noauth=true').then(function (resp) {\n if (resp.ok) {\n return resp.json().then(function (result) {\n if (registered) {\n // eslint-disable-next-line no-param-reassign\n _lodash2.default.forEach(result.terms, function (t) {\n t.agreed = true;\n });\n }\n return result;\n });\n }\n return new Error(resp.statusText);\n });\n }\n return res;\n });\n }\n return this.private.api.get('/terms/' + challengeId + '?role=Submitter&noauth=true').then(function (resp) {\n if (resp.ok) {\n return resp.json();\n }\n throw new Error(resp.statusText);\n });\n }\n\n /**\n * get all terms for community\n *\n * NOTE: As there is no specific endpoint to get community terms by one call\n * currently we get community term ids from community service and after\n * we get community terms using term ids list one by one\n *\n * @param {String} communityId community id\n * @param {String} tokenV3 auth token V3 - we need to get community meta data\n *\n * @return {Promise} resolves to the list of community terms\n */\n\n }, {\n key: 'getCommunityTerms',\n value: function getCommunityTerms(communityId, tokenV3) {\n var _this2 = this;\n\n var communityService = (0, _communities.getService)(tokenV3);\n\n return communityService.getMetadata(communityId).then(function (meta) {\n if (meta.terms && meta.terms.length) {\n return _promise2.default.all(meta.terms.map(function (termId) {\n return _this2.getTermDetails(termId);\n })).then(function (terms) {\n return terms.map(function (term) {\n return _lodash2.default.omit(term, 'text');\n }) // don't include text as it's big and we need it for list\n ;\n });\n }\n\n return [];\n }).then(function (terms) {\n return {\n terms: terms\n };\n });\n }\n\n /**\n * Get the terms for Review Opportunities. This will ensure that the\n * provided terms have all the necessary fields by getting anything missing\n * from the terms details endpoint\n *\n * @param {Object} requiredTerms Required terms for review opportunity\n *\n * @return {Promise} resolves to the list of validated terms\n */\n\n }, {\n key: 'getReviewOpportunityTerms',\n value: function getReviewOpportunityTerms(requiredTerms) {\n var _this3 = this;\n\n var promises = requiredTerms.map(function (term) {\n // Agreed field is present, all the necessary information is present for this term, but will\n // need to verify if agreed is false as user may have agreed to terms after data was loaded\n if (term.agreed) {\n return _promise2.default.resolve(term);\n }\n // Otherwise grab new details from terms api\n return _this3.getTermDetails(term.termsOfUseId).then(function (res) {\n return _lodash2.default.pick(res, ['termsOfUseId', 'agreed', 'title']);\n });\n });\n\n return _promise2.default.all(promises).then(function (terms) {\n return { terms: terms };\n });\n }\n\n /**\n * get details of specified term\n * @param {Number|String} termId id of the term\n * @return {Promise} promise of the request result\n */\n\n }, {\n key: 'getTermDetails',\n value: function getTermDetails(termId) {\n // looks like server cache responses, to prevent it we add nocache param with always new value\n var nocache = new Date().getTime();\n return this.private.api.get('/terms/detail/' + termId + '?nocache=' + nocache).then(function (res) {\n return res.ok ? res.json() : _promise2.default.reject(res.json());\n });\n }\n\n /**\n * generate the url of DocuSign term\n * @param {Number|String} templateId id of the term's template\n * @param {String} returnUrl callback url after finishing signing\n * @return {Promise} promise of the request result\n */\n\n }, {\n key: 'getDocuSignUrl',\n value: function getDocuSignUrl(templateId, returnUrl) {\n return this.private.api.post('/terms/docusign/viewURL?templateId=' + templateId + '&returnUrl=' + returnUrl).then(function (res) {\n return res.ok ? res.json() : _promise2.default.reject(res.json());\n });\n }\n\n /**\n * Agree a term\n * @param {Number|String} termId id of the term\n * @return {Promise} promise of the request result\n */\n\n }, {\n key: 'agreeTerm',\n value: function agreeTerm(termId) {\n return this.private.api.post('/terms/' + termId + '/agree').then(function (res) {\n return res.ok ? res.json() : _promise2.default.reject(res.json());\n });\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return TermsService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing terms service.\n * @param {String} tokenV2 Optional. Auth token for Topcoder API v2.\n * @return {TermsService} Terms service object\n */\nfunction getService(tokenV2) {\n /* Because of Topcoder backend restrictions, it is not straightforward to test\n * terms-related functionality in any other way than just providing an option\n * to run the app against mock terms service. */\n if (_topcoderReactUtils.config.MOCK_TERMS_SERVICE) {\n /* eslint-disable global-require */\n return __webpack_require__(/*! ./__mocks__/terms */ \"./src/services/__mocks__/terms.js\").getService(tokenV2);\n /* eslint-enable global-require */\n }\n if (!lastInstance || tokenV2 && lastInstance.private.tokenV2 !== tokenV2) {\n lastInstance = new TermsService(tokenV2);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(TermsService, 'TermsService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/terms.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/terms.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/terms.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/terms.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/terms.js?");
/***/ }),
@@ -1053,7 +1125,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(/*! babel-runtime/core-js/json/stringify */ \"babel-runtime/core-js/json/stringify\");\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getUserSettingsService = getUserSettingsService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nvar _api2 = _interopRequireDefault(_api);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.user-settings\"\n * @desc User Settings service. Corresponding part of the backend is\n * implemented as a separate Heroku App, which is set up only for prod.\n * Currently, we use it to save user-defined filters in the challenge search.\n */\n\n/**\n * @static\n * @member default\n * @desc Default export is {@link module:services.user-settings~UserSettings}\n * class.\n */\n\n/**\n * Service class.\n */\nvar UserSettings = function () {\n /**\n * @param {String} tokenV2\n */\n function UserSettings(tokenV2) {\n (0, _classCallCheck3.default)(this, UserSettings);\n\n this.private = {\n api: new _api2.default(_topcoderReactUtils.config.URL.USER_SETTINGS, tokenV2),\n token: tokenV2\n };\n }\n\n /**\n * Removes the filter specified by ID.\n * @param {String} id\n * @return {Promise}\n */\n\n\n (0, _createClass3.default)(UserSettings, [{\n key: 'deleteFilter',\n value: function deleteFilter(id) {\n return this.private.api.delete('/saved-searches/' + id).then(function (res) {\n return res.ok ? null : new Error(res.statusText);\n });\n }\n\n /**\n * Gets saved filters.\n * @return {Promise}\n */\n\n }, {\n key: 'getFilters',\n value: function getFilters() {\n return this.private.api.get('/saved-searches').then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n }).then(function (res) {\n return res.map(function (item) {\n /* NOTE: Previous version of the challenge listing saved filter in\n * different format (like an URL query string). This try/catch block\n * effectively differentiate between the old (unsupported) and new\n * format of the filters. */\n var filter = void 0;\n try {\n filter = JSON.parse(item.filter);\n } catch (e) {\n _lodash2.default.noop();\n }\n return (0, _extends3.default)({}, item, { filter: filter });\n });\n }).then(function (res) {\n return res.filter(function (item) {\n return item.filter;\n });\n });\n }\n\n /**\n * Saves filter.\n * @param {String} name\n * @param {Object} filter\n */\n\n }, {\n key: 'saveFilter',\n value: function saveFilter(name, filter) {\n return this.private.api.postJson('/saved-searches', {\n filter: (0, _stringify2.default)(filter),\n name: name,\n type: 'develop'\n }).then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n });\n }\n\n /**\n * Updates filter.\n * @param {String} id\n * @param {String} name\n * @param {Object} filter\n * @return {Promise}\n */\n\n }, {\n key: 'updateFilter',\n value: function updateFilter(id, name, filter) {\n return this.private.api.putJson('/saved-searches/' + id, {\n filter: (0, _stringify2.default)(filter),\n name: name,\n type: 'develop'\n }).then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n });\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return UserSettings;\n}();\n\nvar lastUserSettings = null;\n\n/**\n * Returns a new or existing instance of UserSettings service.\n * @param {String} tokenV2 Topcoder auth token v2.\n * @return {UserSettings}\n */\nfunction getUserSettingsService(tokenV2) {\n if (!lastUserSettings || lastUserSettings.private.token !== tokenV2) {\n lastUserSettings = new UserSettings(tokenV2);\n }\n return lastUserSettings;\n}\n\nvar _default = UserSettings;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(UserSettings, 'UserSettings', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user-settings.js');\n reactHotLoader.register(lastUserSettings, 'lastUserSettings', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user-settings.js');\n reactHotLoader.register(getUserSettingsService, 'getUserSettingsService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user-settings.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user-settings.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/user-settings.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(/*! babel-runtime/core-js/json/stringify */ \"babel-runtime/core-js/json/stringify\");\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getUserSettingsService = getUserSettingsService;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nvar _api2 = _interopRequireDefault(_api);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.user-settings\"\n * @desc User Settings service. Corresponding part of the backend is\n * implemented as a separate Heroku App, which is set up only for prod.\n * Currently, we use it to save user-defined filters in the challenge search.\n */\n\n/**\n * @static\n * @member default\n * @desc Default export is {@link module:services.user-settings~UserSettings}\n * class.\n */\n\n/**\n * Service class.\n */\nvar UserSettings = function () {\n /**\n * @param {String} tokenV2\n */\n function UserSettings(tokenV2) {\n (0, _classCallCheck3.default)(this, UserSettings);\n\n this.private = {\n api: new _api2.default(_topcoderReactUtils.config.URL.USER_SETTINGS, tokenV2),\n token: tokenV2\n };\n }\n\n /**\n * Removes the filter specified by ID.\n * @param {String} id\n * @return {Promise}\n */\n\n\n (0, _createClass3.default)(UserSettings, [{\n key: 'deleteFilter',\n value: function deleteFilter(id) {\n return this.private.api.delete('/saved-searches/' + id).then(function (res) {\n return res.ok ? null : new Error(res.statusText);\n });\n }\n\n /**\n * Gets saved filters.\n * @return {Promise}\n */\n\n }, {\n key: 'getFilters',\n value: function getFilters() {\n return this.private.api.get('/saved-searches').then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n }).then(function (res) {\n return res.map(function (item) {\n /* NOTE: Previous version of the challenge listing saved filter in\n * different format (like an URL query string). This try/catch block\n * effectively differentiate between the old (unsupported) and new\n * format of the filters. */\n var filter = void 0;\n try {\n filter = JSON.parse(item.filter);\n } catch (e) {\n _lodash2.default.noop();\n }\n return (0, _extends3.default)({}, item, { filter: filter });\n });\n }).then(function (res) {\n return res.filter(function (item) {\n return item.filter;\n });\n });\n }\n\n /**\n * Saves filter.\n * @param {String} name\n * @param {Object} filter\n */\n\n }, {\n key: 'saveFilter',\n value: function saveFilter(name, filter) {\n return this.private.api.postJson('/saved-searches', {\n filter: (0, _stringify2.default)(filter),\n name: name,\n type: 'develop'\n }).then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n });\n }\n\n /**\n * Updates filter.\n * @param {String} id\n * @param {String} name\n * @param {Object} filter\n * @return {Promise}\n */\n\n }, {\n key: 'updateFilter',\n value: function updateFilter(id, name, filter) {\n return this.private.api.putJson('/saved-searches/' + id, {\n filter: (0, _stringify2.default)(filter),\n name: name,\n type: 'develop'\n }).then(function (res) {\n return res.ok ? res.json() : new Error(res.statusText);\n });\n }\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return UserSettings;\n}();\n\nvar lastUserSettings = null;\n\n/**\n * Returns a new or existing instance of UserSettings service.\n * @param {String} tokenV2 Topcoder auth token v2.\n * @return {UserSettings}\n */\nfunction getUserSettingsService(tokenV2) {\n if (!lastUserSettings || lastUserSettings.private.token !== tokenV2) {\n lastUserSettings = new UserSettings(tokenV2);\n }\n return lastUserSettings;\n}\n\nvar _default = UserSettings;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(UserSettings, 'UserSettings', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user-settings.js');\n reactHotLoader.register(lastUserSettings, 'lastUserSettings', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user-settings.js');\n reactHotLoader.register(getUserSettingsService, 'getUserSettingsService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user-settings.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user-settings.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/user-settings.js?");
/***/ }),
@@ -1065,7 +1137,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _toCapitalCase = __webpack_require__(/*! to-capital-case */ \"to-capital-case\");\n\nvar _toCapitalCase2 = _interopRequireDefault(_toCapitalCase);\n\nvar _tc = __webpack_require__(/*! ../utils/tc */ \"./src/utils/tc.js\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.userTraits\"\n * @desc This module provides a service for user traits crud\n * via API V3.\n */\n\n\n/**\n * Service class.\n */\nvar UserTraitsService = function () {\n /**\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n */\n function UserTraitsService(tokenV3) {\n (0, _classCallCheck3.default)(this, UserTraitsService);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Get member's all traits.\n * @param {String} handle User handle.\n * @return {Promise} Resolves to the member traits.\n */\n\n\n (0, _createClass3.default)(UserTraitsService, [{\n key: 'getAllUserTraits',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(handle) {\n var res;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.private.api.get('/members/' + handle.toLowerCase() + '/traits');\n\n case 2:\n res = _context.sent;\n return _context.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getAllUserTraits(_x) {\n return _ref.apply(this, arguments);\n }\n\n return getAllUserTraits;\n }()\n\n /**\n * Add member's trait.\n * @param {String} handle User handle.\n * @param {String} traitId Trait Id.\n * @param {Array} data Trait data.\n * @return {Promise} Resolves to the member traits.\n */\n\n }, {\n key: 'addUserTrait',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(handle, traitId, data) {\n var body, res;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n body = {\n param: [{\n traitId: traitId,\n categoryName: (0, _toCapitalCase2.default)(traitId),\n traits: {\n data: data\n }\n }]\n };\n _context2.next = 3;\n return this.private.api.postJson('/members/' + handle + '/traits', body);\n\n case 3:\n res = _context2.sent;\n return _context2.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function addUserTrait(_x2, _x3, _x4) {\n return _ref2.apply(this, arguments);\n }\n\n return addUserTrait;\n }()\n\n /**\n * Update member's trait.\n * @param {String} handle User handle.\n * @param {String} traitId Trait Id.\n * @param {Array} data Trait data.\n * @return {Promise} Resolves to the member traits.\n */\n\n }, {\n key: 'updateUserTrait',\n value: function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(handle, traitId, data) {\n var body, res;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n body = {\n param: [{\n traitId: traitId,\n categoryName: (0, _toCapitalCase2.default)(traitId),\n traits: {\n data: data\n }\n }]\n };\n _context3.next = 3;\n return this.private.api.putJson('/members/' + handle + '/traits', body);\n\n case 3:\n res = _context3.sent;\n return _context3.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function updateUserTrait(_x5, _x6, _x7) {\n return _ref3.apply(this, arguments);\n }\n\n return updateUserTrait;\n }()\n\n /**\n * Delete member's trait.\n * @param {String} handle User handle.\n * @param {String} traitId Trait Id.\n * @return {Promise} Resolves to the member traits.\n */\n\n }, {\n key: 'deleteUserTrait',\n value: function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(handle, traitId) {\n var res;\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this.private.api.delete('/members/' + handle + '/traits?traitIds=' + traitId);\n\n case 2:\n res = _context4.sent;\n return _context4.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function deleteUserTrait(_x8, _x9) {\n return _ref4.apply(this, arguments);\n }\n\n return deleteUserTrait;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return UserTraitsService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing user trait service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {UserTraitsService} userTraits service object\n */\nfunction getService(tokenV3) {\n if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {\n lastInstance = new UserTraitsService(tokenV3);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(UserTraitsService, 'UserTraitsService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user-traits.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user-traits.js');\n reactHotLoader.register(getService, 'getService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user-traits.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user-traits.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/user-traits.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nexports.getService = getService;\n\nvar _toCapitalCase = __webpack_require__(/*! to-capital-case */ \"to-capital-case\");\n\nvar _toCapitalCase2 = _interopRequireDefault(_toCapitalCase);\n\nvar _tc = __webpack_require__(/*! ../utils/tc */ \"./src/utils/tc.js\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.userTraits\"\n * @desc This module provides a service for user traits crud\n * via API V3.\n */\n\n\n/**\n * Service class.\n */\nvar UserTraitsService = function () {\n /**\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n */\n function UserTraitsService(tokenV3) {\n (0, _classCallCheck3.default)(this, UserTraitsService);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n tokenV3: tokenV3\n };\n }\n\n /**\n * Get member's all traits.\n * @param {String} handle User handle.\n * @return {Promise} Resolves to the member traits.\n */\n\n\n (0, _createClass3.default)(UserTraitsService, [{\n key: 'getAllUserTraits',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(handle) {\n var res;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.private.api.get('/members/' + handle.toLowerCase() + '/traits');\n\n case 2:\n res = _context.sent;\n return _context.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getAllUserTraits(_x) {\n return _ref.apply(this, arguments);\n }\n\n return getAllUserTraits;\n }()\n\n /**\n * Add member's trait.\n * @param {String} handle User handle.\n * @param {String} traitId Trait Id.\n * @param {Array} data Trait data.\n * @return {Promise} Resolves to the member traits.\n */\n\n }, {\n key: 'addUserTrait',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(handle, traitId, data) {\n var body, res;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n body = {\n param: [{\n traitId: traitId,\n categoryName: (0, _toCapitalCase2.default)(traitId),\n traits: {\n data: data\n }\n }]\n };\n _context2.next = 3;\n return this.private.api.postJson('/members/' + handle + '/traits', body);\n\n case 3:\n res = _context2.sent;\n return _context2.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function addUserTrait(_x2, _x3, _x4) {\n return _ref2.apply(this, arguments);\n }\n\n return addUserTrait;\n }()\n\n /**\n * Update member's trait.\n * @param {String} handle User handle.\n * @param {String} traitId Trait Id.\n * @param {Array} data Trait data.\n * @return {Promise} Resolves to the member traits.\n */\n\n }, {\n key: 'updateUserTrait',\n value: function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(handle, traitId, data) {\n var body, res;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n body = {\n param: [{\n traitId: traitId,\n categoryName: (0, _toCapitalCase2.default)(traitId),\n traits: {\n data: data\n }\n }]\n };\n _context3.next = 3;\n return this.private.api.putJson('/members/' + handle + '/traits', body);\n\n case 3:\n res = _context3.sent;\n return _context3.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function updateUserTrait(_x5, _x6, _x7) {\n return _ref3.apply(this, arguments);\n }\n\n return updateUserTrait;\n }()\n\n /**\n * Delete member's trait.\n * @param {String} handle User handle.\n * @param {String} traitId Trait Id.\n * @return {Promise} Resolves to the member traits.\n */\n\n }, {\n key: 'deleteUserTrait',\n value: function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(handle, traitId) {\n var res;\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return this.private.api.delete('/members/' + handle + '/traits?traitIds=' + traitId);\n\n case 2:\n res = _context4.sent;\n return _context4.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function deleteUserTrait(_x8, _x9) {\n return _ref4.apply(this, arguments);\n }\n\n return deleteUserTrait;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return UserTraitsService;\n}();\n\nvar lastInstance = null;\n/**\n * Returns a new or existing user trait service.\n * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.\n * @return {UserTraitsService} userTraits service object\n */\nfunction getService(tokenV3) {\n if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {\n lastInstance = new UserTraitsService(tokenV3);\n }\n return lastInstance;\n}\n\n/* Using default export would be confusing in this case. */\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(UserTraitsService, 'UserTraitsService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user-traits.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user-traits.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user-traits.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user-traits.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/user-traits.js?");
/***/ }),
@@ -1077,7 +1149,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(/*! babel-runtime/core-js/json/stringify */ \"babel-runtime/core-js/json/stringify\");\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _slicedToArray2 = __webpack_require__(/*! babel-runtime/helpers/slicedToArray */ \"babel-runtime/helpers/slicedToArray\");\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nexports.getService = getService;\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _tc = __webpack_require__(/*! ../utils/tc */ \"./src/utils/tc.js\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.user\"\n * @desc The User service provides functionality related to Topcoder user\n * accounts.\n */\n\n\nvar auth0 = void 0;\n\n/**\n * Returns a new, or cached auth0 instance.\n * @return {Object} Auth0 object.\n */\nfunction getAuth0() {\n if (!auth0 && _topcoderReactUtils.isomorphy.isClientSide()) {\n var Auth0 = __webpack_require__(/*! auth0-js */ \"./node_modules/auth0-js/index.js\"); /* eslint-disable-line global-require */\n auth0 = new Auth0({\n domain: _topcoderReactUtils.config.AUTH0.DOMAIN,\n clientID: _topcoderReactUtils.config.AUTH0.CLIENT_ID,\n callbackOnLocationHash: true,\n sso: false\n });\n }\n return auth0;\n}\n\n/**\n * Gets social user data.\n * @param {Object} profile The user social profile\n * @param {*} accessToken The access token\n * @returns {Object} Social user data\n */\nfunction getSocialUserData(profile, accessToken) {\n var socialProvider = profile.identities[0].connection;\n var firstName = '';\n var lastName = '';\n var handle = '';\n var email = profile.email || '';\n\n var socialUserId = profile.user_id.substring(profile.user_id.lastIndexOf('|') + 1);\n var splitName = void 0;\n\n if (socialProvider === 'google-oauth2') {\n firstName = profile.given_name;\n lastName = profile.family_name;\n handle = profile.nickname;\n } else if (socialProvider === 'facebook') {\n firstName = profile.given_name;\n lastName = profile.family_name;\n handle = firstName + '.' + lastName;\n } else if (socialProvider === 'twitter') {\n splitName = profile.name.split(' ');\n var _splitName = splitName;\n\n var _splitName2 = (0, _slicedToArray3.default)(_splitName, 1);\n\n firstName = _splitName2[0];\n\n if (splitName.length > 1) {\n var _splitName3 = splitName;\n\n var _splitName4 = (0, _slicedToArray3.default)(_splitName3, 2);\n\n lastName = _splitName4[1];\n }\n handle = profile.screen_name;\n } else if (socialProvider === 'github') {\n splitName = profile.name.split(' ');\n var _splitName5 = splitName;\n\n var _splitName6 = (0, _slicedToArray3.default)(_splitName5, 1);\n\n firstName = _splitName6[0];\n\n if (splitName.length > 1) {\n var _splitName7 = splitName;\n\n var _splitName8 = (0, _slicedToArray3.default)(_splitName7, 2);\n\n lastName = _splitName8[1];\n }\n handle = profile.nickname;\n } else if (socialProvider === 'bitbucket') {\n firstName = profile.first_name;\n lastName = profile.last_name;\n handle = profile.username;\n } else if (socialProvider === 'stackoverflow') {\n firstName = profile.first_name;\n lastName = profile.last_name;\n handle = socialUserId;\n } else if (socialProvider === 'dribbble') {\n firstName = profile.first_name;\n lastName = profile.last_name;\n handle = socialUserId;\n }\n\n var token = accessToken;\n var tokenSecret = null;\n if (profile.identities[0].access_token) {\n token = profile.identities[0].access_token;\n }\n if (profile.identities[0].access_token_secret) {\n tokenSecret = profile.identities[0].access_token_secret;\n }\n return {\n socialUserId: socialUserId,\n username: handle,\n firstname: firstName,\n lastname: lastName,\n email: email,\n socialProfile: profile,\n socialProvider: socialProvider,\n accessToken: token,\n accessTokenSecret: tokenSecret\n };\n}\n\n/**\n * Service class.\n */\n\nvar User = function () {\n /**\n * Creates a new User service.\n * @param {String} tokenV3 Topcoder auth tokenV3.\n * @param {String} tokenV2 TC auth token v2.\n */\n function User(tokenV3, tokenV2) {\n (0, _classCallCheck3.default)(this, User);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n apiV2: (0, _api.getApi)('V2', tokenV2),\n tokenV2: tokenV2,\n tokenV3: tokenV3\n };\n }\n\n /**\n * Gets user achievements. Does not need auth.\n * @param {String} username\n * @return {Object}\n */\n\n\n (0, _createClass3.default)(User, [{\n key: 'getAchievements',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(username) {\n var res;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.private.apiV2.get('/users/' + username);\n\n case 2:\n res = _context.sent;\n\n if (res.ok) {\n _context.next = 5;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 5:\n _context.next = 7;\n return res.json();\n\n case 7:\n _context.t0 = _context.sent.Achievements;\n\n if (_context.t0) {\n _context.next = 10;\n break;\n }\n\n _context.t0 = [];\n\n case 10:\n return _context.abrupt('return', _context.t0);\n\n case 11:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getAchievements(_x) {\n return _ref.apply(this, arguments);\n }\n\n return getAchievements;\n }()\n\n /**\n * Gets public user info. Does not need auth.\n * @param {String} username\n * @return {Object}\n */\n\n }, {\n key: 'getUserPublic',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(username) {\n var res;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.private.apiV2.get('/users/' + username);\n\n case 2:\n res = _context2.sent;\n\n if (res.ok) {\n _context2.next = 5;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 5:\n return _context2.abrupt('return', res.json() || null);\n\n case 6:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getUserPublic(_x2) {\n return _ref2.apply(this, arguments);\n }\n\n return getUserPublic;\n }()\n\n /**\n * Gets public user info from v3 API. Does not need auth.\n * @param {String} username\n * @return {Object}\n */\n\n }, {\n key: 'getUserPublicV3',\n value: function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(username) {\n var res;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this.private.api.get('/members/' + username);\n\n case 2:\n res = _context3.sent;\n return _context3.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function getUserPublicV3(_x3) {\n return _ref3.apply(this, arguments);\n }\n\n return getUserPublicV3;\n }()\n\n /**\n * Gets user data object for the specified username.\n *\n * NOTE: Only admins are authorized to use the underlying endpoint.\n *\n * @param {String} username\n * @return {Promise} Resolves to the user data object.\n */\n\n }, {\n key: 'getUser',\n value: function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(username) {\n var url, res;\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n url = '/users?filter=handle%3D' + username;\n _context4.next = 3;\n return this.private.api.get(url);\n\n case 3:\n res = _context4.sent;\n _context4.next = 6;\n return (0, _tc.getApiResponsePayload)(res);\n\n case 6:\n return _context4.abrupt('return', _context4.sent[0]);\n\n case 7:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function getUser(_x4) {\n return _ref4.apply(this, arguments);\n }\n\n return getUser;\n }()\n\n /**\n * Gets email preferences.\n *\n * NOTE: Only admins are authorized to use the underlying endpoint.\n *\n * @param {Number} userId The TopCoder user id\n * @returns {Promise} Resolves to the email preferences result\n */\n\n }, {\n key: 'getEmailPreferences',\n value: function () {\n var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(userId) {\n var url, res, x;\n return _regenerator2.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n url = '/users/' + userId + '/preferences/email';\n _context5.next = 3;\n return this.private.api.get(url);\n\n case 3:\n res = _context5.sent;\n _context5.next = 6;\n return res.json();\n\n case 6:\n x = _context5.sent.result;\n return _context5.abrupt('return', x.content);\n\n case 8:\n case 'end':\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function getEmailPreferences(_x5) {\n return _ref5.apply(this, arguments);\n }\n\n return getEmailPreferences;\n }()\n\n /**\n * Saves email preferences.\n *\n * NOTE: Only admins are authorized to use the underlying endpoint.\n *\n * @param {Object} user The TopCoder user\n * @param {Object} preferences The email preferences\n * @returns {Promise} Resolves to the email preferences result\n */\n\n }, {\n key: 'saveEmailPreferences',\n value: function () {\n var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(_ref7, preferences) {\n var firstName = _ref7.firstName,\n lastName = _ref7.lastName,\n userId = _ref7.userId;\n var settings, url, res;\n return _regenerator2.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n settings = {\n firstName: firstName,\n lastName: lastName,\n subscriptions: {}\n };\n\n\n if (!preferences) {\n settings.subscriptions.TOPCODER_NL_GEN = true;\n } else {\n settings.subscriptions = preferences;\n }\n url = '/users/' + userId + '/preferences/email';\n _context6.next = 5;\n return this.private.api.putJson(url, { param: settings });\n\n case 5:\n res = _context6.sent;\n return _context6.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 7:\n case 'end':\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function saveEmailPreferences(_x6, _x7) {\n return _ref6.apply(this, arguments);\n }\n\n return saveEmailPreferences;\n }()\n\n /**\n * Gets credential for the specified user id.\n *\n * NOTE: Only admins are authorized to use the underlying endpoint.\n *\n * @param {Number} userId The user id\n * @return {Promise} Resolves to the linked accounts array.\n */\n\n }, {\n key: 'getCredential',\n value: function () {\n var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(userId) {\n var url, res;\n return _regenerator2.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n url = '/users/' + userId + '?fields=credential';\n _context7.next = 3;\n return this.private.api.get(url);\n\n case 3:\n res = _context7.sent;\n return _context7.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n\n function getCredential(_x8) {\n return _ref8.apply(this, arguments);\n }\n\n return getCredential;\n }()\n\n /**\n * Updates user password.\n *\n * NOTE: Only admins are authorized to use the underlying endpoint.\n *\n * @param {Number} userId The user id\n * @param {String} newPassword The new password\n * @param {String} oldPassword The old password\n * @return {Promise} Resolves to the update result.\n */\n\n }, {\n key: 'updatePassword',\n value: function () {\n var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(userId, newPassword, oldPassword) {\n var credential, url, res;\n return _regenerator2.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n credential = {\n password: newPassword,\n currentPassword: oldPassword\n };\n url = '/users/' + userId;\n _context8.next = 4;\n return this.private.api.patchJson(url, { param: { credential: credential } });\n\n case 4:\n res = _context8.sent;\n return _context8.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 6:\n case 'end':\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n\n function updatePassword(_x9, _x10, _x11) {\n return _ref9.apply(this, arguments);\n }\n\n return updatePassword;\n }()\n\n /**\n * Gets linked accounts for the specified user id.\n *\n * NOTE: Only admins are authorized to use the underlying endpoint.\n *\n * @param {Number} userId The user id\n * @return {Promise} Resolves to the linked accounts array.\n */\n\n }, {\n key: 'getLinkedAccounts',\n value: function () {\n var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(userId) {\n var url, res;\n return _regenerator2.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n url = '/users/' + userId + '?fields=profiles';\n _context9.next = 3;\n return this.private.api.get(url);\n\n case 3:\n res = _context9.sent;\n return _context9.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context9.stop();\n }\n }\n }, _callee9, this);\n }));\n\n function getLinkedAccounts(_x12) {\n return _ref10.apply(this, arguments);\n }\n\n return getLinkedAccounts;\n }()\n\n /**\n * Unlinks external account.\n * @param {Number} userId The TopCoder user id\n * @param {String} provider The external account service provider\n * @returns {Promise} Resolves to the unlink result\n */\n\n }, {\n key: 'unlinkExternalAccount',\n value: function () {\n var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(userId, provider) {\n var url, res;\n return _regenerator2.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n url = '/users/' + userId + '/profiles/' + provider;\n _context10.next = 3;\n return this.private.api.delete(url);\n\n case 3:\n res = _context10.sent;\n return _context10.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n\n function unlinkExternalAccount(_x13, _x14) {\n return _ref11.apply(this, arguments);\n }\n\n return unlinkExternalAccount;\n }()\n\n /**\n * Links external account.\n * @param {Number} userId The TopCoder user id\n * @param {String} provider The external account service provider\n * @param {String} callbackUrl Optional. The callback url\n * @returns {Promise} Resolves to the linked account result\n */\n\n }, {\n key: 'linkExternalAccount',\n value: function () {\n var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(userId, provider, callbackUrl) {\n var _this = this;\n\n return _regenerator2.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n return _context11.abrupt('return', new _promise2.default(function (resolve, reject) {\n getAuth0().signin({\n popup: true,\n connection: provider,\n scope: 'openid profile offline_access',\n state: callbackUrl\n }, function (authError, profile, idToken, accessToken) {\n if (authError) {\n _logger2.default.error('Error signing in - onSocialLoginFailure', authError);\n reject(authError);\n return;\n }\n\n var socialData = getSocialUserData(profile, accessToken);\n\n var postData = {\n userId: socialData.socialUserId,\n name: socialData.username,\n email: socialData.email,\n emailVerified: false,\n providerType: socialData.socialProvider,\n context: {\n handle: socialData.username,\n accessToken: socialData.accessToken,\n auth0UserId: profile.user_id\n }\n };\n if (socialData.accessTokenSecret) {\n postData.context.accessTokenSecret = socialData.accessTokenSecret;\n }\n _logger2.default.debug('link API postdata: ' + (0, _stringify2.default)(postData));\n _this.private.api.postJson('/users/' + userId + '/profiles', { param: postData }).then(function (resp) {\n return (0, _tc.getApiResponsePayload)(resp).then(function (result) {\n _logger2.default.debug('Succesfully linked account: ' + (0, _stringify2.default)(result));\n resolve(postData);\n });\n }).catch(function (err) {\n _logger2.default.error('Error linking account', err);\n reject(err);\n });\n });\n }));\n\n case 1:\n case 'end':\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n function linkExternalAccount(_x15, _x16, _x17) {\n return _ref12.apply(this, arguments);\n }\n\n return linkExternalAccount;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return User;\n}();\n\nvar lastInstance = null;\n\n/**\n * Returns a new or existing User service for the specified tokenV3.\n * @param {String} tokenV3 Optional. Topcoder auth token v3.\n * @param {String} tokenV2 Optional. TC auth token v2.\n * @return {Api} API v3 service object.\n */\nfunction getService(tokenV3, tokenV2) {\n if (!lastInstance || lastInstance.private.tokenV2 !== tokenV2 || lastInstance.private.tokenV3 !== tokenV3) {\n lastInstance = new User(tokenV3, tokenV2);\n }\n return lastInstance;\n}\n\n/**\n * @static\n * @member default\n * @desc Default export is {@link module:services.user~User} class.\n */\nvar _default = User;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(auth0, 'auth0', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user.js');\n reactHotLoader.register(getAuth0, 'getAuth0', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user.js');\n reactHotLoader.register(getSocialUserData, 'getSocialUserData', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user.js');\n reactHotLoader.register(User, 'User', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user.js');\n reactHotLoader.register(getService, 'getService', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/services/user.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/user.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(/*! babel-runtime/core-js/json/stringify */ \"babel-runtime/core-js/json/stringify\");\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"babel-runtime/helpers/classCallCheck\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"babel-runtime/helpers/createClass\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _slicedToArray2 = __webpack_require__(/*! babel-runtime/helpers/slicedToArray */ \"babel-runtime/helpers/slicedToArray\");\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nexports.getService = getService;\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _logger = __webpack_require__(/*! ../utils/logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _tc = __webpack_require__(/*! ../utils/tc */ \"./src/utils/tc.js\");\n\nvar _api = __webpack_require__(/*! ./api */ \"./src/services/api.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"services.user\"\n * @desc The User service provides functionality related to Topcoder user\n * accounts.\n */\n\n\nvar auth0 = void 0;\n\n/**\n * Returns a new, or cached auth0 instance.\n * @return {Object} Auth0 object.\n */\nfunction getAuth0() {\n if (!auth0 && _topcoderReactUtils.isomorphy.isClientSide()) {\n var Auth0 = __webpack_require__(/*! auth0-js */ \"./node_modules/auth0-js/index.js\"); /* eslint-disable-line global-require */\n auth0 = new Auth0({\n domain: _topcoderReactUtils.config.AUTH0.DOMAIN,\n clientID: _topcoderReactUtils.config.AUTH0.CLIENT_ID,\n callbackOnLocationHash: true,\n sso: false\n });\n }\n return auth0;\n}\n\n/**\n * Gets social user data.\n * @param {Object} profile The user social profile\n * @param {*} accessToken The access token\n * @returns {Object} Social user data\n */\nfunction getSocialUserData(profile, accessToken) {\n var socialProvider = profile.identities[0].connection;\n var firstName = '';\n var lastName = '';\n var handle = '';\n var email = profile.email || '';\n\n var socialUserId = profile.user_id.substring(profile.user_id.lastIndexOf('|') + 1);\n var splitName = void 0;\n\n if (socialProvider === 'google-oauth2') {\n firstName = profile.given_name;\n lastName = profile.family_name;\n handle = profile.nickname;\n } else if (socialProvider === 'facebook') {\n firstName = profile.given_name;\n lastName = profile.family_name;\n handle = firstName + '.' + lastName;\n } else if (socialProvider === 'twitter') {\n splitName = profile.name.split(' ');\n var _splitName = splitName;\n\n var _splitName2 = (0, _slicedToArray3.default)(_splitName, 1);\n\n firstName = _splitName2[0];\n\n if (splitName.length > 1) {\n var _splitName3 = splitName;\n\n var _splitName4 = (0, _slicedToArray3.default)(_splitName3, 2);\n\n lastName = _splitName4[1];\n }\n handle = profile.screen_name;\n } else if (socialProvider === 'github') {\n splitName = profile.name.split(' ');\n var _splitName5 = splitName;\n\n var _splitName6 = (0, _slicedToArray3.default)(_splitName5, 1);\n\n firstName = _splitName6[0];\n\n if (splitName.length > 1) {\n var _splitName7 = splitName;\n\n var _splitName8 = (0, _slicedToArray3.default)(_splitName7, 2);\n\n lastName = _splitName8[1];\n }\n handle = profile.nickname;\n } else if (socialProvider === 'bitbucket') {\n firstName = profile.first_name;\n lastName = profile.last_name;\n handle = profile.username;\n } else if (socialProvider === 'stackoverflow') {\n firstName = profile.first_name;\n lastName = profile.last_name;\n handle = socialUserId;\n } else if (socialProvider === 'dribbble') {\n firstName = profile.first_name;\n lastName = profile.last_name;\n handle = socialUserId;\n }\n\n var token = accessToken;\n var tokenSecret = null;\n if (profile.identities[0].access_token) {\n token = profile.identities[0].access_token;\n }\n if (profile.identities[0].access_token_secret) {\n tokenSecret = profile.identities[0].access_token_secret;\n }\n return {\n socialUserId: socialUserId,\n username: handle,\n firstname: firstName,\n lastname: lastName,\n email: email,\n socialProfile: profile,\n socialProvider: socialProvider,\n accessToken: token,\n accessTokenSecret: tokenSecret\n };\n}\n\n/**\n * Service class.\n */\n\nvar User = function () {\n /**\n * Creates a new User service.\n * @param {String} tokenV3 Topcoder auth tokenV3.\n * @param {String} tokenV2 TC auth token v2.\n */\n function User(tokenV3, tokenV2) {\n (0, _classCallCheck3.default)(this, User);\n\n this.private = {\n api: (0, _api.getApi)('V3', tokenV3),\n apiV2: (0, _api.getApi)('V2', tokenV2),\n tokenV2: tokenV2,\n tokenV3: tokenV3\n };\n }\n\n /**\n * Gets user achievements. Does not need auth.\n * @param {String} username\n * @return {Object}\n */\n\n\n (0, _createClass3.default)(User, [{\n key: 'getAchievements',\n value: function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(username) {\n var res;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this.private.apiV2.get('/users/' + username);\n\n case 2:\n res = _context.sent;\n\n if (res.ok) {\n _context.next = 5;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 5:\n _context.next = 7;\n return res.json();\n\n case 7:\n _context.t0 = _context.sent.Achievements;\n\n if (_context.t0) {\n _context.next = 10;\n break;\n }\n\n _context.t0 = [];\n\n case 10:\n return _context.abrupt('return', _context.t0);\n\n case 11:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getAchievements(_x) {\n return _ref.apply(this, arguments);\n }\n\n return getAchievements;\n }()\n\n /**\n * Gets public user info. Does not need auth.\n * @param {String} username\n * @return {Object}\n */\n\n }, {\n key: 'getUserPublic',\n value: function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(username) {\n var res;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this.private.apiV2.get('/users/' + username);\n\n case 2:\n res = _context2.sent;\n\n if (res.ok) {\n _context2.next = 5;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 5:\n return _context2.abrupt('return', res.json() || null);\n\n case 6:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function getUserPublic(_x2) {\n return _ref2.apply(this, arguments);\n }\n\n return getUserPublic;\n }()\n\n /**\n * Gets public user info from v3 API. Does not need auth.\n * @param {String} username\n * @return {Object}\n */\n\n }, {\n key: 'getUserPublicV3',\n value: function () {\n var _ref3 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee3(username) {\n var res;\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return this.private.api.get('/members/' + username);\n\n case 2:\n res = _context3.sent;\n return _context3.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 4:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n function getUserPublicV3(_x3) {\n return _ref3.apply(this, arguments);\n }\n\n return getUserPublicV3;\n }()\n\n /**\n * Gets user data object for the specified username.\n *\n * NOTE: Only admins are authorized to use the underlying endpoint.\n *\n * @param {String} username\n * @return {Promise} Resolves to the user data object.\n */\n\n }, {\n key: 'getUser',\n value: function () {\n var _ref4 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee4(username) {\n var url, res;\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n url = '/users?filter=handle%3D' + username;\n _context4.next = 3;\n return this.private.api.get(url);\n\n case 3:\n res = _context4.sent;\n _context4.next = 6;\n return (0, _tc.getApiResponsePayload)(res);\n\n case 6:\n return _context4.abrupt('return', _context4.sent[0]);\n\n case 7:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n function getUser(_x4) {\n return _ref4.apply(this, arguments);\n }\n\n return getUser;\n }()\n\n /**\n * Gets email preferences.\n *\n * NOTE: Only admins are authorized to use the underlying endpoint.\n *\n * @param {Number} userId The TopCoder user id\n * @returns {Promise} Resolves to the email preferences result\n */\n\n }, {\n key: 'getEmailPreferences',\n value: function () {\n var _ref5 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee5(userId) {\n var url, res, x;\n return _regenerator2.default.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n url = '/users/' + userId + '/preferences/email';\n _context5.next = 3;\n return this.private.api.get(url);\n\n case 3:\n res = _context5.sent;\n _context5.next = 6;\n return res.json();\n\n case 6:\n x = _context5.sent.result;\n return _context5.abrupt('return', x.content);\n\n case 8:\n case 'end':\n return _context5.stop();\n }\n }\n }, _callee5, this);\n }));\n\n function getEmailPreferences(_x5) {\n return _ref5.apply(this, arguments);\n }\n\n return getEmailPreferences;\n }()\n\n /**\n * Saves email preferences.\n *\n * NOTE: Only admins are authorized to use the underlying endpoint.\n *\n * @param {Object} user The TopCoder user\n * @param {Object} preferences The email preferences\n * @returns {Promise} Resolves to the email preferences result\n */\n\n }, {\n key: 'saveEmailPreferences',\n value: function () {\n var _ref6 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee6(_ref7, preferences) {\n var firstName = _ref7.firstName,\n lastName = _ref7.lastName,\n userId = _ref7.userId;\n var settings, url, res;\n return _regenerator2.default.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n settings = {\n firstName: firstName,\n lastName: lastName,\n subscriptions: {}\n };\n\n\n if (!preferences) {\n settings.subscriptions.TOPCODER_NL_GEN = true;\n } else {\n settings.subscriptions = preferences;\n }\n url = '/users/' + userId + '/preferences/email';\n _context6.next = 5;\n return this.private.api.putJson(url, { param: settings });\n\n case 5:\n res = _context6.sent;\n return _context6.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 7:\n case 'end':\n return _context6.stop();\n }\n }\n }, _callee6, this);\n }));\n\n function saveEmailPreferences(_x6, _x7) {\n return _ref6.apply(this, arguments);\n }\n\n return saveEmailPreferences;\n }()\n\n /**\n * Gets credential for the specified user id.\n *\n * NOTE: Only admins are authorized to use the underlying endpoint.\n *\n * @param {Number} userId The user id\n * @return {Promise} Resolves to the linked accounts array.\n */\n\n }, {\n key: 'getCredential',\n value: function () {\n var _ref8 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee7(userId) {\n var url, res;\n return _regenerator2.default.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n url = '/users/' + userId + '?fields=credential';\n _context7.next = 3;\n return this.private.api.get(url);\n\n case 3:\n res = _context7.sent;\n return _context7.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context7.stop();\n }\n }\n }, _callee7, this);\n }));\n\n function getCredential(_x8) {\n return _ref8.apply(this, arguments);\n }\n\n return getCredential;\n }()\n\n /**\n * Updates user password.\n *\n * NOTE: Only admins are authorized to use the underlying endpoint.\n *\n * @param {Number} userId The user id\n * @param {String} newPassword The new password\n * @param {String} oldPassword The old password\n * @return {Promise} Resolves to the update result.\n */\n\n }, {\n key: 'updatePassword',\n value: function () {\n var _ref9 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee8(userId, newPassword, oldPassword) {\n var credential, url, res;\n return _regenerator2.default.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n credential = {\n password: newPassword,\n currentPassword: oldPassword\n };\n url = '/users/' + userId;\n _context8.next = 4;\n return this.private.api.patchJson(url, { param: { credential: credential } });\n\n case 4:\n res = _context8.sent;\n return _context8.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 6:\n case 'end':\n return _context8.stop();\n }\n }\n }, _callee8, this);\n }));\n\n function updatePassword(_x9, _x10, _x11) {\n return _ref9.apply(this, arguments);\n }\n\n return updatePassword;\n }()\n\n /**\n * Gets linked accounts for the specified user id.\n *\n * NOTE: Only admins are authorized to use the underlying endpoint.\n *\n * @param {Number} userId The user id\n * @return {Promise} Resolves to the linked accounts array.\n */\n\n }, {\n key: 'getLinkedAccounts',\n value: function () {\n var _ref10 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee9(userId) {\n var url, res;\n return _regenerator2.default.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n url = '/users/' + userId + '?fields=profiles';\n _context9.next = 3;\n return this.private.api.get(url);\n\n case 3:\n res = _context9.sent;\n return _context9.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context9.stop();\n }\n }\n }, _callee9, this);\n }));\n\n function getLinkedAccounts(_x12) {\n return _ref10.apply(this, arguments);\n }\n\n return getLinkedAccounts;\n }()\n\n /**\n * Unlinks external account.\n * @param {Number} userId The TopCoder user id\n * @param {String} provider The external account service provider\n * @returns {Promise} Resolves to the unlink result\n */\n\n }, {\n key: 'unlinkExternalAccount',\n value: function () {\n var _ref11 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee10(userId, provider) {\n var url, res;\n return _regenerator2.default.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n url = '/users/' + userId + '/profiles/' + provider;\n _context10.next = 3;\n return this.private.api.delete(url);\n\n case 3:\n res = _context10.sent;\n return _context10.abrupt('return', (0, _tc.getApiResponsePayload)(res));\n\n case 5:\n case 'end':\n return _context10.stop();\n }\n }\n }, _callee10, this);\n }));\n\n function unlinkExternalAccount(_x13, _x14) {\n return _ref11.apply(this, arguments);\n }\n\n return unlinkExternalAccount;\n }()\n\n /**\n * Links external account.\n * @param {Number} userId The TopCoder user id\n * @param {String} provider The external account service provider\n * @param {String} callbackUrl Optional. The callback url\n * @returns {Promise} Resolves to the linked account result\n */\n\n }, {\n key: 'linkExternalAccount',\n value: function () {\n var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee11(userId, provider, callbackUrl) {\n var _this = this;\n\n return _regenerator2.default.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n return _context11.abrupt('return', new _promise2.default(function (resolve, reject) {\n getAuth0().signin({\n popup: true,\n connection: provider,\n scope: 'openid profile offline_access',\n state: callbackUrl\n }, function (authError, profile, idToken, accessToken) {\n if (authError) {\n _logger2.default.error('Error signing in - onSocialLoginFailure', authError);\n reject(authError);\n return;\n }\n\n var socialData = getSocialUserData(profile, accessToken);\n\n var postData = {\n userId: socialData.socialUserId,\n name: socialData.username,\n email: socialData.email,\n emailVerified: false,\n providerType: socialData.socialProvider,\n context: {\n handle: socialData.username,\n accessToken: socialData.accessToken,\n auth0UserId: profile.user_id\n }\n };\n if (socialData.accessTokenSecret) {\n postData.context.accessTokenSecret = socialData.accessTokenSecret;\n }\n _logger2.default.debug('link API postdata: ' + (0, _stringify2.default)(postData));\n _this.private.api.postJson('/users/' + userId + '/profiles', { param: postData }).then(function (resp) {\n return (0, _tc.getApiResponsePayload)(resp).then(function (result) {\n _logger2.default.debug('Succesfully linked account: ' + (0, _stringify2.default)(result));\n resolve(postData);\n });\n }).catch(function (err) {\n _logger2.default.error('Error linking account', err);\n reject(err);\n });\n });\n }));\n\n case 1:\n case 'end':\n return _context11.stop();\n }\n }\n }, _callee11, this);\n }));\n\n function linkExternalAccount(_x15, _x16, _x17) {\n return _ref12.apply(this, arguments);\n }\n\n return linkExternalAccount;\n }()\n }, {\n key: '__reactstandin__regenerateByEval',\n // @ts-ignore\n value: function __reactstandin__regenerateByEval(key, code) {\n // @ts-ignore\n this[key] = eval(code);\n }\n }]);\n return User;\n}();\n\nvar lastInstance = null;\n\n/**\n * Returns a new or existing User service for the specified tokenV3.\n * @param {String} tokenV3 Optional. Topcoder auth token v3.\n * @param {String} tokenV2 Optional. TC auth token v2.\n * @return {Api} API v3 service object.\n */\nfunction getService(tokenV3, tokenV2) {\n if (!lastInstance || lastInstance.private.tokenV2 !== tokenV2 || lastInstance.private.tokenV3 !== tokenV3) {\n lastInstance = new User(tokenV3, tokenV2);\n }\n return lastInstance;\n}\n\n/**\n * @static\n * @member default\n * @desc Default export is {@link module:services.user~User} class.\n */\nvar _default = User;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(auth0, 'auth0', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user.js');\n reactHotLoader.register(getAuth0, 'getAuth0', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user.js');\n reactHotLoader.register(getSocialUserData, 'getSocialUserData', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user.js');\n reactHotLoader.register(User, 'User', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user.js');\n reactHotLoader.register(lastInstance, 'lastInstance', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user.js');\n reactHotLoader.register(getService, 'getService', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/services/user.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/services/user.js?");
/***/ }),
@@ -1089,7 +1161,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _set = __webpack_require__(/*! babel-runtime/core-js/set */ \"babel-runtime/core-js/set\");\n\nvar _set2 = _interopRequireDefault(_set);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.addTrack = addTrack;\nexports.getFilterFunction = getFilterFunction;\nexports.getReviewOpportunitiesFilterFunction = getReviewOpportunitiesFilterFunction;\nexports.combine = combine;\nexports.mapToBackend = mapToBackend;\nexports.removeTrack = removeTrack;\nexports.setEndDate = setEndDate;\nexports.setReviewOpportunityType = setReviewOpportunityType;\nexports.setStartDate = setStartDate;\nexports.setSubtracks = setSubtracks;\nexports.setTags = setTags;\nexports.setText = setText;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _moment = __webpack_require__(/*! moment */ \"moment\");\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _tc = __webpack_require__(/*! ../tc */ \"./src/utils/tc.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"challenge.filter\"\n *\n * @desc\n * Universal challenge filter. Must be used in all places where we need filter\n * or fetch challenges. This way we keep all related logic in the same place,\n * which simplifies maintenance and modifications of the code.\n *\n * The state of challenge filter is a plain JS object, containing only plain\n * data fields. It allows to avoid any problems with its storage inside Redux\n * store; with its serialization into / deserialization from a string. Each\n * field of the state describes a single rule for filtering the challenges.\n * The filter allows only those challenges that match all defined rules.\n * Undefined, null fields are ignored.\n *\n * The following fields are supported:\n *\n * endDate {Number|String} - Permits only those challenges with submission\n * deadline before this date.\n *\n * groupIds {Array} - Permits only the challenges belonging to at least one\n * of the groups which IDs are presented as keys in this object.\n *\n * or {Object[]} - All other filter fields applied to the challenge with AND\n * logic, i.e. a challenge must satisfy each specified filter rule to match the\n * filter as whole. In some cases we want to have OR logic between filter rules,\n * and this array allows to achieve it: each object in this array is treated as\n * an additional filter (these object may have all the same fields as the root\n * filter state object), to be tested with OR logic.\n *\n * registrationOpen {Boolean} - Permits only the challenges with open or closed\n * registration.\n *\n * startDate {Number|String} - Permits only those challenges started after this\n * date.\n *\n * status {Array} - Permits only the challenges with status matching one of\n * the keys of this object.\n *\n * started {Boolean} - Matches only the challenges with start date in past.\n * It turns out that status ACTIVE also includes upcoming activated challenges,\n * thus we need this additional filter.\n *\n * subtracks {Array} - Permits only the challenges belonging to at least one\n * of the competition subtracks presented as keys of this object.\n *\n * tags {Array} - Permits only the challenges that have at least one of the\n * tags within their platform and technology tags (keywords).\n *\n * text {String} - Free-text string which will be matched against challenge\n * name, its platform and technology tags. If not found anywhere, the challenge\n * is filtered out. Case-insensitive.\n *\n * tracks {Object} - Permits only the challenges belonging to at least one of\n * the competition tracks presented as keys of this object.\n *\n * upcoming {Boolean} - Permits only upcoming challenges.\n *\n * users {Array} - Permits only the challenges where the specified (by handles)\n * users are participating.\n */\n\n/**\n * Here are many similiar filerBy..(challenge, state) functions. Each of them\n * checks whether the given challenge fulfills the corresponding filtering rule\n * from the filter state object, and returns true or false depending on it.\n */\n\nfunction filterByEndDate(challenge, state) {\n if (!state.endDate) return true;\n return (0, _moment2.default)(state.endDate).isAfter(challenge.registrationStartDate);\n}\n\nfunction filterByGroupIds(challenge, state) {\n if (!state.groupIds) return true;\n return state.groupIds.some(function (id) {\n return challenge.groups[id];\n });\n}\n\nfunction filterByRegistrationOpen(challenge, state) {\n if (_lodash2.default.isUndefined(state.registrationOpen)) return true;\n var isRegOpen = function isRegOpen() {\n if (challenge.registrationOpen) {\n return challenge.registrationOpen === 'Yes';\n }\n if (challenge.challengeType && challenge.challengeType.name === 'Marathon Match') {\n return challenge.status !== 'Past';\n }\n var registrationPhase = (challenge.allPhases || challenge.phases || []).find(function (item) {\n return item.name === 'Registration';\n });\n if (!registrationPhase || !registrationPhase.isActive) {\n return false;\n }\n if (challenge.track === 'DESIGN') {\n var checkpointPhase = (challenge.allPhases || challenge.phases || []).find(function (item) {\n return item.name === 'Checkpoint Submission';\n });\n return !checkpointPhase || !checkpointPhase.isActive;\n }\n return true;\n };\n return isRegOpen() === state.registrationOpen;\n}\n\n/**\n * Filter function for Review Opportunity Type, will be used internally in filter.js\n * @param {Object} opp Review Opportunity object\n * @param {Object} state Filter state\n * @return {Boolean} True if opp satifies the filter\n */\nfunction filterByReviewOpportunityType(opp, state) {\n if (!state.reviewOpportunityType) return true;\n return opp.type === state.reviewOpportunityType;\n}\n\nfunction filterByStartDate(challenge, state) {\n if (!state.startDate) return true;\n return (0, _moment2.default)(state.startDate).isBefore(challenge.submissionEndDate);\n}\n\nfunction filterByStarted(challenge, state) {\n if (_lodash2.default.isUndefined(state.started)) return true;\n if (!challenge.phases) {\n return true;\n }\n return _lodash2.default.some(challenge.phases, { isActive: true, name: 'Registration' });\n}\n\nfunction filterByStatus(challenge, state) {\n if (!state.status) return true;\n return state.status.includes(challenge.status);\n}\n\nfunction filterBySubtracks(challenge, state) {\n if (!state.subtracks) return true;\n /* TODO: Although this is taken from the current code in prod,\n * it probably does not work in all cases. It should be double-checked,\n * why challenge subtracks in challenge objects are different from those\n * return from the API as the list of possible subtracks. */\n var filterSubtracks = state.subtracks.map(function (item) {\n return item.toLowerCase().replace(/[_ ]/g, '');\n });\n return filterSubtracks.includes(challenge.typeId);\n}\n\nfunction filterByTags(challenge, state) {\n if (!state.tags) return true;\n var platforms = challenge.platforms,\n technologies = challenge.technologies;\n\n var str = (platforms + ' ' + technologies).toLowerCase();\n return state.tags.some(function (tag) {\n return str.includes(tag.toLowerCase());\n });\n}\n\nfunction filterByText(challenge, state) {\n if (!state.text) return true;\n var str = (challenge.name + ' ' + challenge.tags + ' ' + challenge.platforms + ' ' + challenge.technologies).toLowerCase();\n return str.includes(state.text.toLowerCase());\n}\n\nfunction filterByTrack(challenge, state) {\n if (!state.tracks) return true;\n\n /* Development challenges having Data Science tech tag, still should be\n * included into data science track. */\n if (state.tracks[_tc.COMPETITION_TRACKS.DATA_SCIENCE] && _lodash2.default.includes(challenge.tags, 'Data Science')) {\n return true;\n }\n\n return _lodash2.default.keys(state.tracks).some(function (track) {\n return challenge.communities.has(track);\n });\n}\n\nfunction filterByUpcoming(challenge, state) {\n if (_lodash2.default.isUndefined(state.upcoming)) return true;\n return (0, _moment2.default)().isBefore(challenge.registrationStartDate);\n}\n\nfunction filterByUsers(challenge, state) {\n if (!state.users) return true;\n return state.users.find(function (user) {\n return challenge.users[user];\n });\n}\n\n/**\n * Returns clone of the state with the specified competition track added.\n * @param {Object} state\n * @param {String} track\n * @return {Object} Resulting state.\n */\nfunction addTrack(state, track) {\n /* When state has no tracks field all tracks are allowed, thus no need to\n * touch the object. */\n if (!state.tracks) return state;\n\n var res = _lodash2.default.clone(state);\n res.tracks = _lodash2.default.clone(res.tracks);\n res.tracks[track] = true;\n\n /* Selecting all tracks is the same as having no tracks field. To keep the\n * state more simple at any time, we remove tracks field in such case. */\n if (!_lodash2.default.values(_tc.COMPETITION_TRACKS).some(function (item) {\n return !res.tracks[item];\n })) {\n delete res.tracks;\n }\n\n return res;\n}\n\n/**\n * Generates filter function for the state.\n * @param {Object} state\n * @return {Function}\n */\nfunction getFilterFunction(state) {\n return function (challenge) {\n var test = filterByStatus(challenge, state) && filterByTrack(challenge, state) && filterByUpcoming(challenge, state) && filterByGroupIds(challenge, state) && filterByText(challenge, state) && filterByTags(challenge, state) && filterBySubtracks(challenge, state) && filterByUsers(challenge, state) && filterByEndDate(challenge, state) && filterByStartDate(challenge, state) && filterByStarted(challenge, state) && filterByRegistrationOpen(challenge, state);\n if (!test && state.or) {\n var pos = 0;\n while (!test && pos < state.or.length) {\n test = getFilterFunction(state.or[pos])(challenge);\n pos += 1;\n }\n }\n return test;\n };\n}\n\n/**\n * Generates a Review Opportunities filter function for the provided filter state.\n * @param {Object} state\n * @return {Function}\n */\nfunction getReviewOpportunitiesFilterFunction(state) {\n return function (opp) {\n // Review Opportunity objects have a challenge field which\n // is largely compatible with many of the existing filter functions\n // especially after a few normalization tweaks\n var challenge = (0, _extends3.default)({}, opp.challenge, {\n // This allows filterByText to search for Review Types and Challenge Titles\n name: opp.challenge.title + ' ' + _tc.REVIEW_OPPORTUNITY_TYPES[opp.type],\n registrationStartDate: opp.startDate, // startDate of Review, not Challenge\n subTrack: opp.challenge.subTrack || '', // Sometimes back-end doesn't return this field\n submissionEndDate: opp.startDate, // Currently uses startDate for both date comparisons\n communities: new _set2.default([// Used to filter by Track, and communities at a future date\n opp.challenge.track.toLowerCase()])\n });\n\n return filterByTrack(challenge, state) && filterByText(challenge, state) && filterByTags(challenge, state) && filterBySubtracks(challenge, state) && filterByEndDate(challenge, state) && filterByStartDate(challenge, state) && filterByReviewOpportunityType(opp, state);\n };\n}\n\n/* ************************************************************************** */\n/* Below is a group of functions that allow to combine multiple challenge\n * filters together. If you are not adding a new filter functionality, just\n * look for the exported combine(..) function.\n *\n * All other helper functions in this section take two filter state objects as\n * arguments, and combine some of the filter rules, merging the resulting one\n * into the first filter state object.\n */\n\n/* NOTE: Current implementation ignores plenty of rules when combining filters.\n * It is fine for the only current use case: we use combine just before calling\n * to mapToBackend(..) function, to map several frontend filters to the\n * matching backend one. The way mapToBackend(..) works, this ignoring of\n * some rules is not a big deal (resulting backend filter will be not that\n * specific, as it probably could be, but due to the current api limitations\n * we cannot be too specific anyway). If you are going to use this for anything\n * else - thing twice what are you doing? If you need it for filtering, it is\n * just a lot easier to filter by each frontend filter in turns, rather than\n * combine them into a single filter. */\n\n/* This ESLint rule is disabled for combineXXX(..) functions, as they are\n * intended to be used only internally, with a newly constructed object\n * passed in as the first argument (i.e. we take care that there is no\n * side-effects to mutate it within this module, and these functions\n * are not exported outside of the module). */\n/* eslint-disable no-param-reassign */\n\nfunction combineArrayRules(a, b, ruleName) {\n var or = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (a[ruleName] && b[ruleName]) {\n if (or) a[ruleName] = _lodash2.default.uniq(a[ruleName].concat(b[ruleName]));else a[ruleName] = _lodash2.default.intersection(a[ruleName], b[ruleName]);\n } else if (b[ruleName]) a[ruleName] = b[ruleName];\n}\n\nfunction combineEndDate(a, b) {\n if (a.endDate && b.endDate) {\n a.endDate = _moment2.default.min(a.endDate, b.endDate).format();\n } else if (b.endDate) a.endDate = b.endDate;\n}\n\nfunction combineStartDate(a, b) {\n if (a.startDate && b.startDate) {\n a.startDate = _moment2.default.max(a.startDate, b.startDate).format();\n } else if (b.startDate) a.startDate = b.startDate;\n}\n\nfunction combineTracks(a, b) {\n if (a.tracks && b.tracks) {\n _lodash2.default.forIn(a.tracks, function (value, key) {\n if (!b.tracks[key]) delete a.tracks[key];\n });\n } else if (b.tracks) a.tracks = b.tracks;\n}\n\n/* eslint-enable no-param-reassign */\n\n/**\n * Combines multiple filter state objects together. Resulting state describes\n * the filter, which matches only those challenges that satisfy each of the\n * filters passed in as arguments.\n *\n * The main intended use of this function is to combine multiple frontend\n * challenge filters into a single one, that can be mapped into the\n * corresponding backend filter by mapToBackend(..) function.\n *\n * @param {Object} filters Input filter state objects to combine.\n * @return {Object}\n */\nfunction combine() {\n var res = {};\n\n for (var _len = arguments.length, filters = Array(_len), _key = 0; _key < _len; _key++) {\n filters[_key] = arguments[_key];\n }\n\n filters.forEach(function (filter) {\n combineEndDate(res, filter);\n combineArrayRules(res, filter, 'groupIds');\n /* TODO: The registrationOpen rule is just ignored for now. */\n combineStartDate(res, filter);\n combineArrayRules(res, filter, 'or', true);\n combineArrayRules(res, filter, 'status');\n combineArrayRules(res, filter, 'subtracks');\n combineArrayRules(res, filter, 'tags');\n /* TODO: The text rule is just ignored for now. */\n combineTracks(res, filter);\n /* TODO: The upcoming rule is just ignored for now. */\n /* TODO: The users rule is just ignored for now. */\n });\n return res;\n}\n\n/* ************************************************************************** */\n/* Below is a group of function that allow to map a frontend filter into the\n * corresponding backend (api) one. If you are not adding a new filter\n * functionality, just look for the exported mapToBackend(..) function. */\n\n/**\n * Maps the frontend challenge filter into the corresponding backend (api) one.\n * As there is no 1:1 match between the frontend and backend challenge filters,\n * the resulting backend filter is always equal or broader than the given\n * frontend one; i.e. any challenge that satisfies the original frontend filter\n * will pass the backend one, though some of the challenges that pass the\n * backend filter may fail the frontend one.\n *\n * It is assumed that this function will help us to load challenges from the\n * backend more specifically, though it does not prevent as from the need\n * always perform the final filtering at the frontend side.\n *\n * @param {Object} filter\n * @return {Object}\n */\nfunction mapToBackend(filter) {\n if (filter.or) return {};\n\n var res = {};\n if (filter.groupIds) res.groupIds = filter.groupIds.join(',');\n\n /* NOTE: Right now the frontend challenge filter by tag works different,\n * it looks for matches in the challenge name OR in the techs / platforms. */\n // if (filter.tags) res.technologies = filter.tags.join(',');\n\n return res;\n}\n\n/**\n * Returns clone of the state with the specified competition track removed.\n * @param {Object} state\n * @param {String} track\n * @return {Object} Resulting state.\n */\nfunction removeTrack(state, track) {\n var res = _lodash2.default.clone(state);\n if (res.tracks) res.tracks = _lodash2.default.clone(res.tracks);else {\n res.tracks = {};\n _lodash2.default.forIn(_tc.COMPETITION_TRACKS, function (item) {\n res.tracks[item] = true;\n });\n }\n delete res.tracks[track];\n return res;\n}\n\n/**\n * Clone the state and sets the end date.\n * @param {Object} state\n * @param {String} date\n * @return {Object}\n */\nfunction setEndDate(state, date) {\n if (date) return (0, _extends3.default)({}, state, { endDate: date });\n if (!state.endDate) return state;\n var res = _lodash2.default.clone(state);\n delete res.endDate;\n return res;\n}\n\n/**\n * Clones the state and sets the review opportunity type.\n * @param {Object} state\n * @param {Array} reviewOpportunityType Possible values found in utils/tc REVIEW_OPPORTUNITY_TYPES\n * @return {Object}\n */\nfunction setReviewOpportunityType(state, reviewOpportunityType) {\n if (reviewOpportunityType) return (0, _extends3.default)({}, state, { reviewOpportunityType: reviewOpportunityType });\n if (!state.reviewOpportunityType) return state;\n var res = _lodash2.default.clone(state);\n delete res.reviewOpportunityType;\n return res;\n}\n\n/**\n * Clones the state and sets the start date.\n * @param {Object} state\n * @param {String} date ISO date string.\n * @return {Object}\n */\nfunction setStartDate(state, date) {\n if (date) return (0, _extends3.default)({}, state, { startDate: date });\n if (!state.startDate) return state;\n var res = _lodash2.default.clone(state);\n delete res.startDate;\n return res;\n}\n\n/**\n * Clones the state and sets the subtracks.\n * @param {Object} state\n * @param {Array} subtracks\n * @return {Object}\n */\nfunction setSubtracks(state, subtracks) {\n if (subtracks && subtracks.length) return (0, _extends3.default)({}, state, { subtracks: subtracks });\n if (!state.subtracks) return state;\n var res = _lodash2.default.clone(state);\n delete res.subtracks;\n return res;\n}\n\n/**\n * Clones the state and sets the tags.\n * @param {Object} state\n * @param {Array} tags String array.\n * @return {Object}\n */\nfunction setTags(state, tags) {\n if (tags && tags.length) return (0, _extends3.default)({}, state, { tags: tags });\n if (!state.tags) return state;\n var res = _lodash2.default.clone(state);\n delete res.tags;\n return res;\n}\n\n/**\n * Clones fitler state and sets the free-text string for the filtering by\n * challenge name and tags. To clear the string set it to anything evaluating\n * to falst (empty string, null, undefined).\n * @param {Object} state\n * @param {String} text\n * @return {Object} Resulting string.\n */\nfunction setText(state, text) {\n if (!text && !state.text) return state;\n var res = _lodash2.default.clone(state);\n if (text) res.text = text;else delete res.text;\n return res;\n}\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(filterByEndDate, 'filterByEndDate', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByGroupIds, 'filterByGroupIds', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByRegistrationOpen, 'filterByRegistrationOpen', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByReviewOpportunityType, 'filterByReviewOpportunityType', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByStartDate, 'filterByStartDate', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByStarted, 'filterByStarted', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByStatus, 'filterByStatus', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterBySubtracks, 'filterBySubtracks', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByTags, 'filterByTags', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByText, 'filterByText', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByTrack, 'filterByTrack', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByUpcoming, 'filterByUpcoming', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByUsers, 'filterByUsers', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(addTrack, 'addTrack', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(getFilterFunction, 'getFilterFunction', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(getReviewOpportunitiesFilterFunction, 'getReviewOpportunitiesFilterFunction', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(combineArrayRules, 'combineArrayRules', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(combineEndDate, 'combineEndDate', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(combineStartDate, 'combineStartDate', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(combineTracks, 'combineTracks', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(combine, 'combine', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(mapToBackend, 'mapToBackend', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(removeTrack, 'removeTrack', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(setEndDate, 'setEndDate', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(setReviewOpportunityType, 'setReviewOpportunityType', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(setStartDate, 'setStartDate', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(setSubtracks, 'setSubtracks', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(setTags, 'setTags', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(setText, 'setText', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/challenge/filter.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/challenge/filter.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _set = __webpack_require__(/*! babel-runtime/core-js/set */ \"babel-runtime/core-js/set\");\n\nvar _set2 = _interopRequireDefault(_set);\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"babel-runtime/helpers/extends\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nexports.addTrack = addTrack;\nexports.getFilterFunction = getFilterFunction;\nexports.getReviewOpportunitiesFilterFunction = getReviewOpportunitiesFilterFunction;\nexports.combine = combine;\nexports.mapToBackend = mapToBackend;\nexports.removeTrack = removeTrack;\nexports.setEndDate = setEndDate;\nexports.setReviewOpportunityType = setReviewOpportunityType;\nexports.setStartDate = setStartDate;\nexports.setSubtracks = setSubtracks;\nexports.setTags = setTags;\nexports.setText = setText;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _moment = __webpack_require__(/*! moment */ \"moment\");\n\nvar _moment2 = _interopRequireDefault(_moment);\n\nvar _tc = __webpack_require__(/*! ../tc */ \"./src/utils/tc.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module \"challenge.filter\"\n *\n * @desc\n * Universal challenge filter. Must be used in all places where we need filter\n * or fetch challenges. This way we keep all related logic in the same place,\n * which simplifies maintenance and modifications of the code.\n *\n * The state of challenge filter is a plain JS object, containing only plain\n * data fields. It allows to avoid any problems with its storage inside Redux\n * store; with its serialization into / deserialization from a string. Each\n * field of the state describes a single rule for filtering the challenges.\n * The filter allows only those challenges that match all defined rules.\n * Undefined, null fields are ignored.\n *\n * The following fields are supported:\n *\n * endDate {Number|String} - Permits only those challenges with submission\n * deadline before this date.\n *\n * groupIds {Array} - Permits only the challenges belonging to at least one\n * of the groups which IDs are presented as keys in this object.\n *\n * or {Object[]} - All other filter fields applied to the challenge with AND\n * logic, i.e. a challenge must satisfy each specified filter rule to match the\n * filter as whole. In some cases we want to have OR logic between filter rules,\n * and this array allows to achieve it: each object in this array is treated as\n * an additional filter (these object may have all the same fields as the root\n * filter state object), to be tested with OR logic.\n *\n * registrationOpen {Boolean} - Permits only the challenges with open or closed\n * registration.\n *\n * startDate {Number|String} - Permits only those challenges started after this\n * date.\n *\n * status {Array} - Permits only the challenges with status matching one of\n * the keys of this object.\n *\n * started {Boolean} - Matches only the challenges with start date in past.\n * It turns out that status ACTIVE also includes upcoming activated challenges,\n * thus we need this additional filter.\n *\n * subtracks {Array} - Permits only the challenges belonging to at least one\n * of the competition subtracks presented as keys of this object.\n *\n * tags {Array} - Permits only the challenges that have at least one of the\n * tags within their platform and technology tags (keywords).\n *\n * text {String} - Free-text string which will be matched against challenge\n * name, its platform and technology tags. If not found anywhere, the challenge\n * is filtered out. Case-insensitive.\n *\n * tracks {Object} - Permits only the challenges belonging to at least one of\n * the competition tracks presented as keys of this object.\n *\n * upcoming {Boolean} - Permits only upcoming challenges.\n *\n * users {Array} - Permits only the challenges where the specified (by handles)\n * users are participating.\n */\n\n/**\n * Here are many similiar filerBy..(challenge, state) functions. Each of them\n * checks whether the given challenge fulfills the corresponding filtering rule\n * from the filter state object, and returns true or false depending on it.\n */\n\nfunction filterByEndDate(challenge, state) {\n if (!state.endDate) return true;\n return (0, _moment2.default)(state.endDate).isAfter(challenge.registrationStartDate);\n}\n\nfunction filterByGroupIds(challenge, state) {\n if (!state.groupIds) return true;\n return state.groupIds.some(function (id) {\n return challenge.groups[id];\n });\n}\n\nfunction filterByRegistrationOpen(challenge, state) {\n if (_lodash2.default.isUndefined(state.registrationOpen)) return true;\n var isRegOpen = function isRegOpen() {\n if (challenge.registrationOpen) {\n return challenge.registrationOpen === 'Yes';\n }\n if (challenge.challengeType && challenge.challengeType.name === 'Marathon Match') {\n return challenge.status !== 'Past';\n }\n var registrationPhase = (challenge.allPhases || challenge.phases || []).find(function (item) {\n return item.name === 'Registration';\n });\n if (!registrationPhase || !registrationPhase.isActive) {\n return false;\n }\n if (challenge.track === 'DESIGN') {\n var checkpointPhase = (challenge.allPhases || challenge.phases || []).find(function (item) {\n return item.name === 'Checkpoint Submission';\n });\n return !checkpointPhase || !checkpointPhase.isActive;\n }\n return true;\n };\n return isRegOpen() === state.registrationOpen;\n}\n\n/**\n * Filter function for Review Opportunity Type, will be used internally in filter.js\n * @param {Object} opp Review Opportunity object\n * @param {Object} state Filter state\n * @return {Boolean} True if opp satifies the filter\n */\nfunction filterByReviewOpportunityType(opp, state) {\n if (!state.reviewOpportunityType) return true;\n return opp.type === state.reviewOpportunityType;\n}\n\nfunction filterByStartDate(challenge, state) {\n if (!state.startDate) return true;\n return (0, _moment2.default)(state.startDate).isBefore(challenge.submissionEndDate);\n}\n\nfunction filterByStarted(challenge, state) {\n if (_lodash2.default.isUndefined(state.started)) return true;\n if (!challenge.phases) {\n return true;\n }\n return _lodash2.default.some(challenge.phases, { isActive: true, name: 'Registration' });\n}\n\nfunction filterByStatus(challenge, state) {\n if (!state.status) return true;\n return state.status.includes(challenge.status);\n}\n\nfunction filterBySubtracks(challenge, state) {\n if (!state.subtracks) return true;\n /* TODO: Although this is taken from the current code in prod,\n * it probably does not work in all cases. It should be double-checked,\n * why challenge subtracks in challenge objects are different from those\n * return from the API as the list of possible subtracks. */\n var filterSubtracks = state.subtracks.map(function (item) {\n return item.toLowerCase().replace(/[_ ]/g, '');\n });\n return filterSubtracks.includes(challenge.typeId);\n}\n\nfunction filterByTags(challenge, state) {\n if (!state.tags) return true;\n var platforms = challenge.platforms,\n technologies = challenge.technologies;\n\n var str = (platforms + ' ' + technologies).toLowerCase();\n return state.tags.some(function (tag) {\n return str.includes(tag.toLowerCase());\n });\n}\n\nfunction filterByText(challenge, state) {\n if (!state.text) return true;\n var str = (challenge.name + ' ' + challenge.tags + ' ' + challenge.platforms + ' ' + challenge.technologies).toLowerCase();\n return str.includes(state.text.toLowerCase());\n}\n\nfunction filterByTrack(challenge, state) {\n if (!state.tracks) return true;\n\n /* Development challenges having Data Science tech tag, still should be\n * included into data science track. */\n if (state.tracks[_tc.COMPETITION_TRACKS.DATA_SCIENCE] && _lodash2.default.includes(challenge.tags, 'Data Science')) {\n return true;\n }\n\n return _lodash2.default.keys(state.tracks).some(function (track) {\n return challenge.communities.has(track);\n });\n}\n\nfunction filterByUpcoming(challenge, state) {\n if (_lodash2.default.isUndefined(state.upcoming)) return true;\n return (0, _moment2.default)().isBefore(challenge.registrationStartDate);\n}\n\nfunction filterByUsers(challenge, state) {\n if (!state.users) return true;\n return state.users.find(function (user) {\n return challenge.users[user];\n });\n}\n\n/**\n * Returns clone of the state with the specified competition track added.\n * @param {Object} state\n * @param {String} track\n * @return {Object} Resulting state.\n */\nfunction addTrack(state, track) {\n /* When state has no tracks field all tracks are allowed, thus no need to\n * touch the object. */\n if (!state.tracks) return state;\n\n var res = _lodash2.default.clone(state);\n res.tracks = _lodash2.default.clone(res.tracks);\n res.tracks[track] = true;\n\n /* Selecting all tracks is the same as having no tracks field. To keep the\n * state more simple at any time, we remove tracks field in such case. */\n if (!_lodash2.default.values(_tc.COMPETITION_TRACKS).some(function (item) {\n return !res.tracks[item];\n })) {\n delete res.tracks;\n }\n\n return res;\n}\n\n/**\n * Generates filter function for the state.\n * @param {Object} state\n * @return {Function}\n */\nfunction getFilterFunction(state) {\n return function (challenge) {\n var test = filterByStatus(challenge, state) && filterByTrack(challenge, state) && filterByUpcoming(challenge, state) && filterByGroupIds(challenge, state) && filterByText(challenge, state) && filterByTags(challenge, state) && filterBySubtracks(challenge, state) && filterByUsers(challenge, state) && filterByEndDate(challenge, state) && filterByStartDate(challenge, state) && filterByStarted(challenge, state) && filterByRegistrationOpen(challenge, state);\n if (!test && state.or) {\n var pos = 0;\n while (!test && pos < state.or.length) {\n test = getFilterFunction(state.or[pos])(challenge);\n pos += 1;\n }\n }\n return test;\n };\n}\n\n/**\n * Generates a Review Opportunities filter function for the provided filter state.\n * @param {Object} state\n * @return {Function}\n */\nfunction getReviewOpportunitiesFilterFunction(state) {\n return function (opp) {\n // Review Opportunity objects have a challenge field which\n // is largely compatible with many of the existing filter functions\n // especially after a few normalization tweaks\n var challenge = (0, _extends3.default)({}, opp.challenge, {\n // This allows filterByText to search for Review Types and Challenge Titles\n name: opp.challenge.title + ' ' + _tc.REVIEW_OPPORTUNITY_TYPES[opp.type],\n registrationStartDate: opp.startDate, // startDate of Review, not Challenge\n subTrack: opp.challenge.subTrack || '', // Sometimes back-end doesn't return this field\n submissionEndDate: opp.startDate, // Currently uses startDate for both date comparisons\n communities: new _set2.default([// Used to filter by Track, and communities at a future date\n opp.challenge.track.toLowerCase()])\n });\n\n return filterByTrack(challenge, state) && filterByText(challenge, state) && filterByTags(challenge, state) && filterBySubtracks(challenge, state) && filterByEndDate(challenge, state) && filterByStartDate(challenge, state) && filterByReviewOpportunityType(opp, state);\n };\n}\n\n/* ************************************************************************** */\n/* Below is a group of functions that allow to combine multiple challenge\n * filters together. If you are not adding a new filter functionality, just\n * look for the exported combine(..) function.\n *\n * All other helper functions in this section take two filter state objects as\n * arguments, and combine some of the filter rules, merging the resulting one\n * into the first filter state object.\n */\n\n/* NOTE: Current implementation ignores plenty of rules when combining filters.\n * It is fine for the only current use case: we use combine just before calling\n * to mapToBackend(..) function, to map several frontend filters to the\n * matching backend one. The way mapToBackend(..) works, this ignoring of\n * some rules is not a big deal (resulting backend filter will be not that\n * specific, as it probably could be, but due to the current api limitations\n * we cannot be too specific anyway). If you are going to use this for anything\n * else - thing twice what are you doing? If you need it for filtering, it is\n * just a lot easier to filter by each frontend filter in turns, rather than\n * combine them into a single filter. */\n\n/* This ESLint rule is disabled for combineXXX(..) functions, as they are\n * intended to be used only internally, with a newly constructed object\n * passed in as the first argument (i.e. we take care that there is no\n * side-effects to mutate it within this module, and these functions\n * are not exported outside of the module). */\n/* eslint-disable no-param-reassign */\n\nfunction combineArrayRules(a, b, ruleName) {\n var or = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (a[ruleName] && b[ruleName]) {\n if (or) a[ruleName] = _lodash2.default.uniq(a[ruleName].concat(b[ruleName]));else a[ruleName] = _lodash2.default.intersection(a[ruleName], b[ruleName]);\n } else if (b[ruleName]) a[ruleName] = b[ruleName];\n}\n\nfunction combineEndDate(a, b) {\n if (a.endDate && b.endDate) {\n a.endDate = _moment2.default.min(a.endDate, b.endDate).format();\n } else if (b.endDate) a.endDate = b.endDate;\n}\n\nfunction combineStartDate(a, b) {\n if (a.startDate && b.startDate) {\n a.startDate = _moment2.default.max(a.startDate, b.startDate).format();\n } else if (b.startDate) a.startDate = b.startDate;\n}\n\nfunction combineTracks(a, b) {\n if (a.tracks && b.tracks) {\n _lodash2.default.forIn(a.tracks, function (value, key) {\n if (!b.tracks[key]) delete a.tracks[key];\n });\n } else if (b.tracks) a.tracks = b.tracks;\n}\n\n/* eslint-enable no-param-reassign */\n\n/**\n * Combines multiple filter state objects together. Resulting state describes\n * the filter, which matches only those challenges that satisfy each of the\n * filters passed in as arguments.\n *\n * The main intended use of this function is to combine multiple frontend\n * challenge filters into a single one, that can be mapped into the\n * corresponding backend filter by mapToBackend(..) function.\n *\n * @param {Object} filters Input filter state objects to combine.\n * @return {Object}\n */\nfunction combine() {\n var res = {};\n\n for (var _len = arguments.length, filters = Array(_len), _key = 0; _key < _len; _key++) {\n filters[_key] = arguments[_key];\n }\n\n filters.forEach(function (filter) {\n combineEndDate(res, filter);\n combineArrayRules(res, filter, 'groupIds');\n /* TODO: The registrationOpen rule is just ignored for now. */\n combineStartDate(res, filter);\n combineArrayRules(res, filter, 'or', true);\n combineArrayRules(res, filter, 'status');\n combineArrayRules(res, filter, 'subtracks');\n combineArrayRules(res, filter, 'tags');\n /* TODO: The text rule is just ignored for now. */\n combineTracks(res, filter);\n /* TODO: The upcoming rule is just ignored for now. */\n /* TODO: The users rule is just ignored for now. */\n });\n return res;\n}\n\n/* ************************************************************************** */\n/* Below is a group of function that allow to map a frontend filter into the\n * corresponding backend (api) one. If you are not adding a new filter\n * functionality, just look for the exported mapToBackend(..) function. */\n\n/**\n * Maps the frontend challenge filter into the corresponding backend (api) one.\n * As there is no 1:1 match between the frontend and backend challenge filters,\n * the resulting backend filter is always equal or broader than the given\n * frontend one; i.e. any challenge that satisfies the original frontend filter\n * will pass the backend one, though some of the challenges that pass the\n * backend filter may fail the frontend one.\n *\n * It is assumed that this function will help us to load challenges from the\n * backend more specifically, though it does not prevent as from the need\n * always perform the final filtering at the frontend side.\n *\n * @param {Object} filter\n * @return {Object}\n */\nfunction mapToBackend(filter) {\n if (filter.or) return {};\n\n var res = {};\n if (filter.groupIds) res.groupIds = filter.groupIds.join(',');\n\n /* NOTE: Right now the frontend challenge filter by tag works different,\n * it looks for matches in the challenge name OR in the techs / platforms. */\n // if (filter.tags) res.technologies = filter.tags.join(',');\n\n return res;\n}\n\n/**\n * Returns clone of the state with the specified competition track removed.\n * @param {Object} state\n * @param {String} track\n * @return {Object} Resulting state.\n */\nfunction removeTrack(state, track) {\n var res = _lodash2.default.clone(state);\n if (res.tracks) res.tracks = _lodash2.default.clone(res.tracks);else {\n res.tracks = {};\n _lodash2.default.forIn(_tc.COMPETITION_TRACKS, function (item) {\n res.tracks[item] = true;\n });\n }\n delete res.tracks[track];\n return res;\n}\n\n/**\n * Clone the state and sets the end date.\n * @param {Object} state\n * @param {String} date\n * @return {Object}\n */\nfunction setEndDate(state, date) {\n if (date) return (0, _extends3.default)({}, state, { endDate: date });\n if (!state.endDate) return state;\n var res = _lodash2.default.clone(state);\n delete res.endDate;\n return res;\n}\n\n/**\n * Clones the state and sets the review opportunity type.\n * @param {Object} state\n * @param {Array} reviewOpportunityType Possible values found in utils/tc REVIEW_OPPORTUNITY_TYPES\n * @return {Object}\n */\nfunction setReviewOpportunityType(state, reviewOpportunityType) {\n if (reviewOpportunityType) return (0, _extends3.default)({}, state, { reviewOpportunityType: reviewOpportunityType });\n if (!state.reviewOpportunityType) return state;\n var res = _lodash2.default.clone(state);\n delete res.reviewOpportunityType;\n return res;\n}\n\n/**\n * Clones the state and sets the start date.\n * @param {Object} state\n * @param {String} date ISO date string.\n * @return {Object}\n */\nfunction setStartDate(state, date) {\n if (date) return (0, _extends3.default)({}, state, { startDate: date });\n if (!state.startDate) return state;\n var res = _lodash2.default.clone(state);\n delete res.startDate;\n return res;\n}\n\n/**\n * Clones the state and sets the subtracks.\n * @param {Object} state\n * @param {Array} subtracks\n * @return {Object}\n */\nfunction setSubtracks(state, subtracks) {\n if (subtracks && subtracks.length) return (0, _extends3.default)({}, state, { subtracks: subtracks });\n if (!state.subtracks) return state;\n var res = _lodash2.default.clone(state);\n delete res.subtracks;\n return res;\n}\n\n/**\n * Clones the state and sets the tags.\n * @param {Object} state\n * @param {Array} tags String array.\n * @return {Object}\n */\nfunction setTags(state, tags) {\n if (tags && tags.length) return (0, _extends3.default)({}, state, { tags: tags });\n if (!state.tags) return state;\n var res = _lodash2.default.clone(state);\n delete res.tags;\n return res;\n}\n\n/**\n * Clones fitler state and sets the free-text string for the filtering by\n * challenge name and tags. To clear the string set it to anything evaluating\n * to falst (empty string, null, undefined).\n * @param {Object} state\n * @param {String} text\n * @return {Object} Resulting string.\n */\nfunction setText(state, text) {\n if (!text && !state.text) return state;\n var res = _lodash2.default.clone(state);\n if (text) res.text = text;else delete res.text;\n return res;\n}\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(filterByEndDate, 'filterByEndDate', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByGroupIds, 'filterByGroupIds', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByRegistrationOpen, 'filterByRegistrationOpen', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByReviewOpportunityType, 'filterByReviewOpportunityType', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByStartDate, 'filterByStartDate', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByStarted, 'filterByStarted', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByStatus, 'filterByStatus', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterBySubtracks, 'filterBySubtracks', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByTags, 'filterByTags', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByText, 'filterByText', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByTrack, 'filterByTrack', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByUpcoming, 'filterByUpcoming', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(filterByUsers, 'filterByUsers', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(addTrack, 'addTrack', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(getFilterFunction, 'getFilterFunction', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(getReviewOpportunitiesFilterFunction, 'getReviewOpportunitiesFilterFunction', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(combineArrayRules, 'combineArrayRules', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(combineEndDate, 'combineEndDate', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(combineStartDate, 'combineStartDate', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(combineTracks, 'combineTracks', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(combine, 'combine', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(mapToBackend, 'mapToBackend', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(removeTrack, 'removeTrack', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(setEndDate, 'setEndDate', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(setReviewOpportunityType, 'setReviewOpportunityType', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(setStartDate, 'setStartDate', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(setSubtracks, 'setSubtracks', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(setTags, 'setTags', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(setText, 'setText', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/challenge/filter.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/challenge/filter.js?");
/***/ }),
@@ -1101,7 +1173,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ERROR_ICON_TYPES = undefined;\n\nvar _setImmediate2 = __webpack_require__(/*! babel-runtime/core-js/set-immediate */ \"babel-runtime/core-js/set-immediate\");\n\nvar _setImmediate3 = _interopRequireDefault(_setImmediate2);\n\nexports.setErrorsStore = setErrorsStore;\nexports.fireErrorMessage = fireErrorMessage;\nexports.clearAllErrorIcons = clearAllErrorIcons;\nexports.setErrorIcon = setErrorIcon;\nexports.clearErrorIcon = clearErrorIcon;\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _errors = __webpack_require__(/*! ../actions/errors */ \"./src/actions/errors.js\");\n\nvar _errors2 = _interopRequireDefault(_errors);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module errors\n * @desc Utility functions for the standard error handling.\n * @todo They will be moved to `topcoder-react-utils` soon.\n */\n\nvar ERROR_ICON_TYPES = exports.ERROR_ICON_TYPES = {\n NETWORK: 'network',\n API: 'api'\n};\n\nvar store = void 0; // Will be set only when rendering client-side\n\nfunction setErrorsStore(s) {\n store = s;\n}\n\n/**\n * The function behaves similarly to javascript alert()\n * it will show a modal error diaglog with styling until the user clicks OK.\n */\nfunction fireErrorMessage(title, details) {\n if (_topcoderReactUtils.isomorphy.isClientSide() && store) {\n (0, _setImmediate3.default)(function () {\n store.dispatch(_errors2.default.errors.newError(title, details));\n });\n }\n}\n\n/**\n * clear all error icons\n */\nfunction clearAllErrorIcons() {\n if (_topcoderReactUtils.isomorphy.isClientSide() && store) {\n (0, _setImmediate3.default)(function () {\n store.dispatch(_errors2.default.errors.clearAllErrorIcons());\n });\n }\n}\n\n/**\n * add error message to error icon in bottom left in the screen.\n * @param id id of error icon type (ERROR_ICON_TYPES.NETWORK or ERROR_ICON_TYPES.API)\n * @param title icon hover title\n * @param message icon hover message\n */\nfunction setErrorIcon(id, title, message) {\n if (_topcoderReactUtils.isomorphy.isClientSide() && store) {\n (0, _setImmediate3.default)(function () {\n store.dispatch(_errors2.default.errors.setErrorIcon(id, title, message));\n });\n }\n}\n\n/**\n * clear all error message for an error icon.\n * @param id id of error icon type to clear\n */\nfunction clearErrorIcon(id) {\n if (_topcoderReactUtils.isomorphy.isClientSide() && store) {\n (0, _setImmediate3.default)(function () {\n store.dispatch(_errors2.default.errors.clearErrorIcon(id));\n });\n }\n}\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(ERROR_ICON_TYPES, 'ERROR_ICON_TYPES', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/errors.js');\n reactHotLoader.register(store, 'store', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/errors.js');\n reactHotLoader.register(setErrorsStore, 'setErrorsStore', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/errors.js');\n reactHotLoader.register(fireErrorMessage, 'fireErrorMessage', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/errors.js');\n reactHotLoader.register(clearAllErrorIcons, 'clearAllErrorIcons', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/errors.js');\n reactHotLoader.register(setErrorIcon, 'setErrorIcon', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/errors.js');\n reactHotLoader.register(clearErrorIcon, 'clearErrorIcon', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/errors.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/errors.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ERROR_ICON_TYPES = undefined;\n\nvar _setImmediate2 = __webpack_require__(/*! babel-runtime/core-js/set-immediate */ \"babel-runtime/core-js/set-immediate\");\n\nvar _setImmediate3 = _interopRequireDefault(_setImmediate2);\n\nexports.setErrorsStore = setErrorsStore;\nexports.fireErrorMessage = fireErrorMessage;\nexports.clearAllErrorIcons = clearAllErrorIcons;\nexports.setErrorIcon = setErrorIcon;\nexports.clearErrorIcon = clearErrorIcon;\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nvar _errors = __webpack_require__(/*! ../actions/errors */ \"./src/actions/errors.js\");\n\nvar _errors2 = _interopRequireDefault(_errors);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module errors\n * @desc Utility functions for the standard error handling.\n * @todo They will be moved to `topcoder-react-utils` soon.\n */\n\nvar ERROR_ICON_TYPES = exports.ERROR_ICON_TYPES = {\n NETWORK: 'network',\n API: 'api'\n};\n\nvar store = void 0; // Will be set only when rendering client-side\n\nfunction setErrorsStore(s) {\n store = s;\n}\n\n/**\n * The function behaves similarly to javascript alert()\n * it will show a modal error diaglog with styling until the user clicks OK.\n */\nfunction fireErrorMessage(title, details) {\n if (_topcoderReactUtils.isomorphy.isClientSide() && store) {\n (0, _setImmediate3.default)(function () {\n store.dispatch(_errors2.default.errors.newError(title, details));\n });\n }\n}\n\n/**\n * clear all error icons\n */\nfunction clearAllErrorIcons() {\n if (_topcoderReactUtils.isomorphy.isClientSide() && store) {\n (0, _setImmediate3.default)(function () {\n store.dispatch(_errors2.default.errors.clearAllErrorIcons());\n });\n }\n}\n\n/**\n * add error message to error icon in bottom left in the screen.\n * @param id id of error icon type (ERROR_ICON_TYPES.NETWORK or ERROR_ICON_TYPES.API)\n * @param title icon hover title\n * @param message icon hover message\n */\nfunction setErrorIcon(id, title, message) {\n if (_topcoderReactUtils.isomorphy.isClientSide() && store) {\n (0, _setImmediate3.default)(function () {\n store.dispatch(_errors2.default.errors.setErrorIcon(id, title, message));\n });\n }\n}\n\n/**\n * clear all error message for an error icon.\n * @param id id of error icon type to clear\n */\nfunction clearErrorIcon(id) {\n if (_topcoderReactUtils.isomorphy.isClientSide() && store) {\n (0, _setImmediate3.default)(function () {\n store.dispatch(_errors2.default.errors.clearErrorIcon(id));\n });\n }\n}\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(ERROR_ICON_TYPES, 'ERROR_ICON_TYPES', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/errors.js');\n reactHotLoader.register(store, 'store', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/errors.js');\n reactHotLoader.register(setErrorsStore, 'setErrorsStore', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/errors.js');\n reactHotLoader.register(fireErrorMessage, 'fireErrorMessage', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/errors.js');\n reactHotLoader.register(clearAllErrorIcons, 'clearAllErrorIcons', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/errors.js');\n reactHotLoader.register(setErrorIcon, 'setErrorIcon', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/errors.js');\n reactHotLoader.register(clearErrorIcon, 'clearErrorIcon', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/errors.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/errors.js?");
/***/ }),
@@ -1113,7 +1185,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.submission = exports.errors = exports.mock = exports.time = exports.tc = exports.logger = exports.challenge = undefined;\n\nvar _logger = __webpack_require__(/*! ./logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _tc = __webpack_require__(/*! ./tc */ \"./src/utils/tc.js\");\n\nvar tc = _interopRequireWildcard(_tc);\n\nvar _time = __webpack_require__(/*! ./time */ \"./src/utils/time.js\");\n\nvar time = _interopRequireWildcard(_time);\n\nvar _mock = __webpack_require__(/*! ./mock */ \"./src/utils/mock.js\");\n\nvar mock = _interopRequireWildcard(_mock);\n\nvar _errors = __webpack_require__(/*! ./errors */ \"./src/utils/errors.js\");\n\nvar errors = _interopRequireWildcard(_errors);\n\nvar _filter = __webpack_require__(/*! ./challenge/filter */ \"./src/utils/challenge/filter.js\");\n\nvar filter = _interopRequireWildcard(_filter);\n\nvar _submission = __webpack_require__(/*! ./submission */ \"./src/utils/submission.js\");\n\nvar submission = _interopRequireWildcard(_submission);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * Export utils.\n */\n\n\nvar challenge = {\n filter: filter\n};\n\nexports.challenge = challenge;\nexports.logger = _logger2.default;\nexports.tc = tc;\nexports.time = time;\nexports.mock = mock;\nexports.errors = errors;\nexports.submission = submission;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(challenge, 'challenge', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/index.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/index.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.submission = exports.errors = exports.mock = exports.time = exports.tc = exports.logger = exports.challenge = undefined;\n\nvar _logger = __webpack_require__(/*! ./logger */ \"./src/utils/logger.js\");\n\nvar _logger2 = _interopRequireDefault(_logger);\n\nvar _tc = __webpack_require__(/*! ./tc */ \"./src/utils/tc.js\");\n\nvar tc = _interopRequireWildcard(_tc);\n\nvar _time = __webpack_require__(/*! ./time */ \"./src/utils/time.js\");\n\nvar time = _interopRequireWildcard(_time);\n\nvar _mock = __webpack_require__(/*! ./mock */ \"./src/utils/mock.js\");\n\nvar mock = _interopRequireWildcard(_mock);\n\nvar _errors = __webpack_require__(/*! ./errors */ \"./src/utils/errors.js\");\n\nvar errors = _interopRequireWildcard(_errors);\n\nvar _filter = __webpack_require__(/*! ./challenge/filter */ \"./src/utils/challenge/filter.js\");\n\nvar filter = _interopRequireWildcard(_filter);\n\nvar _submission = __webpack_require__(/*! ./submission */ \"./src/utils/submission.js\");\n\nvar submission = _interopRequireWildcard(_submission);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * Export utils.\n */\n\n\nvar challenge = {\n filter: filter\n};\n\nexports.challenge = challenge;\nexports.logger = _logger2.default;\nexports.tc = tc;\nexports.time = time;\nexports.mock = mock;\nexports.errors = errors;\nexports.submission = submission;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(challenge, 'challenge', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/index.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/index.js?");
/***/ }),
@@ -1125,7 +1197,19 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(/*! babel-runtime/core-js/json/stringify */ \"babel-runtime/core-js/json/stringify\");\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module logger\n *\n * @desc\n * Isomorphic logger.\n *\n * At the server-side it outputs log messages to the console, and also sends\n * them to the https://logentries.com service (only if LOG_ENTRIES_TOKEN is\n * set).\n *\n * At the front-end side it outputs log messages to the console (only when\n * development build of the frontend is used), and sends them to the\n * https://logentries.com service (both dev and prod build of the frontend\n * send messages to the service, proxying them through the App's server;\n * the proxy will forward them to the service only if LOG_ENTRIES_TOKEN is set).\n *\n * In all case, interface of the logger matches that of the standard JS console.\n *\n * @todo This module does not belong here, it should be moved to\n * `topcoder-react-utils`.\n */\n/* eslint-disable global-require */\n/* eslint-disable no-console */\n\n/* global fetch */\n\n\nvar logger = {};\n_lodash2.default.functions(console).forEach(function (func) {\n logger[func] = _topcoderReactUtils.isomorphy.isDevBuild() || _topcoderReactUtils.isomorphy.isServerSide() ? console[func] : _lodash2.default.noop;\n});\n\nvar leLogger = void 0;\nif (_topcoderReactUtils.isomorphy.isServerSide()) {\n var token = _topcoderReactUtils.config.LOG_ENTRIES_TOKEN;\n if (token) {\n var LeLogger = __webpack_require__(/*! le_node */ \"le_node\");\n leLogger = new LeLogger({ token: token });\n }\n} else {\n var _log = function _log(type) {\n for (var _len = arguments.length, rest = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n fetch('/community-app-assets/api/logger', {\n body: (0, _stringify2.default)({\n data: rest,\n type: type\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: 'ApiKey ' + _topcoderReactUtils.config.SERVER_API_KEY\n },\n method: 'POST'\n }).catch(function () {\n /* TODO: Network or server are down. We should msg it to the user somehow\n */\n });\n };\n leLogger = {\n err: function err() {\n for (var _len2 = arguments.length, rest = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n rest[_key2] = arguments[_key2];\n }\n\n return _log.apply(undefined, ['err'].concat(rest));\n },\n info: function info() {\n for (var _len3 = arguments.length, rest = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n rest[_key3] = arguments[_key3];\n }\n\n return _log.apply(undefined, ['info'].concat(rest));\n },\n log: function log() {\n for (var _len4 = arguments.length, rest = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n rest[_key4] = arguments[_key4];\n }\n\n return _log.apply(undefined, ['log'].concat(rest));\n },\n warning: function warning() {\n for (var _len5 = arguments.length, rest = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n rest[_key5] = arguments[_key5];\n }\n\n return _log.apply(undefined, ['warn'].concat(rest));\n }\n };\n}\n\nif (leLogger) {\n var extend = function extend(base, le) {\n logger[base] = function () {\n for (var _len6 = arguments.length, rest = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n rest[_key6] = arguments[_key6];\n }\n\n if (_topcoderReactUtils.isomorphy.isDevBuild() || _topcoderReactUtils.isomorphy.isServerSide()) {\n var _console;\n\n (_console = console)[base].apply(_console, rest);\n }\n var msg = '';\n rest.forEach(function (item) {\n var it = item;\n if (!_lodash2.default.isString(it)) {\n it = (0, _stringify2.default)(it);\n if (!_lodash2.default.isString(it)) it = String(it);\n }\n msg = '' + msg + it + ' ';\n });\n leLogger[le](msg);\n };\n };\n extend('error', 'err');\n extend('info', 'info');\n extend('log', 'log');\n extend('warn', 'warning');\n}\n\nvar _default = logger;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(logger, 'logger', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/logger.js');\n reactHotLoader.register(leLogger, 'leLogger', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/logger.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/logger.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/logger.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _stringify = __webpack_require__(/*! babel-runtime/core-js/json/stringify */ \"babel-runtime/core-js/json/stringify\");\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _topcoderReactUtils = __webpack_require__(/*! topcoder-react-utils */ \"topcoder-react-utils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module logger\n *\n * @desc\n * Isomorphic logger.\n *\n * At the server-side it outputs log messages to the console, and also sends\n * them to the https://logentries.com service (only if LOG_ENTRIES_TOKEN is\n * set).\n *\n * At the front-end side it outputs log messages to the console (only when\n * development build of the frontend is used), and sends them to the\n * https://logentries.com service (both dev and prod build of the frontend\n * send messages to the service, proxying them through the App's server;\n * the proxy will forward them to the service only if LOG_ENTRIES_TOKEN is set).\n *\n * In all case, interface of the logger matches that of the standard JS console.\n *\n * @todo This module does not belong here, it should be moved to\n * `topcoder-react-utils`.\n */\n/* eslint-disable global-require */\n/* eslint-disable no-console */\n\n/* global fetch */\n\n\nvar logger = {};\n_lodash2.default.functions(console).forEach(function (func) {\n logger[func] = _topcoderReactUtils.isomorphy.isDevBuild() || _topcoderReactUtils.isomorphy.isServerSide() ? console[func] : _lodash2.default.noop;\n});\n\nvar leLogger = void 0;\nif (_topcoderReactUtils.isomorphy.isServerSide()) {\n var token = _topcoderReactUtils.config.LOG_ENTRIES_TOKEN;\n if (token) {\n var LeLogger = __webpack_require__(/*! le_node */ \"le_node\");\n leLogger = new LeLogger({ token: token });\n }\n} else {\n var _log = function _log(type) {\n for (var _len = arguments.length, rest = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n\n fetch('/community-app-assets/api/logger', {\n body: (0, _stringify2.default)({\n data: rest,\n type: type\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: 'ApiKey ' + _topcoderReactUtils.config.SERVER_API_KEY\n },\n method: 'POST'\n }).catch(function () {\n /* TODO: Network or server are down. We should msg it to the user somehow\n */\n });\n };\n leLogger = {\n err: function err() {\n for (var _len2 = arguments.length, rest = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n rest[_key2] = arguments[_key2];\n }\n\n return _log.apply(undefined, ['err'].concat(rest));\n },\n info: function info() {\n for (var _len3 = arguments.length, rest = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n rest[_key3] = arguments[_key3];\n }\n\n return _log.apply(undefined, ['info'].concat(rest));\n },\n log: function log() {\n for (var _len4 = arguments.length, rest = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n rest[_key4] = arguments[_key4];\n }\n\n return _log.apply(undefined, ['log'].concat(rest));\n },\n warning: function warning() {\n for (var _len5 = arguments.length, rest = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n rest[_key5] = arguments[_key5];\n }\n\n return _log.apply(undefined, ['warn'].concat(rest));\n }\n };\n}\n\nif (leLogger) {\n var extend = function extend(base, le) {\n logger[base] = function () {\n for (var _len6 = arguments.length, rest = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n rest[_key6] = arguments[_key6];\n }\n\n if (_topcoderReactUtils.isomorphy.isDevBuild() || _topcoderReactUtils.isomorphy.isServerSide()) {\n var _console;\n\n (_console = console)[base].apply(_console, rest);\n }\n var msg = '';\n rest.forEach(function (item) {\n var it = item;\n if (!_lodash2.default.isString(it)) {\n it = (0, _stringify2.default)(it);\n if (!_lodash2.default.isString(it)) it = String(it);\n }\n msg = '' + msg + it + ' ';\n });\n leLogger[le](msg);\n };\n };\n extend('error', 'err');\n extend('info', 'info');\n extend('log', 'log');\n extend('warn', 'warning');\n}\n\nvar _default = logger;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(logger, 'logger', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/logger.js');\n reactHotLoader.register(leLogger, 'leLogger', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/logger.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/logger.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/logger.js?");
+
+/***/ }),
+
+/***/ "./src/utils/member-search.js":
+/*!************************************!*\
+ !*** ./src/utils/member-search.js ***!
+ \************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.checkResponseSucess = undefined;\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar checkResponseSucess = exports.checkResponseSucess = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(res) {\n var x;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (res.ok) {\n _context.next = 2;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 2:\n _context.next = 4;\n return res.json();\n\n case 4:\n x = _context.sent;\n\n if (x.result.success) {\n _context.next = 7;\n break;\n }\n\n throw new Error(x.result.content);\n\n case 7:\n return _context.abrupt('return', x);\n\n case 8:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function checkResponseSucess(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\nexports.mapTagToLeaderboardType = mapTagToLeaderboardType;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n};\n\nfunction mapTagToLeaderboardType(tagDomain) {\n var tagToLeaderboardTypeMap = {\n SKILLS: 'MEMBER_SKILL'\n };\n\n return tagDomain ? tagToLeaderboardTypeMap[tagDomain.toUpperCase()] : null;\n}\n\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(mapTagToLeaderboardType, 'mapTagToLeaderboardType', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/member-search.js');\n reactHotLoader.register(checkResponseSucess, 'checkResponseSucess', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/member-search.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/member-search.js?");
/***/ }),
@@ -1137,7 +1221,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mockAction = mockAction;\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n};\n\n/**\n * @module mock\n * @desc Collection of functions useful in unit tests.\n * @todo This will be moved to Jest utils in `topcoder-react-utils` soon.\n */\n\n/**\n * Creates a mock Flux Standard Action creator.\n * TODO: Additional options to set errors, etc. should be added.\n * TODO: It may be handier to return action created wrapped into Jest mock\n * function.\n * @param {String} type Action type.\n * @param {Any} payload Action payload.\n * @param {Any} error Has error or not.\n */\nfunction mockAction(type, payload, error) {\n var res = function res() {\n return { type: type, payload: payload, error: error };\n };\n res.toString = function () {\n return type;\n };\n return res;\n}\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(mockAction, \"mockAction\", \"/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/mock.js\");\n reactHotLoader.register(_default, \"default\", \"/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/mock.js\");\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/mock.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mockAction = mockAction;\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n};\n\n/**\n * @module mock\n * @desc Collection of functions useful in unit tests.\n * @todo This will be moved to Jest utils in `topcoder-react-utils` soon.\n */\n\n/**\n * Creates a mock Flux Standard Action creator.\n * TODO: Additional options to set errors, etc. should be added.\n * TODO: It may be handier to return action created wrapped into Jest mock\n * function.\n * @param {String} type Action type.\n * @param {Any} payload Action payload.\n * @param {Any} error Has error or not.\n */\nfunction mockAction(type, payload, error) {\n var res = function res() {\n return { type: type, payload: payload, error: error };\n };\n res.toString = function () {\n return type;\n };\n return res;\n}\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(mockAction, \"mockAction\", \"/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/mock.js\");\n reactHotLoader.register(_default, \"default\", \"/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/mock.js\");\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/mock.js?");
/***/ }),
@@ -1149,7 +1233,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _toConsumableArray2 = __webpack_require__(/*! babel-runtime/helpers/toConsumableArray */ \"babel-runtime/helpers/toConsumableArray\");\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nexports.getProvisionalScore = getProvisionalScore;\nexports.getFinalScore = getFinalScore;\nexports.processMMSubmissions = processMMSubmissions;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * Various submissions functions.\n */\n/* global CONFIG */\n/* eslint-disable no-param-reassign */\n\n\nvar _CONFIG = {\"AV_SCAN_SCORER_REVIEW_TYPE_ID\":\"68c5a381-c8ab-48af-92a7-7a869a4ee6c3\",\"PAGE_SIZE\":50,\"REVIEW_OPPORTUNITY_PAGE_SIZE\":1000},\n AV_SCAN_SCORER_REVIEW_TYPE_ID = _CONFIG.AV_SCAN_SCORER_REVIEW_TYPE_ID;\n\n\nfunction removeDecimal(num) {\n var re = new RegExp('^-?\\\\d+');\n return num.toString().match(re)[0];\n}\n\nfunction toAcurateFixed(num, decimal) {\n var re = new RegExp('^-?\\\\d+(?:.\\\\d{0,' + decimal + '})?');\n return num.toString().match(re)[0];\n}\n\nfunction toFixed(num, decimal) {\n if (_lodash2.default.isNaN(parseFloat(num))) return num;\n num = parseFloat(num);\n\n var result = _lodash2.default.toFinite(toAcurateFixed(num, decimal));\n var integerResult = _lodash2.default.toFinite(removeDecimal(num));\n\n if (_lodash2.default.isInteger(result)) {\n return integerResult;\n }\n return result;\n}\n\nfunction getMMChallengeHandleStyle(handle, registrants) {\n var style = _lodash2.default.get(_lodash2.default.find(registrants, function (m) {\n return m.handle === handle;\n }), 'colorStyle', null);\n if (style) return JSON.parse(style.replace(/(\\w+):\\s*([^;]*)/g, '{\"$1\": \"$2\"}'));\n return {};\n}\n\n/**\n * Process each submission rank of MM challenge\n * @param submissions the array of submissions\n */\nfunction processRanks(submissions) {\n var maxFinalScore = 0;\n submissions.sort(function (a, b) {\n var pA = _lodash2.default.get(a, 'submissions[0]', { provisionalScore: 0 }).provisionalScore;\n var pB = _lodash2.default.get(b, 'submissions[0]', { provisionalScore: 0 }).provisionalScore;\n if (pA === '-') pA = 0;\n if (pB === '-') pB = 0;\n if (pA === pB) {\n var timeA = new Date(_lodash2.default.get(a, 'submissions[0].submissionTime'));\n var timeB = new Date(_lodash2.default.get(b, 'submissions[0].submissionTime'));\n return timeA - timeB;\n }\n return pB - pA;\n });\n _lodash2.default.each(submissions, function (submission, i) {\n submissions[i].provisionalRank = i + 1;\n });\n\n submissions.sort(function (a, b) {\n var pA = _lodash2.default.get(a, 'submissions[0]', { finalScore: 0 }).finalScore;\n var pB = _lodash2.default.get(b, 'submissions[0]', { finalScore: 0 }).finalScore;\n if (pA === '-') pA = 0;\n if (pB === '-') pB = 0;\n if (pA > 0) maxFinalScore = pA;\n if (pB > 0) maxFinalScore = pB;\n if (pA === pB) {\n var timeA = new Date(_lodash2.default.get(a, 'submissions[0].submissionTime'));\n var timeB = new Date(_lodash2.default.get(b, 'submissions[0].submissionTime'));\n return timeA - timeB;\n }\n return pB - pA;\n });\n if (maxFinalScore > 0) {\n _lodash2.default.each(submissions, function (submission, i) {\n submissions[i].finalRank = i + 1;\n });\n }\n return { submissions: submissions, maxFinalScore: maxFinalScore };\n}\n\n/**\n * Get provisional score of submission\n * @param submission\n */\nfunction getProvisionalScore(submission) {\n var subs = submission.submissions;\n\n if (!subs || subs.length === 0) {\n return 0;\n }\n var provisionalScore = subs[0].provisionalScore;\n\n if (!provisionalScore || provisionalScore < 0) {\n return 0;\n }\n return provisionalScore;\n}\n\n/**\n * Get final score of submission\n * @param submission\n */\nfunction getFinalScore(submission) {\n var subs = submission.submissions;\n\n if (!subs || subs.length === 0) {\n return 0;\n }\n var finalScore = subs[0].finalScore;\n\n if (!finalScore || finalScore < 0) {\n return 0;\n }\n return finalScore;\n}\n\n/**\n * Process submissions of MM challenge\n * @param submissions the array of submissions\n * @param resources the challenge resources\n * @param registrants the challenge registrants\n */\nfunction processMMSubmissions(submissions, resources, registrants) {\n var data = {};\n var result = [];\n\n _lodash2.default.each(submissions, function (submission) {\n var memberId = submission.memberId;\n\n var memberHandle = void 0;\n var resource = _lodash2.default.find(resources, function (r) {\n return _lodash2.default.get(r, 'userId').toString() === memberId.toString();\n });\n if (_lodash2.default.isEmpty(resource)) {\n memberHandle = memberId;\n } else {\n memberHandle = _lodash2.default.has(resource, 'handle') ? _lodash2.default.get(resource, 'handle') : memberId.toString();\n }\n if (!data[memberHandle]) {\n data[memberHandle] = [];\n }\n var validReviews = _lodash2.default.reject(submission.review, ['typeId', AV_SCAN_SCORER_REVIEW_TYPE_ID]);\n validReviews.sort(function (a, b) {\n var dateA = new Date(a.created);\n var dateB = new Date(b.created);\n return dateB - dateA;\n });\n\n var provisionalScore = toFixed(_lodash2.default.get(validReviews, '[0].score', '-'), 5);\n var finalScore = toFixed(_lodash2.default.get(submission, 'reviewSummation[0].aggregateScore', '-'), 5);\n\n data[memberHandle].push({\n submissionId: submission.id,\n submissionTime: submission.created,\n provisionalScore: provisionalScore,\n finalScore: finalScore\n });\n });\n\n _lodash2.default.each(data, function (value, key) {\n result.push({\n submissions: [].concat((0, _toConsumableArray3.default)(value.sort(function (a, b) {\n return new Date(b.submissionTime).getTime() - new Date(a.submissionTime).getTime();\n }))),\n member: key,\n colorStyle: getMMChallengeHandleStyle(key, registrants)\n });\n });\n\n var _processRanks = processRanks(result),\n finalSubmissions = _processRanks.submissions,\n maxFinalScore = _processRanks.maxFinalScore;\n\n finalSubmissions.sort(function (a, b) {\n if (maxFinalScore === 0) {\n return a.provisionalRank - b.provisionalRank;\n }\n return a.finalRank - b.finalRank;\n });\n\n return finalSubmissions;\n}\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(AV_SCAN_SCORER_REVIEW_TYPE_ID, 'AV_SCAN_SCORER_REVIEW_TYPE_ID', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(removeDecimal, 'removeDecimal', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(toAcurateFixed, 'toAcurateFixed', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(toFixed, 'toFixed', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(getMMChallengeHandleStyle, 'getMMChallengeHandleStyle', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(processRanks, 'processRanks', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(getProvisionalScore, 'getProvisionalScore', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(getFinalScore, 'getFinalScore', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(processMMSubmissions, 'processMMSubmissions', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/submission.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/submission.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _toConsumableArray2 = __webpack_require__(/*! babel-runtime/helpers/toConsumableArray */ \"babel-runtime/helpers/toConsumableArray\");\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nexports.getProvisionalScore = getProvisionalScore;\nexports.getFinalScore = getFinalScore;\nexports.processMMSubmissions = processMMSubmissions;\n\nvar _lodash = __webpack_require__(/*! lodash */ \"lodash\");\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * Various submissions functions.\n */\n/* global CONFIG */\n/* eslint-disable no-param-reassign */\n\n\nvar _CONFIG = {\"AV_SCAN_SCORER_REVIEW_TYPE_ID\":\"68c5a381-c8ab-48af-92a7-7a869a4ee6c3\",\"PROVISIONAL_SCORING_COMPLETED_REVIEW_TYPE_ID\":\"52c91e85-745f-4e62-b592-9879a2dfe9fd\",\"PAGE_SIZE\":50,\"REVIEW_OPPORTUNITY_PAGE_SIZE\":1000},\n AV_SCAN_SCORER_REVIEW_TYPE_ID = _CONFIG.AV_SCAN_SCORER_REVIEW_TYPE_ID,\n PROVISIONAL_SCORING_COMPLETED_REVIEW_TYPE_ID = _CONFIG.PROVISIONAL_SCORING_COMPLETED_REVIEW_TYPE_ID;\n\n\nfunction removeDecimal(num) {\n var re = new RegExp('^-?\\\\d+');\n return num.toString().match(re)[0];\n}\n\nfunction toAcurateFixed(num, decimal) {\n var re = new RegExp('^-?\\\\d+(?:.\\\\d{0,' + decimal + '})?');\n return num.toString().match(re)[0];\n}\n\nfunction toFixed(num, decimal) {\n if (_lodash2.default.isNaN(parseFloat(num))) return num;\n num = parseFloat(num);\n\n var result = _lodash2.default.toFinite(toAcurateFixed(num, decimal));\n var integerResult = _lodash2.default.toFinite(removeDecimal(num));\n\n if (_lodash2.default.isInteger(result)) {\n return integerResult;\n }\n return result;\n}\n\nfunction getMMChallengeHandleStyle(handle, registrants) {\n var style = _lodash2.default.get(_lodash2.default.find(registrants, function (m) {\n return m.handle === handle;\n }), 'colorStyle', null);\n if (style) return JSON.parse(style.replace(/(\\w+):\\s*([^;]*)/g, '{\"$1\": \"$2\"}'));\n return {};\n}\n\n/**\n * Process each submission rank of MM challenge\n * @param submissions the array of submissions\n */\nfunction processRanks(submissions) {\n var maxFinalScore = 0;\n submissions.sort(function (a, b) {\n var pA = _lodash2.default.get(a, 'submissions[0]', { provisionalScore: 0 }).provisionalScore;\n var pB = _lodash2.default.get(b, 'submissions[0]', { provisionalScore: 0 }).provisionalScore;\n if (pA === '-') pA = 0;\n if (pB === '-') pB = 0;\n if (pA === pB) {\n var timeA = new Date(_lodash2.default.get(a, 'submissions[0].submissionTime'));\n var timeB = new Date(_lodash2.default.get(b, 'submissions[0].submissionTime'));\n return timeA - timeB;\n }\n return pB - pA;\n });\n _lodash2.default.each(submissions, function (submission, i) {\n submissions[i].provisionalRank = i + 1;\n });\n\n submissions.sort(function (a, b) {\n var pA = _lodash2.default.get(a, 'submissions[0]', { finalScore: 0 }).finalScore;\n var pB = _lodash2.default.get(b, 'submissions[0]', { finalScore: 0 }).finalScore;\n if (pA === '-') pA = 0;\n if (pB === '-') pB = 0;\n if (pA > 0) maxFinalScore = pA;\n if (pB > 0) maxFinalScore = pB;\n if (pA === pB) {\n var timeA = new Date(_lodash2.default.get(a, 'submissions[0].submissionTime'));\n var timeB = new Date(_lodash2.default.get(b, 'submissions[0].submissionTime'));\n return timeA - timeB;\n }\n return pB - pA;\n });\n if (maxFinalScore > 0) {\n _lodash2.default.each(submissions, function (submission, i) {\n submissions[i].finalRank = i + 1;\n });\n }\n return { submissions: submissions, maxFinalScore: maxFinalScore };\n}\n\n/**\n * Get provisional score of submission\n * @param submission\n */\nfunction getProvisionalScore(submission) {\n var subs = submission.submissions;\n\n if (!subs || subs.length === 0) {\n return 0;\n }\n var provisionalScore = subs[0].provisionalScore;\n\n if (!provisionalScore || provisionalScore < 0) {\n return 0;\n }\n return provisionalScore;\n}\n\n/**\n * Get final score of submission\n * @param submission\n */\nfunction getFinalScore(submission) {\n var subs = submission.submissions;\n\n if (!subs || subs.length === 0) {\n return 0;\n }\n var finalScore = subs[0].finalScore;\n\n if (!finalScore || finalScore < 0) {\n return 0;\n }\n return finalScore;\n}\n\n/**\n * Process submissions of MM challenge\n * @param submissions the array of submissions\n * @param resources the challenge resources\n * @param registrants the challenge registrants\n */\nfunction processMMSubmissions(submissions, resources, registrants) {\n var data = {};\n var result = [];\n\n _lodash2.default.each(submissions, function (submission) {\n var memberId = submission.memberId;\n\n var memberHandle = void 0;\n var resource = _lodash2.default.find(resources, function (r) {\n return _lodash2.default.get(r, 'userId').toString() === memberId.toString();\n });\n if (_lodash2.default.isEmpty(resource)) {\n memberHandle = memberId;\n } else {\n memberHandle = _lodash2.default.has(resource, 'handle') ? _lodash2.default.get(resource, 'handle') : memberId.toString();\n }\n if (!data[memberHandle]) {\n data[memberHandle] = [];\n }\n var validReviews = _lodash2.default.reject(submission.review, ['typeId', AV_SCAN_SCORER_REVIEW_TYPE_ID]);\n validReviews.sort(function (a, b) {\n var dateA = new Date(a.created);\n var dateB = new Date(b.created);\n return dateB - dateA;\n });\n\n var provisionalScoringIsCompleted = _lodash2.default.some(submission.review, { typeId: PROVISIONAL_SCORING_COMPLETED_REVIEW_TYPE_ID });\n\n var provisionalScore = toFixed(_lodash2.default.get(validReviews, '[0].score', '-'), 5);\n var finalScore = toFixed(_lodash2.default.get(submission, 'reviewSummation[0].aggregateScore', '-'), 5);\n\n data[memberHandle].push({\n submissionId: submission.id,\n submissionTime: submission.created,\n provisionalScore: provisionalScore,\n finalScore: finalScore,\n provisionalScoringIsCompleted: provisionalScoringIsCompleted,\n review: submission.review\n });\n });\n\n _lodash2.default.each(data, function (value, key) {\n result.push({\n submissions: [].concat((0, _toConsumableArray3.default)(value.sort(function (a, b) {\n return new Date(b.submissionTime).getTime() - new Date(a.submissionTime).getTime();\n }))),\n member: key,\n colorStyle: getMMChallengeHandleStyle(key, registrants)\n });\n });\n\n var _processRanks = processRanks(result),\n finalSubmissions = _processRanks.submissions,\n maxFinalScore = _processRanks.maxFinalScore;\n\n finalSubmissions.sort(function (a, b) {\n if (maxFinalScore === 0) {\n return a.provisionalRank - b.provisionalRank;\n }\n return a.finalRank - b.finalRank;\n });\n\n return finalSubmissions;\n}\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(AV_SCAN_SCORER_REVIEW_TYPE_ID, 'AV_SCAN_SCORER_REVIEW_TYPE_ID', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(PROVISIONAL_SCORING_COMPLETED_REVIEW_TYPE_ID, 'PROVISIONAL_SCORING_COMPLETED_REVIEW_TYPE_ID', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(removeDecimal, 'removeDecimal', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(toAcurateFixed, 'toAcurateFixed', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(toFixed, 'toFixed', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(getMMChallengeHandleStyle, 'getMMChallengeHandleStyle', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(processRanks, 'processRanks', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(getProvisionalScore, 'getProvisionalScore', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(getFinalScore, 'getFinalScore', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(processMMSubmissions, 'processMMSubmissions', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/submission.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/submission.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/submission.js?");
/***/ }),
@@ -1161,7 +1245,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLookerApiResponsePayload = exports.getApiResponsePayload = exports.REVIEW_OPPORTUNITY_TYPES = exports.COMPETITION_TRACKS = undefined;\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * Gets payload from a standard success response from TC API; or throws\n * an error in case of a failure response.\n * @param {Object} res\n * @param {Boolean} shouldThrowError should throw error if request fail\n * @return {Promise} Resolves to the payload.\n */\nvar getApiResponsePayload = exports.getApiResponsePayload = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(res) {\n var shouldThrowError = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var x;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (res.ok) {\n _context.next = 6;\n break;\n }\n\n if (!shouldThrowError) {\n _context.next = 5;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 5:\n return _context.abrupt('return', null);\n\n case 6:\n _context.next = 8;\n return res.json();\n\n case 8:\n x = _context.sent.result;\n\n if (x.success) {\n _context.next = 15;\n break;\n }\n\n if (!shouldThrowError) {\n _context.next = 14;\n break;\n }\n\n throw new Error(x.content);\n\n case 14:\n return _context.abrupt('return', null);\n\n case 15:\n return _context.abrupt('return', x.content);\n\n case 16:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function getApiResponsePayload(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\n/**\n * Gets payload from a standard success response from TC LOOKER API; or throws\n * an error in case of a failure response.\n * @param {Object} res\n * @return {Promise} Resolves to the payload.\n */\n\n\nvar getLookerApiResponsePayload = exports.getLookerApiResponsePayload = function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(res) {\n var resJson, x;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return res.json();\n\n case 2:\n resJson = _context2.sent;\n\n if (!Array.isArray(resJson)) {\n _context2.next = 5;\n break;\n }\n\n return _context2.abrupt('return', {\n res: resJson,\n error: false\n });\n\n case 5:\n x = resJson.result;\n return _context2.abrupt('return', {\n res: x.content,\n error: !x.success,\n status: x.status\n });\n\n case 7:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n return function getLookerApiResponsePayload(_x3) {\n return _ref2.apply(this, arguments);\n };\n}();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n};\n\n/**\n * @module tc\n * @desc Collection of small Topcoder-related functions.\n * @todo More TC-related utils should be moved here from Community-app.\n */\n\n/**\n * Codes of the Topcoder communities.\n */\n/* TODO: These are originally motivated by Topcoder API v2. Topcoder API v3\n * uses upper-case literals to encode the tracks. At some point, we should\n * update it in this code as well! */\nvar COMPETITION_TRACKS = exports.COMPETITION_TRACKS = {\n DATA_SCIENCE: 'data_science',\n DESIGN: 'design',\n DEVELOP: 'develop'\n};\n\n/**\n * Review Opportunity types\n */\nvar REVIEW_OPPORTUNITY_TYPES = exports.REVIEW_OPPORTUNITY_TYPES = {\n 'Contest Review': 'Review',\n 'Spec Review': 'Specification Review',\n 'Iterative Review': 'Iterative Review'\n};;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(COMPETITION_TRACKS, 'COMPETITION_TRACKS', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/tc.js');\n reactHotLoader.register(REVIEW_OPPORTUNITY_TYPES, 'REVIEW_OPPORTUNITY_TYPES', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/tc.js');\n reactHotLoader.register(getApiResponsePayload, 'getApiResponsePayload', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/tc.js');\n reactHotLoader.register(getLookerApiResponsePayload, 'getLookerApiResponsePayload', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/tc.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/tc.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLookerApiResponsePayload = exports.getApiResponsePayload = exports.REVIEW_OPPORTUNITY_TYPES = exports.COMPETITION_TRACKS = undefined;\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * Gets payload from a standard success response from TC API; or throws\n * an error in case of a failure response.\n * @param {Object} res\n * @param {Boolean} shouldThrowError should throw error if request fail\n * @return {Promise} Resolves to the payload.\n */\nvar getApiResponsePayload = exports.getApiResponsePayload = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(res) {\n var shouldThrowError = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var x;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (res.ok) {\n _context.next = 6;\n break;\n }\n\n if (!shouldThrowError) {\n _context.next = 5;\n break;\n }\n\n throw new Error(res.statusText);\n\n case 5:\n return _context.abrupt('return', null);\n\n case 6:\n _context.next = 8;\n return res.json();\n\n case 8:\n x = _context.sent.result;\n\n if (x.success) {\n _context.next = 15;\n break;\n }\n\n if (!shouldThrowError) {\n _context.next = 14;\n break;\n }\n\n throw new Error(x.content);\n\n case 14:\n return _context.abrupt('return', null);\n\n case 15:\n return _context.abrupt('return', x.content);\n\n case 16:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function getApiResponsePayload(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\n/**\n * Gets payload from a standard success response from TC LOOKER API; or throws\n * an error in case of a failure response.\n * @param {Object} res\n * @return {Promise} Resolves to the payload.\n */\n\n\nvar getLookerApiResponsePayload = exports.getLookerApiResponsePayload = function () {\n var _ref2 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2(res) {\n var resJson, x;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return res.json();\n\n case 2:\n resJson = _context2.sent;\n\n if (!Array.isArray(resJson)) {\n _context2.next = 5;\n break;\n }\n\n return _context2.abrupt('return', {\n res: resJson,\n error: false\n });\n\n case 5:\n x = resJson.result;\n return _context2.abrupt('return', {\n res: x.content,\n error: !x.success,\n status: x.status\n });\n\n case 7:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n return function getLookerApiResponsePayload(_x3) {\n return _ref2.apply(this, arguments);\n };\n}();\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n};\n\n/**\n * @module tc\n * @desc Collection of small Topcoder-related functions.\n * @todo More TC-related utils should be moved here from Community-app.\n */\n\n/**\n * Codes of the Topcoder communities.\n */\n/* TODO: These are originally motivated by Topcoder API v2. Topcoder API v3\n * uses upper-case literals to encode the tracks. At some point, we should\n * update it in this code as well! */\nvar COMPETITION_TRACKS = exports.COMPETITION_TRACKS = {\n DATA_SCIENCE: 'data_science',\n DESIGN: 'design',\n DEVELOP: 'develop'\n};\n\n/**\n * Review Opportunity types\n */\nvar REVIEW_OPPORTUNITY_TYPES = exports.REVIEW_OPPORTUNITY_TYPES = {\n 'Contest Review': 'Review',\n 'Spec Review': 'Specification Review',\n 'Iterative Review': 'Iterative Review'\n};;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(COMPETITION_TRACKS, 'COMPETITION_TRACKS', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/tc.js');\n reactHotLoader.register(REVIEW_OPPORTUNITY_TYPES, 'REVIEW_OPPORTUNITY_TYPES', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/tc.js');\n reactHotLoader.register(getApiResponsePayload, 'getApiResponsePayload', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/tc.js');\n reactHotLoader.register(getLookerApiResponsePayload, 'getLookerApiResponsePayload', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/tc.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/tc.js?");
/***/ }),
@@ -1173,7 +1257,7 @@ eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(ex
/***/ (function(module, exports, __webpack_require__) {
"use strict";
-eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.formatDuration = exports.delay = undefined;\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * Returns a Promise that resolves after the specified delay.\n * @param {Number} time Delay [ms].\n * @return {Promise}\n */\nvar delay = exports.delay = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(time) {\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt('return', new _promise2.default(function (resolve) {\n return setTimeout(function () {\n return resolve();\n }, time);\n }));\n\n case 1:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function delay(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\n/**\n * Standard duration formatting for listings and details\n *\n * @param {Number} time Time in milliseconds\n * @return {String} Formatted duration\n */\n\n\nvar _moment = __webpack_require__(/*! moment */ \"moment\");\n\nvar _moment2 = _interopRequireDefault(_moment);\n\n__webpack_require__(/*! moment-duration-format */ \"moment-duration-format\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module time\n * @desc Utility functions for time/date related stuff\n */\n\n\nvar HOUR_MS = 60 * 60 * 1000;\nvar DAY_MS = 24 * HOUR_MS;var formatDuration = exports.formatDuration = function formatDuration(time) {\n var format = void 0;\n if (time > DAY_MS) format = 'D[d] H[h]';else if (time > HOUR_MS) format = 'H[h] m[min]';else format = 'm[min] s[s]';\n\n return _moment2.default.duration(time).format(format);\n};\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(HOUR_MS, 'HOUR_MS', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/time.js');\n reactHotLoader.register(DAY_MS, 'DAY_MS', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/time.js');\n reactHotLoader.register(delay, 'delay', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/time.js');\n reactHotLoader.register(formatDuration, 'formatDuration', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/time.js');\n reactHotLoader.register(_default, 'default', '/Users/dat/Documents/ExampleCode/client/html/TopCoder/TopcoderSite/Community App/topcoder-react-lib/src/utils/time.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/time.js?");
+eval("/* WEBPACK VAR INJECTION */(function(module) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.formatDuration = exports.delay = undefined;\n\nvar _regenerator = __webpack_require__(/*! babel-runtime/regenerator */ \"babel-runtime/regenerator\");\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _promise = __webpack_require__(/*! babel-runtime/core-js/promise */ \"babel-runtime/core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _asyncToGenerator2 = __webpack_require__(/*! babel-runtime/helpers/asyncToGenerator */ \"babel-runtime/helpers/asyncToGenerator\");\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\n/**\n * Returns a Promise that resolves after the specified delay.\n * @param {Number} time Delay [ms].\n * @return {Promise}\n */\nvar delay = exports.delay = function () {\n var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee(time) {\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt('return', new _promise2.default(function (resolve) {\n return setTimeout(function () {\n return resolve();\n }, time);\n }));\n\n case 1:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function delay(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\n/**\n * Standard duration formatting for listings and details\n *\n * @param {Number} time Time in milliseconds\n * @return {String} Formatted duration\n */\n\n\nvar _moment = __webpack_require__(/*! moment */ \"moment\");\n\nvar _moment2 = _interopRequireDefault(_moment);\n\n__webpack_require__(/*! moment-duration-format */ \"moment-duration-format\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n(function () {\n var enterModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.enterModule : undefined;\n enterModule && enterModule(module);\n})();\n\nvar __signature__ = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default.signature : function (a) {\n return a;\n}; /**\n * @module time\n * @desc Utility functions for time/date related stuff\n */\n\n\nvar HOUR_MS = 60 * 60 * 1000;\nvar DAY_MS = 24 * HOUR_MS;var formatDuration = exports.formatDuration = function formatDuration(time) {\n var format = void 0;\n if (time > DAY_MS) format = 'D[d] H[h]';else if (time > HOUR_MS) format = 'H[h] m[min]';else format = 'm[min] s[s]';\n\n return _moment2.default.duration(time).format(format);\n};\n\nvar _default = undefined;\nexports.default = _default;\n;\n\n(function () {\n var reactHotLoader = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.default : undefined;\n\n if (!reactHotLoader) {\n return;\n }\n\n reactHotLoader.register(HOUR_MS, 'HOUR_MS', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/time.js');\n reactHotLoader.register(DAY_MS, 'DAY_MS', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/time.js');\n reactHotLoader.register(delay, 'delay', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/time.js');\n reactHotLoader.register(formatDuration, 'formatDuration', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/time.js');\n reactHotLoader.register(_default, 'default', '/Users/sr_jr/Desktop/topcoder/topcoder-react-lib/src/utils/time.js');\n})();\n\n;\n\n(function () {\n var leaveModule = typeof reactHotLoaderGlobal !== 'undefined' ? reactHotLoaderGlobal.leaveModule : undefined;\n leaveModule && leaveModule(module);\n})();\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../node_modules/webpack/buildin/module.js */ \"./node_modules/webpack/buildin/module.js\")(module)))\n\n//# sourceURL=webpack://topcoder-react-lib/./src/utils/time.js?");
/***/ }),
@@ -1430,6 +1514,17 @@ eval("module.exports = __WEBPACK_EXTERNAL_MODULE_tc_accounts__;\n\n//# sourceURL
/***/ }),
+/***/ "tc-core-library-js":
+/*!*************************************!*\
+ !*** external "tc-core-library-js" ***!
+ \*************************************/
+/*! no static exports found */
+/***/ (function(module, exports) {
+
+eval("module.exports = __WEBPACK_EXTERNAL_MODULE_tc_core_library_js__;\n\n//# sourceURL=webpack://topcoder-react-lib/external_%22tc-core-library-js%22?");
+
+/***/ }),
+
/***/ "to-capital-case":
/*!**********************************!*\
!*** external "to-capital-case" ***!
diff --git a/docs/actions.lookup.md b/docs/actions.lookup.md
index 4f41f5d5..aa4bfd36 100644
--- a/docs/actions.lookup.md
+++ b/docs/actions.lookup.md
@@ -11,6 +11,8 @@ Actions related to lookup data.
* [.getCountriesDone()](#module_actions.lookup.getCountriesDone) ⇒ Action
* [.getAllCountriesInit()](#module_actions.lookup.getCountriesInit) ⇒ Action
* [.getAllCountriesDone(tokenV3)](#module_actions.lookup.getCountriesDone) ⇒ Action
+ * [.getReviewTypesInit()](#module_actions.lookup.getReviewTypesInit) ⇒ Action
+ * [.getReviewTypesDone(tokenV3)](#module_actions.lookup.ggetReviewTypesDone) ⇒ Action
@@ -40,3 +42,19 @@ Creates an action that gets all countries new version.
| Param | Type | Description |
| --- | --- | --- |
| tokenV3 | String
| Topcoder v3 auth token. |
+
+
+### actions.lookup.getReviewTypesInit() ⇒ Action
+Creates an action that gets all reiview types.
+
+**Kind**: static method of [actions.lookup
](#module_actions.lookup)
+
+
+### actions.lookup.getReviewTypesDone(tokenV3) ⇒ Action
+Creates an action that gets all review types.
+
+**Kind**: static method of [actions.lookup
](#module_actions.lookup)
+
+| Param | Type | Description |
+| --- | --- | --- |
+| tokenV3 | String
| Topcoder v3 auth token. |
diff --git a/docs/reducers.lookup.md b/docs/reducers.lookup.md
index 1a08f131..a1033bd3 100644
--- a/docs/reducers.lookup.md
+++ b/docs/reducers.lookup.md
@@ -18,6 +18,7 @@ State segment managed by this reducer has the following structure:
* _inner_
* [~onGetSkillTagsDone(state, action)](#module_reducers.lookup..onGetSkillTagsDone) ⇒ Object
* [~onGetCountriesDone(state, action)](#module_reducers.lookup..onGetCountriesDone) ⇒ Object
+ * [~onGetReviewTypesDone(state, action)](#module_reducers.lookup..onGetReviewTypesDone) ⇒ Object
* [~create(initialState)](#module_reducers.lookup..create) ⇒ function
@@ -25,28 +26,40 @@ State segment managed by this reducer has the following structure:
### reducers.lookup.default
Reducer with default initial state.
-**Kind**: static property of [reducers.lookup
](#module_reducers.lookup)
+**Kind**: static property of [reducers.lookup
](#module_reducers.lookup)
### reducers.lookup.factory() ⇒ Promise
Factory which creates a new reducer.
-**Kind**: static method of [reducers.lookup
](#module_reducers.lookup)
-**Resolves**: Function(state, action): state
New reducer.
+**Kind**: static method of [reducers.lookup
](#module_reducers.lookup)
+**Resolves**: Function(state, action): state
New reducer.
### reducers.lookup~onGetSkillTagsDone(state, action) ⇒ Object
Handles LOOKUP/GET_SKILL_TAGS_DONE action.
-**Kind**: static method of [reducers.lookup
](#module_reducers.lookup)
-**Resolves**: Function(state, action): state
New reducer.
+**Kind**: static method of [reducers.lookup
](#module_reducers.lookup)
+**Resolves**: Function(state, action): state
New reducer.
### reducers.lookup~onGetCountriesDone(state, action) ⇒ Object
Handles LOOKUP/GET_COUNTRIES_DONE action.
-**Kind**: inner method of [reducers.lookup
](#module_reducers.lookup)
-**Returns**: Object
- New state
+**Kind**: inner method of [reducers.lookup
](#module_reducers.lookup)
+**Returns**: Object
- New state
+
+| Param | Type | Description |
+| --- | --- | --- |
+| state | Object
| |
+| action | Object
| Payload will be JSON from api call |
+
+
+### reducers.lookup~onGetReviewTypesDone(state, action) ⇒ Object
+Handles LOOKUP/GET_REVIEW_TYPES_DONE action.
+
+**Kind**: inner method of [reducers.lookup
](#module_reducers.lookup)
+**Returns**: Object
- New state
| Param | Type | Description |
| --- | --- | --- |
@@ -58,8 +71,8 @@ Handles LOOKUP/GET_COUNTRIES_DONE action.
### reducers.lookup~create(initialState) ⇒ function
Creates a new Lookup reducer with the specified initial state.
-**Kind**: inner method of [reducers.lookup
](#module_reducers.lookup)
-**Returns**: function
- Lookup reducer.
+**Kind**: inner method of [reducers.lookup
](#module_reducers.lookup)
+**Returns**: function
- Lookup reducer.
| Param | Type | Description |
| --- | --- | --- |
diff --git a/docs/services.submissions.md b/docs/services.submissions.md
index 104f5eed..92d01be9 100644
--- a/docs/services.submissions.md
+++ b/docs/services.submissions.md
@@ -13,6 +13,7 @@ via API V5.
* [new SubmissionsService(tokenV3)](#new_module_services.submissions..SubmissionsService_new)
* [.getSubmissions(filters, params)](#module_services.submissions..SubmissionsService+getSubmissions) ⇒ Promise
* [.getSubmissionInformation(submissionId)](#module_services.submissions..SubmissionsService+getSubmissionInformation) ⇒ Promise
+ * [.downloadSubmission(submissionId)](#module_services.submissions..SubmissionsService+downloadSubmission) ⇒ Promise
@@ -35,6 +36,7 @@ Returns a new or existing submissions service.
* [new SubmissionsService(tokenV3)](#new_module_services.submissions..SubmissionsService_new)
* [.getSubmissions(filters, params)](#module_services.submissions..SubmissionsService+getSubmissions) ⇒ Promise
* [.getSubmissionInformation(submissionId)](#module_services.submissions..SubmissionsService+getSubmissionInformation) ⇒ Promise
+ * [.downloadSubmission(submissionId)](#module_services.submissions..SubmissionsService+downloadSubmission) ⇒ Promise
@@ -68,3 +70,15 @@ Gets submission information.
| Param | Type | Description |
| --- | --- | --- |
| submissionId | String
| The id of submission |
+
+
+
+#### submissionsService.downloadSubmission(submissionId) ⇒ Promise
+Download submission.
+
+**Kind**: instance method of [SubmissionsService
](#module_services.submissions..SubmissionsService)
+**Returns**: Promise
- Resolves to the submission file.
+
+| Param | Type | Description |
+| --- | --- | --- |
+| submissionId | String
| The id of submission |
diff --git a/package-lock.json b/package-lock.json
index 0f34d750..e22c2ec3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "topcoder-react-lib",
- "version": "0.10.0",
+ "version": "0.14.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
@@ -14,124 +14,125 @@
}
},
"@babel/core": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz",
- "integrity": "sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "7.5.5",
- "@babel/generator": "7.5.5",
- "@babel/helpers": "7.5.5",
- "@babel/parser": "7.5.5",
- "@babel/template": "7.4.4",
- "@babel/traverse": "7.5.5",
- "@babel/types": "7.5.5",
- "convert-source-map": "1.6.0",
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz",
+ "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.8.3",
+ "@babel/generator": "7.9.4",
+ "@babel/helper-module-transforms": "7.9.0",
+ "@babel/helpers": "7.9.2",
+ "@babel/parser": "7.9.4",
+ "@babel/template": "7.8.6",
+ "@babel/traverse": "7.9.0",
+ "@babel/types": "7.9.0",
+ "convert-source-map": "1.7.0",
"debug": "4.1.1",
- "json5": "2.1.0",
+ "gensync": "1.0.0-beta.1",
+ "json5": "2.1.2",
"lodash": "4.17.15",
- "resolve": "1.12.0",
+ "resolve": "1.15.1",
"semver": "5.7.1",
"source-map": "0.5.7"
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
- "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
+ "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
"dev": true,
"requires": {
- "@babel/highlight": "7.5.0"
+ "@babel/highlight": "7.9.0"
}
},
"@babel/generator": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz",
- "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==",
+ "version": "7.9.4",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz",
+ "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==",
"dev": true,
"requires": {
- "@babel/types": "7.5.5",
+ "@babel/types": "7.9.0",
"jsesc": "2.5.2",
"lodash": "4.17.15",
- "source-map": "0.5.7",
- "trim-right": "1.0.1"
+ "source-map": "0.5.7"
}
},
"@babel/helper-function-name": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
- "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
+ "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
"dev": true,
"requires": {
- "@babel/helper-get-function-arity": "7.0.0",
- "@babel/template": "7.4.4",
- "@babel/types": "7.5.5"
+ "@babel/helper-get-function-arity": "7.8.3",
+ "@babel/template": "7.8.6",
+ "@babel/types": "7.9.0"
}
},
"@babel/helper-get-function-arity": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
- "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
+ "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==",
"dev": true,
"requires": {
- "@babel/types": "7.5.5"
+ "@babel/types": "7.9.0"
}
},
"@babel/helper-split-export-declaration": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz",
- "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==",
+ "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==",
"dev": true,
"requires": {
- "@babel/types": "7.5.5"
+ "@babel/types": "7.9.0"
}
},
"@babel/highlight": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
- "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+ "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
"dev": true,
"requires": {
+ "@babel/helper-validator-identifier": "7.9.0",
"chalk": "2.4.2",
- "esutils": "2.0.3",
"js-tokens": "4.0.0"
}
},
"@babel/template": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz",
- "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==",
+ "version": "7.8.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
+ "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
"dev": true,
"requires": {
- "@babel/code-frame": "7.5.5",
- "@babel/parser": "7.5.5",
- "@babel/types": "7.5.5"
+ "@babel/code-frame": "7.8.3",
+ "@babel/parser": "7.9.4",
+ "@babel/types": "7.9.0"
}
},
"@babel/traverse": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz",
- "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==",
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz",
+ "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==",
"dev": true,
"requires": {
- "@babel/code-frame": "7.5.5",
- "@babel/generator": "7.5.5",
- "@babel/helper-function-name": "7.1.0",
- "@babel/helper-split-export-declaration": "7.4.4",
- "@babel/parser": "7.5.5",
- "@babel/types": "7.5.5",
+ "@babel/code-frame": "7.8.3",
+ "@babel/generator": "7.9.4",
+ "@babel/helper-function-name": "7.8.3",
+ "@babel/helper-split-export-declaration": "7.8.3",
+ "@babel/parser": "7.9.4",
+ "@babel/types": "7.9.0",
"debug": "4.1.1",
"globals": "11.12.0",
"lodash": "4.17.15"
}
},
"@babel/types": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
- "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz",
+ "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==",
"dev": true,
"requires": {
- "esutils": "2.0.3",
+ "@babel/helper-validator-identifier": "7.9.0",
"lodash": "4.17.15",
"to-fast-properties": "2.0.0"
}
@@ -148,15 +149,6 @@
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
"dev": true
},
- "json5": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz",
- "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==",
- "dev": true,
- "requires": {
- "minimist": "1.2.0"
- }
- },
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
@@ -224,6 +216,362 @@
"@babel/types": "7.0.0-beta.44"
}
},
+ "@babel/helper-member-expression-to-functions": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz",
+ "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.9.0"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz",
+ "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "7.9.0",
+ "lodash": "4.17.15",
+ "to-fast-properties": "2.0.0"
+ }
+ },
+ "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
+ }
+ }
+ },
+ "@babel/helper-module-imports": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz",
+ "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.9.0"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz",
+ "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "7.9.0",
+ "lodash": "4.17.15",
+ "to-fast-properties": "2.0.0"
+ }
+ },
+ "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
+ }
+ }
+ },
+ "@babel/helper-module-transforms": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz",
+ "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-module-imports": "7.8.3",
+ "@babel/helper-replace-supers": "7.8.6",
+ "@babel/helper-simple-access": "7.8.3",
+ "@babel/helper-split-export-declaration": "7.8.3",
+ "@babel/template": "7.8.6",
+ "@babel/types": "7.9.0",
+ "lodash": "4.17.15"
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "7.9.0"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.9.0"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+ "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "7.9.0",
+ "chalk": "2.4.2",
+ "js-tokens": "4.0.0"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.8.3",
+ "@babel/parser": "7.9.4",
+ "@babel/types": "7.9.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz",
+ "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "7.9.0",
+ "lodash": "4.17.15",
+ "to-fast-properties": "2.0.0"
+ }
+ },
+ "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
+ }
+ }
+ },
+ "@babel/helper-optimise-call-expression": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz",
+ "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.9.0"
+ },
+ "dependencies": {
+ "@babel/types": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz",
+ "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "7.9.0",
+ "lodash": "4.17.15",
+ "to-fast-properties": "2.0.0"
+ }
+ },
+ "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
+ }
+ }
+ },
+ "@babel/helper-replace-supers": {
+ "version": "7.8.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz",
+ "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-member-expression-to-functions": "7.8.3",
+ "@babel/helper-optimise-call-expression": "7.8.3",
+ "@babel/traverse": "7.9.0",
+ "@babel/types": "7.9.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==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "7.9.0"
+ }
+ },
+ "@babel/generator": {
+ "version": "7.9.4",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz",
+ "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.9.0",
+ "jsesc": "2.5.2",
+ "lodash": "4.17.15",
+ "source-map": "0.5.7"
+ }
+ },
+ "@babel/helper-function-name": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
+ "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-get-function-arity": "7.8.3",
+ "@babel/template": "7.8.6",
+ "@babel/types": "7.9.0"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.9.0"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@babel/types": "7.9.0"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+ "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "7.9.0",
+ "chalk": "2.4.2",
+ "js-tokens": "4.0.0"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.8.3",
+ "@babel/parser": "7.9.4",
+ "@babel/types": "7.9.0"
+ }
+ },
+ "@babel/traverse": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz",
+ "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.8.3",
+ "@babel/generator": "7.9.4",
+ "@babel/helper-function-name": "7.8.3",
+ "@babel/helper-split-export-declaration": "7.8.3",
+ "@babel/parser": "7.9.4",
+ "@babel/types": "7.9.0",
+ "debug": "4.1.1",
+ "globals": "11.12.0",
+ "lodash": "4.17.15"
+ }
+ },
+ "@babel/types": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz",
+ "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "7.9.0",
+ "lodash": "4.17.15",
+ "to-fast-properties": "2.0.0"
+ }
+ },
+ "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
+ },
+ "jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
+ "dev": true
+ },
+ "to-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
+ }
+ }
+ },
+ "@babel/helper-simple-access": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz",
+ "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==",
+ "dev": true,
+ "requires": {
+ "@babel/template": "7.8.6",
+ "@babel/types": "7.9.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==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "7.9.0"
+ }
+ },
+ "@babel/highlight": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+ "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "7.9.0",
+ "chalk": "2.4.2",
+ "js-tokens": "4.0.0"
+ }
+ },
+ "@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==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "7.8.3",
+ "@babel/parser": "7.9.4",
+ "@babel/types": "7.9.0"
+ }
+ },
+ "@babel/types": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz",
+ "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "7.9.0",
+ "lodash": "4.17.15",
+ "to-fast-properties": "2.0.0"
+ }
+ },
+ "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
+ }
+ }
+ },
"@babel/helper-split-export-declaration": {
"version": "7.0.0-beta.44",
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0-beta.44.tgz",
@@ -233,114 +581,119 @@
"@babel/types": "7.0.0-beta.44"
}
},
+ "@babel/helper-validator-identifier": {
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz",
+ "integrity": "sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw==",
+ "dev": true
+ },
"@babel/helpers": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.5.tgz",
- "integrity": "sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g==",
+ "version": "7.9.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz",
+ "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==",
"dev": true,
"requires": {
- "@babel/template": "7.4.4",
- "@babel/traverse": "7.5.5",
- "@babel/types": "7.5.5"
+ "@babel/template": "7.8.6",
+ "@babel/traverse": "7.9.0",
+ "@babel/types": "7.9.0"
},
"dependencies": {
"@babel/code-frame": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz",
- "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
+ "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
"dev": true,
"requires": {
- "@babel/highlight": "7.5.0"
+ "@babel/highlight": "7.9.0"
}
},
"@babel/generator": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz",
- "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==",
+ "version": "7.9.4",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz",
+ "integrity": "sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA==",
"dev": true,
"requires": {
- "@babel/types": "7.5.5",
+ "@babel/types": "7.9.0",
"jsesc": "2.5.2",
"lodash": "4.17.15",
- "source-map": "0.5.7",
- "trim-right": "1.0.1"
+ "source-map": "0.5.7"
}
},
"@babel/helper-function-name": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz",
- "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==",
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz",
+ "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==",
"dev": true,
"requires": {
- "@babel/helper-get-function-arity": "7.0.0",
- "@babel/template": "7.4.4",
- "@babel/types": "7.5.5"
+ "@babel/helper-get-function-arity": "7.8.3",
+ "@babel/template": "7.8.6",
+ "@babel/types": "7.9.0"
}
},
"@babel/helper-get-function-arity": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz",
- "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==",
+ "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==",
"dev": true,
"requires": {
- "@babel/types": "7.5.5"
+ "@babel/types": "7.9.0"
}
},
"@babel/helper-split-export-declaration": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz",
- "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==",
+ "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==",
"dev": true,
"requires": {
- "@babel/types": "7.5.5"
+ "@babel/types": "7.9.0"
}
},
"@babel/highlight": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz",
- "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==",
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
+ "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
"dev": true,
"requires": {
+ "@babel/helper-validator-identifier": "7.9.0",
"chalk": "2.4.2",
- "esutils": "2.0.3",
"js-tokens": "4.0.0"
}
},
"@babel/template": {
- "version": "7.4.4",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz",
- "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==",
+ "version": "7.8.6",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz",
+ "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==",
"dev": true,
"requires": {
- "@babel/code-frame": "7.5.5",
- "@babel/parser": "7.5.5",
- "@babel/types": "7.5.5"
+ "@babel/code-frame": "7.8.3",
+ "@babel/parser": "7.9.4",
+ "@babel/types": "7.9.0"
}
},
"@babel/traverse": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz",
- "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==",
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz",
+ "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==",
"dev": true,
"requires": {
- "@babel/code-frame": "7.5.5",
- "@babel/generator": "7.5.5",
- "@babel/helper-function-name": "7.1.0",
- "@babel/helper-split-export-declaration": "7.4.4",
- "@babel/parser": "7.5.5",
- "@babel/types": "7.5.5",
+ "@babel/code-frame": "7.8.3",
+ "@babel/generator": "7.9.4",
+ "@babel/helper-function-name": "7.8.3",
+ "@babel/helper-split-export-declaration": "7.8.3",
+ "@babel/parser": "7.9.4",
+ "@babel/types": "7.9.0",
"debug": "4.1.1",
"globals": "11.12.0",
"lodash": "4.17.15"
}
},
"@babel/types": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz",
- "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==",
+ "version": "7.9.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz",
+ "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==",
"dev": true,
"requires": {
- "esutils": "2.0.3",
+ "@babel/helper-validator-identifier": "7.9.0",
"lodash": "4.17.15",
"to-fast-properties": "2.0.0"
}
@@ -391,17 +744,27 @@
}
},
"@babel/parser": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz",
- "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==",
+ "version": "7.9.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz",
+ "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==",
"dev": true
},
"@babel/runtime": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.5.5.tgz",
- "integrity": "sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==",
+ "version": "7.9.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz",
+ "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==",
+ "requires": {
+ "regenerator-runtime": "0.13.5"
+ }
+ },
+ "@babel/runtime-corejs3": {
+ "version": "7.9.2",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.9.2.tgz",
+ "integrity": "sha512-HHxmgxbIzOfFlZ+tdeRKtaxWOMUoCG5Mu3wKeUmOxjYrwb3AAHgnmtCUbPPK11/raIWLIBK250t8E2BPO0p7jA==",
+ "dev": true,
"requires": {
- "regenerator-runtime": "0.13.3"
+ "core-js-pure": "3.6.4",
+ "regenerator-runtime": "0.13.5"
}
},
"@babel/template": {
@@ -500,12 +863,65 @@
"integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==",
"dev": true
},
+ "@types/body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==",
+ "requires": {
+ "@types/connect": "3.4.33",
+ "@types/node": "13.9.5"
+ }
+ },
+ "@types/connect": {
+ "version": "3.4.33",
+ "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz",
+ "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==",
+ "requires": {
+ "@types/node": "13.9.5"
+ }
+ },
"@types/events": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz",
"integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==",
"dev": true
},
+ "@types/express": {
+ "version": "4.17.3",
+ "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.3.tgz",
+ "integrity": "sha512-I8cGRJj3pyOLs/HndoP+25vOqhqWkAZsWMEmq1qXy/b/M3ppufecUwaK2/TVDVxcV61/iSdhykUjQQ2DLSrTdg==",
+ "requires": {
+ "@types/body-parser": "1.19.0",
+ "@types/express-serve-static-core": "4.17.3",
+ "@types/serve-static": "1.13.3"
+ }
+ },
+ "@types/express-jwt": {
+ "version": "0.0.42",
+ "resolved": "https://registry.npmjs.org/@types/express-jwt/-/express-jwt-0.0.42.tgz",
+ "integrity": "sha512-WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag==",
+ "requires": {
+ "@types/express": "4.17.3",
+ "@types/express-unless": "0.5.1"
+ }
+ },
+ "@types/express-serve-static-core": {
+ "version": "4.17.3",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.3.tgz",
+ "integrity": "sha512-sHEsvEzjqN+zLbqP+8OXTipc10yH1QLR+hnr5uw29gi9AhCAAAdri8ClNV7iMdrJrIzXIQtlkPvq8tJGhj3QJQ==",
+ "requires": {
+ "@types/node": "13.9.5",
+ "@types/range-parser": "1.2.3"
+ }
+ },
+ "@types/express-unless": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@types/express-unless/-/express-unless-0.5.1.tgz",
+ "integrity": "sha512-5fuvg7C69lemNgl0+v+CUxDYWVPSfXHhJPst4yTLcqi4zKJpORCxnDrnnilk3k0DTq/WrAUdvXFs01+vUqUZHw==",
+ "requires": {
+ "@types/express": "4.17.3"
+ }
+ },
"@types/glob": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz",
@@ -514,9 +930,14 @@
"requires": {
"@types/events": "3.0.0",
"@types/minimatch": "3.0.3",
- "@types/node": "12.7.2"
+ "@types/node": "13.9.5"
}
},
+ "@types/mime": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz",
+ "integrity": "sha512-FwI9gX75FgVBJ7ywgnq/P7tw+/o1GUbtP0KzbtusLigAOgIgNISRK0ZPl4qertvXSIE8YbsVJueQ90cDt9YYyw=="
+ },
"@types/minimatch": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz",
@@ -524,10 +945,23 @@
"dev": true
},
"@types/node": {
- "version": "12.7.2",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.2.tgz",
- "integrity": "sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg==",
- "dev": true
+ "version": "13.9.5",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-13.9.5.tgz",
+ "integrity": "sha512-hkzMMD3xu6BrJpGVLeQ3htQQNAcOrJjX7WFmtK8zWQpz2UJf13LCFF2ALA7c9OVdvc2vQJeDdjfR35M0sBCxvw=="
+ },
+ "@types/range-parser": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz",
+ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="
+ },
+ "@types/serve-static": {
+ "version": "1.13.3",
+ "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz",
+ "integrity": "sha512-oprSwp094zOglVrXdlo/4bAHtKTAxX6VT8FOZlBKrmyLbNvE1zxZyJ6yikMVtHIvwP45+ZQGJn+FdXGKTozq0g==",
+ "requires": {
+ "@types/express-serve-static-core": "4.17.3",
+ "@types/mime": "2.0.1"
+ }
},
"@types/unist": {
"version": "2.0.3",
@@ -541,194 +975,192 @@
"integrity": "sha512-b3nLFGaGkJ9rzOcuXRfHkZMdjsawuDD0ENL9fzTophtBg8FJHSGbH7daXkEpcwy3v7Xol3pAvsmlYyFhR4pqJw==",
"dev": true,
"requires": {
- "@types/node": "12.7.2",
+ "@types/node": "13.9.5",
"@types/unist": "2.0.3",
- "@types/vfile-message": "1.0.1"
+ "@types/vfile-message": "2.0.0"
}
},
"@types/vfile-message": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-1.0.1.tgz",
- "integrity": "sha512-mlGER3Aqmq7bqR1tTTIVHq8KSAFFRyGbrxuM8C/H82g6k7r2fS+IMEkIu3D7JHzG10NvPdR8DNx0jr0pwpp4dA==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@types/vfile-message/-/vfile-message-2.0.0.tgz",
+ "integrity": "sha512-GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==",
"dev": true,
"requires": {
- "@types/node": "12.7.2",
- "@types/unist": "2.0.3"
+ "vfile-message": "2.0.4"
}
},
"@webassemblyjs/ast": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz",
- "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
+ "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==",
"dev": true,
"requires": {
- "@webassemblyjs/helper-module-context": "1.8.5",
- "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
- "@webassemblyjs/wast-parser": "1.8.5"
+ "@webassemblyjs/helper-module-context": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/wast-parser": "1.9.0"
}
},
"@webassemblyjs/floating-point-hex-parser": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz",
- "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz",
+ "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==",
"dev": true
},
"@webassemblyjs/helper-api-error": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz",
- "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz",
+ "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==",
"dev": true
},
"@webassemblyjs/helper-buffer": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz",
- "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz",
+ "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==",
"dev": true
},
"@webassemblyjs/helper-code-frame": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz",
- "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
+ "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
"dev": true,
"requires": {
- "@webassemblyjs/wast-printer": "1.8.5"
+ "@webassemblyjs/wast-printer": "1.9.0"
}
},
"@webassemblyjs/helper-fsm": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz",
- "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz",
+ "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==",
"dev": true
},
"@webassemblyjs/helper-module-context": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz",
- "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz",
+ "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.8.5",
- "mamacro": "0.0.3"
+ "@webassemblyjs/ast": "1.9.0"
}
},
"@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz",
- "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz",
+ "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==",
"dev": true
},
"@webassemblyjs/helper-wasm-section": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz",
- "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz",
+ "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.8.5",
- "@webassemblyjs/helper-buffer": "1.8.5",
- "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
- "@webassemblyjs/wasm-gen": "1.8.5"
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0"
}
},
"@webassemblyjs/ieee754": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz",
- "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz",
+ "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==",
"dev": true,
"requires": {
"@xtuc/ieee754": "1.2.0"
}
},
"@webassemblyjs/leb128": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz",
- "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz",
+ "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==",
"dev": true,
"requires": {
"@xtuc/long": "4.2.2"
}
},
"@webassemblyjs/utf8": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz",
- "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz",
+ "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==",
"dev": true
},
"@webassemblyjs/wasm-edit": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz",
- "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz",
+ "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.8.5",
- "@webassemblyjs/helper-buffer": "1.8.5",
- "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
- "@webassemblyjs/helper-wasm-section": "1.8.5",
- "@webassemblyjs/wasm-gen": "1.8.5",
- "@webassemblyjs/wasm-opt": "1.8.5",
- "@webassemblyjs/wasm-parser": "1.8.5",
- "@webassemblyjs/wast-printer": "1.8.5"
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/helper-wasm-section": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0",
+ "@webassemblyjs/wasm-opt": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0",
+ "@webassemblyjs/wast-printer": "1.9.0"
}
},
"@webassemblyjs/wasm-gen": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz",
- "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz",
+ "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.8.5",
- "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
- "@webassemblyjs/ieee754": "1.8.5",
- "@webassemblyjs/leb128": "1.8.5",
- "@webassemblyjs/utf8": "1.8.5"
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/ieee754": "1.9.0",
+ "@webassemblyjs/leb128": "1.9.0",
+ "@webassemblyjs/utf8": "1.9.0"
}
},
"@webassemblyjs/wasm-opt": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz",
- "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz",
+ "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.8.5",
- "@webassemblyjs/helper-buffer": "1.8.5",
- "@webassemblyjs/wasm-gen": "1.8.5",
- "@webassemblyjs/wasm-parser": "1.8.5"
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0"
}
},
"@webassemblyjs/wasm-parser": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz",
- "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz",
+ "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.8.5",
- "@webassemblyjs/helper-api-error": "1.8.5",
- "@webassemblyjs/helper-wasm-bytecode": "1.8.5",
- "@webassemblyjs/ieee754": "1.8.5",
- "@webassemblyjs/leb128": "1.8.5",
- "@webassemblyjs/utf8": "1.8.5"
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-api-error": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/ieee754": "1.9.0",
+ "@webassemblyjs/leb128": "1.9.0",
+ "@webassemblyjs/utf8": "1.9.0"
}
},
"@webassemblyjs/wast-parser": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz",
- "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz",
+ "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.8.5",
- "@webassemblyjs/floating-point-hex-parser": "1.8.5",
- "@webassemblyjs/helper-api-error": "1.8.5",
- "@webassemblyjs/helper-code-frame": "1.8.5",
- "@webassemblyjs/helper-fsm": "1.8.5",
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/floating-point-hex-parser": "1.9.0",
+ "@webassemblyjs/helper-api-error": "1.9.0",
+ "@webassemblyjs/helper-code-frame": "1.9.0",
+ "@webassemblyjs/helper-fsm": "1.9.0",
"@xtuc/long": "4.2.2"
}
},
"@webassemblyjs/wast-printer": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz",
- "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz",
+ "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.8.5",
- "@webassemblyjs/wast-parser": "1.8.5",
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/wast-parser": "1.9.0",
"@xtuc/long": "4.2.2"
}
},
@@ -750,9 +1182,9 @@
"integrity": "sha1-6fbGvvVn/WNepBYqsU3TKedKpt4="
},
"abab": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
- "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz",
+ "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==",
"dev": true
},
"abbrev": {
@@ -766,30 +1198,29 @@
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
"integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
"requires": {
- "mime-types": "2.1.24",
+ "mime-types": "2.1.26",
"negotiator": "0.6.2"
}
},
"acorn": {
- "version": "5.7.3",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz",
- "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==",
- "dev": true
+ "version": "5.7.4",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz",
+ "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg=="
},
"acorn-globals": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.3.tgz",
- "integrity": "sha512-vkR40VwS2SYO98AIeFvzWWh+xyc2qi9s7OoXSFEGIP/rOJKzjnhykaZJNnHdoq4BL2gGxI5EZOU16z896EYnOQ==",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz",
+ "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==",
"dev": true,
"requires": {
- "acorn": "6.3.0",
+ "acorn": "6.4.1",
"acorn-walk": "6.2.0"
},
"dependencies": {
"acorn": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz",
- "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==",
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
+ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
"dev": true
}
}
@@ -825,7 +1256,7 @@
"requires": {
"assert": "1.5.0",
"camelcase": "1.2.1",
- "loader-utils": "1.2.3",
+ "loader-utils": "1.4.0",
"lodash.assign": "4.2.0",
"lodash.defaults": "3.1.2",
"object-path": "0.9.2",
@@ -864,13 +1295,12 @@
}
},
"ajv": {
- "version": "6.10.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
- "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
- "dev": true,
+ "version": "6.12.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+ "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
"requires": {
- "fast-deep-equal": "2.0.1",
- "fast-json-stable-stringify": "2.0.0",
+ "fast-deep-equal": "3.1.1",
+ "fast-json-stable-stringify": "2.1.0",
"json-schema-traverse": "0.4.1",
"uri-js": "4.2.2"
}
@@ -887,6 +1317,16 @@
"integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==",
"dev": true
},
+ "align-text": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
+ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
+ "requires": {
+ "kind-of": "3.2.2",
+ "longest": "1.0.1",
+ "repeat-string": "1.6.1"
+ }
+ },
"alphanum-sort": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
@@ -896,8 +1336,7 @@
"amdefine": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
- "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
- "dev": true
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
},
"ansi-colors": {
"version": "3.2.4",
@@ -960,6 +1399,117 @@
"default-require-extensions": "1.0.0"
}
},
+ "appirio-tech-api-schemas": {
+ "version": "5.0.70",
+ "resolved": "https://registry.npmjs.org/appirio-tech-api-schemas/-/appirio-tech-api-schemas-5.0.70.tgz",
+ "integrity": "sha1-3RtCG/rw8PSokKRTgHSlVYDQy8s=",
+ "requires": {
+ "auto-config-fake-server": "2.0.604"
+ }
+ },
+ "appirio-tech-client-app-layer": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/appirio-tech-client-app-layer/-/appirio-tech-client-app-layer-0.1.3.tgz",
+ "integrity": "sha1-uO5YdHMM2r209RE8NMQvwOsxoOs=",
+ "requires": {
+ "axios": "0.8.1",
+ "history": "1.17.0",
+ "html-webpack-plugin": "1.7.0",
+ "humps": "0.6.0",
+ "isomorphic-fetch": "2.2.1",
+ "jwt-decode": "1.5.1",
+ "lodash": "4.17.15",
+ "normalizr": "1.4.1",
+ "q": "1.5.1",
+ "react": "0.14.9",
+ "react-dom": "0.14.9",
+ "react-redux": "4.4.10",
+ "react-router": "1.0.3",
+ "redux": "3.7.2",
+ "redux-form": "4.2.2",
+ "redux-logger": "2.10.2",
+ "redux-router": "1.0.0",
+ "redux-thunk": "0.1.0"
+ },
+ "dependencies": {
+ "axios": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.8.1.tgz",
+ "integrity": "sha1-4Or+wPNGE5Un3Dt5/cv/gDSiQEU=",
+ "requires": {
+ "follow-redirects": "0.0.7"
+ }
+ },
+ "history": {
+ "version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/history/-/history-1.17.0.tgz",
+ "integrity": "sha1-xUg8qlodH+oAoafY0ZuHQBZxHSk=",
+ "requires": {
+ "deep-equal": "1.1.1",
+ "invariant": "2.2.4",
+ "query-string": "3.0.3",
+ "warning": "2.1.0"
+ }
+ },
+ "query-string": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.3.tgz",
+ "integrity": "sha1-ri4UtNBQcdTpuetIc8NbDc1C5jg=",
+ "requires": {
+ "strict-uri-encode": "1.1.0"
+ }
+ },
+ "react": {
+ "version": "0.14.9",
+ "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz",
+ "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=",
+ "requires": {
+ "envify": "3.4.1",
+ "fbjs": "0.6.1"
+ }
+ },
+ "react-dom": {
+ "version": "0.14.9",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.9.tgz",
+ "integrity": "sha1-BQZKPc8PsYgKOyv8nVjFXY2fYpM="
+ },
+ "react-redux": {
+ "version": "4.4.10",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.10.tgz",
+ "integrity": "sha512-tjL0Bmpkj75Td0k+lXlF8Fc8a9GuXFv/3ahUOCXExWs/jhsKiQeTffdH0j5byejCGCRL4tvGFYlrwBF1X/Aujg==",
+ "requires": {
+ "create-react-class": "15.6.3",
+ "hoist-non-react-statics": "3.3.2",
+ "invariant": "2.2.4",
+ "lodash": "4.17.15",
+ "loose-envify": "1.4.0",
+ "prop-types": "15.7.2"
+ }
+ },
+ "react-router": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-1.0.3.tgz",
+ "integrity": "sha1-mA7KoFW4bkfIZUjCMq4FqIpB8Lc=",
+ "requires": {
+ "invariant": "2.2.4",
+ "warning": "2.1.0"
+ }
+ },
+ "redux-thunk": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-0.1.0.tgz",
+ "integrity": "sha1-jjR2BoCLNb+Kkn30YW9v7RAYJuU="
+ },
+ "warning": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz",
+ "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE=",
+ "requires": {
+ "loose-envify": "1.4.0"
+ }
+ }
+ }
+ },
"aproba": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
@@ -973,7 +1523,7 @@
"dev": true,
"requires": {
"delegates": "1.0.0",
- "readable-stream": "2.3.6"
+ "readable-stream": "2.3.7"
}
},
"argparse": {
@@ -992,7 +1542,7 @@
"dev": true,
"requires": {
"ast-types-flow": "0.0.7",
- "commander": "2.20.0"
+ "commander": "2.20.3"
}
},
"arr-diff": {
@@ -1039,13 +1589,14 @@
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
"array-includes": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
- "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=",
+ "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.13.0"
+ "es-abstract": "1.17.5",
+ "is-string": "1.0.5"
}
},
"array-union": {
@@ -1069,17 +1620,31 @@
"integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=",
"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.5"
+ }
+ },
"arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
"dev": true
},
+ "asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
+ },
"asn1": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
"integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
- "dev": true,
"requires": {
"safer-buffer": "2.1.2"
}
@@ -1091,7 +1656,7 @@
"dev": true,
"requires": {
"bn.js": "4.11.8",
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"minimalistic-assert": "1.0.1"
}
},
@@ -1108,8 +1673,7 @@
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
},
"asset-require-hook": {
"version": "1.2.0",
@@ -1128,6 +1692,12 @@
"integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
"dev": true
},
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
"json5": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
@@ -1154,6 +1724,11 @@
"integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
"dev": true
},
+ "ast-types": {
+ "version": "0.9.6",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz",
+ "integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk="
+ },
"ast-types-flow": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
@@ -1196,8 +1771,7 @@
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
- "dev": true
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"atob": {
"version": "2.1.2",
@@ -1205,6 +1779,14 @@
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
"dev": true
},
+ "attr-accept": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-1.1.3.tgz",
+ "integrity": "sha512-iT40nudw8zmCweivz6j58g+RT33I4KbaIvRUhjNmDwO2WmsQUxFEZZYZ5w3vXe5x5MX9D7mfvA/XaLOZYFR9EQ==",
+ "requires": {
+ "core-js": "2.6.11"
+ }
+ },
"auth0-js": {
"version": "6.8.4",
"resolved": "https://registry.npmjs.org/auth0-js/-/auth0-js-6.8.4.tgz",
@@ -1225,6 +1807,14 @@
}
}
},
+ "auto-config-fake-server": {
+ "version": "2.0.604",
+ "resolved": "https://registry.npmjs.org/auto-config-fake-server/-/auto-config-fake-server-2.0.604.tgz",
+ "integrity": "sha1-FY5RTIR5nRQ5iNw/w7mpkwnNhkY=",
+ "requires": {
+ "sinon": "2.0.0-pre"
+ }
+ },
"autoprefixer": {
"version": "8.6.5",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.5.tgz",
@@ -1232,7 +1822,7 @@
"dev": true,
"requires": {
"browserslist": "3.2.8",
- "caniuse-lite": "1.0.30000989",
+ "caniuse-lite": "1.0.30001038",
"normalize-range": "0.1.2",
"num2fraction": "1.2.2",
"postcss": "6.0.23",
@@ -1242,24 +1832,27 @@
"aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
- "dev": true
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
},
"aws4": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
- "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
- "dev": true
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
+ "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
},
- "axobject-query": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz",
- "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==",
- "dev": true,
+ "axios": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.12.0.tgz",
+ "integrity": "sha1-uQewIhzDTsHJ+sGOx/B935V4W6Q=",
"requires": {
- "ast-types-flow": "0.0.7"
+ "follow-redirects": "0.0.7"
}
},
+ "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-cli": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz",
@@ -1271,10 +1864,10 @@
"babel-register": "6.26.0",
"babel-runtime": "6.26.0",
"chokidar": "1.7.0",
- "commander": "2.20.0",
- "convert-source-map": "1.6.0",
+ "commander": "2.20.3",
+ "convert-source-map": "1.7.0",
"fs-readdir-recursive": "1.1.0",
- "glob": "7.1.4",
+ "glob": "7.1.6",
"lodash": "4.17.15",
"output-file-sync": "1.1.2",
"path-is-absolute": "1.0.1",
@@ -1289,10 +1882,24 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
@@ -1367,7 +1974,7 @@
"babel-traverse": "6.26.0",
"babel-types": "6.26.0",
"babylon": "6.18.0",
- "convert-source-map": "1.6.0",
+ "convert-source-map": "1.7.0",
"debug": "2.6.9",
"json5": "0.5.1",
"lodash": "4.17.15",
@@ -1384,7 +1991,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1467,7 +2074,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1502,7 +2109,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1531,7 +2138,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1560,7 +2167,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1590,7 +2197,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1620,7 +2227,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1649,7 +2256,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1679,7 +2286,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1710,7 +2317,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1738,7 +2345,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1766,7 +2373,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1794,7 +2401,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1823,7 +2430,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1854,7 +2461,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1886,7 +2493,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1914,7 +2521,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1943,8 +2550,8 @@
"dev": true,
"requires": {
"find-cache-dir": "1.0.0",
- "loader-utils": "1.2.3",
- "mkdirp": "0.5.1"
+ "loader-utils": "1.4.0",
+ "mkdirp": "0.5.4"
}
},
"babel-messages": {
@@ -1962,7 +2569,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -1989,7 +2596,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2008,7 +2615,7 @@
"dev": true,
"requires": {
"css-modules-require-hook": "4.2.3",
- "mkdirp": "0.5.1"
+ "mkdirp": "0.5.4"
}
},
"babel-plugin-dynamic-import-node": {
@@ -2030,7 +2637,7 @@
"babel-traverse": "6.26.0",
"babylon": "6.18.0",
"lodash.isplainobject": "4.0.6",
- "resolve": "1.12.0",
+ "resolve": "1.15.1",
"svgo": "0.7.2"
}
},
@@ -2059,10 +2666,26 @@
"dev": true,
"requires": {
"find-babel-config": "1.2.0",
- "glob": "7.1.4",
+ "glob": "7.1.6",
"pkg-up": "2.0.0",
"reselect": "3.0.1",
- "resolve": "1.12.0"
+ "resolve": "1.15.1"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ }
}
},
"babel-plugin-react-css-modules": {
@@ -2071,13 +2694,13 @@
"integrity": "sha512-pU7owkj5IO6rlleRzaF27ME/eCG7ZhO+EM+WfthfeykYe0eZzK51JD7nlcUr4UU9y4Zlc+QsTH+139L7PSwYtQ==",
"dev": true,
"requires": {
- "ajv": "6.10.2",
+ "ajv": "6.12.0",
"ajv-keywords": "3.4.1",
"babel-plugin-syntax-jsx": "6.18.0",
"babel-types": "6.26.0",
"generic-names": "1.0.3",
"postcss": "6.0.23",
- "postcss-modules": "1.4.1",
+ "postcss-modules": "1.5.0",
"postcss-modules-extract-imports": "1.2.1",
"postcss-modules-local-by-default": "1.2.0",
"postcss-modules-parser": "1.1.1",
@@ -2177,7 +2800,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2206,7 +2829,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2236,7 +2859,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2267,7 +2890,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2294,7 +2917,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2321,7 +2944,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2352,7 +2975,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2387,7 +3010,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2415,7 +3038,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2442,7 +3065,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2470,7 +3093,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2497,7 +3120,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2526,7 +3149,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2553,7 +3176,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2582,7 +3205,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2612,7 +3235,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2641,7 +3264,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2670,7 +3293,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2698,7 +3321,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2730,7 +3353,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2758,7 +3381,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2785,7 +3408,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2814,7 +3437,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2841,7 +3464,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2868,7 +3491,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2897,10 +3520,16 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
+ "jsesc": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "dev": true
+ },
"regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
@@ -2917,6 +3546,21 @@
"regjsgen": "0.2.0",
"regjsparser": "0.1.5"
}
+ },
+ "regjsgen": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
+ "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "dev": true
+ },
+ "regjsparser": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
+ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "dev": true,
+ "requires": {
+ "jsesc": "0.5.0"
+ }
}
}
},
@@ -2937,7 +3581,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2965,7 +3609,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -2993,7 +3637,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -3021,7 +3665,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -3048,7 +3692,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -3077,7 +3721,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -3105,7 +3749,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -3133,7 +3777,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -3169,7 +3813,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -3197,7 +3841,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -3216,7 +3860,7 @@
"dev": true,
"requires": {
"babel-runtime": "6.26.0",
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.10.5"
},
"dependencies": {
@@ -3226,7 +3870,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
},
"dependencies": {
@@ -3358,10 +4002,10 @@
"requires": {
"babel-core": "6.26.3",
"babel-runtime": "6.26.0",
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"home-or-tmp": "2.0.0",
"lodash": "4.17.15",
- "mkdirp": "0.5.1",
+ "mkdirp": "0.5.4",
"source-map-support": "0.4.18"
},
"dependencies": {
@@ -3371,7 +4015,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -3388,7 +4032,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.6.1.tgz",
"integrity": "sha1-eIuUtvY04luRvWxd9y1GdFevsAA=",
"requires": {
- "core-js": "2.6.9"
+ "core-js": "2.6.11"
}
},
"babel-template": {
@@ -3410,7 +4054,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -3445,7 +4089,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -3490,7 +4134,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -3517,16 +4161,15 @@
}
},
"bail": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.4.tgz",
- "integrity": "sha512-S8vuDB4w6YpRhICUDET3guPlQpaJl7od94tpZ0Fvnyp+MKW/HyDTcRDck+29C9g+d/qQHnddRH3+94kZdrW0Ww==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz",
+ "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==",
"dev": true
},
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
- "dev": true
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"base": {
"version": "0.11.2",
@@ -3558,7 +4201,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-data-descriptor": {
@@ -3567,7 +4210,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-descriptor": {
@@ -3578,7 +4221,7 @@
"requires": {
"is-accessor-descriptor": "1.0.0",
"is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"isobject": {
@@ -3588,9 +4231,9 @@
"dev": true
},
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
}
}
@@ -3600,11 +4243,15 @@
"resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz",
"integrity": "sha1-4pf2DX7BAUp6lxo568ipjAtoHnA="
},
+ "base62": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/base62/-/base62-1.2.8.tgz",
+ "integrity": "sha512-V6YHUbjLxN1ymqNLb1DPHoU1CpfdL7d2YTIp5W3U4hhoG4hhxNmsFDs66M9EXxBiSEke5Bt5dwdfMwwZF70iLA=="
+ },
"base64-js": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
- "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
- "dev": true
+ "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
},
"basic-auth": {
"version": "2.0.1",
@@ -3618,7 +4265,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
- "dev": true,
"requires": {
"tweetnacl": "0.14.5"
}
@@ -3635,20 +4281,34 @@
"integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
"dev": true
},
+ "bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
"block-stream": {
"version": "0.0.9",
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
"dev": true,
"requires": {
- "inherits": "2.0.3"
+ "inherits": "2.0.4"
}
},
"bluebird": {
"version": "3.5.5",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz",
- "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==",
- "dev": true
+ "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w=="
+ },
+ "blueimp-tmpl": {
+ "version": "2.5.7",
+ "resolved": "https://registry.npmjs.org/blueimp-tmpl/-/blueimp-tmpl-2.5.7.tgz",
+ "integrity": "sha1-M/sSwTnWVRKuQK+9ji3vjZ25ZJA="
},
"bn.js": {
"version": "4.11.8",
@@ -3693,11 +4353,25 @@
}
}
},
+ "bourbon": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/bourbon/-/bourbon-4.3.4.tgz",
+ "integrity": "sha1-TaOAAp6SwMj5dkx3lFGhNLEefMM="
+ },
+ "bourbon-neat": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/bourbon-neat/-/bourbon-neat-1.7.2.tgz",
+ "integrity": "sha1-oiixJ0R53iR20yszFTEHylBTzz0="
+ },
+ "bowser": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.9.0.tgz",
+ "integrity": "sha512-2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA=="
+ },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dev": true,
"requires": {
"balanced-match": "1.0.0",
"concat-map": "0.0.1"
@@ -3721,9 +4395,9 @@
"dev": true
},
"browser-process-hrtime": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz",
- "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz",
+ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==",
"dev": true
},
"browser-resolve": {
@@ -3753,7 +4427,7 @@
"cipher-base": "1.0.4",
"create-hash": "1.2.0",
"evp_bytestokey": "1.0.3",
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"safe-buffer": "5.1.2"
}
},
@@ -3775,8 +4449,8 @@
"dev": true,
"requires": {
"cipher-base": "1.0.4",
- "des.js": "1.0.0",
- "inherits": "2.0.3",
+ "des.js": "1.0.1",
+ "inherits": "2.0.4",
"safe-buffer": "5.1.2"
}
},
@@ -3800,9 +4474,9 @@
"browserify-rsa": "4.0.1",
"create-hash": "1.2.0",
"create-hmac": "1.1.7",
- "elliptic": "6.5.0",
- "inherits": "2.0.3",
- "parse-asn1": "5.1.4"
+ "elliptic": "6.5.2",
+ "inherits": "2.0.4",
+ "parse-asn1": "5.1.5"
}
},
"browserify-zlib": {
@@ -3811,7 +4485,7 @@
"integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
"dev": true,
"requires": {
- "pako": "1.0.10"
+ "pako": "1.0.11"
}
},
"browserslist": {
@@ -3820,38 +4494,35 @@
"integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==",
"dev": true,
"requires": {
- "caniuse-lite": "1.0.30000989",
- "electron-to-chromium": "1.3.238"
+ "caniuse-lite": "1.0.30001038",
+ "electron-to-chromium": "1.3.390"
}
},
"bser": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.0.tgz",
- "integrity": "sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg==",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
"dev": true,
"requires": {
"node-int64": "0.4.0"
}
},
"buffer": {
- "version": "4.9.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
- "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
+ "version": "4.9.2",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz",
+ "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==",
"dev": true,
"requires": {
"base64-js": "1.3.1",
"ieee754": "1.1.13",
"isarray": "1.0.0"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- }
}
},
+ "buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
+ },
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
@@ -3870,26 +4541,37 @@
"integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
"dev": true
},
+ "bunyan": {
+ "version": "1.8.12",
+ "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.12.tgz",
+ "integrity": "sha1-8VDw9nSKvdcq6uhPBEA74u8RN5c=",
+ "requires": {
+ "dtrace-provider": "0.8.8",
+ "moment": "2.24.0",
+ "mv": "2.1.1",
+ "safe-json-stringify": "1.2.0"
+ }
+ },
"bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
},
"cacache": {
- "version": "12.0.3",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz",
- "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==",
+ "version": "12.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
+ "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
"dev": true,
"requires": {
"bluebird": "3.5.5",
- "chownr": "1.1.2",
- "figgy-pudding": "3.5.1",
- "glob": "7.1.4",
- "graceful-fs": "4.2.2",
+ "chownr": "1.1.4",
+ "figgy-pudding": "3.5.2",
+ "glob": "7.1.6",
+ "graceful-fs": "4.2.3",
"infer-owner": "1.0.4",
"lru-cache": "5.1.1",
"mississippi": "3.0.0",
- "mkdirp": "0.5.1",
+ "mkdirp": "0.5.4",
"move-concurrently": "1.0.1",
"promise-inflight": "1.0.1",
"rimraf": "2.7.1",
@@ -3898,13 +4580,27 @@
"y18n": "4.0.0"
},
"dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
"lru-cache": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true,
"requires": {
- "yallist": "3.0.3"
+ "yallist": "3.1.1"
}
},
"y18n": {
@@ -3914,9 +4610,9 @@
"dev": true
},
"yallist": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
- "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true
}
}
@@ -4012,6 +4708,15 @@
"integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=",
"dev": true
},
+ "camel-case": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.2.tgz",
+ "integrity": "sha1-Gsp8TRlTWaLOmVV5NDPG5VQlEfI=",
+ "requires": {
+ "sentence-case": "1.1.3",
+ "upper-case": "1.1.3"
+ }
+ },
"camelcase": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
@@ -4048,7 +4753,7 @@
"dev": true,
"requires": {
"browserslist": "1.7.7",
- "caniuse-db": "1.0.30000989",
+ "caniuse-db": "1.0.30001038",
"lodash.memoize": "4.1.2",
"lodash.uniq": "4.5.0"
},
@@ -4059,22 +4764,22 @@
"integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
"dev": true,
"requires": {
- "caniuse-db": "1.0.30000989",
- "electron-to-chromium": "1.3.238"
+ "caniuse-db": "1.0.30001038",
+ "electron-to-chromium": "1.3.390"
}
}
}
},
"caniuse-db": {
- "version": "1.0.30000989",
- "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000989.tgz",
- "integrity": "sha512-5pkU/t9nueoBgELZOCpK+wN4wK6MkIz1Q9lGZSgLwg4xR8EhLY9r0qj6T2bUI8Cq9pGbioEar+Zqgosk5fpbjg==",
+ "version": "1.0.30001038",
+ "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30001038.tgz",
+ "integrity": "sha512-yeQ2l99M9upOgMIRfZEdes6HuPbQiRZIMBumUwdXeEQz+faSXUZtZ8xeyEdU+TlJckH09M5NtM038sjKsRa2ow==",
"dev": true
},
"caniuse-lite": {
- "version": "1.0.30000989",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz",
- "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==",
+ "version": "1.0.30001038",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz",
+ "integrity": "sha512-zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ==",
"dev": true
},
"capture-exit": {
@@ -4089,8 +4794,7 @@
"caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
- "dev": true
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
},
"catharsis": {
"version": "0.8.11",
@@ -4102,11 +4806,25 @@
}
},
"ccount": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.4.tgz",
- "integrity": "sha512-fpZ81yYfzentuieinmGnphk0pLkOTMm6MZdVqwd77ROvhko6iujLNGrHH5E7utq3ygWklwfmwuG+A7P+NpqT6w==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/ccount/-/ccount-1.0.5.tgz",
+ "integrity": "sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw==",
"dev": true
},
+ "center-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
+ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
+ "requires": {
+ "align-text": "0.1.4",
+ "lazy-cache": "1.0.4"
+ }
+ },
+ "chain-function": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.1.tgz",
+ "integrity": "sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg=="
+ },
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -4117,28 +4835,56 @@
"supports-color": "5.5.0"
}
},
+ "change-case": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/change-case/-/change-case-2.3.1.tgz",
+ "integrity": "sha1-LE/ePwY7tB0AzWjg1aCdthy+iU8=",
+ "requires": {
+ "camel-case": "1.2.2",
+ "constant-case": "1.1.2",
+ "dot-case": "1.1.2",
+ "is-lower-case": "1.1.3",
+ "is-upper-case": "1.1.2",
+ "lower-case": "1.1.4",
+ "lower-case-first": "1.0.2",
+ "param-case": "1.1.2",
+ "pascal-case": "1.1.2",
+ "path-case": "1.1.2",
+ "sentence-case": "1.1.3",
+ "snake-case": "1.1.2",
+ "swap-case": "1.1.2",
+ "title-case": "1.1.2",
+ "upper-case": "1.1.3",
+ "upper-case-first": "1.1.2"
+ }
+ },
+ "change-emitter": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz",
+ "integrity": "sha1-6LL+PX8at9aaMhma/5HqaTFAlRU="
+ },
"character-entities": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.3.tgz",
- "integrity": "sha512-yB4oYSAa9yLcGyTbB4ItFwHw43QHdH129IJ5R+WvxOkWlyFnR5FAaBNnUq4mcxsTVZGh28bHoeTHMKXH1wZf3w==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz",
+ "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==",
"dev": true
},
"character-entities-html4": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.3.tgz",
- "integrity": "sha512-SwnyZ7jQBCRHELk9zf2CN5AnGEc2nA+uKMZLHvcqhpPprjkYhiLn0DywMHgN5ttFZuITMATbh68M6VIVKwJbcg==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-1.1.4.tgz",
+ "integrity": "sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g==",
"dev": true
},
"character-entities-legacy": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.3.tgz",
- "integrity": "sha512-YAxUpPoPwxYFsslbdKkhrGnXAtXoHNgYjlBM3WMXkWGTl5RsY3QmOyhwAgL8Nxm9l5LBThXGawxKPn68y6/fww==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz",
+ "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==",
"dev": true
},
"character-reference-invalid": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.3.tgz",
- "integrity": "sha512-VOq6PRzQBam/8Jm6XBGk2fNEnHXAdGd6go0rtd4weAGECBamHDwwCQSOT12TACIYUZegUXnV6xBXqUssijtxIg==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz",
+ "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==",
"dev": true
},
"chardet": {
@@ -4147,6 +4893,11 @@
"integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=",
"dev": true
},
+ "charenc": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
+ "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc="
+ },
"chokidar": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
@@ -4156,9 +4907,9 @@
"requires": {
"anymatch": "1.3.2",
"async-each": "1.0.3",
- "fsevents": "1.2.9",
+ "fsevents": "1.2.12",
"glob-parent": "2.0.0",
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"is-binary-path": "1.0.1",
"is-glob": "2.0.1",
"path-is-absolute": "1.0.1",
@@ -4166,9 +4917,9 @@
}
},
"chownr": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.2.tgz",
- "integrity": "sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
"dev": true
},
"chrome-trace-event": {
@@ -4177,7 +4928,7 @@
"integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==",
"dev": true,
"requires": {
- "tslib": "1.10.0"
+ "tslib": "1.11.1"
}
},
"ci-info": {
@@ -4192,7 +4943,7 @@
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
"dev": true,
"requires": {
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"safe-buffer": "5.1.2"
}
},
@@ -4267,6 +5018,38 @@
}
}
},
+ "classnames": {
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
+ "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
+ },
+ "clean-css": {
+ "version": "3.4.28",
+ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz",
+ "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=",
+ "requires": {
+ "commander": "2.8.1",
+ "source-map": "0.4.4"
+ },
+ "dependencies": {
+ "commander": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
+ "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
+ "requires": {
+ "graceful-readlink": "1.0.1"
+ }
+ },
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ }
+ }
+ },
"cli-cursor": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
@@ -4323,14 +5106,14 @@
"dev": true,
"requires": {
"is-plain-object": "2.0.4",
- "kind-of": "6.0.2",
+ "kind-of": "6.0.3",
"shallow-clone": "3.0.1"
},
"dependencies": {
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
}
}
@@ -4381,10 +5164,15 @@
}
}
},
+ "coffee-script": {
+ "version": "1.12.7",
+ "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz",
+ "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw=="
+ },
"collapse-white-space": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.5.tgz",
- "integrity": "sha512-703bOOmytCYAX9cXYqoikYIx6twmFCXsnzRQheBcTG3nzKYBR4P/+wkYeH+Mvj7qUz8zZDtdyzbxfnEi/kYzRQ==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-1.0.6.tgz",
+ "integrity": "sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ==",
"dev": true
},
"collect-all": {
@@ -4461,7 +5249,6 @@
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dev": true,
"requires": {
"delayed-stream": "1.0.0"
}
@@ -4546,10 +5333,9 @@
}
},
"commander": {
- "version": "2.20.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
- "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
- "dev": true
+ "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=="
},
"common-sequence": {
"version": "1.0.2",
@@ -4563,18 +5349,47 @@
"integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
"dev": true
},
+ "commoner": {
+ "version": "0.10.8",
+ "resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz",
+ "integrity": "sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=",
+ "requires": {
+ "commander": "2.20.3",
+ "detective": "4.7.1",
+ "glob": "5.0.15",
+ "graceful-fs": "4.2.3",
+ "iconv-lite": "0.4.24",
+ "mkdirp": "0.5.4",
+ "private": "0.1.8",
+ "q": "1.5.1",
+ "recast": "0.11.23"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "requires": {
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ }
+ }
+ },
"component-emitter": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
- "dev": true
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
},
"compressible": {
- "version": "2.0.17",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.17.tgz",
- "integrity": "sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==",
+ "version": "2.0.18",
+ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
+ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
"requires": {
- "mime-db": "1.40.0"
+ "mime-db": "1.43.0"
}
},
"compression": {
@@ -4584,7 +5399,7 @@
"requires": {
"accepts": "1.3.7",
"bytes": "3.0.0",
- "compressible": "2.0.17",
+ "compressible": "2.0.18",
"debug": "2.6.9",
"on-headers": "1.0.2",
"safe-buffer": "5.1.2",
@@ -4614,8 +5429,7 @@
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "dev": true
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"concat-stream": {
"version": "1.6.2",
@@ -4624,17 +5438,17 @@
"dev": true,
"requires": {
"buffer-from": "1.1.1",
- "inherits": "2.0.3",
- "readable-stream": "2.3.6",
+ "inherits": "2.0.4",
+ "readable-stream": "2.3.7",
"typedarray": "0.0.6"
}
},
"config": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/config/-/config-3.2.2.tgz",
- "integrity": "sha512-rOsfIOAcG82AWouK4/vBS/OKz3UPl2T/kP0irExmXJJOoWg2CmdfPLdx56bCoMUMFNh+7soQkQWCUC8DyemiwQ==",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/config/-/config-3.3.1.tgz",
+ "integrity": "sha512-+2/KaaaAzdwUBE3jgZON11L1ggLLhpf2FsGrfqYFHZW22ySGv/HqYIXrBwKKvn+XZh1UBUjHwAcrfsSkSygT+Q==",
"requires": {
- "json5": "1.0.1"
+ "json5": "2.1.2"
}
},
"config-master": {
@@ -4655,19 +5469,16 @@
}
},
"confusing-browser-globals": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.8.tgz",
- "integrity": "sha512-lI7asCibVJ6Qd3FGU7mu4sfG4try4LX3+GVS+Gv8UlrEf2AeW57piecapnog2UHZSbcX/P/1UDWVaTsblowlZg==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz",
+ "integrity": "sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw==",
"dev": true
},
"console-browserify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
- "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
- "dev": true,
- "requires": {
- "date-now": "0.1.4"
- }
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
+ "dev": true
},
"console-control-strings": {
"version": "1.1.0",
@@ -4675,6 +5486,15 @@
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
"dev": true
},
+ "constant-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.2.tgz",
+ "integrity": "sha1-jsLKW6ND4Aqjjb9OIA/VrJB+/WM=",
+ "requires": {
+ "snake-case": "1.1.2",
+ "upper-case": "1.1.3"
+ }
+ },
"constants-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
@@ -4706,25 +5526,25 @@
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
},
"convert-source-map": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz",
- "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==",
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz",
+ "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==",
"dev": true,
"requires": {
"safe-buffer": "5.1.2"
}
},
"cookie": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
- "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
},
"cookie-parser": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.4.tgz",
- "integrity": "sha512-lo13tqF3JEtFO7FyA49CqbhaFkskRJ0u/UAiINgrIXeRCY41c88/zxtrECl8AKH3B0hj9q10+h3Kt8I7KlW4tw==",
+ "version": "1.4.5",
+ "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.5.tgz",
+ "integrity": "sha512-f13bPUj/gG/5mDr+xLmSxxDsB9DQiTIfhJS/sqjrmfAWiAN+x2O4i/XguTL9yDZ+/IFDanJ+5x7hC4CXT9Tdzw==",
"requires": {
- "cookie": "0.3.1",
+ "cookie": "0.4.0",
"cookie-signature": "1.0.6"
}
},
@@ -4733,6 +5553,11 @@
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
+ "cookiejar": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
+ "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA=="
+ },
"copy-concurrently": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
@@ -4742,7 +5567,7 @@
"aproba": "1.2.0",
"fs-write-stream-atomic": "1.0.10",
"iferr": "0.1.5",
- "mkdirp": "0.5.1",
+ "mkdirp": "0.5.4",
"rimraf": "2.7.1",
"run-queue": "1.0.3"
}
@@ -4754,15 +5579,20 @@
"dev": true
},
"core-js": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz",
- "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A=="
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz",
+ "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg=="
+ },
+ "core-js-pure": {
+ "version": "3.6.4",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.4.tgz",
+ "integrity": "sha512-epIhRLkXdgv32xIUFaaAry2wdxZYBi6bgM7cB136dzzXXa+dFyRLTZeLUJxnd8ShrmyVXBub63n2NHo2JAt8Cw==",
+ "dev": true
},
"core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
- "dev": true
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
"cosmiconfig": {
"version": "5.2.1",
@@ -4811,7 +5641,7 @@
"dev": true,
"requires": {
"bn.js": "4.11.8",
- "elliptic": "6.5.0"
+ "elliptic": "6.5.2"
}
},
"create-hash": {
@@ -4821,7 +5651,7 @@
"dev": true,
"requires": {
"cipher-base": "1.0.4",
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"md5.js": "1.3.5",
"ripemd160": "2.0.2",
"sha.js": "2.4.11"
@@ -4835,12 +5665,43 @@
"requires": {
"cipher-base": "1.0.4",
"create-hash": "1.2.0",
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"ripemd160": "2.0.2",
"safe-buffer": "5.1.2",
"sha.js": "2.4.11"
}
},
+ "create-react-class": {
+ "version": "15.6.3",
+ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz",
+ "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==",
+ "requires": {
+ "fbjs": "0.8.17",
+ "loose-envify": "1.4.0",
+ "object-assign": "4.1.1"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+ "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+ },
+ "fbjs": {
+ "version": "0.8.17",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
+ "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
+ "requires": {
+ "core-js": "1.2.7",
+ "isomorphic-fetch": "2.2.1",
+ "loose-envify": "1.4.0",
+ "object-assign": "4.1.1",
+ "promise": "7.3.1",
+ "setimmediate": "1.0.5",
+ "ua-parser-js": "0.7.21"
+ }
+ }
+ }
+ },
"cross-fetch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.4.tgz",
@@ -4856,11 +5717,16 @@
"integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
"dev": true,
"requires": {
- "lru-cache": "4.1.5",
+ "lru-cache": "4.0.2",
"shebang-command": "1.2.0",
"which": "1.3.1"
}
},
+ "crypt": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
+ "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs="
+ },
"crypto-browserify": {
"version": "3.12.0",
"resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
@@ -4873,22 +5739,27 @@
"create-hash": "1.2.0",
"create-hmac": "1.1.7",
"diffie-hellman": "5.0.3",
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"pbkdf2": "3.0.17",
"public-encrypt": "4.0.3",
"randombytes": "2.1.0",
"randomfill": "1.0.4"
}
},
+ "crypto-js": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz",
+ "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q=="
+ },
"css": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
"integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
"dev": true,
"requires": {
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"source-map": "0.6.1",
- "source-map-resolve": "0.5.2",
+ "source-map-resolve": "0.5.3",
"urix": "0.1.0"
}
},
@@ -4898,6 +5769,22 @@
"integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
"dev": true
},
+ "css-in-js-utils": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz",
+ "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==",
+ "requires": {
+ "hyphenate-style-name": "1.0.3",
+ "isobject": "3.0.1"
+ },
+ "dependencies": {
+ "isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
+ }
+ }
+ },
"css-loader": {
"version": "0.28.11",
"resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz",
@@ -4905,10 +5792,10 @@
"dev": true,
"requires": {
"babel-code-frame": "6.26.0",
- "css-selector-tokenizer": "0.7.1",
+ "css-selector-tokenizer": "0.7.2",
"cssnano": "3.10.0",
"icss-utils": "2.1.0",
- "loader-utils": "1.2.3",
+ "loader-utils": "1.4.0",
"lodash.camelcase": "4.3.0",
"object-assign": "4.1.1",
"postcss": "5.2.18",
@@ -4961,7 +5848,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
},
@@ -5128,20 +6015,20 @@
}
},
"css-selector-tokenizer": {
- "version": "0.7.1",
- "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz",
- "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==",
+ "version": "0.7.2",
+ "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz",
+ "integrity": "sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==",
"dev": true,
"requires": {
- "cssesc": "0.1.0",
+ "cssesc": "3.0.0",
"fastparse": "1.1.2",
- "regexpu-core": "1.0.0"
+ "regexpu-core": "4.7.0"
}
},
"cssesc": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz",
- "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
"dev": true
},
"cssnano": {
@@ -5197,7 +6084,7 @@
"dev": true,
"requires": {
"browserslist": "1.7.7",
- "caniuse-db": "1.0.30000989",
+ "caniuse-db": "1.0.30001038",
"normalize-range": "0.1.2",
"num2fraction": "1.2.2",
"postcss": "5.2.18",
@@ -5210,8 +6097,8 @@
"integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
"dev": true,
"requires": {
- "caniuse-db": "1.0.30000989",
- "electron-to-chromium": "1.3.238"
+ "caniuse-db": "1.0.30001038",
+ "electron-to-chromium": "1.3.390"
}
},
"chalk": {
@@ -5248,7 +6135,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -5313,22 +6200,21 @@
}
},
"cyclist": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
- "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
+ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
"dev": true
},
"damerau-levenshtein": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.5.tgz",
- "integrity": "sha512-CBCRqFnpu715iPmw1KrdOrzRqbdFwQTwAWyyyYS42+iAgHCuXZ+/TdMgQkUENPomxEz9z1BEzuQU2Xw0kUuAgA==",
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz",
+ "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==",
"dev": true
},
"dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "dev": true,
"requires": {
"assert-plus": "1.0.0"
}
@@ -5344,15 +6230,15 @@
"integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==",
"dev": true,
"requires": {
- "abab": "2.0.0",
+ "abab": "2.0.3",
"whatwg-mimetype": "2.3.0",
- "whatwg-url": "7.0.0"
+ "whatwg-url": "7.1.0"
},
"dependencies": {
"whatwg-url": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz",
- "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz",
+ "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==",
"dev": true,
"requires": {
"lodash.sortby": "4.7.0",
@@ -5362,12 +6248,6 @@
}
}
},
- "date-now": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz",
- "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=",
- "dev": true
- },
"debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
@@ -5379,8 +6259,7 @@
"decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "dev": true
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
},
"decamelize-keys": {
"version": "1.1.0",
@@ -5398,6 +6277,31 @@
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
"dev": true
},
+ "deep-diff": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.4.tgz",
+ "integrity": "sha1-qsXDmVIjar5fA3ojSQYLoBsArkg="
+ },
+ "deep-equal": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz",
+ "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==",
+ "requires": {
+ "is-arguments": "1.0.4",
+ "is-date-object": "1.0.2",
+ "is-regex": "1.0.5",
+ "object-is": "1.0.2",
+ "object-keys": "1.1.1",
+ "regexp.prototype.flags": "1.3.0"
+ },
+ "dependencies": {
+ "object-keys": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
+ }
+ }
+ },
"deep-extend": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
@@ -5433,7 +6337,6 @@
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
"integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "dev": true,
"requires": {
"object-keys": "1.1.1"
},
@@ -5441,8 +6344,7 @@
"object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
}
}
},
@@ -5462,7 +6364,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-data-descriptor": {
@@ -5471,7 +6373,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-descriptor": {
@@ -5482,7 +6384,7 @@
"requires": {
"is-accessor-descriptor": "1.0.0",
"is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"isobject": {
@@ -5492,9 +6394,9 @@
"dev": true
},
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
}
}
@@ -5502,14 +6404,12 @@
"defined": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
- "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=",
- "dev": true
+ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM="
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "dev": true
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"delegates": {
"version": "1.0.0",
@@ -5523,12 +6423,12 @@
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
},
"des.js": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
- "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
+ "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
"dev": true,
"requires": {
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"minimalistic-assert": "1.0.1"
}
},
@@ -5558,6 +6458,15 @@
"integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=",
"dev": true
},
+ "detective": {
+ "version": "4.7.1",
+ "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz",
+ "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==",
+ "requires": {
+ "acorn": "5.7.4",
+ "defined": "1.0.0"
+ }
+ },
"diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
@@ -5605,9 +6514,9 @@
"cache-point": "0.4.1",
"common-sequence": "1.0.2",
"file-set": "2.0.1",
- "handlebars": "4.1.2",
+ "handlebars": "4.7.3",
"marked": "0.3.19",
- "object-get": "2.1.0",
+ "object-get": "2.1.1",
"reduce-flatten": "1.0.1",
"reduce-unique": "1.0.0",
"reduce-without": "1.0.1",
@@ -5646,10 +6555,18 @@
"esutils": "2.0.3"
}
},
+ "dom-helpers": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz",
+ "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==",
+ "requires": {
+ "@babel/runtime": "7.9.2"
+ }
+ },
"dom-serializer": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz",
- "integrity": "sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==",
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
+ "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==",
"dev": true,
"requires": {
"domelementtype": "2.0.1",
@@ -5712,7 +6629,7 @@
"integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==",
"dev": true,
"requires": {
- "dom-serializer": "0.2.1",
+ "dom-serializer": "0.2.2",
"domelementtype": "1.3.1"
}
},
@@ -5721,13 +6638,30 @@
"resolved": "https://registry.npmjs.org/dont-sniff-mimetype/-/dont-sniff-mimetype-1.1.0.tgz",
"integrity": "sha512-ZjI4zqTaxveH2/tTlzS1wFp+7ncxNZaIEWYg3lzZRHkKf5zPT/MnEG6WL0BhHMJUabkh8GeU5NL5j+rEUCb7Ug=="
},
+ "dot-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.2.tgz",
+ "integrity": "sha1-HnOCaQDeKNbeVIC8HeMdCEKwa+w=",
+ "requires": {
+ "sentence-case": "1.1.3"
+ }
+ },
"dot-prop": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
- "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz",
+ "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==",
"dev": true,
"requires": {
- "is-obj": "1.0.1"
+ "is-obj": "2.0.0"
+ }
+ },
+ "dtrace-provider": {
+ "version": "0.8.8",
+ "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz",
+ "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==",
+ "optional": true,
+ "requires": {
+ "nan": "2.14.0"
}
},
"duplexify": {
@@ -5736,20 +6670,34 @@
"integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==",
"dev": true,
"requires": {
- "end-of-stream": "1.4.1",
- "inherits": "2.0.3",
- "readable-stream": "2.3.6",
- "stream-shift": "1.0.0"
+ "end-of-stream": "1.4.4",
+ "inherits": "2.0.4",
+ "readable-stream": "2.3.7",
+ "stream-shift": "1.0.1"
}
},
"ecc-jsbn": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
- "dev": true,
"requires": {
"jsbn": "0.1.1",
"safer-buffer": "2.1.2"
+ },
+ "dependencies": {
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+ }
+ }
+ },
+ "ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "requires": {
+ "safe-buffer": "5.1.2"
}
},
"ee-first": {
@@ -5758,22 +6706,22 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"electron-to-chromium": {
- "version": "1.3.238",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.238.tgz",
- "integrity": "sha512-k+s6EIiSTgfOm7WiMlGBMMMtBQXSui8OfLN1sXU3RohJOuLGVq0lVm7hXyDIDBcbPM0MeZabAdIPQOSEZT3ZLg==",
+ "version": "1.3.390",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.390.tgz",
+ "integrity": "sha512-4RvbM5x+002gKI8sltkqWEk5pptn0UnzekUx8RTThAMPDSb8jjpm6SwGiSnEve7f85biyZl8DMXaipaCxDjXag==",
"dev": true
},
"elliptic": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz",
- "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==",
+ "version": "6.5.2",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz",
+ "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==",
"dev": true,
"requires": {
"bn.js": "4.11.8",
"brorand": "1.1.0",
"hash.js": "1.1.7",
"hmac-drbg": "1.0.1",
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"minimalistic-assert": "1.0.1",
"minimalistic-crypto-utils": "1.0.1"
}
@@ -5785,9 +6733,9 @@
"dev": true
},
"emojis-list": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
- "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
"dev": true
},
"encodeurl": {
@@ -5804,23 +6752,35 @@
}
},
"end-of-stream": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
- "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"dev": true,
"requires": {
"once": "1.4.0"
}
},
"enhanced-resolve": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
- "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz",
+ "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
- "memory-fs": "0.4.1",
+ "graceful-fs": "4.2.3",
+ "memory-fs": "0.5.0",
"tapable": "1.1.3"
+ },
+ "dependencies": {
+ "memory-fs": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
+ "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
+ "dev": true,
+ "requires": {
+ "errno": "0.1.7",
+ "readable-stream": "2.3.7"
+ }
+ }
}
},
"entities": {
@@ -5829,6 +6789,15 @@
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==",
"dev": true
},
+ "envify": {
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/envify/-/envify-3.4.1.tgz",
+ "integrity": "sha1-1xIjKejfFoi6dxsSUBkXyc5cvOg=",
+ "requires": {
+ "jstransform": "11.0.3",
+ "through": "2.3.8"
+ }
+ },
"errno": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
@@ -5848,38 +6817,45 @@
}
},
"es-abstract": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz",
- "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==",
- "dev": true,
+ "version": "1.17.5",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
+ "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
"requires": {
- "es-to-primitive": "1.2.0",
+ "es-to-primitive": "1.2.1",
"function-bind": "1.1.1",
"has": "1.0.3",
- "is-callable": "1.1.4",
- "is-regex": "1.0.4",
- "object-keys": "1.1.1"
+ "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"
},
"dependencies": {
"object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
}
}
},
"es-to-primitive": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
- "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
- "dev": true,
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
"requires": {
- "is-callable": "1.1.4",
- "is-date-object": "1.0.1",
- "is-symbol": "1.0.2"
+ "is-callable": "1.1.5",
+ "is-date-object": "1.0.2",
+ "is-symbol": "1.0.3"
}
},
+ "es6-promise": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
+ },
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -5891,22 +6867,22 @@
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"escodegen": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz",
- "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz",
+ "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==",
"dev": true,
"requires": {
- "esprima": "3.1.3",
+ "esprima": "4.0.1",
"estraverse": "4.3.0",
"esutils": "2.0.3",
- "optionator": "0.8.2",
+ "optionator": "0.8.3",
"source-map": "0.6.1"
},
"dependencies": {
"esprima": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
- "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
+ "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
}
}
@@ -5927,11 +6903,11 @@
"eslint-scope": "3.7.1",
"eslint-visitor-keys": "1.1.0",
"espree": "3.5.4",
- "esquery": "1.0.1",
+ "esquery": "1.2.0",
"esutils": "2.0.3",
"file-entry-cache": "2.0.0",
"functional-red-black-tree": "1.0.1",
- "glob": "7.1.4",
+ "glob": "7.1.6",
"globals": "11.12.0",
"ignore": "3.3.10",
"imurmurhash": "0.1.4",
@@ -5942,9 +6918,9 @@
"levn": "0.3.0",
"lodash": "4.17.15",
"minimatch": "3.0.4",
- "mkdirp": "0.5.1",
+ "mkdirp": "0.5.4",
"natural-compare": "1.4.0",
- "optionator": "0.8.2",
+ "optionator": "0.8.3",
"path-is-inside": "1.0.2",
"pluralize": "7.0.0",
"progress": "2.0.3",
@@ -5965,7 +6941,7 @@
"requires": {
"co": "4.6.0",
"fast-deep-equal": "1.1.0",
- "fast-json-stable-stringify": "2.0.0",
+ "fast-json-stable-stringify": "2.1.0",
"json-schema-traverse": "0.3.1"
}
},
@@ -5996,6 +6972,20 @@
"integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
"dev": true
},
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
"globals": {
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
@@ -6043,7 +7033,7 @@
"requires": {
"eslint-config-airbnb-base": "13.2.0",
"object.assign": "4.1.0",
- "object.entries": "1.1.0"
+ "object.entries": "1.1.1"
}
},
"eslint-config-airbnb-base": {
@@ -6052,9 +7042,9 @@
"integrity": "sha512-1mg/7eoB4AUeB0X1c/ho4vb2gYkNH8Trr/EgCT/aGmKhhG+F6vF5s8+iRBlWAzFIAphxIdp3YfEKgEl0f9Xg+w==",
"dev": true,
"requires": {
- "confusing-browser-globals": "1.0.8",
+ "confusing-browser-globals": "1.0.9",
"object.assign": "4.1.0",
- "object.entries": "1.1.0"
+ "object.entries": "1.1.1"
}
},
"eslint-import-resolver-babel-module": {
@@ -6064,17 +7054,17 @@
"dev": true,
"requires": {
"pkg-up": "2.0.0",
- "resolve": "1.12.0"
+ "resolve": "1.15.1"
}
},
"eslint-import-resolver-node": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz",
- "integrity": "sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q==",
+ "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.12.0"
+ "resolve": "1.15.1"
},
"dependencies": {
"debug": {
@@ -6095,9 +7085,9 @@
}
},
"eslint-module-utils": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.4.1.tgz",
- "integrity": "sha512-H6DOj+ejw7Tesdgbfs4jeS4YMFrT8uI8xwd1gtQqXssaR0EQ26L+2O/w6wkYFy2MymON0fTwHmXBvvfLNZVZEw==",
+ "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",
@@ -6122,22 +7112,23 @@
}
},
"eslint-plugin-import": {
- "version": "2.18.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.18.2.tgz",
- "integrity": "sha512-5ohpsHAiUBRNaBWAF08izwUGlbrJoJJ+W9/TBwsGoR1MnlgfwMIKrFeSjWbt6moabiXW9xNvtFz+97KHRfI4HQ==",
+ "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-includes": "3.1.1",
+ "array.prototype.flat": "1.2.3",
"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",
+ "eslint-import-resolver-node": "0.3.3",
+ "eslint-module-utils": "2.6.0",
"has": "1.0.3",
"minimatch": "3.0.4",
- "object.values": "1.1.0",
+ "object.values": "1.1.1",
"read-pkg-up": "2.0.0",
- "resolve": "1.12.0"
+ "resolve": "1.15.1"
},
"dependencies": {
"debug": {
@@ -6159,12 +7150,6 @@
"isarray": "1.0.0"
}
},
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -6185,32 +7170,43 @@
"integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==",
"dev": true,
"requires": {
- "@babel/runtime": "7.5.5",
+ "@babel/runtime": "7.9.2",
"aria-query": "3.0.0",
- "array-includes": "3.0.3",
+ "array-includes": "3.1.1",
"ast-types-flow": "0.0.7",
- "axobject-query": "2.0.2",
- "damerau-levenshtein": "1.0.5",
+ "axobject-query": "2.1.2",
+ "damerau-levenshtein": "1.0.6",
"emoji-regex": "7.0.3",
"has": "1.0.3",
- "jsx-ast-utils": "2.2.1"
+ "jsx-ast-utils": "2.2.3"
}
},
"eslint-plugin-react": {
- "version": "7.14.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz",
- "integrity": "sha512-EzdyyBWC4Uz2hPYBiEJrKCUi2Fn+BJ9B/pJQcjw5X+x/H2Nm59S4MJIvL4O5NEE0+WbnQwEBxWY03oUk+Bc3FA==",
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz",
+ "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==",
"dev": true,
"requires": {
- "array-includes": "3.0.3",
+ "array-includes": "3.1.1",
"doctrine": "2.1.0",
"has": "1.0.3",
- "jsx-ast-utils": "2.2.1",
- "object.entries": "1.1.0",
- "object.fromentries": "2.0.0",
- "object.values": "1.1.0",
+ "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.12.0"
+ "resolve": "1.15.1",
+ "semver": "6.3.0",
+ "string.prototype.matchall": "4.0.2",
+ "xregexp": "4.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "dev": true
+ }
}
},
"eslint-scope": {
@@ -6235,7 +7231,7 @@
"integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
"dev": true,
"requires": {
- "acorn": "5.7.3",
+ "acorn": "5.7.4",
"acorn-jsx": "3.0.1"
}
},
@@ -6246,12 +7242,20 @@
"dev": true
},
"esquery": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz",
- "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz",
+ "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==",
"dev": true,
"requires": {
- "estraverse": "4.3.0"
+ "estraverse": "5.0.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.0.0.tgz",
+ "integrity": "sha512-j3acdrMzqrxmJTNj5dbr1YbjacrYgAxVMeF0gK16E3j494mOe7xygM/ZLIguEQ0ETwAg2hlJCtHRGav+y0Ny5A==",
+ "dev": true
+ }
}
},
"esrecurse": {
@@ -6281,9 +7285,9 @@
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
},
"events": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz",
- "integrity": "sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
+ "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==",
"dev": true
},
"evp_bytestokey": {
@@ -6306,18 +7310,39 @@
}
},
"execa": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
- "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
"dev": true,
"requires": {
- "cross-spawn": "5.1.0",
- "get-stream": "3.0.0",
+ "cross-spawn": "6.0.5",
+ "get-stream": "4.1.0",
"is-stream": "1.1.0",
"npm-run-path": "2.0.2",
"p-finally": "1.0.0",
- "signal-exit": "3.0.2",
+ "signal-exit": "3.0.3",
"strip-eof": "1.0.0"
+ },
+ "dependencies": {
+ "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.5",
+ "path-key": "2.0.1",
+ "semver": "5.7.1",
+ "shebang-command": "1.2.0",
+ "which": "1.3.1"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ }
}
},
"execall": {
@@ -6329,11 +7354,6 @@
"clone-regexp": "1.0.1"
}
},
- "exenv": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz",
- "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50="
- },
"exit": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
@@ -6410,7 +7430,7 @@
"on-finished": "2.3.0",
"parseurl": "1.3.3",
"path-to-regexp": "0.1.7",
- "proxy-addr": "2.0.5",
+ "proxy-addr": "2.0.6",
"qs": "6.7.0",
"range-parser": "1.2.1",
"safe-buffer": "5.1.2",
@@ -6423,11 +7443,6 @@
"vary": "1.1.2"
},
"dependencies": {
- "cookie": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
- "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
- },
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -6451,8 +7466,7 @@
"extend": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
- "dev": true
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
},
"extend-shallow": {
"version": "3.0.2",
@@ -6498,14 +7512,12 @@
"extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
- "dev": true
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
},
"fast-deep-equal": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
- "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
- "dev": true
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+ "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
},
"fast-glob": {
"version": "2.2.7",
@@ -6517,7 +7529,7 @@
"@nodelib/fs.stat": "1.1.3",
"glob-parent": "3.1.0",
"is-glob": "4.0.1",
- "merge2": "1.2.4",
+ "merge2": "1.3.0",
"micromatch": "3.1.10"
},
"dependencies": {
@@ -6749,7 +7761,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-data-descriptor": {
@@ -6758,7 +7770,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-descriptor": {
@@ -6769,7 +7781,7 @@
"requires": {
"is-accessor-descriptor": "1.0.0",
"is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-extglob": {
@@ -6814,9 +7826,9 @@
"dev": true
},
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
},
"micromatch": {
@@ -6832,7 +7844,7 @@
"extend-shallow": "3.0.2",
"extglob": "2.0.4",
"fragment-cache": "0.2.1",
- "kind-of": "6.0.2",
+ "kind-of": "6.0.3",
"nanomatch": "1.2.13",
"object.pick": "1.3.0",
"regex-not": "1.0.2",
@@ -6849,10 +7861,9 @@
}
},
"fast-json-stable-stringify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
- "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
- "dev": true
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
"fast-levenshtein": {
"version": "2.0.6",
@@ -6867,12 +7878,36 @@
"dev": true
},
"fb-watchman": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
- "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz",
+ "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==",
"dev": true,
"requires": {
- "bser": "2.1.0"
+ "bser": "2.1.1"
+ }
+ },
+ "fbjs": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz",
+ "integrity": "sha1-lja3cF9bqWhNRLcveDISVK/IYPc=",
+ "requires": {
+ "core-js": "1.2.7",
+ "loose-envify": "1.4.0",
+ "promise": "7.3.1",
+ "ua-parser-js": "0.7.21",
+ "whatwg-fetch": "0.9.0"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+ "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+ },
+ "whatwg-fetch": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-0.9.0.tgz",
+ "integrity": "sha1-DjaExsuZlbQ+/J3wPkw2XZX9nMA="
+ }
}
},
"feature-policy": {
@@ -6881,9 +7916,9 @@
"integrity": "sha512-ZtijOTFN7TzCujt1fnNhfWPFPSHeZkesff9AXZj+UEjYBynWNUIYpC87Ve4wHzyexQsImicLu7WsC2LHq7/xrQ=="
},
"figgy-pudding": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz",
- "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==",
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
+ "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
"dev": true
},
"figures": {
@@ -6911,7 +7946,7 @@
"integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==",
"dev": true,
"requires": {
- "loader-utils": "1.2.3",
+ "loader-utils": "1.4.0",
"schema-utils": "0.4.7"
}
},
@@ -6922,7 +7957,7 @@
"dev": true,
"requires": {
"array-back": "2.0.0",
- "glob": "7.1.4"
+ "glob": "7.1.6"
},
"dependencies": {
"array-back": {
@@ -6934,6 +7969,20 @@
"typical": "2.6.1"
}
},
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
"typical": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
@@ -6942,6 +7991,13 @@
}
}
},
+ "file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
+ "dev": true,
+ "optional": true
+ },
"filename-regex": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz",
@@ -6954,8 +8010,24 @@
"integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=",
"dev": true,
"requires": {
- "glob": "7.1.4",
+ "glob": "7.1.6",
"minimatch": "3.0.4"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ }
}
},
"fill-range": {
@@ -7265,7 +8337,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-data-descriptor": {
@@ -7274,7 +8346,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-descriptor": {
@@ -7285,7 +8357,7 @@
"requires": {
"is-accessor-descriptor": "1.0.0",
"is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-extglob": {
@@ -7330,9 +8402,9 @@
"dev": true
},
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
},
"micromatch": {
@@ -7348,7 +8420,7 @@
"extend-shallow": "3.0.2",
"extglob": "2.0.4",
"fragment-cache": "0.2.1",
- "kind-of": "6.0.2",
+ "kind-of": "6.0.3",
"nanomatch": "1.2.13",
"object.pick": "1.3.0",
"regex-not": "1.0.2",
@@ -7371,32 +8443,46 @@
"dev": true,
"requires": {
"circular-json": "0.3.3",
- "graceful-fs": "4.2.2",
+ "graceful-fs": "4.2.3",
"rimraf": "2.6.3",
"write": "0.2.1"
},
"dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
"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.4"
+ "glob": "7.1.6"
}
}
}
},
"flatted": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz",
- "integrity": "sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
+ "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
"dev": true
},
"flatten": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
- "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz",
+ "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==",
"dev": true
},
"flush-write-stream": {
@@ -7405,8 +8491,8 @@
"integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
"dev": true,
"requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.3.6"
+ "inherits": "2.0.4",
+ "readable-stream": "2.3.7"
}
},
"flux-standard-action": {
@@ -7417,6 +8503,30 @@
"lodash": "4.17.15"
}
},
+ "follow-redirects": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.7.tgz",
+ "integrity": "sha1-NLkLqyqRGqNHVx2pDyK9NuzYqRk=",
+ "requires": {
+ "debug": "2.6.9",
+ "stream-consume": "0.1.1"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@@ -7435,18 +8545,42 @@
"forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
- "dev": true
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
},
"form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "dev": true,
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz",
+ "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==",
"requires": {
"asynckit": "0.4.0",
"combined-stream": "1.0.8",
- "mime-types": "2.1.24"
+ "mime-types": "2.1.26"
+ }
+ },
+ "form-data-to-object": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/form-data-to-object/-/form-data-to-object-0.2.0.tgz",
+ "integrity": "sha1-96jmjd2RChEApl4lrGpIQUP/gWg="
+ },
+ "formatio": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz",
+ "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=",
+ "requires": {
+ "samsam": "1.1.2"
+ }
+ },
+ "formidable": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz",
+ "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q=="
+ },
+ "formsy-react": {
+ "version": "0.19.5",
+ "resolved": "https://registry.npmjs.org/formsy-react/-/formsy-react-0.19.5.tgz",
+ "integrity": "sha1-dgpXrAETRC499MMJw2ON2SlX544=",
+ "requires": {
+ "form-data-to-object": "0.2.0"
}
},
"forwarded": {
@@ -7479,8 +8613,8 @@
"integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
"dev": true,
"requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.3.6"
+ "inherits": "2.0.4",
+ "readable-stream": "2.3.7"
}
},
"fs-readdir-recursive": {
@@ -7501,10 +8635,10 @@
"integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
+ "graceful-fs": "4.2.3",
"iferr": "0.1.5",
"imurmurhash": "0.1.4",
- "readable-stream": "2.3.6"
+ "readable-stream": "2.3.7"
}
},
"fs.realpath": {
@@ -7514,531 +8648,619 @@
"dev": true
},
"fsevents": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz",
- "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
+ "version": "1.2.12",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz",
+ "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==",
"dev": true,
"optional": true,
"requires": {
+ "bindings": "1.5.0",
"nan": "2.14.0",
- "node-pre-gyp": "0.12.0"
+ "node-pre-gyp": "0.14.0"
},
"dependencies": {
"abbrev": {
"version": "1.1.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true,
"optional": true
},
"ansi-regex": {
"version": "2.1.1",
- "bundled": true,
- "dev": true
+ "resolved": false,
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "dev": true,
+ "optional": true
},
"aproba": {
"version": "1.2.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
"dev": true,
"optional": true
},
"are-we-there-yet": {
"version": "1.1.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"dev": true,
"optional": true,
"requires": {
- "delegates": "1.0.0",
- "readable-stream": "2.3.6"
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
}
},
"balanced-match": {
"version": "1.0.0",
- "bundled": true,
- "dev": true
+ "resolved": false,
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "dev": true,
+ "optional": true
},
"brace-expansion": {
"version": "1.1.11",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
+ "optional": true,
"requires": {
- "balanced-match": "1.0.0",
+ "balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
"chownr": {
- "version": "1.1.1",
- "bundled": true,
+ "version": "1.1.4",
+ "resolved": false,
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
"dev": true,
"optional": true
},
"code-point-at": {
"version": "1.1.0",
- "bundled": true,
- "dev": true
+ "resolved": false,
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "dev": true,
+ "optional": true
},
"concat-map": {
"version": "0.0.1",
- "bundled": true,
- "dev": true
+ "resolved": false,
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true,
+ "optional": true
},
"console-control-strings": {
"version": "1.1.0",
- "bundled": true,
- "dev": true
+ "resolved": false,
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "dev": true,
+ "optional": true
},
"core-util-is": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"dev": true,
"optional": true
},
"debug": {
- "version": "4.1.1",
- "bundled": true,
+ "version": "3.2.6",
+ "resolved": false,
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"optional": true,
"requires": {
- "ms": "2.1.1"
+ "ms": "^2.1.1"
}
},
"deep-extend": {
"version": "0.6.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"dev": true,
"optional": true
},
"delegates": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
"dev": true,
"optional": true
},
"detect-libc": {
"version": "1.0.3",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
"dev": true,
"optional": true
},
"fs-minipass": {
- "version": "1.2.5",
- "bundled": true,
+ "version": "1.2.7",
+ "resolved": false,
+ "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
"dev": true,
"optional": true,
"requires": {
- "minipass": "2.3.5"
+ "minipass": "^2.6.0"
}
},
"fs.realpath": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"dev": true,
"optional": true
},
"gauge": {
"version": "2.7.4",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"dev": true,
"optional": true,
"requires": {
- "aproba": "1.2.0",
- "console-control-strings": "1.1.0",
- "has-unicode": "2.0.1",
- "object-assign": "4.1.1",
- "signal-exit": "3.0.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wide-align": "1.1.3"
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
}
},
"glob": {
- "version": "7.1.3",
- "bundled": true,
+ "version": "7.1.6",
+ "resolved": false,
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
"dev": true,
"optional": true,
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
"has-unicode": {
"version": "2.0.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
"dev": true,
"optional": true
},
"iconv-lite": {
"version": "0.4.24",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dev": true,
"optional": true,
"requires": {
- "safer-buffer": "2.1.2"
+ "safer-buffer": ">= 2.1.2 < 3"
}
},
"ignore-walk": {
- "version": "3.0.1",
- "bundled": true,
+ "version": "3.0.3",
+ "resolved": false,
+ "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==",
"dev": true,
"optional": true,
"requires": {
- "minimatch": "3.0.4"
+ "minimatch": "^3.0.4"
}
},
"inflight": {
"version": "1.0.6",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"dev": true,
"optional": true,
"requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
"inherits": {
- "version": "2.0.3",
- "bundled": true,
- "dev": true
+ "version": "2.0.4",
+ "resolved": false,
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true,
+ "optional": true
},
"ini": {
"version": "1.3.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"dev": true,
"optional": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"dev": true,
+ "optional": true,
"requires": {
- "number-is-nan": "1.0.1"
+ "number-is-nan": "^1.0.0"
}
},
"isarray": {
"version": "1.0.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
"dev": true,
"optional": true
},
"minimatch": {
"version": "3.0.4",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"dev": true,
+ "optional": true,
"requires": {
- "brace-expansion": "1.1.11"
+ "brace-expansion": "^1.1.7"
}
},
"minimist": {
- "version": "0.0.8",
- "bundled": true,
- "dev": true
+ "version": "1.2.5",
+ "resolved": false,
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
+ "dev": true,
+ "optional": true
},
"minipass": {
- "version": "2.3.5",
- "bundled": true,
+ "version": "2.9.0",
+ "resolved": false,
+ "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
"dev": true,
+ "optional": true,
"requires": {
- "safe-buffer": "5.1.2",
- "yallist": "3.0.3"
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
}
},
"minizlib": {
- "version": "1.2.1",
- "bundled": true,
+ "version": "1.3.3",
+ "resolved": false,
+ "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
"dev": true,
"optional": true,
"requires": {
- "minipass": "2.3.5"
+ "minipass": "^2.9.0"
}
},
"mkdirp": {
- "version": "0.5.1",
- "bundled": true,
+ "version": "0.5.3",
+ "resolved": false,
+ "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==",
"dev": true,
+ "optional": true,
"requires": {
- "minimist": "0.0.8"
+ "minimist": "^1.2.5"
}
},
"ms": {
- "version": "2.1.1",
- "bundled": true,
+ "version": "2.1.2",
+ "resolved": false,
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true,
"optional": true
},
"needle": {
- "version": "2.3.0",
- "bundled": true,
+ "version": "2.3.3",
+ "resolved": false,
+ "integrity": "sha512-EkY0GeSq87rWp1hoq/sH/wnTWgFVhYlnIkbJ0YJFfRgEFlz2RraCjBpFQ+vrEgEdp0ThfyHADmkChEhcb7PKyw==",
"dev": true,
"optional": true,
"requires": {
- "debug": "4.1.1",
- "iconv-lite": "0.4.24",
- "sax": "1.2.4"
+ "debug": "^3.2.6",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
}
},
"node-pre-gyp": {
- "version": "0.12.0",
- "bundled": true,
+ "version": "0.14.0",
+ "resolved": false,
+ "integrity": "sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==",
"dev": true,
"optional": true,
"requires": {
- "detect-libc": "1.0.3",
- "mkdirp": "0.5.1",
- "needle": "2.3.0",
- "nopt": "4.0.1",
- "npm-packlist": "1.4.1",
- "npmlog": "4.1.2",
- "rc": "1.2.8",
- "rimraf": "2.6.3",
- "semver": "5.7.0",
- "tar": "4.4.8"
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4.4.2"
}
},
"nopt": {
- "version": "4.0.1",
- "bundled": true,
+ "version": "4.0.3",
+ "resolved": false,
+ "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
"dev": true,
"optional": true,
"requires": {
- "abbrev": "1.1.1",
- "osenv": "0.1.5"
+ "abbrev": "1",
+ "osenv": "^0.1.4"
}
},
"npm-bundled": {
- "version": "1.0.6",
- "bundled": true,
+ "version": "1.1.1",
+ "resolved": false,
+ "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==",
+ "dev": true,
+ "optional": true,
+ "requires": {
+ "npm-normalize-package-bin": "^1.0.1"
+ }
+ },
+ "npm-normalize-package-bin": {
+ "version": "1.0.1",
+ "resolved": false,
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
"dev": true,
"optional": true
},
"npm-packlist": {
- "version": "1.4.1",
- "bundled": true,
+ "version": "1.4.8",
+ "resolved": false,
+ "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==",
"dev": true,
"optional": true,
"requires": {
- "ignore-walk": "3.0.1",
- "npm-bundled": "1.0.6"
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1",
+ "npm-normalize-package-bin": "^1.0.1"
}
},
"npmlog": {
"version": "4.1.2",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"dev": true,
"optional": true,
"requires": {
- "are-we-there-yet": "1.1.5",
- "console-control-strings": "1.1.0",
- "gauge": "2.7.4",
- "set-blocking": "2.0.0"
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
}
},
"number-is-nan": {
"version": "1.0.1",
- "bundled": true,
- "dev": true
+ "resolved": false,
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "dev": true,
+ "optional": true
},
"object-assign": {
"version": "4.1.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"dev": true,
"optional": true
},
"once": {
"version": "1.4.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"dev": true,
+ "optional": true,
"requires": {
- "wrappy": "1.0.2"
+ "wrappy": "1"
}
},
"os-homedir": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
"dev": true,
"optional": true
},
"os-tmpdir": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"dev": true,
"optional": true
},
"osenv": {
"version": "0.1.5",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"dev": true,
"optional": true,
"requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
}
},
"path-is-absolute": {
"version": "1.0.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"dev": true,
"optional": true
},
"process-nextick-args": {
- "version": "2.0.0",
- "bundled": true,
+ "version": "2.0.1",
+ "resolved": false,
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
"dev": true,
"optional": true
},
"rc": {
"version": "1.2.8",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"dev": true,
"optional": true,
"requires": {
- "deep-extend": "0.6.0",
- "ini": "1.3.5",
- "minimist": "1.2.0",
- "strip-json-comments": "2.0.1"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "bundled": true,
- "dev": true,
- "optional": true
- }
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
}
},
"readable-stream": {
- "version": "2.3.6",
- "bundled": true,
+ "version": "2.3.7",
+ "resolved": false,
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"dev": true,
"optional": true,
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "2.0.0",
- "safe-buffer": "5.1.2",
- "string_decoder": "1.1.1",
- "util-deprecate": "1.0.2"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
"rimraf": {
- "version": "2.6.3",
- "bundled": true,
+ "version": "2.7.1",
+ "resolved": false,
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dev": true,
"optional": true,
"requires": {
- "glob": "7.1.3"
+ "glob": "^7.1.3"
}
},
"safe-buffer": {
"version": "5.1.2",
- "bundled": true,
- "dev": true
+ "resolved": false,
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "dev": true,
+ "optional": true
},
"safer-buffer": {
"version": "2.1.2",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true,
"optional": true
},
"sax": {
"version": "1.2.4",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
"dev": true,
"optional": true
},
"semver": {
- "version": "5.7.0",
- "bundled": true,
+ "version": "5.7.1",
+ "resolved": false,
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true,
"optional": true
},
"set-blocking": {
"version": "2.0.0",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"dev": true,
"optional": true
},
"signal-exit": {
"version": "3.0.2",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"dev": true,
"optional": true
},
"string-width": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"dev": true,
+ "optional": true,
"requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
}
},
"string_decoder": {
"version": "1.1.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
"optional": true,
"requires": {
- "safe-buffer": "5.1.2"
+ "safe-buffer": "~5.1.0"
}
},
"strip-ansi": {
"version": "3.0.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
+ "optional": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
},
"strip-json-comments": {
"version": "2.0.1",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"dev": true,
"optional": true
},
"tar": {
- "version": "4.4.8",
- "bundled": true,
+ "version": "4.4.13",
+ "resolved": false,
+ "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
"dev": true,
"optional": true,
"requires": {
- "chownr": "1.1.1",
- "fs-minipass": "1.2.5",
- "minipass": "2.3.5",
- "minizlib": "1.2.1",
- "mkdirp": "0.5.1",
- "safe-buffer": "5.1.2",
- "yallist": "3.0.3"
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.8.6",
+ "minizlib": "^1.2.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.3"
}
},
"util-deprecate": {
"version": "1.0.2",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"dev": true,
"optional": true
},
"wide-align": {
"version": "1.1.3",
- "bundled": true,
+ "resolved": false,
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"dev": true,
"optional": true,
"requires": {
- "string-width": "1.0.2"
+ "string-width": "^1.0.2 || 2"
}
},
"wrappy": {
"version": "1.0.2",
- "bundled": true,
- "dev": true
+ "resolved": false,
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true,
+ "optional": true
},
"yallist": {
- "version": "3.0.3",
- "bundled": true,
- "dev": true
+ "version": "3.1.1",
+ "resolved": false,
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true,
+ "optional": true
}
}
},
@@ -8048,17 +9270,16 @@
"integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
- "inherits": "2.0.3",
- "mkdirp": "0.5.1",
+ "graceful-fs": "4.2.3",
+ "inherits": "2.0.4",
+ "mkdirp": "0.5.4",
"rimraf": "2.7.1"
}
},
"function-bind": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"functional-red-black-tree": {
"version": "1.0.1",
@@ -8076,7 +9297,7 @@
"console-control-strings": "1.1.0",
"has-unicode": "2.0.1",
"object-assign": "4.1.1",
- "signal-exit": "3.0.2",
+ "signal-exit": "3.0.3",
"string-width": "1.0.2",
"strip-ansi": "3.0.1",
"wide-align": "1.1.3"
@@ -8110,7 +9331,7 @@
"integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
"dev": true,
"requires": {
- "globule": "1.2.1"
+ "globule": "1.3.1"
}
},
"generic-names": {
@@ -8128,6 +9349,12 @@
"integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
"dev": true
},
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
"json5": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
@@ -8148,6 +9375,12 @@
}
}
},
+ "gensync": {
+ "version": "1.0.0-beta.1",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz",
+ "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==",
+ "dev": true
+ },
"get-caller-file": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
@@ -8161,10 +9394,13 @@
"dev": true
},
"get-stream": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
- "dev": true
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "dev": true,
+ "requires": {
+ "pump": "3.0.0"
+ }
},
"get-value": {
"version": "2.0.6",
@@ -8176,20 +9412,18 @@
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
- "dev": true,
"requires": {
"assert-plus": "1.0.0"
}
},
"glob": {
- "version": "7.1.4",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
- "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
- "dev": true,
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
+ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=",
+ "optional": true,
"requires": {
- "fs.realpath": "1.0.0",
"inflight": "1.0.6",
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"minimatch": "3.0.4",
"once": "1.4.0",
"path-is-absolute": "1.0.1"
@@ -8246,14 +9480,14 @@
"dev": true,
"requires": {
"ini": "1.3.5",
- "kind-of": "6.0.2",
+ "kind-of": "6.0.3",
"which": "1.3.1"
},
"dependencies": {
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
}
}
@@ -8274,12 +9508,26 @@
"array-union": "1.0.2",
"dir-glob": "2.2.2",
"fast-glob": "2.2.7",
- "glob": "7.1.4",
+ "glob": "7.1.6",
"ignore": "4.0.6",
"pify": "4.0.1",
"slash": "2.0.0"
},
"dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
"ignore": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
@@ -8307,14 +9555,30 @@
"dev": true
},
"globule": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
- "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz",
+ "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==",
"dev": true,
"requires": {
- "glob": "7.1.4",
+ "glob": "7.1.6",
"lodash": "4.17.15",
"minimatch": "3.0.4"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ }
}
},
"gonzales-pe": {
@@ -8335,10 +9599,14 @@
}
},
"graceful-fs": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
- "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==",
- "dev": true
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz",
+ "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ=="
+ },
+ "graceful-readlink": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
+ "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
},
"growly": {
"version": "1.3.0",
@@ -8347,30 +9615,28 @@
"dev": true
},
"handlebars": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz",
- "integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==",
+ "version": "4.7.3",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.3.tgz",
+ "integrity": "sha512-SRGwSYuNfx8DwHD/6InAPzD6RgeruWLT+B8e8a7gGs8FWgHzlExpTFMEq2IA6QpAfOClpKHy6+8IqTjeBCu6Kg==",
"dev": true,
"requires": {
"neo-async": "2.6.1",
"optimist": "0.6.1",
"source-map": "0.6.1",
- "uglify-js": "3.6.0"
+ "uglify-js": "3.8.1"
}
},
"har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
- "dev": true
+ "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
},
"har-validator": {
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
- "dev": true,
"requires": {
- "ajv": "6.10.2",
+ "ajv": "6.12.0",
"har-schema": "2.0.0"
}
},
@@ -8384,7 +9650,6 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
"requires": {
"function-bind": "1.1.1"
}
@@ -8404,10 +9669,9 @@
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
},
"has-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
- "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
- "dev": true
+ "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=="
},
"has-unicode": {
"version": "2.0.1",
@@ -8481,7 +9745,7 @@
"integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=",
"dev": true,
"requires": {
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"safe-buffer": "5.1.2"
}
},
@@ -8491,14 +9755,19 @@
"integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
"dev": true,
"requires": {
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"minimalistic-assert": "1.0.1"
}
},
+ "he": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.0.0.tgz",
+ "integrity": "sha1-baWyZdfyw7XkgHSRaODhWdBXKNo="
+ },
"helmet": {
- "version": "3.20.0",
- "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.20.0.tgz",
- "integrity": "sha512-Ob+TqmQFZ5f7WgP8kBbAzNPsbf6p1lOj5r+327/ymw/IILWih3wcx9u/u/S8Mwv5wbBkO7Li6x5s23t3COhUKw==",
+ "version": "3.22.0",
+ "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.22.0.tgz",
+ "integrity": "sha512-Xrqicn2nm1ZIUxP3YGuTBmbDL04neKsIT583Sjh0FkiwKDXYCMUqGqC88w3NUvVXtA75JyR2Jn6jw6ZEMOD+ZA==",
"requires": {
"depd": "2.0.0",
"dns-prefetch-control": "0.2.0",
@@ -8507,14 +9776,14 @@
"feature-policy": "0.3.0",
"frameguard": "3.1.0",
"helmet-crossdomain": "0.4.0",
- "helmet-csp": "2.8.0",
+ "helmet-csp": "2.10.0",
"hide-powered-by": "1.1.0",
"hpkp": "2.0.0",
"hsts": "2.2.0",
"ienoopen": "1.1.0",
"nocache": "2.1.0",
"referrer-policy": "1.2.0",
- "x-xss-protection": "1.2.0"
+ "x-xss-protection": "1.3.0"
},
"dependencies": {
"depd": {
@@ -8530,14 +9799,14 @@
"integrity": "sha512-AB4DTykRw3HCOxovD1nPR16hllrVImeFp5VBV9/twj66lJ2nU75DP8FPL0/Jp4jj79JhTfG+pFI2MD02kWJ+fA=="
},
"helmet-csp": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.8.0.tgz",
- "integrity": "sha512-MlCPeM0Sm3pS9RACRihx70VeTHmkQwa7sum9EK1tfw1VZyvFU0dBWym9nHh3CRkTRNlyNm/WFCMvuh9zXkOjNw==",
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/helmet-csp/-/helmet-csp-2.10.0.tgz",
+ "integrity": "sha512-Rz953ZNEFk8sT2XvewXkYN0Ho4GEZdjAZy4stjiEQV3eN7GDxg1QKmYggH7otDyIA7uGA6XnUMVSgeJwbR5X+w==",
"requires": {
+ "bowser": "2.9.0",
"camelize": "1.0.0",
"content-security-policy-builder": "2.1.0",
- "dasherize": "2.0.0",
- "platform": "1.3.5"
+ "dasherize": "2.0.0"
}
},
"hide-powered-by": {
@@ -8546,16 +9815,16 @@
"integrity": "sha512-Io1zA2yOA1YJslkr+AJlWSf2yWFkKjvkcL9Ni1XSUqnGLr/qRQe2UI3Cn/J9MsJht7yEVCe0SscY1HgVMujbgg=="
},
"history": {
- "version": "4.9.0",
- "resolved": "https://registry.npmjs.org/history/-/history-4.9.0.tgz",
- "integrity": "sha512-H2DkjCjXf0Op9OAr6nJ56fcRkTSNrUiv41vNJ6IswJjif6wlpZK0BTfFbi7qK9dXLSYZxkq5lBsj3vUjlYBYZA==",
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
+ "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
"requires": {
- "@babel/runtime": "7.5.5",
+ "@babel/runtime": "7.9.2",
"loose-envify": "1.4.0",
- "resolve-pathname": "2.2.0",
- "tiny-invariant": "1.0.6",
+ "resolve-pathname": "3.0.0",
+ "tiny-invariant": "1.1.0",
"tiny-warning": "1.0.3",
- "value-equal": "0.4.0"
+ "value-equal": "1.0.1"
}
},
"hmac-drbg": {
@@ -8570,11 +9839,11 @@
}
},
"hoist-non-react-statics": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.0.tgz",
- "integrity": "sha512-0XsbTXxgiaCDYDIWFcwkmerZPSwywfUqYmwT4jzewKTQSWoE6FCMoUVOeBJWK3E/CrWbxRG3m5GzY4lnIwGRBA==",
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
+ "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
"requires": {
- "react-is": "16.9.0"
+ "react-is": "16.13.1"
}
},
"home-or-tmp": {
@@ -8597,9 +9866,9 @@
}
},
"hosted-git-info": {
- "version": "2.8.4",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz",
- "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==",
+ "version": "2.8.8",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz",
+ "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==",
"dev": true
},
"hpkp": {
@@ -8643,12 +9912,140 @@
"integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
"dev": true
},
+ "html-minifier": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-1.5.0.tgz",
+ "integrity": "sha1-vrBf2cw0CUWGXBD0Cu30aa9LFTQ=",
+ "requires": {
+ "change-case": "2.3.1",
+ "clean-css": "3.4.28",
+ "commander": "2.9.0",
+ "concat-stream": "1.5.2",
+ "he": "1.0.0",
+ "ncname": "1.0.0",
+ "relateurl": "0.2.7",
+ "uglify-js": "2.6.4"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E="
+ },
+ "camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
+ },
+ "cliui": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
+ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
+ "requires": {
+ "center-align": "0.1.3",
+ "right-align": "0.1.3",
+ "wordwrap": "0.0.2"
+ }
+ },
+ "commander": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
+ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
+ "requires": {
+ "graceful-readlink": "1.0.1"
+ }
+ },
+ "concat-stream": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
+ "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
+ "requires": {
+ "inherits": "2.0.4",
+ "readable-stream": "2.0.6",
+ "typedarray": "0.0.6"
+ }
+ },
+ "process-nextick-args": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
+ },
+ "readable-stream": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
+ "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
+ "requires": {
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.4",
+ "isarray": "1.0.0",
+ "process-nextick-args": "1.0.7",
+ "string_decoder": "0.10.31",
+ "util-deprecate": "1.0.2"
+ }
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+ },
+ "uglify-js": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz",
+ "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=",
+ "requires": {
+ "async": "0.2.10",
+ "source-map": "0.5.7",
+ "uglify-to-browserify": "1.0.2",
+ "yargs": "3.10.0"
+ }
+ },
+ "wordwrap": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
+ "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
+ },
+ "yargs": {
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
+ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "requires": {
+ "camelcase": "1.2.1",
+ "cliui": "2.1.0",
+ "decamelize": "1.2.0",
+ "window-size": "0.1.0"
+ }
+ }
+ }
+ },
"html-tags": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz",
"integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=",
"dev": true
},
+ "html-webpack-plugin": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-1.7.0.tgz",
+ "integrity": "sha1-zQxzx5G9DIxFsk4wAb4zSmt0KXs=",
+ "requires": {
+ "bluebird": "3.5.5",
+ "blueimp-tmpl": "2.5.7",
+ "html-minifier": "1.5.0",
+ "lodash": "3.10.1"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
+ }
+ }
+ },
"htmlparser2": {
"version": "3.10.1",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz",
@@ -8659,17 +10056,17 @@
"domhandler": "2.4.2",
"domutils": "1.7.0",
"entities": "1.1.2",
- "inherits": "2.0.3",
- "readable-stream": "3.4.0"
+ "inherits": "2.0.4",
+ "readable-stream": "3.6.0"
},
"dependencies": {
"readable-stream": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
- "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"dev": true,
"requires": {
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"string_decoder": "1.1.1",
"util-deprecate": "1.0.2"
}
@@ -8686,13 +10083,19 @@
"setprototypeof": "1.1.1",
"statuses": "1.5.0",
"toidentifier": "1.0.0"
+ },
+ "dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ }
}
},
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
- "dev": true,
"requires": {
"assert-plus": "1.0.0",
"jsprim": "1.4.1",
@@ -8705,6 +10108,16 @@
"integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=",
"dev": true
},
+ "humps": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/humps/-/humps-0.6.0.tgz",
+ "integrity": "sha1-phchA4bwRF0SLOtNlBSho5saHpQ="
+ },
+ "hyphenate-style-name": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz",
+ "integrity": "sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ=="
+ },
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -8737,6 +10150,19 @@
"harmony-reflect": "1.6.1"
}
},
+ "idtoken-verifier": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/idtoken-verifier/-/idtoken-verifier-2.0.2.tgz",
+ "integrity": "sha512-9UN83SKT9dtN3d7vNz3EMTqoaJi3D02Zg5XMqF6+bLrGL+Akbx4oj4SEWsgXtLF6cy46XrUcVzokFY+SWO+/MA==",
+ "requires": {
+ "base64-js": "1.3.1",
+ "crypto-js": "3.3.0",
+ "es6-promise": "4.2.8",
+ "jsbn": "1.1.0",
+ "unfetch": "4.1.0",
+ "url-join": "4.0.1"
+ }
+ },
"ieee754": {
"version": "1.1.13",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
@@ -8836,9 +10262,9 @@
"dev": true
},
"in-publish": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
- "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz",
+ "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==",
"dev": true
},
"indent-string": {
@@ -8866,16 +10292,15 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dev": true,
"requires": {
"once": "1.4.0",
"wrappy": "1.0.2"
}
},
"inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"ini": {
"version": "1.3.5",
@@ -8883,6 +10308,22 @@
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"dev": true
},
+ "inline-style-prefixer": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz",
+ "integrity": "sha1-hVG45bTVcyROZqNLBPfTIHaitTQ=",
+ "requires": {
+ "bowser": "1.9.4",
+ "css-in-js-utils": "2.0.1"
+ },
+ "dependencies": {
+ "bowser": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz",
+ "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ=="
+ }
+ }
+ },
"inquirer": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz",
@@ -8897,7 +10338,7 @@
"figures": "2.0.0",
"lodash": "4.17.15",
"mute-stream": "0.0.7",
- "run-async": "2.3.0",
+ "run-async": "2.4.0",
"rx-lite": "4.0.8",
"rx-lite-aggregates": "4.0.8",
"string-width": "2.1.1",
@@ -8922,6 +10363,17 @@
}
}
},
+ "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.5",
+ "has": "1.0.3",
+ "side-channel": "1.0.2"
+ }
+ },
"interpret": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
@@ -8937,15 +10389,15 @@
}
},
"invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
"dev": true
},
"ipaddr.js": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
- "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
},
"is-absolute-url": {
"version": "2.1.0",
@@ -8963,9 +10415,9 @@
}
},
"is-alphabetical": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.3.tgz",
- "integrity": "sha512-eEMa6MKpHFzw38eKm56iNNi6GJ7lf6aLLio7Kr23sJPAECscgRtZvOBYybejWDQ2bM949Y++61PY+udzj5QMLA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz",
+ "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==",
"dev": true
},
"is-alphanumeric": {
@@ -8975,15 +10427,20 @@
"dev": true
},
"is-alphanumerical": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.3.tgz",
- "integrity": "sha512-A1IGAPO5AW9vSh7omxIlOGwIqEvpW/TA+DksVOPM5ODuxKlZS09+TEM1E3275lJqO2oJ38vDpeAL3DCIiHE6eA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz",
+ "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==",
"dev": true,
"requires": {
- "is-alphabetical": "1.0.3",
- "is-decimal": "1.0.3"
+ "is-alphabetical": "1.0.4",
+ "is-decimal": "1.0.4"
}
},
+ "is-arguments": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
+ "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA=="
+ },
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
@@ -9002,14 +10459,12 @@
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
- "dev": true
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
},
"is-callable": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
- "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
- "dev": true
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
+ "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q=="
},
"is-ci": {
"version": "1.2.1",
@@ -9030,15 +10485,14 @@
}
},
"is-date-object": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
- "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
- "dev": true
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
+ "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g=="
},
"is-decimal": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.3.tgz",
- "integrity": "sha512-bvLSwoDg2q6Gf+E2LEPiklHZxxiSi3XAh4Mav65mKqTfCO1HM3uBs24TjEH8iJX3bbDdLXKJXBTmGzuTUuAEjQ==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz",
+ "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==",
"dev": true
},
"is-descriptor": {
@@ -9094,13 +10548,10 @@
"dev": true
},
"is-finite": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
- "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
- "dev": true,
- "requires": {
- "number-is-nan": "1.0.1"
- }
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
+ "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==",
+ "dev": true
},
"is-fullwidth-code-point": {
"version": "2.0.0",
@@ -9124,11 +10575,19 @@
}
},
"is-hexadecimal": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.3.tgz",
- "integrity": "sha512-zxQ9//Q3D/34poZf8fiy3m3XVpbQc7ren15iKqrTtLPwkPD/t3Scy9Imp63FujULGxuK0ZlCwoo5xNpktFgbOA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz",
+ "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==",
"dev": true
},
+ "is-lower-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz",
+ "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=",
+ "requires": {
+ "lower-case": "1.1.4"
+ }
+ },
"is-number": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
@@ -9139,9 +10598,9 @@
}
},
"is-obj": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
- "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
+ "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
"dev": true
},
"is-plain-obj": {
@@ -9185,10 +10644,9 @@
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
},
"is-regex": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
- "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
- "dev": true,
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
+ "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
"requires": {
"has": "1.0.3"
}
@@ -9205,11 +10663,22 @@
"integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==",
"dev": true
},
+ "is-retina": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-retina/-/is-retina-1.0.3.tgz",
+ "integrity": "sha1-10AbKGvqKuN/Ykd1iN5QTQuGR+M="
+ },
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
},
+ "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-supported-regexp-flag": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-supported-regexp-flag/-/is-supported-regexp-flag-1.0.1.tgz",
@@ -9226,19 +10695,25 @@
}
},
"is-symbol": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
- "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
- "dev": true,
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
+ "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
"requires": {
- "has-symbols": "1.0.0"
+ "has-symbols": "1.0.1"
}
},
"is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
- "dev": true
+ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+ },
+ "is-upper-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz",
+ "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=",
+ "requires": {
+ "upper-case": "1.1.3"
+ }
},
"is-utf8": {
"version": "0.2.1",
@@ -9247,9 +10722,9 @@
"dev": true
},
"is-whitespace-character": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.3.tgz",
- "integrity": "sha512-SNPgMLz9JzPccD3nPctcj8sZlX9DAMJSKH8bP7Z6bohCwuNgX8xbWr1eTAYXX9Vpi/aSn8Y1akL9WgM3t43YNQ==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz",
+ "integrity": "sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w==",
"dev": true
},
"is-windows": {
@@ -9259,9 +10734,9 @@
"dev": true
},
"is-word-character": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.3.tgz",
- "integrity": "sha512-0wfcrFgOOOBdgRNT9H33xe6Zi6yhX/uoc4U8NBZGeQQB0ctU1dnlNTyL9JM2646bHDTpsDm1Brb3VPoCIMrd/A==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-word-character/-/is-word-character-1.0.4.tgz",
+ "integrity": "sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==",
"dev": true
},
"is-wsl": {
@@ -9276,9 +10751,9 @@
"integrity": "sha1-CrlFQFArp6+iTIVqqYVWFmnpxS0="
},
"isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"isexe": {
"version": "2.0.0",
@@ -9293,14 +10768,6 @@
"dev": true,
"requires": {
"isarray": "1.0.0"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- }
}
},
"isomorphic-fetch": {
@@ -9326,8 +10793,7 @@
"isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
- "dev": true
+ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
},
"istanbul-api": {
"version": "1.3.7",
@@ -9344,7 +10810,7 @@
"istanbul-lib-source-maps": "1.2.6",
"istanbul-reports": "1.5.1",
"js-yaml": "3.7.0",
- "mkdirp": "0.5.1",
+ "mkdirp": "0.5.4",
"once": "1.4.0"
}
},
@@ -9393,7 +10859,7 @@
"dev": true,
"requires": {
"istanbul-lib-coverage": "1.2.1",
- "mkdirp": "0.5.1",
+ "mkdirp": "0.5.4",
"path-parse": "1.0.6",
"supports-color": "3.2.3"
},
@@ -9423,7 +10889,7 @@
"requires": {
"debug": "3.2.6",
"istanbul-lib-coverage": "1.2.1",
- "mkdirp": "0.5.1",
+ "mkdirp": "0.5.4",
"rimraf": "2.7.1",
"source-map": "0.5.7"
},
@@ -9451,7 +10917,7 @@
"integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==",
"dev": true,
"requires": {
- "handlebars": "4.1.2"
+ "handlebars": "4.7.3"
}
},
"jest": {
@@ -9470,6 +10936,20 @@
"integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"dev": true
},
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
"jest-cli": {
"version": "23.6.0",
"resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-23.6.0.tgz",
@@ -9479,8 +10959,8 @@
"ansi-escapes": "3.2.0",
"chalk": "2.4.2",
"exit": "0.1.2",
- "glob": "7.1.4",
- "graceful-fs": "4.2.2",
+ "glob": "7.1.6",
+ "graceful-fs": "4.2.3",
"import-local": "1.0.0",
"is-ci": "1.2.1",
"istanbul-api": "1.3.7",
@@ -9511,7 +10991,7 @@
"string-length": "2.0.0",
"strip-ansi": "4.0.0",
"which": "1.3.1",
- "yargs": "11.1.0"
+ "yargs": "11.1.1"
}
},
"strip-ansi": {
@@ -9543,7 +11023,7 @@
"babel-core": "6.26.3",
"babel-jest": "23.6.0",
"chalk": "2.4.2",
- "glob": "7.1.4",
+ "glob": "7.1.6",
"jest-environment-jsdom": "23.4.0",
"jest-environment-node": "23.4.0",
"jest-get-type": "22.4.3",
@@ -9554,6 +11034,22 @@
"jest-validate": "23.6.0",
"micromatch": "2.3.11",
"pretty-format": "23.6.0"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ }
}
},
"jest-diff": {
@@ -9620,8 +11116,8 @@
"integrity": "sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg==",
"dev": true,
"requires": {
- "fb-watchman": "2.0.0",
- "graceful-fs": "4.2.2",
+ "fb-watchman": "2.0.1",
+ "graceful-fs": "4.2.3",
"invariant": "2.2.4",
"jest-docblock": "23.2.0",
"jest-serializer": "23.0.1",
@@ -9723,7 +11219,7 @@
"dev": true,
"requires": {
"exit": "0.1.2",
- "graceful-fs": "4.2.2",
+ "graceful-fs": "4.2.3",
"jest-config": "23.6.0",
"jest-docblock": "23.2.0",
"jest-haste-map": "23.6.0",
@@ -9733,14 +11229,14 @@
"jest-runtime": "23.6.0",
"jest-util": "23.4.0",
"jest-worker": "23.2.0",
- "source-map-support": "0.5.13",
+ "source-map-support": "0.5.16",
"throat": "4.1.0"
},
"dependencies": {
"source-map-support": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+ "version": "0.5.16",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
+ "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
"dev": true,
"requires": {
"buffer-from": "1.1.1",
@@ -9758,10 +11254,10 @@
"babel-core": "6.26.3",
"babel-plugin-istanbul": "4.1.6",
"chalk": "2.4.2",
- "convert-source-map": "1.6.0",
+ "convert-source-map": "1.7.0",
"exit": "0.1.2",
- "fast-json-stable-stringify": "2.0.0",
- "graceful-fs": "4.2.2",
+ "fast-json-stable-stringify": "2.1.0",
+ "graceful-fs": "4.2.3",
"jest-config": "23.6.0",
"jest-haste-map": "23.6.0",
"jest-message-util": "23.4.0",
@@ -9775,7 +11271,7 @@
"slash": "1.0.0",
"strip-bom": "3.0.0",
"write-file-atomic": "2.4.3",
- "yargs": "11.1.0"
+ "yargs": "11.1.1"
}
},
"jest-serializer": {
@@ -9796,7 +11292,7 @@
"jest-matcher-utils": "23.6.0",
"jest-message-util": "23.4.0",
"jest-resolve": "23.6.0",
- "mkdirp": "0.5.1",
+ "mkdirp": "0.5.4",
"natural-compare": "1.4.0",
"pretty-format": "23.6.0",
"semver": "5.7.1"
@@ -9818,10 +11314,10 @@
"requires": {
"callsites": "2.0.0",
"chalk": "2.4.2",
- "graceful-fs": "4.2.2",
+ "graceful-fs": "4.2.3",
"is-ci": "1.2.1",
"jest-message-util": "23.4.0",
- "mkdirp": "0.5.1",
+ "mkdirp": "0.5.4",
"slash": "1.0.0",
"source-map": "0.6.1"
},
@@ -9867,11 +11363,16 @@
}
},
"js-base64": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
- "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz",
+ "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==",
"dev": true
},
+ "js-cookie": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz",
+ "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ=="
+ },
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -9897,10 +11398,9 @@
}
},
"jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
- "dev": true
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz",
+ "integrity": "sha1-sBMHyym2GKHtJux56RH4A8TaAEA="
},
"jsdoc": {
"version": "3.5.5",
@@ -9915,7 +11415,7 @@
"js2xmlparser": "3.0.0",
"klaw": "2.0.0",
"marked": "0.3.19",
- "mkdirp": "0.5.1",
+ "mkdirp": "0.5.4",
"requizzle": "0.2.3",
"strip-json-comments": "2.0.1",
"taffydb": "2.6.2",
@@ -10033,26 +11533,26 @@
"integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==",
"dev": true,
"requires": {
- "abab": "2.0.0",
- "acorn": "5.7.3",
- "acorn-globals": "4.3.3",
+ "abab": "2.0.3",
+ "acorn": "5.7.4",
+ "acorn-globals": "4.3.4",
"array-equal": "1.0.0",
"cssom": "0.3.8",
"cssstyle": "1.4.0",
"data-urls": "1.1.0",
"domexception": "1.0.1",
- "escodegen": "1.12.0",
+ "escodegen": "1.14.1",
"html-encoding-sniffer": "1.0.2",
"left-pad": "1.3.0",
- "nwsapi": "2.1.4",
+ "nwsapi": "2.2.0",
"parse5": "4.0.0",
"pn": "1.1.0",
- "request": "2.88.0",
- "request-promise-native": "1.0.7",
+ "request": "2.88.2",
+ "request-promise-native": "1.0.8",
"sax": "1.2.4",
"symbol-tree": "3.2.4",
"tough-cookie": "2.5.0",
- "w3c-hr-time": "1.0.1",
+ "w3c-hr-time": "1.0.2",
"webidl-conversions": "4.0.2",
"whatwg-encoding": "1.0.5",
"whatwg-mimetype": "2.3.0",
@@ -10081,14 +11581,12 @@
"json-schema": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
- "dev": true
+ "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
},
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
},
"json-stable-stringify-without-jsonify": {
"version": "1.0.1",
@@ -10102,11 +11600,11 @@
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz",
+ "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==",
"requires": {
- "minimist": "1.2.0"
+ "minimist": "1.2.5"
}
},
"jsonp": {
@@ -10117,11 +11615,34 @@
"debug": "4.1.1"
}
},
+ "jsonwebtoken": {
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
+ "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
+ "requires": {
+ "jws": "3.2.2",
+ "lodash.includes": "4.3.0",
+ "lodash.isboolean": "3.0.3",
+ "lodash.isinteger": "4.0.4",
+ "lodash.isnumber": "3.0.3",
+ "lodash.isplainobject": "4.0.6",
+ "lodash.isstring": "4.0.1",
+ "lodash.once": "4.1.1",
+ "ms": "2.1.2",
+ "semver": "5.7.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
"jsprim": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
"integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
- "dev": true,
"requires": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
@@ -10129,13 +11650,45 @@
"verror": "1.10.0"
}
},
+ "jstransform": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/jstransform/-/jstransform-11.0.3.tgz",
+ "integrity": "sha1-CaeJk+CuTU70SH9hVakfYZDLQiM=",
+ "requires": {
+ "base62": "1.2.8",
+ "commoner": "0.10.8",
+ "esprima-fb": "15001.1.0-dev-harmony-fb",
+ "object-assign": "2.1.1",
+ "source-map": "0.4.4"
+ },
+ "dependencies": {
+ "esprima-fb": {
+ "version": "15001.1.0-dev-harmony-fb",
+ "resolved": "https://registry.npmjs.org/esprima-fb/-/esprima-fb-15001.1.0-dev-harmony-fb.tgz",
+ "integrity": "sha1-MKlHMDxrjV6VW+4rmbHSMyBqaQE="
+ },
+ "object-assign": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-2.1.1.tgz",
+ "integrity": "sha1-Q8NuXVaf+OSBbE76i+AtJpZ8GKo="
+ },
+ "source-map": {
+ "version": "0.4.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+ "requires": {
+ "amdefine": "1.0.1"
+ }
+ }
+ }
+ },
"jsx-ast-utils": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.1.tgz",
- "integrity": "sha512-v3FxCcAf20DayI+uxnCuw795+oOIkVu6EnJ1+kSzhqqTZHNkTZ7B66ZgLp4oLJ/gbA64cI0B7WRoHZMSRdyVRQ==",
+ "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",
+ "array-includes": "3.1.1",
"object.assign": "4.1.0"
}
},
@@ -10144,11 +11697,56 @@
"resolved": "https://registry.npmjs.org/just-curry-it/-/just-curry-it-3.1.0.tgz",
"integrity": "sha512-mjzgSOFzlrurlURaHVjnQodyPNvrHrf1TbQP2XU9NSqBtHQPuHZ+Eb6TAJP7ASeJN9h9K0KXoRTs8u6ouHBKvg=="
},
+ "jwa": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
+ "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+ "requires": {
+ "buffer-equal-constant-time": "1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "jwks-rsa": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-1.7.0.tgz",
+ "integrity": "sha512-tq7DVJt9J6wTvl9+AQfwZIiPSuY2Vf0F+MovfRTFuBqLB1xgDVhegD33ChEAQ6yBv9zFvUIyj4aiwrSA5VehUw==",
+ "requires": {
+ "@types/express-jwt": "0.0.42",
+ "debug": "4.1.1",
+ "jsonwebtoken": "8.5.1",
+ "limiter": "1.1.5",
+ "lru-memoizer": "2.1.0",
+ "ms": "2.1.2",
+ "request": "2.88.2"
+ }
+ },
+ "jws": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "requires": {
+ "jwa": "1.4.1",
+ "safe-buffer": "5.1.2"
+ }
+ },
+ "jwt-decode": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-1.5.1.tgz",
+ "integrity": "sha1-vajYcxubc57otKMaDQJcqUrpLTs=",
+ "requires": {
+ "Base64": "0.1.4"
+ }
+ },
+ "keycode": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz",
+ "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ="
+ },
"kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "dev": true,
"requires": {
"is-buffer": "1.1.6"
}
@@ -10159,7 +11757,7 @@
"integrity": "sha1-WcEo4Nxc5BAgEVEZTuucv4WGUPY=",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2"
+ "graceful-fs": "4.2.3"
}
},
"kleur": {
@@ -10184,13 +11782,18 @@
"webpack-sources": "1.4.3"
}
},
+ "lazy-cache": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
+ "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
+ },
"lcid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
"dev": true,
"requires": {
- "invert-kv": "1.0.0"
+ "invert-kv": "2.0.0"
}
},
"le_node": {
@@ -10235,13 +11838,28 @@
"type-check": "0.3.2"
}
},
+ "libphonenumber-js": {
+ "version": "1.4.6",
+ "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.4.6.tgz",
+ "integrity": "sha512-TD1DyhPjVfNNiIxhwsooCO5j9L6JB60Qd+rlIEItgw8RKEqezu8Tva3V/4wrBiYMnBOHkp3uyzAe/PT9omyUdw==",
+ "requires": {
+ "minimist": "1.2.5",
+ "semver-compare": "1.0.0",
+ "xml2js": "0.4.23"
+ }
+ },
+ "limiter": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz",
+ "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA=="
+ },
"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.2.2",
+ "graceful-fs": "4.2.3",
"parse-json": "2.2.0",
"pify": "2.3.0",
"strip-bom": "3.0.0"
@@ -10262,14 +11880,25 @@
"dev": true
},
"loader-utils": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
- "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz",
+ "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
"dev": true,
"requires": {
"big.js": "5.2.2",
- "emojis-list": "2.1.0",
+ "emojis-list": "3.0.0",
"json5": "1.0.1"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "1.2.5"
+ }
+ }
}
},
"locate-path": {
@@ -10362,6 +11991,11 @@
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
"integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY="
},
+ "lodash.clonedeep": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
+ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8="
+ },
"lodash.curry": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz",
@@ -10398,6 +12032,11 @@
"lodash.isarray": "3.0.4"
}
},
+ "lodash.includes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8="
+ },
"lodash.isarguments": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
@@ -10410,11 +12049,30 @@
"integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=",
"dev": true
},
+ "lodash.isboolean": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
+ },
+ "lodash.isinteger": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M="
+ },
+ "lodash.isnumber": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w="
+ },
"lodash.isplainobject": {
"version": "4.0.6",
"resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
- "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=",
- "dev": true
+ "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs="
+ },
+ "lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE="
},
"lodash.keys": {
"version": "3.1.2",
@@ -10433,12 +12091,22 @@
"integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=",
"dev": true
},
+ "lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
+ },
"lodash.omit": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz",
"integrity": "sha1-brGa5aHuHdnfC5aeZs4Lf6MLXmA=",
"dev": true
},
+ "lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w="
+ },
"lodash.padend": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
@@ -10462,6 +12130,11 @@
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
"dev": true
},
+ "lodash.throttle": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
+ "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="
+ },
"lodash.uniq": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
@@ -10477,10 +12150,20 @@
"chalk": "2.4.2"
}
},
+ "lolex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz",
+ "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE="
+ },
+ "longest": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
+ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
+ },
"longest-streak": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.3.tgz",
- "integrity": "sha512-9lz5IVdpwsKLMzQi0MQ+oD9EA0mIGcWYP7jXMTZVXP8D42PwuAk+M/HBFYQoxt1G5OR8m7aSIgb1UymfWGBWEw==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz",
+ "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==",
"dev": true
},
"loose-envify": {
@@ -10498,19 +12181,40 @@
"dev": true,
"requires": {
"currently-unhandled": "0.4.1",
- "signal-exit": "3.0.2"
+ "signal-exit": "3.0.3"
+ }
+ },
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw="
+ },
+ "lower-case-first": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz",
+ "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=",
+ "requires": {
+ "lower-case": "1.1.4"
}
},
"lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "dev": true,
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz",
+ "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=",
"requires": {
"pseudomap": "1.0.2",
"yallist": "2.1.2"
}
},
+ "lru-memoizer": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.1.0.tgz",
+ "integrity": "sha512-oKjxgJhL+m1wfEkez7/a6iyRZUdohej+2u04qCaAQ7BBfx/qD4RH3jOQhPsd8Y3pcm7IhcNtE3kCEIDCMPiJFQ==",
+ "requires": {
+ "lodash.clonedeep": "4.5.0",
+ "lru-cache": "4.0.2"
+ }
+ },
"make-dir": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
@@ -10529,12 +12233,6 @@
"tmpl": "1.0.4"
}
},
- "mamacro": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz",
- "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==",
- "dev": true
- },
"map-age-cleaner": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
@@ -10566,9 +12264,9 @@
}
},
"markdown-escapes": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.3.tgz",
- "integrity": "sha512-XUi5HJhhV5R74k8/0H2oCbCiYf/u4cO/rX8tnGkRvrqhsr5BRNU6Mg0yt/8UIx1iIS8220BNJsDb7XnILhLepw==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz",
+ "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==",
"dev": true
},
"markdown-table": {
@@ -10583,10 +12281,64 @@
"integrity": "sha512-ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==",
"dev": true
},
+ "material-ui": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/material-ui/-/material-ui-0.20.2.tgz",
+ "integrity": "sha512-VeqgQkdvtK193w+FFvXDEwlVxI4rWk83eWbpYLeOIHDPWr3rbB9B075JRnJt/8IsI2X8q5Aia5W3+7m4KkleDg==",
+ "requires": {
+ "babel-runtime": "6.26.0",
+ "inline-style-prefixer": "3.0.8",
+ "keycode": "2.2.0",
+ "lodash.merge": "4.6.2",
+ "lodash.throttle": "4.1.1",
+ "prop-types": "15.7.2",
+ "react-event-listener": "0.6.6",
+ "react-transition-group": "1.2.1",
+ "recompose": "0.26.0",
+ "simple-assign": "0.1.0",
+ "warning": "3.0.0"
+ },
+ "dependencies": {
+ "babel-runtime": {
+ "version": "6.26.0",
+ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
+ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
+ "requires": {
+ "core-js": "2.6.11",
+ "regenerator-runtime": "0.11.1"
+ }
+ },
+ "react-transition-group": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz",
+ "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==",
+ "requires": {
+ "chain-function": "1.0.1",
+ "dom-helpers": "3.4.0",
+ "loose-envify": "1.4.0",
+ "prop-types": "15.7.2",
+ "warning": "3.0.0"
+ }
+ },
+ "regenerator-runtime": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
+ "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
+ },
+ "warning": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
+ "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
+ "requires": {
+ "loose-envify": "1.4.0"
+ }
+ }
+ }
+ },
"math-expression-evaluator": {
- "version": "1.2.17",
- "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
- "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=",
+ "version": "1.2.22",
+ "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz",
+ "integrity": "sha512-L0j0tFVZBQQLeEjmWOvDLoRciIY8gQGWahvkztXUal8jH8R5Rlqo9GCvgqvXcy9LQhEWdQCVvzqAbxgYNt4blQ==",
"dev": true
},
"math-random": {
@@ -10596,11 +12348,21 @@
"dev": true
},
"mathml-tag-names": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.1.tgz",
- "integrity": "sha512-pWB896KPGSGkp1XtyzRBftpTzwSOL0Gfk0wLvxt4f2mgzjY19o0LxJ3U25vNWTzsh7da+KTbuXQoQ3lOJZ8WHw==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz",
+ "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==",
"dev": true
},
+ "md5": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
+ "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=",
+ "requires": {
+ "charenc": "0.0.2",
+ "crypt": "0.0.2",
+ "is-buffer": "1.1.6"
+ }
+ },
"md5.js": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz",
@@ -10608,14 +12370,14 @@
"dev": true,
"requires": {
"hash-base": "3.0.4",
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"safe-buffer": "5.1.2"
}
},
"mdast-util-compact": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.3.tgz",
- "integrity": "sha512-nRiU5GpNy62rZppDKbLwhhtw5DXoFMqw9UNZFmlPsNaQCZ//WLjGKUwWMdJrUH+Se7UvtO2gXtAMe0g/N+eI5w==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-1.0.4.tgz",
+ "integrity": "sha512-3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==",
"dev": true,
"requires": {
"unist-util-visit": "1.4.1"
@@ -10627,12 +12389,22 @@
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"mem": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
- "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+ "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
"dev": true,
"requires": {
- "mimic-fn": "1.2.0"
+ "map-age-cleaner": "0.1.3",
+ "mimic-fn": "2.1.0",
+ "p-is-promise": "2.1.0"
+ },
+ "dependencies": {
+ "mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true
+ }
}
},
"memory-fs": {
@@ -10642,7 +12414,7 @@
"dev": true,
"requires": {
"errno": "0.1.7",
- "readable-stream": "2.3.6"
+ "readable-stream": "2.3.7"
}
},
"meow": {
@@ -10655,7 +12427,7 @@
"decamelize": "1.2.0",
"loud-rejection": "1.6.0",
"map-obj": "1.0.1",
- "minimist": "1.2.0",
+ "minimist": "1.2.5",
"normalize-package-data": "2.5.0",
"object-assign": "4.1.1",
"read-pkg-up": "1.0.1",
@@ -10679,7 +12451,7 @@
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
+ "graceful-fs": "4.2.3",
"parse-json": "2.2.0",
"pify": "2.3.0",
"pinkie-promise": "2.0.1",
@@ -10701,7 +12473,7 @@
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
+ "graceful-fs": "4.2.3",
"pify": "2.3.0",
"pinkie-promise": "2.0.1"
}
@@ -10761,13 +12533,13 @@
"integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=",
"dev": true,
"requires": {
- "readable-stream": "2.3.6"
+ "readable-stream": "2.3.7"
}
},
"merge2": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.4.tgz",
- "integrity": "sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz",
+ "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==",
"dev": true
},
"methods": {
@@ -10806,22 +12578,27 @@
"brorand": "1.1.0"
}
},
+ "millisecond": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/millisecond/-/millisecond-0.1.2.tgz",
+ "integrity": "sha1-bMWtOGJByrjniv+WT4cCjuyS2sU="
+ },
"mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db": {
- "version": "1.40.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
- "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
+ "version": "1.43.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
+ "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
},
"mime-types": {
- "version": "2.1.24",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
- "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
+ "version": "2.1.26",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
+ "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
"requires": {
- "mime-db": "1.40.0"
+ "mime-db": "1.43.0"
}
},
"mimic-fn": {
@@ -10845,7 +12622,7 @@
"integrity": "sha512-dqBanNfktnp2hwL2YguV9Jh91PFX7gu7nRLs4TGsbAfAG6WOtlynFRYzwDwmmeSb5uIwHo9nx1ta0f7vAZVp2w==",
"dev": true,
"requires": {
- "loader-utils": "1.2.3",
+ "loader-utils": "1.4.0",
"schema-utils": "1.0.0",
"webpack-sources": "1.4.3"
},
@@ -10856,7 +12633,7 @@
"integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
"dev": true,
"requires": {
- "ajv": "6.10.2",
+ "ajv": "6.12.0",
"ajv-errors": "1.0.1",
"ajv-keywords": "3.4.1"
}
@@ -10879,15 +12656,14 @@
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "dev": true,
"requires": {
"brace-expansion": "1.1.11"
}
},
"minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+ "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
},
"minimist-options": {
"version": "3.0.2",
@@ -10907,10 +12683,10 @@
"requires": {
"concat-stream": "1.6.2",
"duplexify": "3.7.1",
- "end-of-stream": "1.4.1",
+ "end-of-stream": "1.4.4",
"flush-write-stream": "1.1.1",
"from2": "2.3.0",
- "parallel-transform": "1.1.0",
+ "parallel-transform": "1.2.0",
"pump": "3.0.0",
"pumpify": "1.5.1",
"stream-each": "1.2.3",
@@ -10939,20 +12715,11 @@
}
},
"mkdirp": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "dev": true,
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz",
+ "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==",
"requires": {
- "minimist": "0.0.8"
- },
- "dependencies": {
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
- "dev": true
- }
+ "minimist": "1.2.5"
}
},
"mkdirp2": {
@@ -10984,21 +12751,21 @@
"integrity": "sha512-cBMXjSW+fjOb4tyaVHuaVE/A5TqkukDWiOfxxAjY+PEqmmBQlLwn+8OzwPiG3brouXKY5Un4pBjAeB6UToXHaQ=="
},
"moment-timezone": {
- "version": "0.5.26",
- "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.26.tgz",
- "integrity": "sha512-sFP4cgEKTCymBBKgoxZjYzlSovC20Y6J7y3nanDc5RoBIXKlZhoYwBoZGe3flwU6A372AcRwScH8KiwV6zjy1g==",
+ "version": "0.5.28",
+ "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.28.tgz",
+ "integrity": "sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw==",
"requires": {
"moment": "2.24.0"
}
},
"morgan": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.1.tgz",
- "integrity": "sha512-HQStPIV4y3afTiCYVxirakhlCfGkI161c76kKFca7Fk1JusM//Qeo1ej2XaMniiNeaZklMVrh3vTtIzpzwbpmA==",
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz",
+ "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==",
"requires": {
"basic-auth": "2.0.1",
"debug": "2.6.9",
- "depd": "1.1.2",
+ "depd": "2.0.0",
"on-finished": "2.3.0",
"on-headers": "1.0.2"
},
@@ -11011,6 +12778,11 @@
"ms": "2.0.0"
}
},
+ "depd": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
+ },
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
@@ -11027,7 +12799,7 @@
"aproba": "1.2.0",
"copy-concurrently": "1.0.5",
"fs-write-stream-atomic": "1.0.10",
- "mkdirp": "0.5.1",
+ "mkdirp": "0.5.4",
"rimraf": "2.7.1",
"run-queue": "1.0.3"
}
@@ -11043,16 +12815,37 @@
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
"dev": true
},
+ "mv": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
+ "integrity": "sha1-rmzg1vbV4KT32JN5jQPB6pVZtqI=",
+ "optional": true,
+ "requires": {
+ "mkdirp": "0.5.4",
+ "ncp": "2.0.0",
+ "rimraf": "2.4.5"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.4.5",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
+ "integrity": "sha1-7nEM5dk6j9uFb7Xqj/Di11k0sto=",
+ "optional": true,
+ "requires": {
+ "glob": "6.0.4"
+ }
+ }
+ }
+ },
"nan": {
"version": "2.14.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
- "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==",
- "dev": true
+ "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
},
"nanoid": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-2.0.3.tgz",
- "integrity": "sha512-NbaoqdhIYmY6FXDRB4eYtDVC9Z9eCbn8TyaiC16LNKtpPv/aqa0tOPD8y6gNE4yUNnaZ7LLhYtXOev/6+cBtfw=="
+ "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",
@@ -11066,7 +12859,7 @@
"extend-shallow": "3.0.2",
"fragment-cache": "0.2.1",
"is-windows": "1.0.2",
- "kind-of": "6.0.2",
+ "kind-of": "6.0.3",
"object.pick": "1.3.0",
"regex-not": "1.0.2",
"snapdragon": "0.8.2",
@@ -11086,9 +12879,9 @@
"dev": true
},
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
}
}
@@ -11099,6 +12892,20 @@
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=",
"dev": true
},
+ "ncname": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz",
+ "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=",
+ "requires": {
+ "xml-char-classes": "1.0.0"
+ }
+ },
+ "ncp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
+ "integrity": "sha1-GVoh1sRuNh0vsSgbo4uR6d9727M=",
+ "optional": true
+ },
"negotiator": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
@@ -11121,6 +12928,14 @@
"resolved": "https://registry.npmjs.org/nocache/-/nocache-2.1.0.tgz",
"integrity": "sha512-0L9FvHG3nfnnmaEQPjT9xhfN4ISk0A8/2j4M37Np4mcDesJjHgEUfgPhdCyZuFI954tjokaIj/A3NdpFNdEh4Q=="
},
+ "node-bourbon": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/node-bourbon/-/node-bourbon-4.2.8.tgz",
+ "integrity": "sha1-5ETx8JQ0q3ZQ6jGMKOLhA9P5Qs0=",
+ "requires": {
+ "bourbon": "4.3.4"
+ }
+ },
"node-fetch": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
@@ -11138,19 +12953,33 @@
"dev": true,
"requires": {
"fstream": "1.0.12",
- "glob": "7.1.4",
- "graceful-fs": "4.2.2",
- "mkdirp": "0.5.1",
+ "glob": "7.1.6",
+ "graceful-fs": "4.2.3",
+ "mkdirp": "0.5.4",
"nopt": "3.0.6",
"npmlog": "4.1.2",
"osenv": "0.1.5",
- "request": "2.88.0",
+ "request": "2.88.2",
"rimraf": "2.7.1",
"semver": "5.3.0",
"tar": "2.2.2",
"which": "1.3.1"
},
"dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
"semver": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
@@ -11173,19 +13002,19 @@
"requires": {
"assert": "1.5.0",
"browserify-zlib": "0.2.0",
- "buffer": "4.9.1",
- "console-browserify": "1.1.0",
+ "buffer": "4.9.2",
+ "console-browserify": "1.2.0",
"constants-browserify": "1.0.0",
"crypto-browserify": "3.12.0",
"domain-browser": "1.2.0",
- "events": "3.0.0",
+ "events": "3.1.0",
"https-browserify": "1.0.0",
"os-browserify": "0.3.0",
"path-browserify": "0.0.1",
"process": "0.11.10",
"punycode": "1.4.1",
"querystring-es3": "0.2.1",
- "readable-stream": "2.3.6",
+ "readable-stream": "2.3.7",
"stream-browserify": "2.0.2",
"stream-http": "2.8.3",
"string_decoder": "1.1.1",
@@ -11193,9 +13022,15 @@
"tty-browserify": "0.0.0",
"url": "0.11.0",
"util": "0.11.1",
- "vm-browserify": "1.1.0"
+ "vm-browserify": "1.1.2"
},
"dependencies": {
+ "inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "dev": true
+ },
"punycode": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
@@ -11213,6 +13048,15 @@
}
}
},
+ "node-neat": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/node-neat/-/node-neat-1.7.2.tgz",
+ "integrity": "sha1-OEcpELgV4mG4sbmbpRmZRGWhXCE=",
+ "requires": {
+ "bourbon-neat": "1.7.2",
+ "node-bourbon": "4.2.8"
+ }
+ },
"node-notifier": {
"version": "5.4.3",
"resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz",
@@ -11235,26 +13079,15 @@
}
},
"node-releases": {
- "version": "1.1.28",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.28.tgz",
- "integrity": "sha512-AQw4emh6iSXnCpDiFe0phYcThiccmkNWMZnFZ+lDJjAP8J0m2fVd59duvUUyuTirQOhIAajTFkzG6FHCLBO59g==",
- "dev": true,
- "requires": {
- "semver": "5.7.1"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
+ "version": "1.1.53",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz",
+ "integrity": "sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ==",
+ "dev": true
},
"node-sass": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz",
- "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==",
+ "version": "4.13.1",
+ "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz",
+ "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==",
"dev": true,
"requires": {
"async-foreach": "0.1.3",
@@ -11262,15 +13095,15 @@
"cross-spawn": "3.0.1",
"gaze": "1.1.3",
"get-stdin": "4.0.1",
- "glob": "7.1.4",
- "in-publish": "2.0.0",
+ "glob": "7.1.6",
+ "in-publish": "2.0.1",
"lodash": "4.17.15",
"meow": "3.7.0",
- "mkdirp": "0.5.1",
+ "mkdirp": "0.5.4",
"nan": "2.14.0",
"node-gyp": "3.8.0",
"npmlog": "4.1.2",
- "request": "2.88.0",
+ "request": "2.88.2",
"sass-graph": "2.2.4",
"stdout-stream": "1.4.1",
"true-case-path": "1.0.3"
@@ -11301,8 +13134,22 @@
"integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
"dev": true,
"requires": {
- "lru-cache": "4.1.5",
- "which": "1.3.1"
+ "lru-cache": "4.0.2",
+ "which": "1.3.1"
+ }
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
}
},
"supports-color": {
@@ -11334,8 +13181,8 @@
"integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
"dev": true,
"requires": {
- "hosted-git-info": "2.8.4",
- "resolve": "1.12.0",
+ "hosted-git-info": "2.8.8",
+ "resolve": "1.15.1",
"semver": "5.1.0",
"validate-npm-package-license": "3.0.4"
}
@@ -11373,6 +13220,21 @@
"sort-keys": "1.1.2"
}
},
+ "normalizr": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/normalizr/-/normalizr-1.4.1.tgz",
+ "integrity": "sha1-qjh8JGXxNhHK86rkK6+Y9wXoos4=",
+ "requires": {
+ "lodash": "3.10.1"
+ },
+ "dependencies": {
+ "lodash": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
+ }
+ }
+ },
"npm-run-path": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
@@ -11407,16 +13269,15 @@
"dev": true
},
"nwsapi": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz",
- "integrity": "sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz",
+ "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==",
"dev": true
},
"oauth-sign": {
"version": "0.9.0",
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
- "dev": true
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
},
"object-assign": {
"version": "4.1.1",
@@ -11446,11 +13307,21 @@
}
},
"object-get": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.0.tgz",
- "integrity": "sha1-ciu9tgA576R8rTxtws5RqFwCxa4=",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz",
+ "integrity": "sha512-7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==",
"dev": true
},
+ "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=="
+ },
+ "object-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz",
+ "integrity": "sha512-Epah+btZd5wrrfjkJZq1AOB9O6OxUQto45hzFd7lXGrpHPGE0W1k+426yrZV+k6NJOzLNNW/nVsmZdIWsAqoOQ=="
+ },
"object-keys": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
@@ -11489,54 +13360,52 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
"integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
- "dev": true,
"requires": {
"define-properties": "1.1.3",
"function-bind": "1.1.1",
- "has-symbols": "1.0.0",
+ "has-symbols": "1.0.1",
"object-keys": "1.1.1"
},
"dependencies": {
"object-keys": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
}
}
},
"object.entries": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz",
- "integrity": "sha512-l+H6EQ8qzGRxbkHOd5I/aHRhHDKoQXQ8g0BYt4uSweQU1/J6dZUOyWh9a2Vky35YCKjzmgxOzta2hH6kf9HuXA==",
+ "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.13.0",
+ "es-abstract": "1.17.5",
"function-bind": "1.1.1",
"has": "1.0.3"
}
},
"object.fromentries": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.0.tgz",
- "integrity": "sha512-9iLiI6H083uiqUuvzyY6qrlmc/Gz8hLQFOcb/Ri/0xXFkSNS3ctV+CbE6yM2+AnkYfOB3dGjdzC0wrMLIhQICA==",
+ "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.13.0",
+ "es-abstract": "1.17.5",
"function-bind": "1.1.1",
"has": "1.0.3"
}
},
"object.getownpropertydescriptors": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
- "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz",
+ "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==",
"dev": true,
"requires": {
"define-properties": "1.1.3",
- "es-abstract": "1.13.0"
+ "es-abstract": "1.17.5"
}
},
"object.omit": {
@@ -11567,13 +13436,13 @@
}
},
"object.values": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz",
- "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==",
+ "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.13.0",
+ "es-abstract": "1.17.5",
"function-bind": "1.1.1",
"has": "1.0.3"
}
@@ -11595,7 +13464,6 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dev": true,
"requires": {
"wrappy": "1.0.2"
}
@@ -11624,12 +13492,6 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
"dev": true
- },
- "wordwrap": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
- "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
- "dev": true
}
}
},
@@ -11644,9 +13506,9 @@
}
},
"optionator": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
- "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+ "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",
@@ -11654,7 +13516,7 @@
"levn": "0.3.0",
"prelude-ls": "1.1.2",
"type-check": "0.3.2",
- "wordwrap": "1.0.0"
+ "word-wrap": "1.2.3"
}
},
"os-browserify": {
@@ -11670,14 +13532,14 @@
"dev": true
},
"os-locale": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
- "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
"dev": true,
"requires": {
- "execa": "0.7.0",
- "lcid": "1.0.0",
- "mem": "1.1.0"
+ "execa": "1.0.0",
+ "lcid": "2.0.0",
+ "mem": "4.3.0"
}
},
"os-tmpdir": {
@@ -11702,8 +13564,8 @@
"integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
- "mkdirp": "0.5.1",
+ "graceful-fs": "4.2.3",
+ "mkdirp": "0.5.4",
"object-assign": "4.1.1"
}
},
@@ -11750,26 +13612,34 @@
"dev": true
},
"pako": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz",
- "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==",
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
"dev": true
},
"parallel-transform": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz",
- "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz",
+ "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==",
"dev": true,
"requires": {
- "cyclist": "0.2.2",
- "inherits": "2.0.3",
- "readable-stream": "2.3.6"
+ "cyclist": "1.0.1",
+ "inherits": "2.0.4",
+ "readable-stream": "2.3.7"
+ }
+ },
+ "param-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-1.1.2.tgz",
+ "integrity": "sha1-3LCRpDwlm5Io8cNB57akTqC/l0M=",
+ "requires": {
+ "sentence-case": "1.1.3"
}
},
"parse-asn1": {
- "version": "5.1.4",
- "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz",
- "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==",
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz",
+ "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==",
"dev": true,
"requires": {
"asn1.js": "4.10.1",
@@ -11786,12 +13656,12 @@
"integrity": "sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==",
"dev": true,
"requires": {
- "character-entities": "1.2.3",
- "character-entities-legacy": "1.1.3",
- "character-reference-invalid": "1.1.3",
- "is-alphanumerical": "1.0.3",
- "is-decimal": "1.0.3",
- "is-hexadecimal": "1.0.3"
+ "character-entities": "1.2.4",
+ "character-entities-legacy": "1.1.4",
+ "character-reference-invalid": "1.1.4",
+ "is-alphanumerical": "1.0.4",
+ "is-decimal": "1.0.4",
+ "is-hexadecimal": "1.0.4"
}
},
"parse-glob": {
@@ -11837,6 +13707,15 @@
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
},
+ "pascal-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.2.tgz",
+ "integrity": "sha1-Pl1kogBDgwp8STRMLXS0G+DJyZs=",
+ "requires": {
+ "camel-case": "1.2.2",
+ "upper-case-first": "1.1.2"
+ }
+ },
"pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
@@ -11849,6 +13728,14 @@
"integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==",
"dev": true
},
+ "path-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/path-case/-/path-case-1.1.2.tgz",
+ "integrity": "sha1-UM5roNO+090LXCqcRVNpdDRAlRQ=",
+ "requires": {
+ "sentence-case": "1.1.3"
+ }
+ },
"path-dirname": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
@@ -11864,8 +13751,7 @@
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "dev": true
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"path-is-inside": {
"version": "1.0.2",
@@ -11964,11 +13850,6 @@
"find-up": "2.1.0"
}
},
- "platform": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.5.tgz",
- "integrity": "sha512-TuvHS8AOIZNAlE77WUDiR4rySV/VMptyMfcfeoMgs4P8apaZM3JrnbzBiixKUv+XR6i+BXrQh8WAnjaSPFO65Q=="
- },
"pluralize": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
@@ -11981,6 +13862,11 @@
"integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==",
"dev": true
},
+ "popper.js": {
+ "version": "1.16.1",
+ "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
+ "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ=="
+ },
"posix-character-classes": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
@@ -12049,7 +13935,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -12122,7 +14008,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -12194,7 +14080,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -12265,7 +14151,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -12336,7 +14222,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -12407,7 +14293,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -12478,7 +14364,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -12550,7 +14436,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -12621,7 +14507,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -12653,12 +14539,12 @@
}
},
"postcss-jsx": {
- "version": "0.36.3",
- "resolved": "https://registry.npmjs.org/postcss-jsx/-/postcss-jsx-0.36.3.tgz",
- "integrity": "sha512-yV8Ndo6KzU8eho5mCn7LoLUGPkXrRXRjhMpX4AaYJ9wLJPv099xbtpbRQ8FrPnzVxb/cuMebbPR7LweSt+hTfA==",
+ "version": "0.36.4",
+ "resolved": "https://registry.npmjs.org/postcss-jsx/-/postcss-jsx-0.36.4.tgz",
+ "integrity": "sha512-jwO/7qWUvYuWYnpOb0+4bIIgJt7003pgU3P6nETBLaOyBXuTD55ho21xnals5nBrlpTIFodyd3/jBi6UO3dHvA==",
"dev": true,
"requires": {
- "@babel/core": "7.5.5"
+ "@babel/core": "7.9.0"
}
},
"postcss-less": {
@@ -12667,13 +14553,13 @@
"integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==",
"dev": true,
"requires": {
- "postcss": "7.0.17"
+ "postcss": "7.0.27"
},
"dependencies": {
"postcss": {
- "version": "7.0.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz",
- "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==",
+ "version": "7.0.27",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
+ "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
"dev": true,
"requires": {
"chalk": "2.4.2",
@@ -12708,7 +14594,7 @@
"integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==",
"dev": true,
"requires": {
- "loader-utils": "1.2.3",
+ "loader-utils": "1.4.0",
"postcss": "6.0.23",
"postcss-load-config": "2.1.0",
"schema-utils": "0.4.7"
@@ -12721,7 +14607,7 @@
"dev": true,
"requires": {
"remark": "10.0.1",
- "unist-util-find-all-after": "1.0.4"
+ "unist-util-find-all-after": "1.0.5"
}
},
"postcss-media-query-parser": {
@@ -12781,7 +14667,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -12852,7 +14738,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -12884,7 +14770,7 @@
"caniuse-api": "1.6.1",
"postcss": "5.2.18",
"postcss-selector-parser": "2.2.3",
- "vendors": "1.0.3"
+ "vendors": "1.0.4"
},
"dependencies": {
"ansi-styles": {
@@ -12899,8 +14785,8 @@
"integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
"dev": true,
"requires": {
- "caniuse-db": "1.0.30000989",
- "electron-to-chromium": "1.3.238"
+ "caniuse-db": "1.0.30001038",
+ "electron-to-chromium": "1.3.390"
}
},
"chalk": {
@@ -12937,7 +14823,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -13016,7 +14902,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -13088,7 +14974,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -13162,7 +15048,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -13236,7 +15122,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -13259,22 +15145,31 @@
}
},
"postcss-modules": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-1.4.1.tgz",
- "integrity": "sha512-btTrbK+Xc3NBuYF8TPBjCMRSp5h6NoQ1iVZ6WiDQENIze6KIYCSf0+UFQuV3yJ7gRHA+4AAtF8i2jRvUpbBMMg==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-1.5.0.tgz",
+ "integrity": "sha512-KiAihzcV0TxTTNA5OXreyIXctuHOfR50WIhqBpc8pe0Q5dcs/Uap9EVlifOI9am7zGGdGOJQ6B1MPYKo2UxgOg==",
"dev": true,
"requires": {
"css-modules-loader-core": "1.1.0",
- "generic-names": "1.0.3",
+ "generic-names": "2.0.1",
"lodash.camelcase": "4.3.0",
- "postcss": "7.0.17",
+ "postcss": "7.0.27",
"string-hash": "1.1.3"
},
"dependencies": {
+ "generic-names": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz",
+ "integrity": "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==",
+ "dev": true,
+ "requires": {
+ "loader-utils": "1.4.0"
+ }
+ },
"postcss": {
- "version": "7.0.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz",
- "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==",
+ "version": "7.0.27",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
+ "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
"dev": true,
"requires": {
"chalk": "2.4.2",
@@ -13308,7 +15203,7 @@
"integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
"dev": true,
"requires": {
- "css-selector-tokenizer": "0.7.1",
+ "css-selector-tokenizer": "0.7.2",
"postcss": "6.0.23"
}
},
@@ -13363,7 +15258,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -13391,9 +15286,9 @@
"integrity": "sha1-OY0wALla6WlCDN9M2D+oBn8cXq4=",
"dev": true,
"requires": {
- "css-selector-tokenizer": "0.7.1",
+ "css-selector-tokenizer": "0.7.2",
"icss-utils": "3.0.1",
- "minimist": "1.2.0"
+ "minimist": "1.2.5"
}
},
"postcss-modules-scope": {
@@ -13402,7 +15297,7 @@
"integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
"dev": true,
"requires": {
- "css-selector-tokenizer": "0.7.1",
+ "css-selector-tokenizer": "0.7.2",
"postcss": "6.0.23"
}
},
@@ -13465,7 +15360,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -13539,7 +15434,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -13611,7 +15506,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -13683,7 +15578,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -13754,7 +15649,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -13827,7 +15722,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -13858,13 +15753,13 @@
"chalk": "2.4.2",
"lodash": "4.17.15",
"log-symbols": "2.2.0",
- "postcss": "7.0.17"
+ "postcss": "7.0.27"
},
"dependencies": {
"postcss": {
- "version": "7.0.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz",
- "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==",
+ "version": "7.0.27",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
+ "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
"dev": true,
"requires": {
"chalk": "2.4.2",
@@ -13890,18 +15785,18 @@
"dev": true
},
"postcss-safe-parser": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz",
- "integrity": "sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==",
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz",
+ "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==",
"dev": true,
"requires": {
- "postcss": "7.0.17"
+ "postcss": "7.0.27"
},
"dependencies": {
"postcss": {
- "version": "7.0.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz",
- "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==",
+ "version": "7.0.27",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
+ "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
"dev": true,
"requires": {
"chalk": "2.4.2",
@@ -13927,13 +15822,13 @@
"dev": true,
"requires": {
"gonzales-pe": "4.2.4",
- "postcss": "7.0.17"
+ "postcss": "7.0.27"
},
"dependencies": {
"postcss": {
- "version": "7.0.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz",
- "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==",
+ "version": "7.0.27",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
+ "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
"dev": true,
"requires": {
"chalk": "2.4.2",
@@ -13967,7 +15862,7 @@
"integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
"dev": true,
"requires": {
- "flatten": "1.0.2",
+ "flatten": "1.0.3",
"indexes-of": "1.0.1",
"uniq": "1.0.1"
}
@@ -14024,7 +15919,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -14103,7 +15998,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -14182,7 +16077,7 @@
"dev": true,
"requires": {
"chalk": "1.1.3",
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.5.7",
"supports-color": "3.2.3"
}
@@ -14248,8 +16143,7 @@
"private": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
- "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
- "dev": true
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg=="
},
"process": {
"version": "0.11.10",
@@ -14260,8 +16154,7 @@
"process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
- "dev": true
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
"progress": {
"version": "2.0.3",
@@ -14269,6 +16162,14 @@
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
"dev": true
},
+ "promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "requires": {
+ "asap": "2.0.6"
+ }
+ },
"promise-inflight": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
@@ -14292,16 +16193,16 @@
"requires": {
"loose-envify": "1.4.0",
"object-assign": "4.1.1",
- "react-is": "16.9.0"
+ "react-is": "16.13.1"
}
},
"proxy-addr": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
- "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
+ "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
"requires": {
"forwarded": "0.1.2",
- "ipaddr.js": "1.9.0"
+ "ipaddr.js": "1.9.1"
}
},
"prr": {
@@ -14313,14 +16214,12 @@
"pseudomap": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
- "dev": true
+ "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
},
"psl": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz",
- "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==",
- "dev": true
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
},
"public-encrypt": {
"version": "4.0.3",
@@ -14331,7 +16230,7 @@
"bn.js": "4.11.8",
"browserify-rsa": "4.0.1",
"create-hash": "1.2.0",
- "parse-asn1": "5.1.4",
+ "parse-asn1": "5.1.5",
"randombytes": "2.1.0",
"safe-buffer": "5.1.2"
}
@@ -14342,7 +16241,7 @@
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"dev": true,
"requires": {
- "end-of-stream": "1.4.1",
+ "end-of-stream": "1.4.4",
"once": "1.4.0"
}
},
@@ -14353,7 +16252,7 @@
"dev": true,
"requires": {
"duplexify": "3.7.1",
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"pump": "2.0.1"
},
"dependencies": {
@@ -14363,7 +16262,7 @@
"integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
"dev": true,
"requires": {
- "end-of-stream": "1.4.1",
+ "end-of-stream": "1.4.4",
"once": "1.4.0"
}
}
@@ -14372,8 +16271,7 @@
"punycode": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
- "dev": true
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"pure-color": {
"version": "1.3.0",
@@ -14383,13 +16281,12 @@
"q": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
- "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
- "dev": true
+ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc="
},
"qs": {
- "version": "6.8.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.8.0.tgz",
- "integrity": "sha512-tPSkj8y92PfZVbinY1n84i1Qdx75lZjMQYx9WZhnkofyxzw2r7Ho39G3/aEvSUdebxpnnM4LZJCtvE/Aq3+s9w=="
+ "version": "6.9.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz",
+ "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw=="
},
"query-string": {
"version": "4.3.4",
@@ -14439,7 +16336,7 @@
"dev": true,
"requires": {
"is-number": "4.0.0",
- "kind-of": "6.0.2",
+ "kind-of": "6.0.3",
"math-random": "1.0.4"
},
"dependencies": {
@@ -14450,9 +16347,9 @@
"dev": true
},
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
}
}
@@ -14493,15 +16390,85 @@
}
},
"react": {
- "version": "16.9.0",
- "resolved": "https://registry.npmjs.org/react/-/react-16.9.0.tgz",
- "integrity": "sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==",
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz",
+ "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==",
"requires": {
"loose-envify": "1.4.0",
"object-assign": "4.1.1",
"prop-types": "15.7.2"
}
},
+ "react-addons-pure-render-mixin": {
+ "version": "15.6.2",
+ "resolved": "https://registry.npmjs.org/react-addons-pure-render-mixin/-/react-addons-pure-render-mixin-15.6.2.tgz",
+ "integrity": "sha1-a4P0C2s27kBzXL1hJes/E84c3ck=",
+ "requires": {
+ "fbjs": "0.8.17",
+ "object-assign": "4.1.1"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+ "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+ },
+ "fbjs": {
+ "version": "0.8.17",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
+ "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
+ "requires": {
+ "core-js": "1.2.7",
+ "isomorphic-fetch": "2.2.1",
+ "loose-envify": "1.4.0",
+ "object-assign": "4.1.1",
+ "promise": "7.3.1",
+ "setimmediate": "1.0.5",
+ "ua-parser-js": "0.7.21"
+ }
+ }
+ }
+ },
+ "react-addons-update": {
+ "version": "15.6.2",
+ "resolved": "https://registry.npmjs.org/react-addons-update/-/react-addons-update-15.6.2.tgz",
+ "integrity": "sha1-5TdTxbNIh5dFEMiC1/sHWFHV5QQ=",
+ "requires": {
+ "fbjs": "0.8.17",
+ "object-assign": "4.1.1"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+ "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+ },
+ "fbjs": {
+ "version": "0.8.17",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
+ "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
+ "requires": {
+ "core-js": "1.2.7",
+ "isomorphic-fetch": "2.2.1",
+ "loose-envify": "1.4.0",
+ "object-assign": "4.1.1",
+ "promise": "7.3.1",
+ "setimmediate": "1.0.5",
+ "ua-parser-js": "0.7.21"
+ }
+ }
+ }
+ },
+ "react-avatar": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/react-avatar/-/react-avatar-2.5.1.tgz",
+ "integrity": "sha512-bwH5pWY6uxaKZt+IZBfD+SU3Dpy3FaKbmAzrOI4N8SATUPLXOdGaJHWUl6Vl8hHSwWSsoLh/m7xYHdnn0lofZw==",
+ "requires": {
+ "babel-runtime": "6.6.1",
+ "is-retina": "1.0.3",
+ "md5": "2.2.1"
+ }
+ },
"react-base16-styling": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.5.3.tgz",
@@ -14514,9 +16481,9 @@
}
},
"react-css-super-themr": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/react-css-super-themr/-/react-css-super-themr-2.2.0.tgz",
- "integrity": "sha512-fcSRGHVhYEBU8zx530RViXd7rjosirUjv0PFXimKNHRsoGuhnu1wb0lYDJ1xwhUfehJ/rr3O60+H3jRFP78KaQ==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/react-css-super-themr/-/react-css-super-themr-2.3.0.tgz",
+ "integrity": "sha512-MjQARecvRpUggIDEp9fs7/Vrv5kTFCwlt5EeAhkyvEQPbHQX1E5jDEDCF+oHySaV7t60KNlYWDWN5sjmOlAFgg==",
"requires": {
"hoist-non-react-statics": "1.2.0",
"invariant": "2.2.4"
@@ -14529,6 +16496,24 @@
}
}
},
+ "react-datetime": {
+ "version": "2.16.3",
+ "resolved": "https://registry.npmjs.org/react-datetime/-/react-datetime-2.16.3.tgz",
+ "integrity": "sha512-amWfb5iGEiyqjLmqCLlPpu2oN415jK8wX1qoTq7qn6EYiU7qQgbNHglww014PT4O/3G5eo/3kbJu/M/IxxTyGw==",
+ "requires": {
+ "create-react-class": "15.6.3",
+ "object-assign": "3.0.0",
+ "prop-types": "15.7.2",
+ "react-onclickoutside": "6.9.0"
+ },
+ "dependencies": {
+ "object-assign": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
+ "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
+ }
+ }
+ },
"react-dock": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/react-dock/-/react-dock-0.2.4.tgz",
@@ -14539,14 +16524,33 @@
}
},
"react-dom": {
- "version": "16.9.0",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz",
- "integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==",
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz",
+ "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==",
"requires": {
"loose-envify": "1.4.0",
"object-assign": "4.1.1",
"prop-types": "15.7.2",
- "scheduler": "0.15.0"
+ "scheduler": "0.19.1"
+ }
+ },
+ "react-dropzone": {
+ "version": "3.13.4",
+ "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-3.13.4.tgz",
+ "integrity": "sha1-hNomgVxAM5aRxJtFRMLvehaRLMw=",
+ "requires": {
+ "attr-accept": "1.1.3",
+ "prop-types": "15.7.2"
+ }
+ },
+ "react-event-listener": {
+ "version": "0.6.6",
+ "resolved": "https://registry.npmjs.org/react-event-listener/-/react-event-listener-0.6.6.tgz",
+ "integrity": "sha512-+hCNqfy7o9wvO6UgjqFmBzARJS7qrNoda0VqzvOuioEpoEXKutiKuv92dSz6kP7rYLmyHPyYNLesi5t/aH1gfw==",
+ "requires": {
+ "@babel/runtime": "7.9.2",
+ "prop-types": "15.7.2",
+ "warning": "4.0.3"
}
},
"react-fast-compare": {
@@ -14562,19 +16566,19 @@
"object-assign": "4.1.1",
"prop-types": "15.7.2",
"react-fast-compare": "2.0.4",
- "react-side-effect": "1.1.5"
+ "react-side-effect": "1.2.0"
}
},
"react-hot-loader": {
- "version": "4.12.11",
- "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.11.tgz",
- "integrity": "sha512-ySsg1hPwr/5dkZCJVp1nZRbwbpbEQ+3e2+bn/D681Wvr9+o+5bLKkTGq0TXskj8HgCS3ScysXddOng9Cg+JKzw==",
+ "version": "4.12.20",
+ "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.20.tgz",
+ "integrity": "sha512-lPlv1HVizi0lsi+UFACBJaydtRYILWkfHAC/lyCs6ZlAxlOZRQIfYHDqiGaRvL/GF7zyti+Qn9XpnDAUvdFA4A==",
"dev": true,
"requires": {
"fast-levenshtein": "2.0.6",
"global": "4.4.0",
- "hoist-non-react-statics": "3.3.0",
- "loader-utils": "1.2.3",
+ "hoist-non-react-statics": "3.3.2",
+ "loader-utils": "1.4.0",
"prop-types": "15.7.2",
"react-lifecycles-compat": "3.0.4",
"shallowequal": "1.1.0",
@@ -14589,10 +16593,15 @@
}
}
},
+ "react-input-autosize": {
+ "version": "0.6.13",
+ "resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-0.6.13.tgz",
+ "integrity": "sha1-OG/3qdLD3AFsJlvy5Z05cFD2Wvc="
+ },
"react-is": {
- "version": "16.9.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.9.0.tgz",
- "integrity": "sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw=="
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
+ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"react-json-tree": {
"version": "0.11.2",
@@ -14604,11 +16613,41 @@
"react-base16-styling": "0.5.3"
}
},
+ "react-lazy-cache": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/react-lazy-cache/-/react-lazy-cache-3.0.1.tgz",
+ "integrity": "sha1-DcZNON8XZ+93Z4xclBkAZMsRsM0=",
+ "requires": {
+ "deep-equal": "1.1.1"
+ }
+ },
"react-lifecycles-compat": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
},
+ "react-onclickoutside": {
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.9.0.tgz",
+ "integrity": "sha512-8ltIY3bC7oGhj2nPAvWOGi+xGFybPNhJM0V1H8hY/whNcXgmDeaeoCMPPd8VatrpTsUWjb/vGzrmu6SrXVty3A=="
+ },
+ "react-popper": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-0.7.5.tgz",
+ "integrity": "sha512-ya9dhhGCf74JTOB2uyksEHhIGw7w9tNZRUJF73lEq2h4H5JT6MBa4PdT4G+sx6fZwq+xKZAL/sVNAIuojPn7Dg==",
+ "requires": {
+ "popper.js": "1.16.1",
+ "prop-types": "15.7.2"
+ }
+ },
+ "react-portal": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/react-portal/-/react-portal-4.2.1.tgz",
+ "integrity": "sha512-fE9kOBagwmTXZ3YGRYb4gcMy+kSA+yLO0xnPankjRlfBv4uCpFXqKPfkpsGQQR15wkZ9EssnvTOl1yMzbkxhPQ==",
+ "requires": {
+ "prop-types": "15.7.2"
+ }
+ },
"react-pure-render": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/react-pure-render/-/react-pure-render-1.0.2.tgz",
@@ -14619,12 +16658,12 @@
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-6.0.1.tgz",
"integrity": "sha512-T52I52Kxhbqy/6TEfBv85rQSDz6+Y28V/pf52vDWs1YRXG19mcFOGfHnY2HsNFHyhP+ST34Aih98fvt6tqwVcQ==",
"requires": {
- "@babel/runtime": "7.5.5",
- "hoist-non-react-statics": "3.3.0",
+ "@babel/runtime": "7.9.2",
+ "hoist-non-react-statics": "3.3.2",
"invariant": "2.2.4",
"loose-envify": "1.4.0",
"prop-types": "15.7.2",
- "react-is": "16.9.0"
+ "react-is": "16.13.1"
}
},
"react-router": {
@@ -14632,11 +16671,11 @@
"resolved": "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz",
"integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==",
"requires": {
- "history": "4.9.0",
+ "history": "4.10.1",
"hoist-non-react-statics": "2.5.5",
"invariant": "2.2.4",
"loose-envify": "1.4.0",
- "path-to-regexp": "1.7.0",
+ "path-to-regexp": "1.8.0",
"prop-types": "15.7.2",
"warning": "4.0.3"
},
@@ -14646,10 +16685,15 @@
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz",
"integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw=="
},
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+ },
"path-to-regexp": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
- "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
+ "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
"requires": {
"isarray": "0.0.1"
}
@@ -14661,7 +16705,7 @@
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.3.1.tgz",
"integrity": "sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==",
"requires": {
- "history": "4.9.0",
+ "history": "4.10.1",
"invariant": "2.2.4",
"loose-envify": "1.4.0",
"prop-types": "15.7.2",
@@ -14669,25 +16713,57 @@
"warning": "4.0.3"
}
},
+ "react-select": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/react-select/-/react-select-0.9.1.tgz",
+ "integrity": "sha1-4yKi0KBjlqSCBrBVPfXsR9Fgg7o=",
+ "requires": {
+ "classnames": "2.2.6",
+ "react-input-autosize": "0.6.13"
+ }
+ },
"react-side-effect": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-1.1.5.tgz",
- "integrity": "sha512-Z2ZJE4p/jIfvUpiUMRydEVpQRf2f8GMHczT6qLcARmX7QRb28JDBTpnM2g/i5y/p7ZDEXYGHWg0RbhikE+hJRw==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-1.2.0.tgz",
+ "integrity": "sha512-v1ht1aHg5k/thv56DRcjw+WtojuuDHFUgGfc+bFHOWsF4ZK6C2V57DO0Or0GPsg6+LSTE0M6Ry/gfzhzSwbc5w==",
"requires": {
- "exenv": "1.2.2",
"shallowequal": "1.1.0"
}
},
+ "react-switch-button": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/react-switch-button/-/react-switch-button-1.1.2.tgz",
+ "integrity": "sha1-jOhPaUa046k3PnttasjngNl/L08="
+ },
"react-test-renderer": {
- "version": "16.9.0",
- "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.9.0.tgz",
- "integrity": "sha512-R62stB73qZyhrJo7wmCW9jgl/07ai+YzvouvCXIJLBkRlRqLx4j9RqcLEAfNfU3OxTGucqR2Whmn3/Aad6L3hQ==",
+ "version": "16.13.1",
+ "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.13.1.tgz",
+ "integrity": "sha512-Sn2VRyOK2YJJldOqoh8Tn/lWQ+ZiKhyZTPtaO0Q6yNj+QDbmRkVFap6pZPy3YQk8DScRDfyqm/KxKYP9gCMRiQ==",
"dev": true,
"requires": {
"object-assign": "4.1.1",
"prop-types": "15.7.2",
- "react-is": "16.9.0",
- "scheduler": "0.15.0"
+ "react-is": "16.13.1",
+ "scheduler": "0.19.1"
+ }
+ },
+ "react-textarea-autosize": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-5.2.1.tgz",
+ "integrity": "sha512-bx6z2I35aapr71ggw2yZIA4qhmqeTa4ZVsSaTeFvtf9kfcZppDBh2PbMt8lvbdmzEk7qbSFhAxR9vxEVm6oiMg==",
+ "requires": {
+ "prop-types": "15.7.2"
+ }
+ },
+ "react-transition-group": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz",
+ "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==",
+ "requires": {
+ "dom-helpers": "3.4.0",
+ "loose-envify": "1.4.0",
+ "prop-types": "15.7.2",
+ "react-lifecycles-compat": "3.0.4"
}
},
"read-pkg": {
@@ -14712,26 +16788,17 @@
}
},
"readable-stream": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
- "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
- "dev": true,
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"requires": {
"core-util-is": "1.0.2",
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"isarray": "1.0.0",
"process-nextick-args": "2.0.1",
"safe-buffer": "5.1.2",
"string_decoder": "1.1.1",
"util-deprecate": "1.0.2"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- }
}
},
"readdirp": {
@@ -14740,9 +16807,9 @@
"integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
+ "graceful-fs": "4.2.3",
"micromatch": "3.1.10",
- "readable-stream": "2.3.6"
+ "readable-stream": "2.3.7"
},
"dependencies": {
"arr-diff": {
@@ -14952,7 +17019,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-data-descriptor": {
@@ -14961,7 +17028,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-descriptor": {
@@ -14972,7 +17039,7 @@
"requires": {
"is-accessor-descriptor": "1.0.0",
"is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-number": {
@@ -15002,9 +17069,9 @@
"dev": true
},
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
},
"micromatch": {
@@ -15020,7 +17087,7 @@
"extend-shallow": "3.0.2",
"extglob": "2.0.4",
"fragment-cache": "0.2.1",
- "kind-of": "6.0.2",
+ "kind-of": "6.0.3",
"nanomatch": "1.2.13",
"object.pick": "1.3.0",
"regex-not": "1.0.2",
@@ -15028,23 +17095,83 @@
"to-regex": "3.0.2"
}
},
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ }
+ }
+ },
+ "realpath-native": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz",
+ "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==",
+ "dev": true,
+ "requires": {
+ "util.promisify": "1.0.1"
+ }
+ },
+ "recast": {
+ "version": "0.11.23",
+ "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz",
+ "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=",
+ "requires": {
+ "ast-types": "0.9.6",
+ "esprima": "3.1.3",
+ "private": "0.1.8",
+ "source-map": "0.5.7"
+ },
+ "dependencies": {
+ "esprima": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM="
+ },
+ "source-map": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
+ }
+ }
+ },
+ "recompose": {
+ "version": "0.26.0",
+ "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.26.0.tgz",
+ "integrity": "sha512-KwOu6ztO0mN5vy3+zDcc45lgnaUoaQse/a5yLVqtzTK13czSWnFGmXbQVmnoMgDkI5POd1EwIKSbjU1V7xdZog==",
+ "requires": {
+ "change-emitter": "0.1.6",
+ "fbjs": "0.8.17",
+ "hoist-non-react-statics": "2.5.5",
+ "symbol-observable": "1.2.0"
+ },
+ "dependencies": {
+ "core-js": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
+ "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
+ },
+ "fbjs": {
+ "version": "0.8.17",
+ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
+ "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
+ "requires": {
+ "core-js": "1.2.7",
+ "isomorphic-fetch": "2.2.1",
+ "loose-envify": "1.4.0",
+ "object-assign": "4.1.1",
+ "promise": "7.3.1",
+ "setimmediate": "1.0.5",
+ "ua-parser-js": "0.7.21"
+ }
+ },
+ "hoist-non-react-statics": {
+ "version": "2.5.5",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-2.5.5.tgz",
+ "integrity": "sha512-rqcy4pJo55FTTLWt+bU8ukscqHeE/e9KWvsOW2b/a3afxQZhwkQdT1rPPCJ0rYXdj4vNcasY8zHTH+jF/qStxw=="
}
}
},
- "realpath-native": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz",
- "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==",
- "dev": true,
- "requires": {
- "util.promisify": "1.0.0"
- }
- },
"reconnect-core": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/reconnect-core/-/reconnect-core-1.3.0.tgz",
@@ -15070,8 +17197,8 @@
"dev": true,
"requires": {
"balanced-match": "0.4.2",
- "math-expression-evaluator": "1.2.17",
- "reduce-function-call": "1.0.2"
+ "math-expression-evaluator": "1.2.22",
+ "reduce-function-call": "1.0.3"
},
"dependencies": {
"balanced-match": {
@@ -15124,20 +17251,12 @@
"integrity": "sha1-JYx479FT3fk8tWEjf2EYTzaW4yc="
},
"reduce-function-call": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz",
- "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.3.tgz",
+ "integrity": "sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==",
"dev": true,
"requires": {
- "balanced-match": "0.4.2"
- },
- "dependencies": {
- "balanced-match": {
- "version": "0.4.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz",
- "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=",
- "dev": true
- }
+ "balanced-match": "1.0.0"
}
},
"reduce-reducers": {
@@ -15268,6 +17387,32 @@
"base16": "1.0.0"
}
},
+ "redux-form": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/redux-form/-/redux-form-4.2.2.tgz",
+ "integrity": "sha1-uK43pAcJBvRdvTCwcinxoQvyXLA=",
+ "requires": {
+ "deep-equal": "1.1.1",
+ "hoist-non-react-statics": "1.2.0",
+ "is-promise": "2.1.0",
+ "react-lazy-cache": "3.0.1"
+ },
+ "dependencies": {
+ "hoist-non-react-statics": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz",
+ "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs="
+ }
+ }
+ },
+ "redux-logger": {
+ "version": "2.10.2",
+ "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-2.10.2.tgz",
+ "integrity": "sha1-PFpfCm8yV3wd6t9mVfJX+CxsOTc=",
+ "requires": {
+ "deep-diff": "0.3.4"
+ }
+ },
"redux-promise": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/redux-promise/-/redux-promise-0.6.0.tgz",
@@ -15277,6 +17422,19 @@
"is-promise": "2.1.0"
}
},
+ "redux-router": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redux-router/-/redux-router-1.0.0.tgz",
+ "integrity": "sha1-PBZ240Qb7FD+jZJFfAF8tjaZM08=",
+ "requires": {
+ "deep-equal": "1.1.1"
+ }
+ },
+ "redux-thunk": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz",
+ "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw=="
+ },
"referrer-policy": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/referrer-policy/-/referrer-policy-1.2.0.tgz",
@@ -15288,10 +17446,19 @@
"integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==",
"dev": true
},
+ "regenerate-unicode-properties": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz",
+ "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==",
+ "dev": true,
+ "requires": {
+ "regenerate": "1.4.0"
+ }
+ },
"regenerator-runtime": {
- "version": "0.13.3",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
- "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw=="
+ "version": "0.13.5",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
+ "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA=="
},
"regenerator-transform": {
"version": "0.10.1",
@@ -15310,7 +17477,7 @@
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"dev": true,
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -15347,6 +17514,15 @@
"integrity": "sha512-8t6074A68gHfU8Neftl0Le6KTDwfGAj7IyjPIMSfikI2wJUTHDMaIq42bUsfVnj8mhx0R+45rdUXHGpN164avA==",
"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==",
+ "requires": {
+ "define-properties": "1.1.3",
+ "es-abstract": "1.17.5"
+ }
+ },
"regexpp": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-1.1.0.tgz",
@@ -15354,26 +17530,29 @@
"dev": true
},
"regexpu-core": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
- "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz",
+ "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==",
"dev": true,
"requires": {
"regenerate": "1.4.0",
- "regjsgen": "0.2.0",
- "regjsparser": "0.1.5"
+ "regenerate-unicode-properties": "8.2.0",
+ "regjsgen": "0.5.1",
+ "regjsparser": "0.6.4",
+ "unicode-match-property-ecmascript": "1.0.4",
+ "unicode-match-property-value-ecmascript": "1.2.0"
}
},
"regjsgen": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
- "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=",
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz",
+ "integrity": "sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==",
"dev": true
},
"regjsparser": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
- "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz",
+ "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==",
"dev": true,
"requires": {
"jsesc": "0.5.0"
@@ -15387,6 +17566,11 @@
}
}
},
+ "relateurl": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
+ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk="
+ },
"remark": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/remark/-/remark-10.0.1.tgz",
@@ -15404,20 +17588,20 @@
"integrity": "sha512-QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==",
"dev": true,
"requires": {
- "collapse-white-space": "1.0.5",
- "is-alphabetical": "1.0.3",
- "is-decimal": "1.0.3",
- "is-whitespace-character": "1.0.3",
- "is-word-character": "1.0.3",
- "markdown-escapes": "1.0.3",
+ "collapse-white-space": "1.0.6",
+ "is-alphabetical": "1.0.4",
+ "is-decimal": "1.0.4",
+ "is-whitespace-character": "1.0.4",
+ "is-word-character": "1.0.4",
+ "markdown-escapes": "1.0.4",
"parse-entities": "1.2.2",
"repeat-string": "1.6.1",
- "state-toggle": "1.0.2",
+ "state-toggle": "1.0.3",
"trim": "0.0.1",
- "trim-trailing-lines": "1.1.2",
- "unherit": "1.1.2",
- "unist-util-remove-position": "1.1.3",
- "vfile-location": "2.0.5",
+ "trim-trailing-lines": "1.1.3",
+ "unherit": "1.1.3",
+ "unist-util-remove-position": "1.1.4",
+ "vfile-location": "2.0.6",
"xtend": "4.0.2"
},
"dependencies": {
@@ -15435,19 +17619,19 @@
"integrity": "sha512-eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==",
"dev": true,
"requires": {
- "ccount": "1.0.4",
+ "ccount": "1.0.5",
"is-alphanumeric": "1.0.0",
- "is-decimal": "1.0.3",
- "is-whitespace-character": "1.0.3",
- "longest-streak": "2.0.3",
- "markdown-escapes": "1.0.3",
+ "is-decimal": "1.0.4",
+ "is-whitespace-character": "1.0.4",
+ "longest-streak": "2.0.4",
+ "markdown-escapes": "1.0.4",
"markdown-table": "1.1.3",
- "mdast-util-compact": "1.0.3",
+ "mdast-util-compact": "1.0.4",
"parse-entities": "1.2.2",
"repeat-string": "1.6.1",
- "state-toggle": "1.0.2",
+ "state-toggle": "1.0.3",
"stringify-entities": "1.3.2",
- "unherit": "1.1.2",
+ "unherit": "1.1.3",
"xtend": "4.0.2"
},
"dependencies": {
@@ -15474,8 +17658,7 @@
"repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
- "dev": true
+ "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
},
"repeating": {
"version": "2.0.1",
@@ -15483,7 +17666,7 @@
"integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
"dev": true,
"requires": {
- "is-finite": "1.0.2"
+ "is-finite": "1.1.0"
}
},
"replace-ext": {
@@ -15493,13 +17676,12 @@
"dev": true
},
"request": {
- "version": "2.88.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
- "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
- "dev": true,
+ "version": "2.88.2",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
"requires": {
"aws-sign2": "0.7.0",
- "aws4": "1.8.0",
+ "aws4": "1.9.1",
"caseless": "0.12.0",
"combined-stream": "1.0.8",
"extend": "3.0.2",
@@ -15510,37 +17692,30 @@
"is-typedarray": "1.0.0",
"isstream": "0.1.2",
"json-stringify-safe": "5.0.1",
- "mime-types": "2.1.24",
+ "mime-types": "2.1.26",
"oauth-sign": "0.9.0",
"performance-now": "2.1.0",
"qs": "6.5.2",
"safe-buffer": "5.1.2",
- "tough-cookie": "2.4.3",
+ "tough-cookie": "2.5.0",
"tunnel-agent": "0.6.0",
- "uuid": "3.3.3"
+ "uuid": "3.4.0"
},
"dependencies": {
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
- "dev": true
+ "form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "requires": {
+ "asynckit": "0.4.0",
+ "combined-stream": "1.0.8",
+ "mime-types": "2.1.26"
+ }
},
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
- "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
- "dev": true
- },
- "tough-cookie": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
- "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
- "dev": true,
- "requires": {
- "psl": "1.3.0",
- "punycode": "1.4.1"
- }
+ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
}
}
},
@@ -15553,21 +17728,21 @@
}
},
"request-promise-core": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz",
- "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz",
+ "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==",
"dev": true,
"requires": {
"lodash": "4.17.15"
}
},
"request-promise-native": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz",
- "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz",
+ "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==",
"dev": true,
"requires": {
- "request-promise-core": "1.1.2",
+ "request-promise-core": "1.1.3",
"stealthy-require": "1.1.1",
"tough-cookie": "2.5.0"
}
@@ -15620,9 +17795,9 @@
"dev": true
},
"resolve": {
- "version": "1.12.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz",
- "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==",
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz",
+ "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==",
"dev": true,
"requires": {
"path-parse": "1.0.6"
@@ -15688,9 +17863,9 @@
"dev": true
},
"resolve-pathname": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz",
- "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
+ "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
},
"resolve-url": {
"version": "0.2.1",
@@ -15706,8 +17881,8 @@
"requires": {
"adjust-sourcemap-loader": "1.2.0",
"camelcase": "4.1.0",
- "convert-source-map": "1.6.0",
- "loader-utils": "1.2.3",
+ "convert-source-map": "1.7.0",
+ "loader-utils": "1.4.0",
"lodash.defaults": "4.2.0",
"rework": "1.0.1",
"rework-visit": "1.0.0",
@@ -15730,7 +17905,7 @@
"dev": true,
"requires": {
"onetime": "2.0.1",
- "signal-exit": "3.0.2"
+ "signal-exit": "3.0.3"
}
},
"ret": {
@@ -15763,13 +17938,37 @@
"integrity": "sha1-mUWygD8hni96ygCtuLyfZA+ELJo=",
"dev": true
},
+ "right-align": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
+ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
+ "requires": {
+ "align-text": "0.1.4"
+ }
+ },
"rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dev": true,
"requires": {
- "glob": "7.1.4"
+ "glob": "7.1.6"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ }
}
},
"ripemd160": {
@@ -15779,7 +17978,7 @@
"dev": true,
"requires": {
"hash-base": "3.0.4",
- "inherits": "2.0.3"
+ "inherits": "2.0.4"
}
},
"rsvp": {
@@ -15789,9 +17988,9 @@
"dev": true
},
"run-async": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz",
- "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=",
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz",
+ "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==",
"dev": true,
"requires": {
"is-promise": "2.1.0"
@@ -15826,6 +18025,12 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
+ "safe-json-stringify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
+ "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
+ "optional": true
+ },
"safe-regex": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
@@ -15840,6 +18045,11 @@
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
+ "samsam": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz",
+ "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc="
+ },
"sane": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz",
@@ -15849,10 +18059,10 @@
"anymatch": "2.0.0",
"capture-exit": "1.2.0",
"exec-sh": "0.2.2",
- "fb-watchman": "2.0.0",
- "fsevents": "1.2.9",
+ "fb-watchman": "2.0.1",
+ "fsevents": "1.2.12",
"micromatch": "3.1.10",
- "minimist": "1.2.0",
+ "minimist": "1.2.5",
"walker": "1.0.7",
"watch": "0.18.0"
},
@@ -16074,7 +18284,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-data-descriptor": {
@@ -16083,7 +18293,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-descriptor": {
@@ -16094,7 +18304,7 @@
"requires": {
"is-accessor-descriptor": "1.0.0",
"is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-number": {
@@ -16124,9 +18334,9 @@
"dev": true
},
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
},
"micromatch": {
@@ -16142,7 +18352,7 @@
"extend-shallow": "3.0.2",
"extglob": "2.0.4",
"fragment-cache": "0.2.1",
- "kind-of": "6.0.2",
+ "kind-of": "6.0.3",
"nanomatch": "1.2.13",
"object.pick": "1.3.0",
"regex-not": "1.0.2",
@@ -16164,7 +18374,7 @@
"integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
"dev": true,
"requires": {
- "glob": "7.1.4",
+ "glob": "7.1.6",
"lodash": "4.17.15",
"scss-tokenizer": "0.2.3",
"yargs": "7.1.0"
@@ -16197,6 +18407,26 @@
"pinkie-promise": "2.0.1"
}
},
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
+ "invert-kv": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "dev": true
+ },
"is-fullwidth-code-point": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
@@ -16206,13 +18436,22 @@
"number-is-nan": "1.0.1"
}
},
+ "lcid": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "dev": true,
+ "requires": {
+ "invert-kv": "1.0.0"
+ }
+ },
"load-json-file": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
+ "graceful-fs": "4.2.3",
"parse-json": "2.2.0",
"pify": "2.3.0",
"pinkie-promise": "2.0.1",
@@ -16243,7 +18482,7 @@
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
+ "graceful-fs": "4.2.3",
"pify": "2.3.0",
"pinkie-promise": "2.0.1"
}
@@ -16340,7 +18579,7 @@
"dev": true,
"requires": {
"clone-deep": "4.0.1",
- "loader-utils": "1.2.3",
+ "loader-utils": "1.4.0",
"neo-async": "2.6.1",
"pify": "4.0.1",
"semver": "6.3.0"
@@ -16363,13 +18602,12 @@
"sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
- "dev": true
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
},
"scheduler": {
- "version": "0.15.0",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz",
- "integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==",
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
+ "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
"requires": {
"loose-envify": "1.4.0",
"object-assign": "4.1.1"
@@ -16381,7 +18619,7 @@
"integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==",
"dev": true,
"requires": {
- "ajv": "6.10.2",
+ "ajv": "6.12.0",
"ajv-keywords": "3.4.1"
}
},
@@ -16391,7 +18629,7 @@
"integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
"dev": true,
"requires": {
- "js-base64": "2.5.1",
+ "js-base64": "2.5.2",
"source-map": "0.4.4"
},
"dependencies": {
@@ -16417,6 +18655,11 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.1.0.tgz",
"integrity": "sha1-hfLPhVBGXE3wAM99hvawVBBqueU="
},
+ "semver-compare": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w="
+ },
"send": {
"version": "0.17.1",
"resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
@@ -16459,10 +18702,18 @@
}
}
},
+ "sentence-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz",
+ "integrity": "sha1-gDSq/CFFdy06vhUJqkLJ4QQtwTk=",
+ "requires": {
+ "lower-case": "1.1.4"
+ }
+ },
"serialize-javascript": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.8.0.tgz",
- "integrity": "sha512-3tHgtF4OzDmeKYj6V9nSyceRS0UJ3C7VqyD2Yj28vC/z2j6jG5FmFGahOKMD9CrglxTm3tETr87jEypaYV8DUg=="
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz",
+ "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A=="
},
"serve-favicon": {
"version": "2.5.0",
@@ -16531,8 +18782,7 @@
"setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=",
- "dev": true
+ "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
},
"setprototypeof": {
"version": "1.1.1",
@@ -16545,7 +18795,7 @@
"integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
"dev": true,
"requires": {
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"safe-buffer": "5.1.2"
}
},
@@ -16555,13 +18805,13 @@
"integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
},
"dependencies": {
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
}
}
@@ -16593,19 +18843,46 @@
"dev": true
},
"shortid": {
- "version": "2.2.14",
- "resolved": "https://registry.npmjs.org/shortid/-/shortid-2.2.14.tgz",
- "integrity": "sha512-4UnZgr9gDdA1kaKj/38IiudfC3KHKhDc1zi/HSxd9FQDR0VLwH3/y79tZJLsVYPsJgIjeHjqIWaWVRJUj9qZOQ==",
+ "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.11"
+ }
+ },
+ "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": {
- "nanoid": "2.0.3"
+ "es-abstract": "1.17.5",
+ "object-inspect": "1.7.0"
}
},
"signal-exit": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
- "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
"dev": true
},
+ "simple-assign": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/simple-assign/-/simple-assign-0.1.0.tgz",
+ "integrity": "sha1-F/0wZqXz13OPUDIbsPFMooHMS6o="
+ },
+ "sinon": {
+ "version": "2.0.0-pre",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-2.0.0-pre.tgz",
+ "integrity": "sha1-GCk7APsvFVyZ6OW0bjH36t4ygV0=",
+ "requires": {
+ "formatio": "1.1.1",
+ "lolex": "1.3.2",
+ "samsam": "1.1.2",
+ "text-encoding": "0.5.2",
+ "util": "0.10.3"
+ }
+ },
"sisteransi": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.1.tgz",
@@ -16627,6 +18904,14 @@
"is-fullwidth-code-point": "2.0.0"
}
},
+ "snake-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.2.tgz",
+ "integrity": "sha1-DC8l4wUVjZoY09l3BmGH/vilpmo=",
+ "requires": {
+ "sentence-case": "1.1.3"
+ }
+ },
"snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@@ -16639,7 +18924,7 @@
"extend-shallow": "2.0.1",
"map-cache": "0.2.2",
"source-map": "0.5.7",
- "source-map-resolve": "0.5.2",
+ "source-map-resolve": "0.5.3",
"use": "3.1.1"
},
"dependencies": {
@@ -16710,7 +18995,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-data-descriptor": {
@@ -16719,7 +19004,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-descriptor": {
@@ -16730,7 +19015,7 @@
"requires": {
"is-accessor-descriptor": "1.0.0",
"is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"isobject": {
@@ -16740,9 +19025,9 @@
"dev": true
},
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
}
}
@@ -16763,7 +19048,7 @@
"dev": true,
"requires": {
"array-back": "1.0.4",
- "object-get": "2.1.0",
+ "object-get": "2.1.1",
"typical": "2.6.1"
},
"dependencies": {
@@ -16806,9 +19091,9 @@
"dev": true
},
"source-map-resolve": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz",
- "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==",
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
+ "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
"dev": true,
"requires": {
"atob": "2.1.2",
@@ -16898,7 +19183,6 @@
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
"integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
- "dev": true,
"requires": {
"asn1": "0.2.4",
"assert-plus": "1.0.0",
@@ -16909,6 +19193,13 @@
"jsbn": "0.1.1",
"safer-buffer": "2.1.2",
"tweetnacl": "0.14.5"
+ },
+ "dependencies": {
+ "jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+ }
}
},
"ssri": {
@@ -16917,7 +19208,7 @@
"integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==",
"dev": true,
"requires": {
- "figgy-pudding": "3.5.1"
+ "figgy-pudding": "3.5.2"
}
},
"stack-utils": {
@@ -16927,9 +19218,9 @@
"dev": true
},
"state-toggle": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.2.tgz",
- "integrity": "sha512-8LpelPGR0qQM4PnfLiplOQNJcIN1/r2Gy0xKB2zKnIW2YzPMt2sR4I/+gtPjhN7Svh9kw+zqEg2SFwpBO9iNiw==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz",
+ "integrity": "sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==",
"dev": true
},
"static-extend": {
@@ -16964,7 +19255,7 @@
"integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
"dev": true,
"requires": {
- "readable-stream": "2.3.6"
+ "readable-stream": "2.3.7"
}
},
"stealthy-require": {
@@ -16979,8 +19270,8 @@
"integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==",
"dev": true,
"requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.3.6"
+ "inherits": "2.0.4",
+ "readable-stream": "2.3.7"
}
},
"stream-connect": {
@@ -17009,14 +19300,19 @@
}
}
},
+ "stream-consume": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz",
+ "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg=="
+ },
"stream-each": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz",
"integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==",
"dev": true,
"requires": {
- "end-of-stream": "1.4.1",
- "stream-shift": "1.0.0"
+ "end-of-stream": "1.4.4",
+ "stream-shift": "1.0.1"
}
},
"stream-http": {
@@ -17026,8 +19322,8 @@
"dev": true,
"requires": {
"builtin-status-codes": "3.0.0",
- "inherits": "2.0.3",
- "readable-stream": "2.3.6",
+ "inherits": "2.0.4",
+ "readable-stream": "2.3.7",
"to-arraybuffer": "1.0.1",
"xtend": "4.0.2"
},
@@ -17041,9 +19337,9 @@
}
},
"stream-shift": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
- "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz",
+ "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==",
"dev": true
},
"stream-via": {
@@ -17055,8 +19351,7 @@
"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
+ "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
},
"string-hash": {
"version": "1.1.3",
@@ -17118,11 +19413,42 @@
}
}
},
+ "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.5",
+ "has-symbols": "1.0.1",
+ "internal-slot": "1.0.2",
+ "regexp.prototype.flags": "1.3.0",
+ "side-channel": "1.0.2"
+ }
+ },
+ "string.prototype.trimleft": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
+ "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
+ "requires": {
+ "define-properties": "1.1.3",
+ "function-bind": "1.1.1"
+ }
+ },
+ "string.prototype.trimright": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
+ "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
+ "requires": {
+ "define-properties": "1.1.3",
+ "function-bind": "1.1.1"
+ }
+ },
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
"requires": {
"safe-buffer": "5.1.2"
}
@@ -17133,10 +19459,10 @@
"integrity": "sha512-nrBAQClJAPN2p+uGCVJRPIPakKeKWZ9GtBCmormE7pWOSlHat7+x5A8gx85M7HM5Dt0BP3pP5RhVW77WdbJJ3A==",
"dev": true,
"requires": {
- "character-entities-html4": "1.1.3",
- "character-entities-legacy": "1.1.3",
- "is-alphanumerical": "1.0.3",
- "is-hexadecimal": "1.0.3"
+ "character-entities-html4": "1.1.4",
+ "character-entities-legacy": "1.1.4",
+ "is-alphanumerical": "1.0.4",
+ "is-hexadecimal": "1.0.4"
}
},
"strip-ansi": {
@@ -17181,7 +19507,7 @@
"integrity": "sha512-T+UNsAcl3Yg+BsPKs1vd22Fr8sVT+CJMtzqc6LEw9bbJZb43lm9GoeIfUcDEefBSWC0BhYbcdupV1GtI4DGzxg==",
"dev": true,
"requires": {
- "loader-utils": "1.2.3",
+ "loader-utils": "1.4.0",
"schema-utils": "0.4.7"
}
},
@@ -17197,7 +19523,7 @@
"integrity": "sha512-9UiHxZhOAHEgeQ7oLGwrwoDR8vclBKlSX7r4fH0iuu0SfPwFaLkb1c7Q2j1cqg9P7IDXeAV2TvQML/fRQzGBBQ==",
"dev": true,
"requires": {
- "autoprefixer": "9.6.1",
+ "autoprefixer": "9.7.5",
"balanced-match": "1.0.0",
"chalk": "2.4.2",
"cosmiconfig": "5.2.1",
@@ -17216,27 +19542,27 @@
"leven": "2.1.0",
"lodash": "4.17.15",
"log-symbols": "2.2.0",
- "mathml-tag-names": "2.1.1",
+ "mathml-tag-names": "2.1.3",
"meow": "5.0.0",
"micromatch": "3.1.10",
"normalize-selector": "0.2.0",
"pify": "4.0.1",
- "postcss": "7.0.17",
+ "postcss": "7.0.27",
"postcss-html": "0.36.0",
- "postcss-jsx": "0.36.3",
+ "postcss-jsx": "0.36.4",
"postcss-less": "3.1.4",
"postcss-markdown": "0.36.0",
"postcss-media-query-parser": "0.2.3",
"postcss-reporter": "6.0.1",
"postcss-resolve-nested-selector": "0.1.1",
- "postcss-safe-parser": "4.0.1",
+ "postcss-safe-parser": "4.0.2",
"postcss-sass": "0.3.5",
"postcss-scss": "2.0.0",
- "postcss-selector-parser": "3.1.1",
+ "postcss-selector-parser": "3.1.2",
"postcss-syntax": "0.36.2",
"postcss-value-parser": "3.3.1",
"resolve-from": "4.0.0",
- "signal-exit": "3.0.2",
+ "signal-exit": "3.0.3",
"slash": "2.0.0",
"specificity": "0.4.1",
"string-width": "3.1.0",
@@ -17265,24 +19591,24 @@
"dev": true
},
"autoprefixer": {
- "version": "9.6.1",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz",
- "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==",
+ "version": "9.7.5",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.5.tgz",
+ "integrity": "sha512-URo6Zvt7VYifomeAfJlMFnYDhow1rk2bufwkbamPEAtQFcL11moLk4PnR7n9vlu7M+BkXAZkHFA0mIcY7tjQFg==",
"dev": true,
"requires": {
- "browserslist": "4.6.6",
- "caniuse-lite": "1.0.30000989",
+ "browserslist": "4.11.0",
+ "caniuse-lite": "1.0.30001038",
"chalk": "2.4.2",
"normalize-range": "0.1.2",
"num2fraction": "1.2.2",
- "postcss": "7.0.17",
- "postcss-value-parser": "4.0.2"
+ "postcss": "7.0.27",
+ "postcss-value-parser": "4.0.3"
},
"dependencies": {
"postcss-value-parser": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz",
- "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz",
+ "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==",
"dev": true
}
}
@@ -17317,14 +19643,15 @@
}
},
"browserslist": {
- "version": "4.6.6",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz",
- "integrity": "sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==",
+ "version": "4.11.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.0.tgz",
+ "integrity": "sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A==",
"dev": true,
"requires": {
- "caniuse-lite": "1.0.30000989",
- "electron-to-chromium": "1.3.238",
- "node-releases": "1.1.28"
+ "caniuse-lite": "1.0.30001038",
+ "electron-to-chromium": "1.3.390",
+ "node-releases": "1.1.53",
+ "pkg-up": "3.1.0"
}
},
"camelcase-keys": {
@@ -17507,13 +19834,22 @@
}
}
},
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "3.0.0"
+ }
+ },
"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.1",
+ "flatted": "2.0.2",
"rimraf": "2.6.3",
"write": "1.0.3"
}
@@ -17524,6 +19860,20 @@
"integrity": "sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==",
"dev": true
},
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ },
"ignore": {
"version": "5.1.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz",
@@ -17542,7 +19892,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-data-descriptor": {
@@ -17551,7 +19901,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-descriptor": {
@@ -17562,7 +19912,7 @@
"requires": {
"is-accessor-descriptor": "1.0.0",
"is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-number": {
@@ -17592,9 +19942,9 @@
"dev": true
},
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
},
"load-json-file": {
@@ -17603,7 +19953,7 @@
"integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
+ "graceful-fs": "4.2.3",
"parse-json": "4.0.0",
"pify": "3.0.0",
"strip-bom": "3.0.0"
@@ -17617,6 +19967,16 @@
}
}
},
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "3.0.0",
+ "path-exists": "3.0.0"
+ }
+ },
"map-obj": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-2.0.0.tgz",
@@ -17653,7 +20013,7 @@
"extend-shallow": "3.0.2",
"extglob": "2.0.4",
"fragment-cache": "0.2.1",
- "kind-of": "6.0.2",
+ "kind-of": "6.0.3",
"nanomatch": "1.2.13",
"object.pick": "1.3.0",
"regex-not": "1.0.2",
@@ -17661,10 +20021,34 @@
"to-regex": "3.0.2"
}
},
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true
+ },
+ "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==",
+ "dev": true,
+ "requires": {
+ "p-try": "2.2.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "2.2.2"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
"parse-json": {
@@ -17700,10 +20084,19 @@
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
"dev": true
},
+ "pkg-up": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
+ "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
+ "dev": true,
+ "requires": {
+ "find-up": "3.0.0"
+ }
+ },
"postcss": {
- "version": "7.0.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz",
- "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==",
+ "version": "7.0.27",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
+ "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
"dev": true,
"requires": {
"chalk": "2.4.2",
@@ -17717,16 +20110,16 @@
"integrity": "sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug==",
"dev": true,
"requires": {
- "postcss": "7.0.17"
+ "postcss": "7.0.27"
}
},
"postcss-selector-parser": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz",
- "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz",
+ "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==",
"dev": true,
"requires": {
- "dot-prop": "4.2.0",
+ "dot-prop": "5.2.0",
"indexes-of": "1.0.1",
"uniq": "1.0.1"
}
@@ -17750,6 +20143,51 @@
"requires": {
"find-up": "2.1.0",
"read-pkg": "3.0.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"
+ }
+ },
+ "locate-path": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "dev": true,
+ "requires": {
+ "p-locate": "2.0.0",
+ "path-exists": "3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
+ "dev": true,
+ "requires": {
+ "p-try": "1.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "dev": true,
+ "requires": {
+ "p-limit": "1.3.0"
+ }
+ },
+ "p-try": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "dev": true
+ }
}
},
"redent": {
@@ -17774,7 +20212,7 @@
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"dev": true,
"requires": {
- "glob": "7.1.4"
+ "glob": "7.1.6"
}
},
"slash": {
@@ -17835,7 +20273,7 @@
"integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
"dev": true,
"requires": {
- "ajv": "6.10.2",
+ "ajv": "6.12.0",
"lodash": "4.17.15",
"slice-ansi": "2.1.0",
"string-width": "3.1.0"
@@ -17853,7 +20291,7 @@
"integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
"dev": true,
"requires": {
- "mkdirp": "0.5.1"
+ "mkdirp": "0.5.4"
}
},
"yargs-parser": {
@@ -17888,13 +20326,13 @@
"integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==",
"dev": true,
"requires": {
- "postcss": "7.0.17"
+ "postcss": "7.0.27"
},
"dependencies": {
"postcss": {
- "version": "7.0.17",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz",
- "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==",
+ "version": "7.0.27",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz",
+ "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==",
"dev": true,
"requires": {
"chalk": "2.4.2",
@@ -17913,6 +20351,33 @@
}
}
},
+ "superagent": {
+ "version": "3.8.3",
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz",
+ "integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==",
+ "requires": {
+ "component-emitter": "1.3.0",
+ "cookiejar": "2.1.2",
+ "debug": "3.2.6",
+ "extend": "3.0.2",
+ "form-data": "2.5.1",
+ "formidable": "1.2.2",
+ "methods": "1.1.2",
+ "mime": "1.6.0",
+ "qs": "6.9.3",
+ "readable-stream": "2.3.7"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "requires": {
+ "ms": "2.1.2"
+ }
+ }
+ }
+ },
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -17937,11 +20402,20 @@
"colors": "1.1.2",
"csso": "2.3.2",
"js-yaml": "3.7.0",
- "mkdirp": "0.5.1",
+ "mkdirp": "0.5.4",
"sax": "1.2.4",
"whet.extend": "0.9.9"
}
},
+ "swap-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz",
+ "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=",
+ "requires": {
+ "lower-case": "1.1.4",
+ "upper-case": "1.1.3"
+ }
+ },
"symbol-observable": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
@@ -17975,7 +20449,7 @@
"requires": {
"co": "4.6.0",
"fast-deep-equal": "1.1.0",
- "fast-json-stable-stringify": "2.0.0",
+ "fast-json-stable-stringify": "2.1.0",
"json-schema-traverse": "0.3.1"
}
},
@@ -18046,11 +20520,11 @@
"requires": {
"block-stream": "0.0.9",
"fstream": "1.0.12",
- "inherits": "2.0.3"
+ "inherits": "2.0.4"
}
},
"tc-accounts": {
- "version": "git+https://github.com/appirio-tech/accounts-app.git#51eb137c45d471368d96c35f1ce6bde1db78818d",
+ "version": "git+https://github.com/appirio-tech/accounts-app.git#41529eab164d442cff0d43eeed07998c097a2afe",
"requires": {
"@uirouter/angularjs": "1.0.18",
"angucomplete-alt": "2.5.0",
@@ -18060,7 +20534,7 @@
"angular-messages": "1.7.2",
"appirio-tech-ng-iso-constants": "1.0.6",
"appirio-tech-ng-ui-components": "2.2.5",
- "appirio-tech-react-components": "github:appirio-tech/react-components#f5a256f0d871764d53fa5ec3eb724caeea7f831a",
+ "appirio-tech-react-components": "github:appirio-tech/react-components#83e8d098cd0294b399a8d4573f21c636360ab790",
"auth0-js": "9.6.1",
"babel-polyfill": "6.26.0",
"filestack-js": "1.14.6",
@@ -18074,21 +20548,6 @@
"react2angular": "4.0.4"
},
"dependencies": {
- "@babel/runtime": {
- "version": "7.6.3",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.3.tgz",
- "integrity": "sha512-kq6anf9JGjW8Nt5rYfEuGRaEAaH1mkv3Bbu6rYvLOpPh/RusSJXuKPEAoZ7L7gybZkchE8+NV5g9vKF4AGAtsA==",
- "requires": {
- "regenerator-runtime": "0.13.3"
- },
- "dependencies": {
- "regenerator-runtime": {
- "version": "0.13.3",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz",
- "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw=="
- }
- }
- },
"@types/angular": {
"version": "1.6.50",
"resolved": "https://registry.npmjs.org/@types/angular/-/angular-1.6.50.tgz",
@@ -18104,7 +20563,7 @@
"resolved": "https://registry.npmjs.org/@types/lodash.frompairs/-/lodash.frompairs-4.0.4.tgz",
"integrity": "sha512-u/Ifsrh5yJ3j4DJ+sHiWeORyeQhDpSlVmdLqb4Z27pB0Vkp6ECw24mBEY0KxRXDi1Hy/NqVL7Cq3vqNEddQgcA==",
"requires": {
- "@types/lodash": "4.14.116"
+ "@types/lodash": "*"
}
},
"@uirouter/angularjs": {
@@ -18120,11 +20579,6 @@
"resolved": "https://registry.npmjs.org/@uirouter/core/-/core-5.0.19.tgz",
"integrity": "sha512-wow+CKRThUAQkiTLNQCBsKQIU3NbH8GGH/w/TrcjKdvkZQA2jQB9QSqmmZxj7XNoZXY7QVcSSc4DWmxuSeAWmQ=="
},
- "Base64": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/Base64/-/Base64-0.1.4.tgz",
- "integrity": "sha1-6fbGvvVn/WNepBYqsU3TKedKpt4="
- },
"abab": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz",
@@ -18140,7 +20594,7 @@
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
"integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
"requires": {
- "mime-types": "2.1.18",
+ "mime-types": "~2.1.18",
"negotiator": "0.6.1"
}
},
@@ -18154,7 +20608,7 @@
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
"integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=",
"requires": {
- "acorn": "2.7.0"
+ "acorn": "^2.1.0"
},
"dependencies": {
"acorn": {
@@ -18169,7 +20623,7 @@
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz",
"integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=",
"requires": {
- "acorn": "3.3.0"
+ "acorn": "^3.0.4"
},
"dependencies": {
"acorn": {
@@ -18184,7 +20638,7 @@
"resolved": "https://registry.npmjs.org/add-dom-event-listener/-/add-dom-event-listener-1.0.2.tgz",
"integrity": "sha1-j67SxBAIchzxEdodMNmVuFvkK+0=",
"requires": {
- "object-assign": "4.1.1"
+ "object-assign": "4.x"
},
"dependencies": {
"object-assign": {
@@ -18199,286 +20653,94 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz",
"integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=",
"requires": {
- "co": "4.6.0",
- "json-stable-stringify": "1.0.1"
+ "co": "^4.6.0",
+ "json-stable-stringify": "^1.0.1"
}
},
"ajv-keywords": {
"version": "1.5.1",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
- "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw="
- },
- "align-text": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
- "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
- "requires": {
- "kind-of": "3.2.2",
- "longest": "1.0.1",
- "repeat-string": "1.6.1"
- }
- },
- "alphanum-sort": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
- "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM="
- },
- "amdefine": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
- "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
- },
- "angucomplete-alt": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/angucomplete-alt/-/angucomplete-alt-2.5.0.tgz",
- "integrity": "sha1-rsLmnVD7E7lCmgxP0oqPIYwGUEo="
- },
- "angular": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/angular/-/angular-1.7.2.tgz",
- "integrity": "sha512-JcKKJbBdybUsmQ6x1M3xWyTYQ/ioVKJhSByEAjqrhmlOfvMFdhfMqAx5KIo8rLGk4DFolYPcCSgssjgTVjCtRQ=="
- },
- "angular-auth0": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/angular-auth0/-/angular-auth0-3.0.0.tgz",
- "integrity": "sha512-wU7CI0YybpHeKfrleUV/LK+0iVHZeWbrpwsj6d+kRUpHetPBdRMWcTsYNLcxFZ04esmIBgmuAyZ6qZSkJHsfpA==",
- "requires": {
- "angular": "1.7.2",
- "auth0-js": "9.6.1"
- }
- },
- "angular-cookies": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/angular-cookies/-/angular-cookies-1.7.2.tgz",
- "integrity": "sha512-5+B6ypV51aRPbQaqC2R5pr96q946C662dQC8QC1UL+cAlLkgkKZXXXzFRhiaEnhntkSnURWVCPasLVHQdZ3YgA=="
- },
- "angular-messages": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/angular-messages/-/angular-messages-1.7.2.tgz",
- "integrity": "sha512-hLBZAApHpemfTN3IsItSczrLVm+6sAIn9XRV5PEFKBmfqE1umAmPAeFByfy9DLebJyR17rcFQ5qMj/KZk0ZtBA=="
- },
- "angular-mocks": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/angular-mocks/-/angular-mocks-1.7.2.tgz",
- "integrity": "sha512-yj9eWPG0usXX2eDTWM6YOmAGKraT7qHwuD+NrNyaR+mtrNr2ls77WuWXTjE1hZpmxTaGj4+R1nMY696XZn740Q=="
- },
- "angular-scroll": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/angular-scroll/-/angular-scroll-1.0.2.tgz",
- "integrity": "sha1-J2j/NdvhzkDgw/vt1FNIiCmcPi0="
- },
- "ansi-escapes": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
- "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4="
- },
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
- },
- "ansi-styles": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
- },
- "anymatch": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
- "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
- "requires": {
- "micromatch": "2.3.11",
- "normalize-path": "2.1.1"
- }
- },
- "appirio-styles": {
- "version": "0.0.30",
- "resolved": "https://registry.npmjs.org/appirio-styles/-/appirio-styles-0.0.30.tgz",
- "integrity": "sha1-VZx5umDjDW/2Ib2r+RvUeRTTzGE=",
- "requires": {
- "node-neat": "1.7.2"
- }
- },
- "appirio-tech-api-schemas": {
- "version": "5.0.70",
- "resolved": "https://registry.npmjs.org/appirio-tech-api-schemas/-/appirio-tech-api-schemas-5.0.70.tgz",
- "integrity": "sha1-3RtCG/rw8PSokKRTgHSlVYDQy8s=",
- "requires": {
- "auto-config-fake-server": "2.0.604"
- }
- },
- "appirio-tech-client-app-layer": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/appirio-tech-client-app-layer/-/appirio-tech-client-app-layer-0.1.3.tgz",
- "integrity": "sha1-uO5YdHMM2r209RE8NMQvwOsxoOs=",
- "requires": {
- "axios": "0.8.1",
- "history": "1.17.0",
- "html-webpack-plugin": "1.7.0",
- "humps": "0.6.0",
- "isomorphic-fetch": "2.2.1",
- "jwt-decode": "1.5.1",
- "lodash": "4.17.10",
- "normalizr": "1.4.1",
- "q": "1.5.1",
- "react": "0.14.9",
- "react-dom": "0.14.9",
- "react-redux": "4.4.9",
- "react-router": "1.0.3",
- "redux": "3.7.2",
- "redux-form": "4.2.2",
- "redux-logger": "2.10.2",
- "redux-router": "1.0.0",
- "redux-thunk": "0.1.0"
- },
- "dependencies": {
- "clean-css": {
- "version": "3.4.28",
- "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz",
- "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=",
- "requires": {
- "commander": "2.8.1",
- "source-map": "0.4.4"
- },
- "dependencies": {
- "commander": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
- "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
- "requires": {
- "graceful-readlink": "1.0.1"
- }
- }
- }
- },
- "commander": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
- "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
- "requires": {
- "graceful-readlink": "1.0.1"
- }
- },
- "concat-stream": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz",
- "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=",
- "requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.0.6",
- "typedarray": "0.0.6"
- }
- },
- "fbjs": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz",
- "integrity": "sha1-lja3cF9bqWhNRLcveDISVK/IYPc=",
- "requires": {
- "core-js": "1.2.7",
- "loose-envify": "1.3.1",
- "promise": "7.3.1",
- "ua-parser-js": "0.7.18",
- "whatwg-fetch": "0.9.0"
- }
- },
- "he": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.0.0.tgz",
- "integrity": "sha1-baWyZdfyw7XkgHSRaODhWdBXKNo="
- },
- "html-minifier": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-1.5.0.tgz",
- "integrity": "sha1-vrBf2cw0CUWGXBD0Cu30aa9LFTQ=",
- "requires": {
- "change-case": "2.3.1",
- "clean-css": "3.4.28",
- "commander": "2.9.0",
- "concat-stream": "1.5.2",
- "he": "1.0.0",
- "ncname": "1.0.0",
- "relateurl": "0.2.7",
- "uglify-js": "2.6.4"
- }
- },
- "html-webpack-plugin": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-1.7.0.tgz",
- "integrity": "sha1-zQxzx5G9DIxFsk4wAb4zSmt0KXs=",
- "requires": {
- "bluebird": "3.5.1",
- "blueimp-tmpl": "2.5.7",
- "html-minifier": "1.5.0",
- "lodash": "3.10.1"
- },
- "dependencies": {
- "lodash": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
- "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
- }
- }
- },
- "process-nextick-args": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
- },
- "react": {
- "version": "0.14.9",
- "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz",
- "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=",
- "requires": {
- "envify": "3.4.1",
- "fbjs": "0.6.1"
- }
- },
- "react-dom": {
- "version": "0.14.9",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.9.tgz",
- "integrity": "sha1-BQZKPc8PsYgKOyv8nVjFXY2fYpM="
- },
- "readable-stream": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
- "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
- "requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "1.0.7",
- "string_decoder": "0.10.31",
- "util-deprecate": "1.0.2"
- }
- },
- "redux-thunk": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-0.1.0.tgz",
- "integrity": "sha1-jjR2BoCLNb+Kkn30YW9v7RAYJuU="
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- },
- "uglify-js": {
- "version": "2.6.4",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz",
- "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=",
- "requires": {
- "async": "0.2.10",
- "source-map": "0.5.7",
- "uglify-to-browserify": "1.0.2",
- "yargs": "3.10.0"
- },
- "dependencies": {
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
- }
- }
- }
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz",
+ "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw="
+ },
+ "alphanum-sort": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz",
+ "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM="
+ },
+ "amdefine": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+ "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
+ },
+ "angucomplete-alt": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/angucomplete-alt/-/angucomplete-alt-2.5.0.tgz",
+ "integrity": "sha1-rsLmnVD7E7lCmgxP0oqPIYwGUEo="
+ },
+ "angular": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/angular/-/angular-1.7.2.tgz",
+ "integrity": "sha512-JcKKJbBdybUsmQ6x1M3xWyTYQ/ioVKJhSByEAjqrhmlOfvMFdhfMqAx5KIo8rLGk4DFolYPcCSgssjgTVjCtRQ=="
+ },
+ "angular-auth0": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/angular-auth0/-/angular-auth0-3.0.0.tgz",
+ "integrity": "sha512-wU7CI0YybpHeKfrleUV/LK+0iVHZeWbrpwsj6d+kRUpHetPBdRMWcTsYNLcxFZ04esmIBgmuAyZ6qZSkJHsfpA==",
+ "requires": {
+ "angular": "^1.6.8",
+ "auth0-js": "^9.0.0"
+ }
+ },
+ "angular-cookies": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/angular-cookies/-/angular-cookies-1.7.2.tgz",
+ "integrity": "sha512-5+B6ypV51aRPbQaqC2R5pr96q946C662dQC8QC1UL+cAlLkgkKZXXXzFRhiaEnhntkSnURWVCPasLVHQdZ3YgA=="
+ },
+ "angular-messages": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/angular-messages/-/angular-messages-1.7.2.tgz",
+ "integrity": "sha512-hLBZAApHpemfTN3IsItSczrLVm+6sAIn9XRV5PEFKBmfqE1umAmPAeFByfy9DLebJyR17rcFQ5qMj/KZk0ZtBA=="
+ },
+ "angular-mocks": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/angular-mocks/-/angular-mocks-1.7.2.tgz",
+ "integrity": "sha512-yj9eWPG0usXX2eDTWM6YOmAGKraT7qHwuD+NrNyaR+mtrNr2ls77WuWXTjE1hZpmxTaGj4+R1nMY696XZn740Q=="
+ },
+ "angular-scroll": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/angular-scroll/-/angular-scroll-1.0.2.tgz",
+ "integrity": "sha1-J2j/NdvhzkDgw/vt1FNIiCmcPi0="
+ },
+ "ansi-escapes": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz",
+ "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4="
+ },
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ },
+ "ansi-styles": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ },
+ "anymatch": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz",
+ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==",
+ "requires": {
+ "micromatch": "^2.1.5",
+ "normalize-path": "^2.0.0"
+ }
+ },
+ "appirio-styles": {
+ "version": "0.0.30",
+ "resolved": "https://registry.npmjs.org/appirio-styles/-/appirio-styles-0.0.30.tgz",
+ "integrity": "sha1-VZx5umDjDW/2Ib2r+RvUeRTTzGE=",
+ "requires": {
+ "node-neat": "~1.7.1-beta1"
}
},
"appirio-tech-ng-iso-constants": {
@@ -18491,19 +20753,19 @@
"resolved": "https://registry.npmjs.org/appirio-tech-ng-ui-components/-/appirio-tech-ng-ui-components-2.2.5.tgz",
"integrity": "sha1-QO2YuvZ3EjzHpxXRhcbI4phfrBI=",
"requires": {
- "@uirouter/angularjs": "1.0.18",
- "angular": "1.4.14",
- "angular-scroll": "1.0.2",
- "classnames": "2.2.6",
- "moment": "2.10.6",
- "ngreact": "0.2.0",
- "react": "0.14.9",
- "react-dom": "0.14.9",
- "react-input-autosize": "0.6.13",
- "react-redux": "4.4.9",
- "react-select": "0.9.1",
- "redux": "3.7.2",
- "zepto": "0.0.4"
+ "@uirouter/angularjs": "1.0.x",
+ "angular": "1.4.x",
+ "angular-scroll": "1.0.x",
+ "classnames": "^2.2.1",
+ "moment": "2.10.x",
+ "ngreact": "0.2.x",
+ "react": "0.14.x",
+ "react-dom": "0.14.x",
+ "react-input-autosize": "0.6.x",
+ "react-redux": "^4.1.1",
+ "react-select": "0.9.x",
+ "redux": "^3.1.2",
+ "zepto": "0.0.x"
},
"dependencies": {
"angular": {
@@ -18516,11 +20778,11 @@
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz",
"integrity": "sha1-lja3cF9bqWhNRLcveDISVK/IYPc=",
"requires": {
- "core-js": "1.2.7",
- "loose-envify": "1.3.1",
- "promise": "7.3.1",
- "ua-parser-js": "0.7.18",
- "whatwg-fetch": "0.9.0"
+ "core-js": "^1.0.0",
+ "loose-envify": "^1.0.0",
+ "promise": "^7.0.3",
+ "ua-parser-js": "^0.7.9",
+ "whatwg-fetch": "^0.9.0"
}
},
"react": {
@@ -18528,8 +20790,8 @@
"resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz",
"integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=",
"requires": {
- "envify": "3.4.1",
- "fbjs": "0.6.1"
+ "envify": "^3.0.0",
+ "fbjs": "^0.6.1"
}
},
"react-dom": {
@@ -18540,7 +20802,7 @@
}
},
"appirio-tech-react-components": {
- "version": "github:appirio-tech/react-components#f5a256f0d871764d53fa5ec3eb724caeea7f831a",
+ "version": "github:appirio-tech/react-components#83e8d098cd0294b399a8d4573f21c636360ab790",
"requires": {
"appirio-tech-api-schemas": "5.0.70",
"appirio-tech-client-app-layer": "0.1.3",
@@ -18550,7 +20812,7 @@
"filestack-js": "1.14.6",
"formsy-react": "0.19.5",
"isomorphic-fetch": "2.2.1",
- "libphonenumber-js": "1.7.26",
+ "libphonenumber-js": "1.4.6",
"lodash": "4.17.10",
"material-ui": "0.20.2",
"moment": "2.24.0",
@@ -18564,7 +20826,7 @@
"react-dom": "15.6.2",
"react-dropzone": "3.13.4",
"react-popper": "0.7.5",
- "react-portal": "4.2.0",
+ "react-portal": "4.2.1",
"react-redux": "4.4.9",
"react-router-dom": "4.3.1",
"react-select": "0.9.1",
@@ -18576,17 +20838,12 @@
"uncontrollable": "4.1.0"
},
"dependencies": {
- "coffeescript": {
- "version": "1.12.7",
- "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.12.7.tgz",
- "integrity": "sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA=="
- },
"loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"requires": {
- "js-tokens": "3.0.2"
+ "js-tokens": "^3.0.0 || ^4.0.0"
}
},
"moment": {
@@ -18604,9 +20861,9 @@
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
"integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
"requires": {
- "loose-envify": "1.4.0",
- "object-assign": "4.1.1",
- "react-is": "16.11.0"
+ "loose-envify": "^1.4.0",
+ "object-assign": "^4.1.1",
+ "react-is": "^16.8.1"
}
},
"rc-slider": {
@@ -18614,21 +20871,13 @@
"resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-8.6.4.tgz",
"integrity": "sha512-CV2i2Ww6ib0EjFuBKvgjw3PgT6QwvWKC93iEpqPtrztZrx5wO9Iw//AUri4KHRqptW13AuBvFdEHovqLi6XFTw==",
"requires": {
- "babel-runtime": "6.26.0",
- "classnames": "2.2.6",
- "prop-types": "15.7.2",
- "rc-tooltip": "3.7.2",
- "rc-util": "4.5.1",
- "shallowequal": "1.1.0",
- "warning": "3.0.0"
- }
- },
- "warning": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
- "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
- "requires": {
- "loose-envify": "1.4.0"
+ "babel-runtime": "6.x",
+ "classnames": "^2.2.5",
+ "prop-types": "^15.5.4",
+ "rc-tooltip": "^3.7.0",
+ "rc-util": "^4.0.4",
+ "shallowequal": "^1.0.1",
+ "warning": "^3.0.0"
}
}
}
@@ -18638,36 +20887,36 @@
"resolved": "https://registry.npmjs.org/appirio-tech-webpack-config/-/appirio-tech-webpack-config-0.3.20.tgz",
"integrity": "sha1-6Z+WPo2AW0dqiSGQuooOTvINu1U=",
"requires": {
- "angular-mocks": "1.7.2",
- "appirio-styles": "0.0.30",
- "appirio-tech-api-schemas": "5.0.70",
- "babel-core": "6.26.3",
- "babel-loader": "6.4.1",
- "babel-plugin-lodash": "2.3.0",
- "babel-preset-es2015": "6.24.1",
- "babel-preset-react": "6.24.1",
- "babel-preset-stage-2": "6.24.1",
- "bourbon": "4.3.4",
- "cjsx-loader": "2.1.0",
- "coffee-loader": "0.7.3",
- "coffee-script": "1.12.7",
- "compression-webpack-plugin": "0.2.0",
- "css-loader": "0.23.1",
- "envify": "3.4.1",
- "extract-text-webpack-plugin": "0.9.1",
- "file-loader": "0.8.5",
- "html-webpack-plugin": "2.30.1",
- "jade": "1.11.0",
+ "angular-mocks": "^1.4.8",
+ "appirio-styles": "0.x.x",
+ "appirio-tech-api-schemas": "^5.0.63",
+ "babel-core": "^6.3.26",
+ "babel-loader": "^6.2.0",
+ "babel-plugin-lodash": "^2.2.1",
+ "babel-preset-es2015": "^6.3.13",
+ "babel-preset-react": "^6.3.13",
+ "babel-preset-stage-2": "^6.5.0",
+ "bourbon": "^4.2.6",
+ "cjsx-loader": "^2.1.0",
+ "coffee-loader": "0.x.x",
+ "coffee-script": "1.x.x",
+ "compression-webpack-plugin": "^0.2.0",
+ "css-loader": "^0.23.0",
+ "envify": "^3.4.0",
+ "extract-text-webpack-plugin": "^0.9.1",
+ "file-loader": "^0.8.5",
+ "html-webpack-plugin": "^2.7.2",
+ "jade": "^1.11.0",
"jade-html-loader": "0.0.3",
- "jade-loader": "0.8.0",
- "jade-react-loader": "1.0.2",
- "json-loader": "0.5.7",
- "node-sass": "3.13.1",
- "sass-loader": "3.2.3",
- "style-loader": "0.13.2",
- "transform-loader": "0.2.4",
- "webpack": "1.15.0",
- "webpack-dev-server": "1.16.5"
+ "jade-loader": "^0.8.0",
+ "jade-react-loader": "^1.0.0",
+ "json-loader": "^0.5.4",
+ "node-sass": "^3.4.2",
+ "sass-loader": "^3.1.2",
+ "style-loader": "^0.13.0",
+ "transform-loader": "^0.2.3",
+ "webpack": "^1.12.9",
+ "webpack-dev-server": "^1.10.1"
}
},
"aproba": {
@@ -18680,8 +20929,8 @@
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
"integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"requires": {
- "delegates": "1.0.0",
- "readable-stream": "2.3.6"
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
}
},
"argparse": {
@@ -18689,7 +20938,7 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"requires": {
- "sprintf-js": "1.0.3"
+ "sprintf-js": "~1.0.2"
}
},
"arr-diff": {
@@ -18697,7 +20946,7 @@
"resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
"integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
"requires": {
- "arr-flatten": "1.1.0"
+ "arr-flatten": "^1.0.1"
}
},
"arr-flatten": {
@@ -18720,7 +20969,7 @@
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
"requires": {
- "array-uniq": "1.0.3"
+ "array-uniq": "^1.0.1"
}
},
"array-uniq": {
@@ -18781,11 +21030,6 @@
"resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.9.6.tgz",
"integrity": "sha1-ECyenpAF0+fjgpvwxPok7oYu6bk="
},
- "async": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
- "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E="
- },
"async-each": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz",
@@ -18801,41 +21045,18 @@
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
- "attr-accept": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-1.1.3.tgz",
- "integrity": "sha512-iT40nudw8zmCweivz6j58g+RT33I4KbaIvRUhjNmDwO2WmsQUxFEZZYZ5w3vXe5x5MX9D7mfvA/XaLOZYFR9EQ==",
- "requires": {
- "core-js": "2.6.10"
- },
- "dependencies": {
- "core-js": {
- "version": "2.6.10",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.10.tgz",
- "integrity": "sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA=="
- }
- }
- },
"auth0-js": {
"version": "9.6.1",
"resolved": "https://registry.npmjs.org/auth0-js/-/auth0-js-9.6.1.tgz",
"integrity": "sha1-kI4bxemnxveHsBmtU9dojKqi9I4=",
"requires": {
- "base64-js": "1.3.0",
- "idtoken-verifier": "1.2.0",
- "js-cookie": "2.2.0",
- "qs": "6.5.2",
- "superagent": "3.8.3",
- "url-join": "1.1.0",
- "winchan": "0.2.0"
- }
- },
- "auto-config-fake-server": {
- "version": "2.0.604",
- "resolved": "https://registry.npmjs.org/auto-config-fake-server/-/auto-config-fake-server-2.0.604.tgz",
- "integrity": "sha1-FY5RTIR5nRQ5iNw/w7mpkwnNhkY=",
- "requires": {
- "sinon": "2.0.0-pre"
+ "base64-js": "^1.2.0",
+ "idtoken-verifier": "^1.2.0",
+ "js-cookie": "^2.2.0",
+ "qs": "^6.4.0",
+ "superagent": "^3.8.2",
+ "url-join": "^1.1.0",
+ "winchan": "^0.2.0"
}
},
"autoprefixer": {
@@ -18843,12 +21064,12 @@
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz",
"integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=",
"requires": {
- "browserslist": "1.7.7",
- "caniuse-db": "1.0.30000861",
- "normalize-range": "0.1.2",
- "num2fraction": "1.2.2",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
+ "browserslist": "^1.7.6",
+ "caniuse-db": "^1.0.30000634",
+ "normalize-range": "^0.1.2",
+ "num2fraction": "^1.2.2",
+ "postcss": "^5.2.16",
+ "postcss-value-parser": "^3.2.3"
}
},
"aws-sdk": {
@@ -18870,41 +21091,14 @@
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz",
"integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w=="
},
- "axios": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.8.1.tgz",
- "integrity": "sha1-4Or+wPNGE5Un3Dt5/cv/gDSiQEU=",
- "requires": {
- "follow-redirects": "0.0.7"
- },
- "dependencies": {
- "debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "follow-redirects": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-0.0.7.tgz",
- "integrity": "sha1-NLkLqyqRGqNHVx2pDyK9NuzYqRk=",
- "requires": {
- "debug": "2.6.9",
- "stream-consume": "0.1.1"
- }
- }
- }
- },
"babel-code-frame": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
"requires": {
- "chalk": "1.1.3",
- "esutils": "2.0.2",
- "js-tokens": "3.0.2"
+ "chalk": "^1.1.3",
+ "esutils": "^2.0.2",
+ "js-tokens": "^3.0.2"
}
},
"babel-core": {
@@ -18912,25 +21106,25 @@
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
"integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
"requires": {
- "babel-code-frame": "6.26.0",
- "babel-generator": "6.26.1",
- "babel-helpers": "6.24.1",
- "babel-messages": "6.23.0",
- "babel-register": "6.26.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "convert-source-map": "1.5.1",
- "debug": "2.6.9",
- "json5": "0.5.1",
- "lodash": "4.17.10",
- "minimatch": "3.0.4",
- "path-is-absolute": "1.0.1",
- "private": "0.1.8",
- "slash": "1.0.0",
- "source-map": "0.5.7"
+ "babel-code-frame": "^6.26.0",
+ "babel-generator": "^6.26.0",
+ "babel-helpers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-register": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "convert-source-map": "^1.5.1",
+ "debug": "^2.6.9",
+ "json5": "^0.5.1",
+ "lodash": "^4.17.4",
+ "minimatch": "^3.0.4",
+ "path-is-absolute": "^1.0.1",
+ "private": "^0.1.8",
+ "slash": "^1.0.0",
+ "source-map": "^0.5.7"
},
"dependencies": {
"debug": {
@@ -18953,14 +21147,14 @@
"resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz",
"integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==",
"requires": {
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "detect-indent": "4.0.0",
- "jsesc": "1.3.0",
- "lodash": "4.17.10",
- "source-map": "0.5.7",
- "trim-right": "1.0.1"
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "detect-indent": "^4.0.0",
+ "jsesc": "^1.3.0",
+ "lodash": "^4.17.4",
+ "source-map": "^0.5.7",
+ "trim-right": "^1.0.1"
},
"dependencies": {
"source-map": {
@@ -18975,9 +21169,9 @@
"resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz",
"integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
"babel-helper-builder-binary-assignment-operator-visitor": {
@@ -18985,9 +21179,9 @@
"resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz",
"integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=",
"requires": {
- "babel-helper-explode-assignable-expression": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-helper-explode-assignable-expression": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
"babel-helper-builder-react-jsx": {
@@ -18995,9 +21189,9 @@
"resolved": "https://registry.npmjs.org/babel-helper-builder-react-jsx/-/babel-helper-builder-react-jsx-6.26.0.tgz",
"integrity": "sha1-Of+DE7dci2Xc7/HzHTg+D/KkCKA=",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "esutils": "2.0.2"
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "esutils": "^2.0.2"
}
},
"babel-helper-call-delegate": {
@@ -19005,10 +21199,10 @@
"resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
"integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
"requires": {
- "babel-helper-hoist-variables": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
"babel-helper-define-map": {
@@ -19016,10 +21210,10 @@
"resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
"integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
"requires": {
- "babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "lodash": "4.17.10"
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
}
},
"babel-helper-explode-assignable-expression": {
@@ -19027,9 +21221,9 @@
"resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz",
"integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
"babel-helper-explode-class": {
@@ -19037,10 +21231,10 @@
"resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz",
"integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=",
"requires": {
- "babel-helper-bindify-decorators": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-helper-bindify-decorators": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
"babel-helper-function-name": {
@@ -19048,11 +21242,11 @@
"resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
"integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
"requires": {
- "babel-helper-get-function-arity": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
"babel-helper-get-function-arity": {
@@ -19060,8 +21254,8 @@
"resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
"integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
"babel-helper-hoist-variables": {
@@ -19069,8 +21263,8 @@
"resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
"integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
"babel-helper-optimise-call-expression": {
@@ -19078,8 +21272,8 @@
"resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
"integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
"babel-helper-regex": {
@@ -19087,9 +21281,9 @@
"resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
"integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "lodash": "4.17.10"
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
}
},
"babel-helper-remap-async-to-generator": {
@@ -19097,11 +21291,11 @@
"resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz",
"integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=",
"requires": {
- "babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
"babel-helper-replace-supers": {
@@ -19109,12 +21303,12 @@
"resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
"integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
"requires": {
- "babel-helper-optimise-call-expression": "6.24.1",
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
"babel-helpers": {
@@ -19122,8 +21316,8 @@
"resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
"integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
"babel-loader": {
@@ -19131,10 +21325,10 @@
"resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.4.1.tgz",
"integrity": "sha1-CzQRLVsHSKjc2/Uaz2+b1C1QuMo=",
"requires": {
- "find-cache-dir": "0.1.1",
- "loader-utils": "0.2.17",
- "mkdirp": "0.5.1",
- "object-assign": "4.1.1"
+ "find-cache-dir": "^0.1.1",
+ "loader-utils": "^0.2.16",
+ "mkdirp": "^0.5.1",
+ "object-assign": "^4.0.1"
},
"dependencies": {
"object-assign": {
@@ -19149,7 +21343,7 @@
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
"integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
"requires": {
- "babel-runtime": "6.26.0"
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-check-es2015-constants": {
@@ -19157,7 +21351,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
"integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
"requires": {
- "babel-runtime": "6.26.0"
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-lodash": {
@@ -19165,7 +21359,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-lodash/-/babel-plugin-lodash-2.3.0.tgz",
"integrity": "sha1-QWbI88pSqpW+nhg50kWD5wqFfsI=",
"requires": {
- "lodash": "4.17.10"
+ "lodash": "^4.0.0"
}
},
"babel-plugin-syntax-async-functions": {
@@ -19223,9 +21417,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz",
"integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=",
"requires": {
- "babel-helper-remap-async-to-generator": "6.24.1",
- "babel-plugin-syntax-async-generators": "6.13.0",
- "babel-runtime": "6.26.0"
+ "babel-helper-remap-async-to-generator": "^6.24.1",
+ "babel-plugin-syntax-async-generators": "^6.5.0",
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-async-to-generator": {
@@ -19233,9 +21427,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz",
"integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=",
"requires": {
- "babel-helper-remap-async-to-generator": "6.24.1",
- "babel-plugin-syntax-async-functions": "6.13.0",
- "babel-runtime": "6.26.0"
+ "babel-helper-remap-async-to-generator": "^6.24.1",
+ "babel-plugin-syntax-async-functions": "^6.8.0",
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-class-properties": {
@@ -19243,10 +21437,10 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz",
"integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=",
"requires": {
- "babel-helper-function-name": "6.24.1",
- "babel-plugin-syntax-class-properties": "6.13.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
+ "babel-helper-function-name": "^6.24.1",
+ "babel-plugin-syntax-class-properties": "^6.8.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
"babel-plugin-transform-decorators": {
@@ -19254,11 +21448,11 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz",
"integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=",
"requires": {
- "babel-helper-explode-class": "6.24.1",
- "babel-plugin-syntax-decorators": "6.13.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-helper-explode-class": "^6.24.1",
+ "babel-plugin-syntax-decorators": "^6.13.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
"babel-plugin-transform-es2015-arrow-functions": {
@@ -19266,7 +21460,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
"integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
"requires": {
- "babel-runtime": "6.26.0"
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-es2015-block-scoped-functions": {
@@ -19274,7 +21468,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
"integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
"requires": {
- "babel-runtime": "6.26.0"
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-es2015-block-scoping": {
@@ -19282,11 +21476,11 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
"integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "lodash": "4.17.10"
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "lodash": "^4.17.4"
}
},
"babel-plugin-transform-es2015-classes": {
@@ -19294,15 +21488,15 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
"integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
"requires": {
- "babel-helper-define-map": "6.26.0",
- "babel-helper-function-name": "6.24.1",
- "babel-helper-optimise-call-expression": "6.24.1",
- "babel-helper-replace-supers": "6.24.1",
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-helper-define-map": "^6.24.1",
+ "babel-helper-function-name": "^6.24.1",
+ "babel-helper-optimise-call-expression": "^6.24.1",
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
"babel-plugin-transform-es2015-computed-properties": {
@@ -19310,8 +21504,8 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
"integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
"babel-plugin-transform-es2015-destructuring": {
@@ -19319,7 +21513,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
"integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
"requires": {
- "babel-runtime": "6.26.0"
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-es2015-duplicate-keys": {
@@ -19327,8 +21521,8 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
"integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
"babel-plugin-transform-es2015-for-of": {
@@ -19336,7 +21530,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
"integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
"requires": {
- "babel-runtime": "6.26.0"
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-es2015-function-name": {
@@ -19344,9 +21538,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
"integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
"requires": {
- "babel-helper-function-name": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-helper-function-name": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
"babel-plugin-transform-es2015-literals": {
@@ -19354,7 +21548,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
"integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
"requires": {
- "babel-runtime": "6.26.0"
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-es2015-modules-amd": {
@@ -19362,9 +21556,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
"integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
"requires": {
- "babel-plugin-transform-es2015-modules-commonjs": "6.26.2",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
"babel-plugin-transform-es2015-modules-commonjs": {
@@ -19372,10 +21566,10 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
"integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
"requires": {
- "babel-plugin-transform-strict-mode": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-plugin-transform-strict-mode": "^6.24.1",
+ "babel-runtime": "^6.26.0",
+ "babel-template": "^6.26.0",
+ "babel-types": "^6.26.0"
}
},
"babel-plugin-transform-es2015-modules-systemjs": {
@@ -19383,9 +21577,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
"integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
"requires": {
- "babel-helper-hoist-variables": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
+ "babel-helper-hoist-variables": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
"babel-plugin-transform-es2015-modules-umd": {
@@ -19393,9 +21587,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
"integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
"requires": {
- "babel-plugin-transform-es2015-modules-amd": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0"
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1"
}
},
"babel-plugin-transform-es2015-object-super": {
@@ -19403,8 +21597,8 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
"integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
"requires": {
- "babel-helper-replace-supers": "6.24.1",
- "babel-runtime": "6.26.0"
+ "babel-helper-replace-supers": "^6.24.1",
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-es2015-parameters": {
@@ -19412,12 +21606,12 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
"integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
"requires": {
- "babel-helper-call-delegate": "6.24.1",
- "babel-helper-get-function-arity": "6.24.1",
- "babel-runtime": "6.26.0",
- "babel-template": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-helper-call-delegate": "^6.24.1",
+ "babel-helper-get-function-arity": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-template": "^6.24.1",
+ "babel-traverse": "^6.24.1",
+ "babel-types": "^6.24.1"
}
},
"babel-plugin-transform-es2015-shorthand-properties": {
@@ -19425,8 +21619,8 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
"integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
"babel-plugin-transform-es2015-spread": {
@@ -19434,7 +21628,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
"integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
"requires": {
- "babel-runtime": "6.26.0"
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-es2015-sticky-regex": {
@@ -19442,9 +21636,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
"integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
"requires": {
- "babel-helper-regex": "6.26.0",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
"babel-plugin-transform-es2015-template-literals": {
@@ -19452,7 +21646,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
"integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
"requires": {
- "babel-runtime": "6.26.0"
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-es2015-typeof-symbol": {
@@ -19460,7 +21654,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
"integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
"requires": {
- "babel-runtime": "6.26.0"
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-es2015-unicode-regex": {
@@ -19468,9 +21662,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
"integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
"requires": {
- "babel-helper-regex": "6.26.0",
- "babel-runtime": "6.26.0",
- "regexpu-core": "2.0.0"
+ "babel-helper-regex": "^6.24.1",
+ "babel-runtime": "^6.22.0",
+ "regexpu-core": "^2.0.0"
}
},
"babel-plugin-transform-exponentiation-operator": {
@@ -19478,9 +21672,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz",
"integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=",
"requires": {
- "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1",
- "babel-plugin-syntax-exponentiation-operator": "6.13.0",
- "babel-runtime": "6.26.0"
+ "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1",
+ "babel-plugin-syntax-exponentiation-operator": "^6.8.0",
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-flow-strip-types": {
@@ -19488,8 +21682,8 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz",
"integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=",
"requires": {
- "babel-plugin-syntax-flow": "6.18.0",
- "babel-runtime": "6.26.0"
+ "babel-plugin-syntax-flow": "^6.18.0",
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-object-rest-spread": {
@@ -19497,8 +21691,8 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz",
"integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=",
"requires": {
- "babel-plugin-syntax-object-rest-spread": "6.13.0",
- "babel-runtime": "6.26.0"
+ "babel-plugin-syntax-object-rest-spread": "^6.8.0",
+ "babel-runtime": "^6.26.0"
}
},
"babel-plugin-transform-react-display-name": {
@@ -19506,7 +21700,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-display-name/-/babel-plugin-transform-react-display-name-6.25.0.tgz",
"integrity": "sha1-Z+K/Hx6ck6sI25Z5LgU5K/LMKNE=",
"requires": {
- "babel-runtime": "6.26.0"
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-react-jsx": {
@@ -19514,9 +21708,9 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
"integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
"requires": {
- "babel-helper-builder-react-jsx": "6.26.0",
- "babel-plugin-syntax-jsx": "6.18.0",
- "babel-runtime": "6.26.0"
+ "babel-helper-builder-react-jsx": "^6.24.1",
+ "babel-plugin-syntax-jsx": "^6.8.0",
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-react-jsx-self": {
@@ -19524,8 +21718,8 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-self/-/babel-plugin-transform-react-jsx-self-6.22.0.tgz",
"integrity": "sha1-322AqdomEqEh5t3XVYvL7PBuY24=",
"requires": {
- "babel-plugin-syntax-jsx": "6.18.0",
- "babel-runtime": "6.26.0"
+ "babel-plugin-syntax-jsx": "^6.8.0",
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-react-jsx-source": {
@@ -19533,8 +21727,8 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx-source/-/babel-plugin-transform-react-jsx-source-6.22.0.tgz",
"integrity": "sha1-ZqwSFT9c0tF7PBkmj0vwGX9E7NY=",
"requires": {
- "babel-plugin-syntax-jsx": "6.18.0",
- "babel-runtime": "6.26.0"
+ "babel-plugin-syntax-jsx": "^6.8.0",
+ "babel-runtime": "^6.22.0"
}
},
"babel-plugin-transform-regenerator": {
@@ -19542,7 +21736,7 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
"integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
"requires": {
- "regenerator-transform": "0.10.1"
+ "regenerator-transform": "^0.10.0"
}
},
"babel-plugin-transform-strict-mode": {
@@ -19550,8 +21744,8 @@
"resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
"integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0"
+ "babel-runtime": "^6.22.0",
+ "babel-types": "^6.24.1"
}
},
"babel-polyfill": {
@@ -19559,9 +21753,9 @@
"resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz",
"integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=",
"requires": {
- "babel-runtime": "6.26.0",
- "core-js": "2.5.7",
- "regenerator-runtime": "0.10.5"
+ "babel-runtime": "^6.26.0",
+ "core-js": "^2.5.0",
+ "regenerator-runtime": "^0.10.5"
},
"dependencies": {
"core-js": {
@@ -19576,30 +21770,30 @@
"resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz",
"integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=",
"requires": {
- "babel-plugin-check-es2015-constants": "6.22.0",
- "babel-plugin-transform-es2015-arrow-functions": "6.22.0",
- "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0",
- "babel-plugin-transform-es2015-block-scoping": "6.26.0",
- "babel-plugin-transform-es2015-classes": "6.24.1",
- "babel-plugin-transform-es2015-computed-properties": "6.24.1",
- "babel-plugin-transform-es2015-destructuring": "6.23.0",
- "babel-plugin-transform-es2015-duplicate-keys": "6.24.1",
- "babel-plugin-transform-es2015-for-of": "6.23.0",
- "babel-plugin-transform-es2015-function-name": "6.24.1",
- "babel-plugin-transform-es2015-literals": "6.22.0",
- "babel-plugin-transform-es2015-modules-amd": "6.24.1",
- "babel-plugin-transform-es2015-modules-commonjs": "6.26.2",
- "babel-plugin-transform-es2015-modules-systemjs": "6.24.1",
- "babel-plugin-transform-es2015-modules-umd": "6.24.1",
- "babel-plugin-transform-es2015-object-super": "6.24.1",
- "babel-plugin-transform-es2015-parameters": "6.24.1",
- "babel-plugin-transform-es2015-shorthand-properties": "6.24.1",
- "babel-plugin-transform-es2015-spread": "6.22.0",
- "babel-plugin-transform-es2015-sticky-regex": "6.24.1",
- "babel-plugin-transform-es2015-template-literals": "6.22.0",
- "babel-plugin-transform-es2015-typeof-symbol": "6.23.0",
- "babel-plugin-transform-es2015-unicode-regex": "6.24.1",
- "babel-plugin-transform-regenerator": "6.26.0"
+ "babel-plugin-check-es2015-constants": "^6.22.0",
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "^6.24.1",
+ "babel-plugin-transform-es2015-classes": "^6.24.1",
+ "babel-plugin-transform-es2015-computed-properties": "^6.24.1",
+ "babel-plugin-transform-es2015-destructuring": "^6.22.0",
+ "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1",
+ "babel-plugin-transform-es2015-for-of": "^6.22.0",
+ "babel-plugin-transform-es2015-function-name": "^6.24.1",
+ "babel-plugin-transform-es2015-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-modules-amd": "^6.24.1",
+ "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1",
+ "babel-plugin-transform-es2015-modules-umd": "^6.24.1",
+ "babel-plugin-transform-es2015-object-super": "^6.24.1",
+ "babel-plugin-transform-es2015-parameters": "^6.24.1",
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1",
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
+ "babel-plugin-transform-es2015-sticky-regex": "^6.24.1",
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
+ "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0",
+ "babel-plugin-transform-es2015-unicode-regex": "^6.24.1",
+ "babel-plugin-transform-regenerator": "^6.24.1"
}
},
"babel-preset-flow": {
@@ -19607,7 +21801,7 @@
"resolved": "https://registry.npmjs.org/babel-preset-flow/-/babel-preset-flow-6.23.0.tgz",
"integrity": "sha1-5xIYiHCFrpoktb5Baa/7WZgWxJ0=",
"requires": {
- "babel-plugin-transform-flow-strip-types": "6.22.0"
+ "babel-plugin-transform-flow-strip-types": "^6.22.0"
}
},
"babel-preset-react": {
@@ -19615,12 +21809,12 @@
"resolved": "https://registry.npmjs.org/babel-preset-react/-/babel-preset-react-6.24.1.tgz",
"integrity": "sha1-umnfrqRfw+xjm2pOzqbhdwLJE4A=",
"requires": {
- "babel-plugin-syntax-jsx": "6.18.0",
- "babel-plugin-transform-react-display-name": "6.25.0",
- "babel-plugin-transform-react-jsx": "6.24.1",
- "babel-plugin-transform-react-jsx-self": "6.22.0",
- "babel-plugin-transform-react-jsx-source": "6.22.0",
- "babel-preset-flow": "6.23.0"
+ "babel-plugin-syntax-jsx": "^6.3.13",
+ "babel-plugin-transform-react-display-name": "^6.23.0",
+ "babel-plugin-transform-react-jsx": "^6.24.1",
+ "babel-plugin-transform-react-jsx-self": "^6.22.0",
+ "babel-plugin-transform-react-jsx-source": "^6.22.0",
+ "babel-preset-flow": "^6.23.0"
}
},
"babel-preset-stage-2": {
@@ -19628,10 +21822,10 @@
"resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz",
"integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=",
"requires": {
- "babel-plugin-syntax-dynamic-import": "6.18.0",
- "babel-plugin-transform-class-properties": "6.24.1",
- "babel-plugin-transform-decorators": "6.24.1",
- "babel-preset-stage-3": "6.24.1"
+ "babel-plugin-syntax-dynamic-import": "^6.18.0",
+ "babel-plugin-transform-class-properties": "^6.24.1",
+ "babel-plugin-transform-decorators": "^6.24.1",
+ "babel-preset-stage-3": "^6.24.1"
}
},
"babel-preset-stage-3": {
@@ -19639,11 +21833,11 @@
"resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz",
"integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=",
"requires": {
- "babel-plugin-syntax-trailing-function-commas": "6.22.0",
- "babel-plugin-transform-async-generator-functions": "6.24.1",
- "babel-plugin-transform-async-to-generator": "6.24.1",
- "babel-plugin-transform-exponentiation-operator": "6.24.1",
- "babel-plugin-transform-object-rest-spread": "6.26.0"
+ "babel-plugin-syntax-trailing-function-commas": "^6.22.0",
+ "babel-plugin-transform-async-generator-functions": "^6.24.1",
+ "babel-plugin-transform-async-to-generator": "^6.24.1",
+ "babel-plugin-transform-exponentiation-operator": "^6.24.1",
+ "babel-plugin-transform-object-rest-spread": "^6.22.0"
}
},
"babel-register": {
@@ -19651,13 +21845,13 @@
"resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
"integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
"requires": {
- "babel-core": "6.26.3",
- "babel-runtime": "6.26.0",
- "core-js": "2.5.7",
- "home-or-tmp": "2.0.0",
- "lodash": "4.17.10",
- "mkdirp": "0.5.1",
- "source-map-support": "0.4.18"
+ "babel-core": "^6.26.0",
+ "babel-runtime": "^6.26.0",
+ "core-js": "^2.5.0",
+ "home-or-tmp": "^2.0.0",
+ "lodash": "^4.17.4",
+ "mkdirp": "^0.5.1",
+ "source-map-support": "^0.4.15"
},
"dependencies": {
"core-js": {
@@ -19672,8 +21866,8 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.5.7",
- "regenerator-runtime": "0.11.1"
+ "core-js": "^2.4.0",
+ "regenerator-runtime": "^0.11.0"
},
"dependencies": {
"core-js": {
@@ -19693,11 +21887,11 @@
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
"integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-traverse": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "lodash": "4.17.10"
+ "babel-runtime": "^6.26.0",
+ "babel-traverse": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "lodash": "^4.17.4"
}
},
"babel-traverse": {
@@ -19705,15 +21899,15 @@
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
"integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
"requires": {
- "babel-code-frame": "6.26.0",
- "babel-messages": "6.23.0",
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "babylon": "6.18.0",
- "debug": "2.6.9",
- "globals": "9.18.0",
- "invariant": "2.2.4",
- "lodash": "4.17.10"
+ "babel-code-frame": "^6.26.0",
+ "babel-messages": "^6.23.0",
+ "babel-runtime": "^6.26.0",
+ "babel-types": "^6.26.0",
+ "babylon": "^6.18.0",
+ "debug": "^2.6.8",
+ "globals": "^9.18.0",
+ "invariant": "^2.2.2",
+ "lodash": "^4.17.4"
},
"dependencies": {
"debug": {
@@ -19731,10 +21925,10 @@
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
"requires": {
- "babel-runtime": "6.26.0",
- "esutils": "2.0.2",
- "lodash": "4.17.10",
- "to-fast-properties": "1.0.3"
+ "babel-runtime": "^6.26.0",
+ "esutils": "^2.0.2",
+ "lodash": "^4.17.4",
+ "to-fast-properties": "^1.0.3"
}
},
"babylon": {
@@ -19768,7 +21962,7 @@
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
"optional": true,
"requires": {
- "tweetnacl": "0.14.5"
+ "tweetnacl": "^0.14.3"
}
},
"big.js": {
@@ -19786,34 +21980,24 @@
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
"requires": {
- "inherits": "2.0.3"
+ "inherits": "~2.0.0"
}
},
- "bluebird": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
- "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
- },
- "blueimp-tmpl": {
- "version": "2.5.7",
- "resolved": "https://registry.npmjs.org/blueimp-tmpl/-/blueimp-tmpl-2.5.7.tgz",
- "integrity": "sha1-M/sSwTnWVRKuQK+9ji3vjZ25ZJA="
- },
"body-parser": {
"version": "1.18.2",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
"integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
"requires": {
"bytes": "3.0.0",
- "content-type": "1.0.4",
+ "content-type": "~1.0.4",
"debug": "2.6.9",
- "depd": "1.1.2",
- "http-errors": "1.6.3",
+ "depd": "~1.1.1",
+ "http-errors": "~1.6.2",
"iconv-lite": "0.4.19",
- "on-finished": "2.3.0",
+ "on-finished": "~2.3.0",
"qs": "6.5.1",
"raw-body": "2.3.2",
- "type-is": "1.6.16"
+ "type-is": "~1.6.15"
},
"dependencies": {
"debug": {
@@ -19846,30 +22030,15 @@
"resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz",
"integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=",
"requires": {
- "hoek": "2.16.3"
+ "hoek": "2.x.x"
}
},
- "bourbon": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/bourbon/-/bourbon-4.3.4.tgz",
- "integrity": "sha1-TaOAAp6SwMj5dkx3lFGhNLEefMM="
- },
- "bourbon-neat": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/bourbon-neat/-/bourbon-neat-1.7.2.tgz",
- "integrity": "sha1-oiixJ0R53iR20yszFTEHylBTzz0="
- },
- "bowser": {
- "version": "1.9.4",
- "resolved": "https://registry.npmjs.org/bowser/-/bowser-1.9.4.tgz",
- "integrity": "sha512-9IdMmj2KjigRq6oWhmwv1W36pDuA4STQZ8q6YO9um+x07xgYNCD3Oou+WP/3L1HNz7iqythGet3/p4wvc8AAwQ=="
- },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
- "balanced-match": "1.0.0",
+ "balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
@@ -19878,9 +22047,9 @@
"resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
"integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
"requires": {
- "expand-range": "1.8.2",
- "preserve": "0.2.0",
- "repeat-element": "1.1.2"
+ "expand-range": "^1.8.1",
+ "preserve": "^0.2.0",
+ "repeat-element": "^1.1.2"
}
},
"browserify-aes": {
@@ -19888,7 +22057,7 @@
"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz",
"integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=",
"requires": {
- "inherits": "2.0.3"
+ "inherits": "^2.0.1"
}
},
"browserify-zlib": {
@@ -19896,7 +22065,7 @@
"resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
"integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
"requires": {
- "pako": "0.2.9"
+ "pako": "~0.2.0"
}
},
"browserslist": {
@@ -19904,8 +22073,8 @@
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz",
"integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=",
"requires": {
- "caniuse-db": "1.0.30000861",
- "electron-to-chromium": "1.3.50"
+ "caniuse-db": "^1.0.30000639",
+ "electron-to-chromium": "^1.2.7"
}
},
"buffer": {
@@ -19913,9 +22082,9 @@
"resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz",
"integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=",
"requires": {
- "base64-js": "1.3.0",
- "ieee754": "1.1.12",
- "isarray": "1.0.0"
+ "base64-js": "^1.0.2",
+ "ieee754": "^1.1.4",
+ "isarray": "^1.0.0"
}
},
"buffer-from": {
@@ -19943,7 +22112,7 @@
"resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz",
"integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=",
"requires": {
- "callsites": "0.2.0"
+ "callsites": "^0.2.0"
}
},
"callsites": {
@@ -19956,22 +22125,17 @@
"resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
"integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=",
"requires": {
- "no-case": "2.3.2",
- "upper-case": "1.1.3"
+ "no-case": "^2.2.0",
+ "upper-case": "^1.1.1"
}
},
- "camelcase": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
- },
"camelcase-keys": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
"integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
"requires": {
- "camelcase": "2.1.1",
- "map-obj": "1.0.1"
+ "camelcase": "^2.0.0",
+ "map-obj": "^1.0.0"
},
"dependencies": {
"camelcase": {
@@ -19986,10 +22150,10 @@
"resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz",
"integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=",
"requires": {
- "browserslist": "1.7.7",
- "caniuse-db": "1.0.30000861",
- "lodash.memoize": "4.1.2",
- "lodash.uniq": "4.5.0"
+ "browserslist": "^1.3.6",
+ "caniuse-db": "^1.0.30000529",
+ "lodash.memoize": "^4.1.2",
+ "lodash.uniq": "^4.5.0"
}
},
"caniuse-db": {
@@ -20007,12 +22171,12 @@
"resolved": "https://registry.npmjs.org/cdnizer/-/cdnizer-1.1.6.tgz",
"integrity": "sha1-wVGF0b7UKwPppFqp+lWObYcr0Sw=",
"requires": {
- "cdnjs-cdn-data": "0.1.2",
- "google-cdn-data": "0.1.25",
- "jsdelivr-cdn-data": "0.1.1",
- "lodash": "2.4.2",
- "minimatch": "3.0.4",
- "nomnom": "1.8.1"
+ "cdnjs-cdn-data": "^0.1.1",
+ "google-cdn-data": "^0.1.6",
+ "jsdelivr-cdn-data": "^0.1.1",
+ "lodash": "~2.4.1",
+ "minimatch": "^3.0.2",
+ "nomnom": "^1.8.0"
},
"dependencies": {
"lodash": {
@@ -20027,7 +22191,7 @@
"resolved": "https://registry.npmjs.org/cdnjs-cdn-data/-/cdnjs-cdn-data-0.1.2.tgz",
"integrity": "sha1-hl00uk5I3Rtz/WaOJKYaWt+biyE=",
"requires": {
- "semver": "5.0.3"
+ "semver": "~5.0.1"
},
"dependencies": {
"semver": {
@@ -20037,103 +22201,37 @@
}
}
},
- "center-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
- "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
- "requires": {
- "align-text": "0.1.4",
- "lazy-cache": "1.0.4"
- }
- },
- "chain-function": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/chain-function/-/chain-function-1.0.1.tgz",
- "integrity": "sha512-SxltgMwL9uCko5/ZCLiyG2B7R9fY4pDZUw7hJ4MhirdjBLosoDqkWABi3XMucddHdLiFJMb7PD2MZifZriuMTg=="
- },
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"requires": {
- "ansi-styles": "2.2.1",
- "escape-string-regexp": "1.0.5",
- "has-ansi": "2.0.0",
- "strip-ansi": "3.0.1",
- "supports-color": "2.0.0"
- }
- },
- "change-case": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/change-case/-/change-case-2.3.1.tgz",
- "integrity": "sha1-LE/ePwY7tB0AzWjg1aCdthy+iU8=",
- "requires": {
- "camel-case": "1.2.2",
- "constant-case": "1.1.2",
- "dot-case": "1.1.2",
- "is-lower-case": "1.1.3",
- "is-upper-case": "1.1.2",
- "lower-case": "1.1.4",
- "lower-case-first": "1.0.2",
- "param-case": "1.1.2",
- "pascal-case": "1.1.2",
- "path-case": "1.1.2",
- "sentence-case": "1.1.3",
- "snake-case": "1.1.2",
- "swap-case": "1.1.2",
- "title-case": "1.1.2",
- "upper-case": "1.1.3",
- "upper-case-first": "1.1.2"
- },
- "dependencies": {
- "camel-case": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.2.tgz",
- "integrity": "sha1-Gsp8TRlTWaLOmVV5NDPG5VQlEfI=",
- "requires": {
- "sentence-case": "1.1.3",
- "upper-case": "1.1.3"
- }
- },
- "param-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/param-case/-/param-case-1.1.2.tgz",
- "integrity": "sha1-3LCRpDwlm5Io8cNB57akTqC/l0M=",
- "requires": {
- "sentence-case": "1.1.3"
- }
- }
+ "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"
}
},
- "change-emitter": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/change-emitter/-/change-emitter-0.1.6.tgz",
- "integrity": "sha1-6LL+PX8at9aaMhma/5HqaTFAlRU="
- },
"character-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.2.1.tgz",
"integrity": "sha1-wN3kqxgnE7kZuXCVmhI+zBow/NY="
},
- "charenc": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz",
- "integrity": "sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc="
- },
"chokidar": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
"integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
"requires": {
- "anymatch": "1.3.2",
- "async-each": "1.0.1",
- "fsevents": "1.2.9",
- "glob-parent": "2.0.0",
- "inherits": "2.0.3",
- "is-binary-path": "1.0.1",
- "is-glob": "2.0.1",
- "path-is-absolute": "1.0.1",
- "readdirp": "2.1.0"
+ "anymatch": "^1.3.0",
+ "async-each": "^1.0.0",
+ "fsevents": "^1.0.0",
+ "glob-parent": "^2.0.0",
+ "inherits": "^2.0.1",
+ "is-binary-path": "^1.0.0",
+ "is-glob": "^2.0.0",
+ "path-is-absolute": "^1.0.0",
+ "readdirp": "^2.0.0"
}
},
"circular-json": {
@@ -20146,8 +22244,8 @@
"resolved": "https://registry.npmjs.org/cjsx-loader/-/cjsx-loader-2.1.0.tgz",
"integrity": "sha1-14OVnJfX4dN0tE2qvvZcoIs6Ozs=",
"requires": {
- "coffee-react-transform": "3.3.0",
- "loader-utils": "0.2.17"
+ "coffee-react-transform": "^3.0.0",
+ "loader-utils": "0.2.x"
}
},
"clap": {
@@ -20155,7 +22253,7 @@
"resolved": "https://registry.npmjs.org/clap/-/clap-1.2.3.tgz",
"integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==",
"requires": {
- "chalk": "1.1.3"
+ "chalk": "^1.1.3"
}
},
"classnames": {
@@ -20168,7 +22266,7 @@
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.11.tgz",
"integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=",
"requires": {
- "source-map": "0.5.7"
+ "source-map": "0.5.x"
},
"dependencies": {
"source-map": {
@@ -20183,7 +22281,7 @@
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz",
"integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=",
"requires": {
- "restore-cursor": "1.0.1"
+ "restore-cursor": "^1.0.1"
}
},
"cli-width": {
@@ -20191,23 +22289,6 @@
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz",
"integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk="
},
- "cliui": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
- "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
- "requires": {
- "center-align": "0.1.3",
- "right-align": "0.1.3",
- "wordwrap": "0.0.2"
- },
- "dependencies": {
- "wordwrap": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
- "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
- }
- }
- },
"clone": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
@@ -20223,7 +22304,7 @@
"resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz",
"integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=",
"requires": {
- "q": "1.5.1"
+ "q": "^1.1.2"
}
},
"code-point-at": {
@@ -20236,7 +22317,7 @@
"resolved": "https://registry.npmjs.org/coffee-loader/-/coffee-loader-0.7.3.tgz",
"integrity": "sha1-+tvG79b8fsyIxbMEaiwpIGa8tUo=",
"requires": {
- "loader-utils": "1.1.0"
+ "loader-utils": "^1.0.2"
},
"dependencies": {
"loader-utils": {
@@ -20244,9 +22325,9 @@
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
"integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
"requires": {
- "big.js": "3.2.0",
- "emojis-list": "2.1.0",
- "json5": "0.5.1"
+ "big.js": "^3.1.3",
+ "emojis-list": "^2.0.0",
+ "json5": "^0.5.0"
}
}
}
@@ -20256,19 +22337,19 @@
"resolved": "https://registry.npmjs.org/coffee-react-transform/-/coffee-react-transform-3.3.0.tgz",
"integrity": "sha1-8fkPoi3o12f8onk+O3Dw99ei5Gc="
},
- "coffee-script": {
+ "coffeescript": {
"version": "1.12.7",
- "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz",
- "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw=="
+ "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.12.7.tgz",
+ "integrity": "sha512-pLXHFxQMPklVoEekowk8b3erNynC+DVJzChxS/LCBBgR6/8AJkHivkm//zbowcfc7BTCAjryuhx6gPqPRfsFoA=="
},
"color": {
"version": "0.11.4",
"resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz",
"integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=",
"requires": {
- "clone": "1.0.4",
- "color-convert": "1.9.2",
- "color-string": "0.3.0"
+ "clone": "^1.0.2",
+ "color-convert": "^1.3.0",
+ "color-string": "^0.3.0"
}
},
"color-convert": {
@@ -20289,7 +22370,7 @@
"resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz",
"integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=",
"requires": {
- "color-name": "1.1.1"
+ "color-name": "^1.0.0"
}
},
"colormin": {
@@ -20297,9 +22378,9 @@
"resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz",
"integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=",
"requires": {
- "color": "0.11.4",
+ "color": "^0.11.0",
"css-color-names": "0.0.4",
- "has": "1.0.3"
+ "has": "^1.0.1"
}
},
"colors": {
@@ -20312,7 +22393,7 @@
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
"requires": {
- "delayed-stream": "1.0.0"
+ "delayed-stream": "~1.0.0"
}
},
"commander": {
@@ -20330,15 +22411,15 @@
"resolved": "https://registry.npmjs.org/commoner/-/commoner-0.10.8.tgz",
"integrity": "sha1-NPw2cs0kOT6LtH5wyqApOBH08sU=",
"requires": {
- "commander": "2.16.0",
- "detective": "4.7.1",
- "glob": "5.0.15",
- "graceful-fs": "4.1.11",
- "iconv-lite": "0.4.23",
- "mkdirp": "0.5.1",
- "private": "0.1.8",
- "q": "1.5.1",
- "recast": "0.11.23"
+ "commander": "^2.5.0",
+ "detective": "^4.3.1",
+ "glob": "^5.0.15",
+ "graceful-fs": "^4.1.2",
+ "iconv-lite": "^0.4.5",
+ "mkdirp": "^0.5.0",
+ "private": "^0.1.6",
+ "q": "^1.1.2",
+ "recast": "^0.11.17"
}
},
"component-classes": {
@@ -20364,7 +22445,7 @@
"resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz",
"integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=",
"requires": {
- "mime-db": "1.34.0"
+ "mime-db": ">= 1.34.0 < 2"
},
"dependencies": {
"mime-db": {
@@ -20379,13 +22460,13 @@
"resolved": "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz",
"integrity": "sha1-qv+81qr4VLROuygDU9WtFlH1mmk=",
"requires": {
- "accepts": "1.3.5",
+ "accepts": "~1.3.4",
"bytes": "3.0.0",
- "compressible": "2.0.14",
+ "compressible": "~2.0.13",
"debug": "2.6.9",
- "on-headers": "1.0.1",
+ "on-headers": "~1.0.1",
"safe-buffer": "5.1.1",
- "vary": "1.1.2"
+ "vary": "~1.1.2"
},
"dependencies": {
"debug": {
@@ -20406,10 +22487,7 @@
"compression-webpack-plugin": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/compression-webpack-plugin/-/compression-webpack-plugin-0.2.0.tgz",
- "integrity": "sha1-zkVTpHitScvVN0yqopLJ8WvrBV8=",
- "requires": {
- "async": "0.2.10"
- }
+ "integrity": "sha1-zkVTpHitScvVN0yqopLJ8WvrBV8="
},
"concat-map": {
"version": "0.0.1",
@@ -20421,10 +22499,10 @@
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
"requires": {
- "buffer-from": "1.1.0",
- "inherits": "2.0.3",
- "readable-stream": "2.3.6",
- "typedarray": "0.0.6"
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
}
},
"connect-history-api-fallback": {
@@ -20437,7 +22515,7 @@
"resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
"integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=",
"requires": {
- "date-now": "0.1.4"
+ "date-now": "^0.1.4"
}
},
"console-control-strings": {
@@ -20445,21 +22523,12 @@
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
},
- "constant-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-1.1.2.tgz",
- "integrity": "sha1-jsLKW6ND4Aqjjb9OIA/VrJB+/WM=",
- "requires": {
- "snake-case": "1.1.2",
- "upper-case": "1.1.3"
- }
- },
"constantinople": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz",
"integrity": "sha1-S5RdmTeQe82Y7ldRIsOBdRZUQUE=",
"requires": {
- "acorn": "2.7.0"
+ "acorn": "^2.1.0"
},
"dependencies": {
"acorn": {
@@ -20519,9 +22588,9 @@
"resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz",
"integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==",
"requires": {
- "fbjs": "0.8.17",
- "loose-envify": "1.3.1",
- "object-assign": "4.1.1"
+ "fbjs": "^0.8.9",
+ "loose-envify": "^1.3.1",
+ "object-assign": "^4.1.1"
},
"dependencies": {
"fbjs": {
@@ -20529,13 +22598,13 @@
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
"integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
"requires": {
- "core-js": "1.2.7",
- "isomorphic-fetch": "2.2.1",
- "loose-envify": "1.3.1",
- "object-assign": "4.1.1",
- "promise": "7.3.1",
- "setimmediate": "1.0.5",
- "ua-parser-js": "0.7.18"
+ "core-js": "^1.0.0",
+ "isomorphic-fetch": "^2.1.1",
+ "loose-envify": "^1.0.0",
+ "object-assign": "^4.1.0",
+ "promise": "^7.1.1",
+ "setimmediate": "^1.0.5",
+ "ua-parser-js": "^0.7.18"
}
},
"object-assign": {
@@ -20550,21 +22619,16 @@
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
"integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
"requires": {
- "lru-cache": "4.1.3",
- "which": "1.3.1"
+ "lru-cache": "^4.0.1",
+ "which": "^1.2.9"
}
},
- "crypt": {
- "version": "0.0.2",
- "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz",
- "integrity": "sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs="
- },
"cryptiles": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz",
"integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=",
"requires": {
- "boom": "2.10.1"
+ "boom": "2.x.x"
}
},
"crypto-browserify": {
@@ -20597,8 +22661,8 @@
"resolved": "https://registry.npmjs.org/css-animation/-/css-animation-1.4.1.tgz",
"integrity": "sha1-W4gTEl3g+7uwu+G0cq6EIhRpt6g=",
"requires": {
- "babel-runtime": "6.26.0",
- "component-classes": "1.2.6"
+ "babel-runtime": "6.x",
+ "component-classes": "^1.2.5"
}
},
"css-color-names": {
@@ -20606,38 +22670,22 @@
"resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz",
"integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA="
},
- "css-in-js-utils": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz",
- "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==",
- "requires": {
- "hyphenate-style-name": "1.0.3",
- "isobject": "3.0.1"
- },
- "dependencies": {
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
- }
- }
- },
"css-loader": {
"version": "0.23.1",
"resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.23.1.tgz",
"integrity": "sha1-n6I/K1wJZSNZEK1ezvO4o2OQ/lA=",
"requires": {
- "css-selector-tokenizer": "0.5.4",
- "cssnano": "3.10.0",
- "loader-utils": "0.2.17",
- "lodash.camelcase": "3.0.1",
- "object-assign": "4.1.1",
- "postcss": "5.2.18",
- "postcss-modules-extract-imports": "1.1.0",
- "postcss-modules-local-by-default": "1.2.0",
- "postcss-modules-scope": "1.1.0",
- "postcss-modules-values": "1.3.0",
- "source-list-map": "0.1.8"
+ "css-selector-tokenizer": "^0.5.1",
+ "cssnano": ">=2.6.1 <4",
+ "loader-utils": "~0.2.2",
+ "lodash.camelcase": "^3.0.1",
+ "object-assign": "^4.0.1",
+ "postcss": "^5.0.6",
+ "postcss-modules-extract-imports": "^1.0.0",
+ "postcss-modules-local-by-default": "^1.0.1",
+ "postcss-modules-scope": "^1.0.0",
+ "postcss-modules-values": "^1.1.0",
+ "source-list-map": "^0.1.4"
},
"dependencies": {
"object-assign": {
@@ -20657,10 +22705,10 @@
"resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
"integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
"requires": {
- "boolbase": "1.0.0",
- "css-what": "2.1.0",
+ "boolbase": "~1.0.0",
+ "css-what": "2.1",
"domutils": "1.5.1",
- "nth-check": "1.0.1"
+ "nth-check": "~1.0.1"
}
},
"css-selector-tokenizer": {
@@ -20668,8 +22716,8 @@
"resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz",
"integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=",
"requires": {
- "cssesc": "0.1.0",
- "fastparse": "1.1.1"
+ "cssesc": "^0.1.0",
+ "fastparse": "^1.1.1"
}
},
"css-stringify": {
@@ -20692,38 +22740,38 @@
"resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz",
"integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=",
"requires": {
- "autoprefixer": "6.7.7",
- "decamelize": "1.2.0",
- "defined": "1.0.0",
- "has": "1.0.3",
- "object-assign": "4.1.1",
- "postcss": "5.2.18",
- "postcss-calc": "5.3.1",
- "postcss-colormin": "2.2.2",
- "postcss-convert-values": "2.6.1",
- "postcss-discard-comments": "2.0.4",
- "postcss-discard-duplicates": "2.1.0",
- "postcss-discard-empty": "2.1.0",
- "postcss-discard-overridden": "0.1.1",
- "postcss-discard-unused": "2.2.3",
- "postcss-filter-plugins": "2.0.3",
- "postcss-merge-idents": "2.1.7",
- "postcss-merge-longhand": "2.0.2",
- "postcss-merge-rules": "2.1.2",
- "postcss-minify-font-values": "1.0.5",
- "postcss-minify-gradients": "1.0.5",
- "postcss-minify-params": "1.2.2",
- "postcss-minify-selectors": "2.1.1",
- "postcss-normalize-charset": "1.1.1",
- "postcss-normalize-url": "3.0.8",
- "postcss-ordered-values": "2.2.3",
- "postcss-reduce-idents": "2.4.0",
- "postcss-reduce-initial": "1.0.1",
- "postcss-reduce-transforms": "1.0.4",
- "postcss-svgo": "2.1.6",
- "postcss-unique-selectors": "2.0.2",
- "postcss-value-parser": "3.3.0",
- "postcss-zindex": "2.2.0"
+ "autoprefixer": "^6.3.1",
+ "decamelize": "^1.1.2",
+ "defined": "^1.0.0",
+ "has": "^1.0.1",
+ "object-assign": "^4.0.1",
+ "postcss": "^5.0.14",
+ "postcss-calc": "^5.2.0",
+ "postcss-colormin": "^2.1.8",
+ "postcss-convert-values": "^2.3.4",
+ "postcss-discard-comments": "^2.0.4",
+ "postcss-discard-duplicates": "^2.0.1",
+ "postcss-discard-empty": "^2.0.1",
+ "postcss-discard-overridden": "^0.1.1",
+ "postcss-discard-unused": "^2.2.1",
+ "postcss-filter-plugins": "^2.0.0",
+ "postcss-merge-idents": "^2.1.5",
+ "postcss-merge-longhand": "^2.0.1",
+ "postcss-merge-rules": "^2.0.3",
+ "postcss-minify-font-values": "^1.0.2",
+ "postcss-minify-gradients": "^1.0.1",
+ "postcss-minify-params": "^1.0.4",
+ "postcss-minify-selectors": "^2.0.4",
+ "postcss-normalize-charset": "^1.1.0",
+ "postcss-normalize-url": "^3.0.7",
+ "postcss-ordered-values": "^2.1.0",
+ "postcss-reduce-idents": "^2.2.2",
+ "postcss-reduce-initial": "^1.0.0",
+ "postcss-reduce-transforms": "^1.0.3",
+ "postcss-svgo": "^2.1.1",
+ "postcss-unique-selectors": "^2.0.2",
+ "postcss-value-parser": "^3.2.3",
+ "postcss-zindex": "^2.0.1"
},
"dependencies": {
"object-assign": {
@@ -20738,8 +22786,8 @@
"resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz",
"integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=",
"requires": {
- "clap": "1.2.3",
- "source-map": "0.5.7"
+ "clap": "^1.0.9",
+ "source-map": "^0.5.3"
},
"dependencies": {
"source-map": {
@@ -20754,7 +22802,7 @@
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
"integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
"requires": {
- "array-find-index": "1.0.2"
+ "array-find-index": "^1.0.1"
}
},
"d": {
@@ -20762,7 +22810,7 @@
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
"requires": {
- "es5-ext": "0.10.45"
+ "es5-ext": "^0.10.9"
}
},
"dashdash": {
@@ -20770,7 +22818,7 @@
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"requires": {
- "assert-plus": "1.0.0"
+ "assert-plus": "^1.0.0"
},
"dependencies": {
"assert-plus": {
@@ -20793,49 +22841,11 @@
"ms": "2.0.0"
}
},
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
- },
- "deep-diff": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.4.tgz",
- "integrity": "sha1-qsXDmVIjar5fA3ojSQYLoBsArkg="
- },
- "deep-equal": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.0.tgz",
- "integrity": "sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw==",
- "requires": {
- "is-arguments": "1.0.4",
- "is-date-object": "1.0.1",
- "is-regex": "1.0.4",
- "object-is": "1.0.1",
- "object-keys": "1.1.1",
- "regexp.prototype.flags": "1.2.0"
- },
- "dependencies": {
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
- }
- }
- },
"deep-is": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ="
},
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "requires": {
- "object-keys": "1.0.12"
- }
- },
"defined": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz",
@@ -20846,13 +22856,13 @@
"resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
"integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=",
"requires": {
- "globby": "5.0.0",
- "is-path-cwd": "1.0.0",
- "is-path-in-cwd": "1.0.1",
- "object-assign": "4.1.1",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "rimraf": "2.6.2"
+ "globby": "^5.0.0",
+ "is-path-cwd": "^1.0.0",
+ "is-path-in-cwd": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "rimraf": "^2.2.8"
},
"dependencies": {
"object-assign": {
@@ -20887,7 +22897,7 @@
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
"integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
"requires": {
- "repeating": "2.0.1"
+ "repeating": "^2.0.0"
}
},
"detective": {
@@ -20895,8 +22905,8 @@
"resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz",
"integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==",
"requires": {
- "acorn": "5.7.1",
- "defined": "1.0.0"
+ "acorn": "^5.2.1",
+ "defined": "^1.0.0"
}
},
"doctrine": {
@@ -20904,8 +22914,8 @@
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz",
"integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=",
"requires": {
- "esutils": "2.0.2",
- "isarray": "1.0.0"
+ "esutils": "^2.0.2",
+ "isarray": "^1.0.0"
}
},
"dom-align": {
@@ -20918,7 +22928,7 @@
"resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz",
"integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=",
"requires": {
- "utila": "0.3.3"
+ "utila": "~0.3"
},
"dependencies": {
"utila": {
@@ -20928,21 +22938,13 @@
}
}
},
- "dom-helpers": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz",
- "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==",
- "requires": {
- "@babel/runtime": "7.6.3"
- }
- },
"dom-serializer": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz",
"integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=",
"requires": {
- "domelementtype": "1.1.3",
- "entities": "1.1.1"
+ "domelementtype": "~1.1.1",
+ "entities": "~1.1.1"
},
"dependencies": {
"domelementtype": {
@@ -20967,7 +22969,7 @@
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz",
"integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=",
"requires": {
- "domelementtype": "1.3.0"
+ "domelementtype": "1"
}
},
"domutils": {
@@ -20975,16 +22977,8 @@
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
"integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
"requires": {
- "dom-serializer": "0.1.0",
- "domelementtype": "1.3.0"
- }
- },
- "dot-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-1.1.2.tgz",
- "integrity": "sha1-HnOCaQDeKNbeVIC8HeMdCEKwa+w=",
- "requires": {
- "sentence-case": "1.1.3"
+ "dom-serializer": "0",
+ "domelementtype": "1"
}
},
"duplexer2": {
@@ -20992,7 +22986,7 @@
"resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz",
"integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=",
"requires": {
- "readable-stream": "1.1.14"
+ "readable-stream": "~1.1.9"
},
"dependencies": {
"isarray": {
@@ -21005,10 +22999,10 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
"integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
"isarray": "0.0.1",
- "string_decoder": "0.10.31"
+ "string_decoder": "~0.10.x"
}
},
"string_decoder": {
@@ -21024,7 +23018,7 @@
"integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
"optional": true,
"requires": {
- "jsbn": "0.1.1"
+ "jsbn": "~0.1.0"
}
},
"ee-first": {
@@ -21052,7 +23046,7 @@
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
"integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
"requires": {
- "iconv-lite": "0.4.23"
+ "iconv-lite": "~0.4.13"
}
},
"enhanced-resolve": {
@@ -21060,9 +23054,9 @@
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz",
"integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=",
"requires": {
- "graceful-fs": "4.1.11",
- "memory-fs": "0.2.0",
- "tapable": "0.1.10"
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.2.0",
+ "tapable": "^0.1.8"
},
"dependencies": {
"memory-fs": {
@@ -21087,8 +23081,8 @@
"resolved": "https://registry.npmjs.org/envify/-/envify-3.4.1.tgz",
"integrity": "sha1-1xIjKejfFoi6dxsSUBkXyc5cvOg=",
"requires": {
- "jstransform": "11.0.3",
- "through": "2.3.8"
+ "jstransform": "^11.0.3",
+ "through": "~2.3.4"
}
},
"errno": {
@@ -21096,7 +23090,7 @@
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
"integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
"requires": {
- "prr": "1.0.1"
+ "prr": "~1.0.1"
}
},
"error-ex": {
@@ -21104,46 +23098,7 @@
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
"integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
"requires": {
- "is-arrayish": "0.2.1"
- }
- },
- "es-abstract": {
- "version": "1.16.0",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.0.tgz",
- "integrity": "sha512-xdQnfykZ9JMEiasTAJZJdMWCQ1Vm00NBw79/AWi7ELfZuuPCSOMDZbT9mkOfSctVtfhb+sAAzrm+j//GjjLHLg==",
- "requires": {
- "es-to-primitive": "1.2.0",
- "function-bind": "1.1.1",
- "has": "1.0.3",
- "has-symbols": "1.0.0",
- "is-callable": "1.1.4",
- "is-regex": "1.0.4",
- "object-inspect": "1.6.0",
- "object-keys": "1.1.1",
- "string.prototype.trimleft": "2.1.0",
- "string.prototype.trimright": "2.1.0"
- },
- "dependencies": {
- "object-inspect": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz",
- "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ=="
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
- }
- }
- },
- "es-to-primitive": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz",
- "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==",
- "requires": {
- "is-callable": "1.1.4",
- "is-date-object": "1.0.1",
- "is-symbol": "1.0.2"
+ "is-arrayish": "^0.2.1"
}
},
"es5-ext": {
@@ -21151,9 +23106,9 @@
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz",
"integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==",
"requires": {
- "es6-iterator": "2.0.3",
- "es6-symbol": "3.1.1",
- "next-tick": "1.0.0"
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.1",
+ "next-tick": "1"
}
},
"es6-iterator": {
@@ -21161,9 +23116,9 @@
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
"integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
"requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.45",
- "es6-symbol": "3.1.1"
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
}
},
"es6-map": {
@@ -21171,12 +23126,12 @@
"resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz",
"integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=",
"requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.45",
- "es6-iterator": "2.0.3",
- "es6-set": "0.1.5",
- "es6-symbol": "3.1.1",
- "event-emitter": "0.3.5"
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
+ "es6-set": "~0.1.5",
+ "es6-symbol": "~3.1.1",
+ "event-emitter": "~0.3.5"
}
},
"es6-set": {
@@ -21184,11 +23139,11 @@
"resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz",
"integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=",
"requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.45",
- "es6-iterator": "2.0.3",
+ "d": "1",
+ "es5-ext": "~0.10.14",
+ "es6-iterator": "~2.0.1",
"es6-symbol": "3.1.1",
- "event-emitter": "0.3.5"
+ "event-emitter": "~0.3.5"
}
},
"es6-symbol": {
@@ -21196,8 +23151,8 @@
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
"integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
"requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.45"
+ "d": "1",
+ "es5-ext": "~0.10.14"
}
},
"es6-weak-map": {
@@ -21205,10 +23160,10 @@
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
"integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
"requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.45",
- "es6-iterator": "2.0.3",
- "es6-symbol": "3.1.1"
+ "d": "1",
+ "es5-ext": "^0.10.14",
+ "es6-iterator": "^2.0.1",
+ "es6-symbol": "^3.1.1"
}
},
"escape-html": {
@@ -21226,10 +23181,10 @@
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.3.3.tgz",
"integrity": "sha1-8CQBb1qI4Eb9EgBQVek5gC5sXyM=",
"requires": {
- "esprima": "1.1.1",
- "estraverse": "1.5.1",
- "esutils": "1.0.0",
- "source-map": "0.1.43"
+ "esprima": "~1.1.1",
+ "estraverse": "~1.5.0",
+ "esutils": "~1.0.0",
+ "source-map": "~0.1.33"
},
"dependencies": {
"esprima": {
@@ -21248,7 +23203,7 @@
"integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
"optional": true,
"requires": {
- "amdefine": "1.0.1"
+ "amdefine": ">=0.0.4"
}
}
}
@@ -21258,10 +23213,10 @@
"resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz",
"integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=",
"requires": {
- "es6-map": "0.1.5",
- "es6-weak-map": "2.0.2",
- "esrecurse": "4.2.1",
- "estraverse": "4.2.0"
+ "es6-map": "^0.1.3",
+ "es6-weak-map": "^2.0.1",
+ "esrecurse": "^4.1.0",
+ "estraverse": "^4.1.1"
},
"dependencies": {
"estraverse": {
@@ -21276,39 +23231,39 @@
"resolved": "https://registry.npmjs.org/eslint/-/eslint-2.13.1.tgz",
"integrity": "sha1-5MyPoPAJ+4KaquI4VaKTYL4fbBE=",
"requires": {
- "chalk": "1.1.3",
- "concat-stream": "1.6.2",
- "debug": "2.6.9",
- "doctrine": "1.5.0",
- "es6-map": "0.1.5",
- "escope": "3.6.0",
- "espree": "3.5.4",
- "estraverse": "4.2.0",
- "esutils": "2.0.2",
- "file-entry-cache": "1.3.1",
- "glob": "7.1.2",
- "globals": "9.18.0",
- "ignore": "3.3.10",
- "imurmurhash": "0.1.4",
- "inquirer": "0.12.0",
- "is-my-json-valid": "2.17.2",
- "is-resolvable": "1.1.0",
- "js-yaml": "3.7.0",
- "json-stable-stringify": "1.0.1",
- "levn": "0.3.0",
- "lodash": "4.17.10",
- "mkdirp": "0.5.1",
- "optionator": "0.8.2",
- "path-is-absolute": "1.0.1",
- "path-is-inside": "1.0.2",
- "pluralize": "1.2.1",
- "progress": "1.1.8",
- "require-uncached": "1.0.3",
- "shelljs": "0.6.1",
- "strip-json-comments": "1.0.4",
- "table": "3.8.3",
- "text-table": "0.2.0",
- "user-home": "2.0.0"
+ "chalk": "^1.1.3",
+ "concat-stream": "^1.4.6",
+ "debug": "^2.1.1",
+ "doctrine": "^1.2.2",
+ "es6-map": "^0.1.3",
+ "escope": "^3.6.0",
+ "espree": "^3.1.6",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "file-entry-cache": "^1.1.1",
+ "glob": "^7.0.3",
+ "globals": "^9.2.0",
+ "ignore": "^3.1.2",
+ "imurmurhash": "^0.1.4",
+ "inquirer": "^0.12.0",
+ "is-my-json-valid": "^2.10.0",
+ "is-resolvable": "^1.0.0",
+ "js-yaml": "^3.5.1",
+ "json-stable-stringify": "^1.0.0",
+ "levn": "^0.3.0",
+ "lodash": "^4.0.0",
+ "mkdirp": "^0.5.0",
+ "optionator": "^0.8.1",
+ "path-is-absolute": "^1.0.0",
+ "path-is-inside": "^1.0.1",
+ "pluralize": "^1.2.1",
+ "progress": "^1.1.8",
+ "require-uncached": "^1.0.2",
+ "shelljs": "^0.6.0",
+ "strip-json-comments": "~1.0.1",
+ "table": "^3.7.8",
+ "text-table": "~0.2.0",
+ "user-home": "^2.0.0"
},
"dependencies": {
"debug": {
@@ -21329,12 +23284,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
}
}
@@ -21344,8 +23299,8 @@
"resolved": "https://registry.npmjs.org/espree/-/espree-3.5.4.tgz",
"integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==",
"requires": {
- "acorn": "5.7.1",
- "acorn-jsx": "3.0.1"
+ "acorn": "^5.5.0",
+ "acorn-jsx": "^3.0.0"
}
},
"esprima-fb": {
@@ -21358,7 +23313,7 @@
"resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz",
"integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==",
"requires": {
- "estraverse": "4.2.0"
+ "estraverse": "^4.1.0"
},
"dependencies": {
"estraverse": {
@@ -21388,8 +23343,8 @@
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
"integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
"requires": {
- "d": "1.0.0",
- "es5-ext": "0.10.45"
+ "d": "1",
+ "es5-ext": "~0.10.14"
}
},
"eventemitter3": {
@@ -21407,7 +23362,7 @@
"resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz",
"integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=",
"requires": {
- "original": "1.0.1"
+ "original": ">=0.0.5"
}
},
"exit-hook": {
@@ -21420,7 +23375,7 @@
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
"integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
"requires": {
- "is-posix-bracket": "0.1.1"
+ "is-posix-bracket": "^0.1.0"
}
},
"expand-range": {
@@ -21428,7 +23383,7 @@
"resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
"requires": {
- "fill-range": "2.2.4"
+ "fill-range": "^2.1.0"
}
},
"express": {
@@ -21436,36 +23391,36 @@
"resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz",
"integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
"requires": {
- "accepts": "1.3.5",
+ "accepts": "~1.3.5",
"array-flatten": "1.1.1",
"body-parser": "1.18.2",
"content-disposition": "0.5.2",
- "content-type": "1.0.4",
+ "content-type": "~1.0.4",
"cookie": "0.3.1",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
- "depd": "1.1.2",
- "encodeurl": "1.0.2",
- "escape-html": "1.0.3",
- "etag": "1.8.1",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
"finalhandler": "1.1.1",
"fresh": "0.5.2",
"merge-descriptors": "1.0.1",
- "methods": "1.1.2",
- "on-finished": "2.3.0",
- "parseurl": "1.3.2",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.2",
"path-to-regexp": "0.1.7",
- "proxy-addr": "2.0.3",
+ "proxy-addr": "~2.0.3",
"qs": "6.5.1",
- "range-parser": "1.2.0",
+ "range-parser": "~1.2.0",
"safe-buffer": "5.1.1",
"send": "0.16.2",
"serve-static": "1.13.2",
"setprototypeof": "1.1.0",
- "statuses": "1.4.0",
- "type-is": "1.6.16",
+ "statuses": "~1.4.0",
+ "type-is": "~1.6.16",
"utils-merge": "1.0.1",
- "vary": "1.1.2"
+ "vary": "~1.1.2"
},
"dependencies": {
"debug": {
@@ -21498,7 +23453,7 @@
"resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
"integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
"requires": {
- "is-extglob": "1.0.0"
+ "is-extglob": "^1.0.0"
}
},
"extract-text-webpack-plugin": {
@@ -21506,8 +23461,8 @@
"resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-0.9.1.tgz",
"integrity": "sha1-723FCMs17Q3PikAJq76FP3p2IrU=",
"requires": {
- "async": "1.5.2",
- "loader-utils": "0.2.17"
+ "async": "^1.5.0",
+ "loader-utils": "^0.2.3"
},
"dependencies": {
"async": {
@@ -21527,10 +23482,9 @@
"resolved": "https://registry.npmjs.org/falafel/-/falafel-2.1.0.tgz",
"integrity": "sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw=",
"requires": {
- "acorn": "5.7.1",
- "foreach": "2.0.5",
- "isarray": "0.0.1",
- "object-keys": "1.0.12"
+ "acorn": "^5.0.0",
+ "foreach": "^2.0.5",
+ "isarray": "0.0.1"
},
"dependencies": {
"isarray": {
@@ -21565,7 +23519,7 @@
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
"integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
"requires": {
- "websocket-driver": "0.7.0"
+ "websocket-driver": ">=0.5.1"
}
},
"fbjs": {
@@ -21573,13 +23527,13 @@
"resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz",
"integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=",
"requires": {
- "core-js": "1.2.7",
- "isomorphic-fetch": "2.2.1",
- "loose-envify": "1.3.1",
- "object-assign": "4.1.1",
- "promise": "7.3.1",
- "setimmediate": "1.0.5",
- "ua-parser-js": "0.7.18"
+ "core-js": "^1.0.0",
+ "isomorphic-fetch": "^2.1.1",
+ "loose-envify": "^1.0.0",
+ "object-assign": "^4.1.0",
+ "promise": "^7.1.1",
+ "setimmediate": "^1.0.5",
+ "ua-parser-js": "^0.7.18"
},
"dependencies": {
"object-assign": {
@@ -21594,7 +23548,7 @@
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
"integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
"requires": {
- "pend": "1.2.0"
+ "pend": "~1.2.0"
}
},
"figures": {
@@ -21602,8 +23556,8 @@
"resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
"integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
"requires": {
- "escape-string-regexp": "1.0.5",
- "object-assign": "4.1.1"
+ "escape-string-regexp": "^1.0.5",
+ "object-assign": "^4.1.0"
},
"dependencies": {
"object-assign": {
@@ -21618,8 +23572,8 @@
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-1.3.1.tgz",
"integrity": "sha1-RMYepgeuS+nBQC9B9EJwy/4zT/g=",
"requires": {
- "flat-cache": "1.3.0",
- "object-assign": "4.1.1"
+ "flat-cache": "^1.2.1",
+ "object-assign": "^4.0.1"
},
"dependencies": {
"object-assign": {
@@ -21634,7 +23588,7 @@
"resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.8.5.tgz",
"integrity": "sha1-knXQMf54DyfUf19K8CvUNxPMFRs=",
"requires": {
- "loader-utils": "0.2.17"
+ "loader-utils": "~0.2.5"
}
},
"file-type": {
@@ -21652,16 +23606,16 @@
"resolved": "https://registry.npmjs.org/filestack-js/-/filestack-js-1.14.6.tgz",
"integrity": "sha512-mcME182eOUy3OyU0F9rcATQf3/YY3N1suXYVv3hcS1RxeVHIIkM9XI6N9Qg5t04y0qOGud9xv/GO+oKhreCSIw==",
"requires": {
- "abab": "2.0.0",
- "ajv": "6.10.2",
- "file-type": "8.1.0",
- "filestack-loader": "3.0.4",
- "is-svg": "3.0.0",
- "isutf8": "2.0.4",
- "spark-md5": "3.0.0",
- "superagent": "3.8.3",
- "tcomb-validation": "3.4.1",
- "tslib": "1.10.0"
+ "abab": "^2.0.0",
+ "ajv": "^6.5.5",
+ "file-type": "^8.1.0",
+ "filestack-loader": "^3.0.4",
+ "is-svg": "^3.0.0",
+ "isutf8": "^2.0.2",
+ "spark-md5": "^3.0.0",
+ "superagent": "^3.8.3",
+ "tcomb-validation": "^3.4.1",
+ "tslib": "^1.9.3"
},
"dependencies": {
"ajv": {
@@ -21669,10 +23623,10 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
"integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
"requires": {
- "fast-deep-equal": "2.0.1",
- "fast-json-stable-stringify": "2.0.0",
- "json-schema-traverse": "0.4.1",
- "uri-js": "4.2.2"
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
}
},
"fast-deep-equal": {
@@ -21685,7 +23639,7 @@
"resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz",
"integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==",
"requires": {
- "html-comment-regex": "1.1.1"
+ "html-comment-regex": "^1.1.0"
}
},
"json-schema-traverse": {
@@ -21705,11 +23659,11 @@
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz",
"integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==",
"requires": {
- "is-number": "2.1.0",
- "isobject": "2.1.0",
- "randomatic": "3.0.0",
- "repeat-element": "1.1.2",
- "repeat-string": "1.6.1"
+ "is-number": "^2.1.0",
+ "isobject": "^2.0.0",
+ "randomatic": "^3.0.0",
+ "repeat-element": "^1.1.2",
+ "repeat-string": "^1.5.2"
}
},
"finalhandler": {
@@ -21718,12 +23672,12 @@
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
"requires": {
"debug": "2.6.9",
- "encodeurl": "1.0.2",
- "escape-html": "1.0.3",
- "on-finished": "2.3.0",
- "parseurl": "1.3.2",
- "statuses": "1.4.0",
- "unpipe": "1.0.0"
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.2",
+ "statuses": "~1.4.0",
+ "unpipe": "~1.0.0"
},
"dependencies": {
"debug": {
@@ -21741,9 +23695,9 @@
"resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz",
"integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=",
"requires": {
- "commondir": "1.0.1",
- "mkdirp": "0.5.1",
- "pkg-dir": "1.0.0"
+ "commondir": "^1.0.1",
+ "mkdirp": "^0.5.1",
+ "pkg-dir": "^1.0.0"
}
},
"find-up": {
@@ -21751,8 +23705,8 @@
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
"integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
"requires": {
- "path-exists": "2.1.0",
- "pinkie-promise": "2.0.1"
+ "path-exists": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
}
},
"findit2": {
@@ -21765,10 +23719,10 @@
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.0.tgz",
"integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=",
"requires": {
- "circular-json": "0.3.3",
- "del": "2.2.2",
- "graceful-fs": "4.1.11",
- "write": "0.2.1"
+ "circular-json": "^0.3.1",
+ "del": "^2.0.2",
+ "graceful-fs": "^4.1.2",
+ "write": "^0.2.1"
}
},
"flatten": {
@@ -21781,7 +23735,7 @@
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz",
"integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==",
"requires": {
- "debug": "3.1.0"
+ "debug": "^3.1.0"
}
},
"for-in": {
@@ -21794,7 +23748,7 @@
"resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz",
"integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=",
"requires": {
- "for-in": "1.0.2"
+ "for-in": "^1.0.1"
}
},
"foreach": {
@@ -21812,22 +23766,9 @@
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
"requires": {
- "asynckit": "0.4.0",
+ "asynckit": "^0.4.0",
"combined-stream": "1.0.6",
- "mime-types": "2.1.18"
- }
- },
- "form-data-to-object": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/form-data-to-object/-/form-data-to-object-0.2.0.tgz",
- "integrity": "sha1-96jmjd2RChEApl4lrGpIQUP/gWg="
- },
- "formatio": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz",
- "integrity": "sha1-XtPM1jZVEJc4NGXZlhmRAOhhYek=",
- "requires": {
- "samsam": "1.1.2"
+ "mime-types": "^2.1.12"
}
},
"formidable": {
@@ -21835,14 +23776,6 @@
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz",
"integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg=="
},
- "formsy-react": {
- "version": "0.19.5",
- "resolved": "https://registry.npmjs.org/formsy-react/-/formsy-react-0.19.5.tgz",
- "integrity": "sha1-dgpXrAETRC499MMJw2ON2SlX544=",
- "requires": {
- "form-data-to-object": "0.2.0"
- }
- },
"forwarded": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
@@ -21864,8 +23797,8 @@
"integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==",
"optional": true,
"requires": {
- "nan": "2.14.0",
- "node-pre-gyp": "0.12.0"
+ "nan": "^2.12.1",
+ "node-pre-gyp": "^0.12.0"
},
"dependencies": {
"abbrev": {
@@ -21877,7 +23810,8 @@
"ansi-regex": {
"version": "2.1.1",
"resolved": false,
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "optional": true
},
"aproba": {
"version": "1.2.0",
@@ -21891,21 +23825,23 @@
"integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"optional": true,
"requires": {
- "delegates": "1.0.0",
- "readable-stream": "2.3.6"
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
}
},
"balanced-match": {
"version": "1.0.0",
"resolved": false,
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+ "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "optional": true
},
"brace-expansion": {
"version": "1.1.11",
"resolved": false,
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "optional": true,
"requires": {
- "balanced-match": "1.0.0",
+ "balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
@@ -21918,17 +23854,20 @@
"code-point-at": {
"version": "1.1.0",
"resolved": false,
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+ "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "optional": true
},
"concat-map": {
"version": "0.0.1",
"resolved": false,
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "optional": true
},
"console-control-strings": {
"version": "1.1.0",
"resolved": false,
- "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
+ "optional": true
},
"core-util-is": {
"version": "1.0.2",
@@ -21942,7 +23881,7 @@
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"optional": true,
"requires": {
- "ms": "2.1.1"
+ "ms": "^2.1.1"
}
},
"deep-extend": {
@@ -21969,7 +23908,7 @@
"integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
"optional": true,
"requires": {
- "minipass": "2.3.5"
+ "minipass": "^2.2.1"
}
},
"fs.realpath": {
@@ -21984,14 +23923,14 @@
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"optional": true,
"requires": {
- "aproba": "1.2.0",
- "console-control-strings": "1.1.0",
- "has-unicode": "2.0.1",
- "object-assign": "4.1.1",
- "signal-exit": "3.0.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wide-align": "1.1.3"
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
}
},
"glob": {
@@ -22000,12 +23939,12 @@
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"optional": true,
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
"has-unicode": {
@@ -22020,7 +23959,7 @@
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"optional": true,
"requires": {
- "safer-buffer": "2.1.2"
+ "safer-buffer": ">= 2.1.2 < 3"
}
},
"ignore-walk": {
@@ -22029,7 +23968,7 @@
"integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
"optional": true,
"requires": {
- "minimatch": "3.0.4"
+ "minimatch": "^3.0.4"
}
},
"inflight": {
@@ -22038,14 +23977,15 @@
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"optional": true,
"requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
"inherits": {
"version": "2.0.3",
"resolved": false,
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
+ "optional": true
},
"ini": {
"version": "1.3.5",
@@ -22057,8 +23997,9 @@
"version": "1.0.0",
"resolved": false,
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "optional": true,
"requires": {
- "number-is-nan": "1.0.1"
+ "number-is-nan": "^1.0.0"
}
},
"isarray": {
@@ -22071,22 +24012,25 @@
"version": "3.0.4",
"resolved": false,
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "optional": true,
"requires": {
- "brace-expansion": "1.1.11"
+ "brace-expansion": "^1.1.7"
}
},
"minimist": {
"version": "0.0.8",
"resolved": false,
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "optional": true
},
"minipass": {
"version": "2.3.5",
"resolved": false,
"integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
+ "optional": true,
"requires": {
- "safe-buffer": "5.1.2",
- "yallist": "3.0.3"
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
}
},
"minizlib": {
@@ -22095,13 +24039,14 @@
"integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
"optional": true,
"requires": {
- "minipass": "2.3.5"
+ "minipass": "^2.2.1"
}
},
"mkdirp": {
"version": "0.5.1",
"resolved": false,
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+ "optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -22124,9 +24069,9 @@
"integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==",
"optional": true,
"requires": {
- "debug": "4.1.1",
- "iconv-lite": "0.4.24",
- "sax": "1.2.4"
+ "debug": "^4.1.0",
+ "iconv-lite": "^0.4.4",
+ "sax": "^1.2.4"
}
},
"node-pre-gyp": {
@@ -22135,16 +24080,16 @@
"integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
"optional": true,
"requires": {
- "detect-libc": "1.0.3",
- "mkdirp": "0.5.1",
- "needle": "2.3.0",
- "nopt": "4.0.1",
- "npm-packlist": "1.4.1",
- "npmlog": "4.1.2",
- "rc": "1.2.8",
- "rimraf": "2.6.3",
- "semver": "5.7.0",
- "tar": "4.4.8"
+ "detect-libc": "^1.0.2",
+ "mkdirp": "^0.5.1",
+ "needle": "^2.2.1",
+ "nopt": "^4.0.1",
+ "npm-packlist": "^1.1.6",
+ "npmlog": "^4.0.2",
+ "rc": "^1.2.7",
+ "rimraf": "^2.6.1",
+ "semver": "^5.3.0",
+ "tar": "^4"
}
},
"nopt": {
@@ -22153,8 +24098,8 @@
"integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
"optional": true,
"requires": {
- "abbrev": "1.1.1",
- "osenv": "0.1.5"
+ "abbrev": "1",
+ "osenv": "^0.1.4"
}
},
"npm-bundled": {
@@ -22169,8 +24114,8 @@
"integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
"optional": true,
"requires": {
- "ignore-walk": "3.0.1",
- "npm-bundled": "1.0.6"
+ "ignore-walk": "^3.0.1",
+ "npm-bundled": "^1.0.1"
}
},
"npmlog": {
@@ -22179,16 +24124,17 @@
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"optional": true,
"requires": {
- "are-we-there-yet": "1.1.5",
- "console-control-strings": "1.1.0",
- "gauge": "2.7.4",
- "set-blocking": "2.0.0"
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
}
},
"number-is-nan": {
"version": "1.0.1",
"resolved": false,
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "optional": true
},
"object-assign": {
"version": "4.1.1",
@@ -22200,8 +24146,9 @@
"version": "1.4.0",
"resolved": false,
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "optional": true,
"requires": {
- "wrappy": "1.0.2"
+ "wrappy": "1"
}
},
"os-homedir": {
@@ -22222,8 +24169,8 @@
"integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"optional": true,
"requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
}
},
"path-is-absolute": {
@@ -22244,10 +24191,10 @@
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"optional": true,
"requires": {
- "deep-extend": "0.6.0",
- "ini": "1.3.5",
- "minimist": "1.2.0",
- "strip-json-comments": "2.0.1"
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
},
"dependencies": {
"minimist": {
@@ -22264,13 +24211,13 @@
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"optional": true,
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "2.0.0",
- "safe-buffer": "5.1.2",
- "string_decoder": "1.1.1",
- "util-deprecate": "1.0.2"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
"rimraf": {
@@ -22279,13 +24226,14 @@
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"optional": true,
"requires": {
- "glob": "7.1.3"
+ "glob": "^7.1.3"
}
},
"safe-buffer": {
"version": "5.1.2",
"resolved": false,
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
+ "optional": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -22321,10 +24269,11 @@
"version": "1.0.2",
"resolved": false,
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "optional": true,
"requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
}
},
"string_decoder": {
@@ -22333,15 +24282,16 @@
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"optional": true,
"requires": {
- "safe-buffer": "5.1.2"
+ "safe-buffer": "~5.1.0"
}
},
"strip-ansi": {
"version": "3.0.1",
"resolved": false,
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "optional": true,
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
},
"strip-json-comments": {
@@ -22356,13 +24306,13 @@
"integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
"optional": true,
"requires": {
- "chownr": "1.1.1",
- "fs-minipass": "1.2.5",
- "minipass": "2.3.5",
- "minizlib": "1.2.1",
- "mkdirp": "0.5.1",
- "safe-buffer": "5.1.2",
- "yallist": "3.0.3"
+ "chownr": "^1.1.1",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.3.4",
+ "minizlib": "^1.1.1",
+ "mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.2"
}
},
"util-deprecate": {
@@ -22377,18 +24327,20 @@
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"optional": true,
"requires": {
- "string-width": "1.0.2"
+ "string-width": "^1.0.2 || 2"
}
},
"wrappy": {
"version": "1.0.2",
"resolved": false,
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "optional": true
},
"yallist": {
"version": "3.0.3",
"resolved": false,
- "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A=="
+ "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
+ "optional": true
}
}
},
@@ -22397,30 +24349,25 @@
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
"integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
"requires": {
- "graceful-fs": "4.1.11",
- "inherits": "2.0.3",
- "mkdirp": "0.5.1",
- "rimraf": "2.6.2"
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
}
},
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- },
"gauge": {
"version": "2.7.4",
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"requires": {
- "aproba": "1.2.0",
- "console-control-strings": "1.1.0",
- "has-unicode": "2.0.1",
- "object-assign": "4.1.1",
- "signal-exit": "3.0.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wide-align": "1.1.3"
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
},
"dependencies": {
"object-assign": {
@@ -22435,7 +24382,7 @@
"resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
"integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
"requires": {
- "globule": "1.2.1"
+ "globule": "^1.0.0"
}
},
"generate-function": {
@@ -22448,7 +24395,7 @@
"resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz",
"integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=",
"requires": {
- "is-property": "1.0.2"
+ "is-property": "^1.0.0"
}
},
"get-caller-file": {
@@ -22466,7 +24413,7 @@
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"requires": {
- "assert-plus": "1.0.0"
+ "assert-plus": "^1.0.0"
},
"dependencies": {
"assert-plus": {
@@ -22481,11 +24428,11 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
"integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
"requires": {
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
"glob-base": {
@@ -22493,8 +24440,8 @@
"resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz",
"integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=",
"requires": {
- "glob-parent": "2.0.0",
- "is-glob": "2.0.1"
+ "glob-parent": "^2.0.0",
+ "is-glob": "^2.0.0"
}
},
"glob-parent": {
@@ -22502,7 +24449,7 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz",
"integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=",
"requires": {
- "is-glob": "2.0.1"
+ "is-glob": "^2.0.0"
}
},
"globals": {
@@ -22515,12 +24462,12 @@
"resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz",
"integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=",
"requires": {
- "array-union": "1.0.2",
- "arrify": "1.0.1",
- "glob": "7.1.2",
- "object-assign": "4.1.1",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
+ "array-union": "^1.0.1",
+ "arrify": "^1.0.0",
+ "glob": "^7.0.3",
+ "object-assign": "^4.0.1",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
},
"dependencies": {
"glob": {
@@ -22528,12 +24475,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
"object-assign": {
@@ -22548,9 +24495,9 @@
"resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
"integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
"requires": {
- "glob": "7.1.2",
- "lodash": "4.17.10",
- "minimatch": "3.0.4"
+ "glob": "~7.1.1",
+ "lodash": "~4.17.10",
+ "minimatch": "~3.0.2"
},
"dependencies": {
"glob": {
@@ -22558,12 +24505,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
}
}
@@ -22578,11 +24525,6 @@
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
},
- "graceful-readlink": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
- "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
- },
"har-schema": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz",
@@ -22593,16 +24535,8 @@
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz",
"integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=",
"requires": {
- "ajv": "4.11.8",
- "har-schema": "1.0.5"
- }
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "requires": {
- "function-bind": "1.1.1"
+ "ajv": "^4.9.1",
+ "har-schema": "^1.0.5"
}
},
"has-ansi": {
@@ -22610,7 +24544,7 @@
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
},
"has-color": {
@@ -22623,11 +24557,6 @@
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
"integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo="
},
- "has-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
- "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q="
- },
"has-unicode": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
@@ -22638,10 +24567,10 @@
"resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz",
"integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=",
"requires": {
- "boom": "2.10.1",
- "cryptiles": "2.0.5",
- "hoek": "2.16.3",
- "sntp": "1.0.9"
+ "boom": "2.x.x",
+ "cryptiles": "2.x.x",
+ "hoek": "2.x.x",
+ "sntp": "1.x.x"
}
},
"he": {
@@ -22649,27 +24578,6 @@
"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0="
},
- "history": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/history/-/history-1.17.0.tgz",
- "integrity": "sha1-xUg8qlodH+oAoafY0ZuHQBZxHSk=",
- "requires": {
- "deep-equal": "1.1.0",
- "invariant": "2.2.4",
- "query-string": "3.0.3",
- "warning": "2.1.0"
- },
- "dependencies": {
- "query-string": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.3.tgz",
- "integrity": "sha1-ri4UtNBQcdTpuetIc8NbDc1C5jg=",
- "requires": {
- "strict-uri-encode": "1.1.0"
- }
- }
- }
- },
"hoek": {
"version": "2.16.3",
"resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz",
@@ -22685,8 +24593,8 @@
"resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
"integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
"requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.1"
}
},
"hosted-git-info": {
@@ -22704,13 +24612,13 @@
"resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.17.tgz",
"integrity": "sha512-O+StuKL0UWfwX5Zv4rFxd60DPcT5DVjGq1AlnP6VQ8wzudft/W4hx5Wl98aSYNwFBHY6XWJreRw/BehX4l+diQ==",
"requires": {
- "camel-case": "3.0.0",
- "clean-css": "4.1.11",
- "commander": "2.15.1",
- "he": "1.1.1",
- "param-case": "2.1.1",
- "relateurl": "0.2.7",
- "uglify-js": "3.4.2"
+ "camel-case": "3.0.x",
+ "clean-css": "4.1.x",
+ "commander": "2.15.x",
+ "he": "1.1.x",
+ "param-case": "2.1.x",
+ "relateurl": "0.2.x",
+ "uglify-js": "3.4.x"
},
"dependencies": {
"commander": {
@@ -22725,12 +24633,12 @@
"resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz",
"integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=",
"requires": {
- "bluebird": "3.5.1",
- "html-minifier": "3.5.17",
- "loader-utils": "0.2.17",
- "lodash": "4.17.10",
- "pretty-error": "2.1.1",
- "toposort": "1.0.7"
+ "bluebird": "^3.4.7",
+ "html-minifier": "^3.2.3",
+ "loader-utils": "^0.2.16",
+ "lodash": "^4.17.3",
+ "pretty-error": "^2.0.2",
+ "toposort": "^1.0.0"
}
},
"htmlparser2": {
@@ -22738,10 +24646,10 @@
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",
"integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=",
"requires": {
- "domelementtype": "1.3.0",
- "domhandler": "2.1.0",
- "domutils": "1.1.6",
- "readable-stream": "1.0.34"
+ "domelementtype": "1",
+ "domhandler": "2.1",
+ "domutils": "1.1",
+ "readable-stream": "1.0"
},
"dependencies": {
"domutils": {
@@ -22749,7 +24657,7 @@
"resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz",
"integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=",
"requires": {
- "domelementtype": "1.3.0"
+ "domelementtype": "1"
}
},
"isarray": {
@@ -22762,10 +24670,10 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
"isarray": "0.0.1",
- "string_decoder": "0.10.31"
+ "string_decoder": "~0.10.x"
}
},
"string_decoder": {
@@ -22780,10 +24688,10 @@
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
"integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
"requires": {
- "depd": "1.1.2",
+ "depd": "~1.1.2",
"inherits": "2.0.3",
"setprototypeof": "1.1.0",
- "statuses": "1.4.0"
+ "statuses": ">= 1.4.0 < 2"
}
},
"http-parser-js": {
@@ -22796,9 +24704,9 @@
"resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz",
"integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==",
"requires": {
- "eventemitter3": "3.1.0",
- "follow-redirects": "1.5.0",
- "requires-port": "1.0.0"
+ "eventemitter3": "^3.0.0",
+ "follow-redirects": "^1.0.0",
+ "requires-port": "^1.0.0"
}
},
"http-proxy-middleware": {
@@ -22806,10 +24714,10 @@
"resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz",
"integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=",
"requires": {
- "http-proxy": "1.17.0",
- "is-glob": "3.1.0",
- "lodash": "4.17.10",
- "micromatch": "2.3.11"
+ "http-proxy": "^1.16.2",
+ "is-glob": "^3.1.0",
+ "lodash": "^4.17.2",
+ "micromatch": "^2.3.11"
},
"dependencies": {
"is-extglob": {
@@ -22822,7 +24730,7 @@
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
"integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
"requires": {
- "is-extglob": "2.1.1"
+ "is-extglob": "^2.1.0"
}
}
}
@@ -22832,9 +24740,9 @@
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz",
"integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=",
"requires": {
- "assert-plus": "0.2.0",
- "jsprim": "1.4.1",
- "sshpk": "1.14.2"
+ "assert-plus": "^0.2.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
}
},
"https-browserify": {
@@ -22842,22 +24750,12 @@
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz",
"integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI="
},
- "humps": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/humps/-/humps-0.6.0.tgz",
- "integrity": "sha1-phchA4bwRF0SLOtNlBSho5saHpQ="
- },
- "hyphenate-style-name": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz",
- "integrity": "sha512-EcuixamT82oplpoJ2XU4pDtKGWQ7b00CD9f1ug9IaQ3p1bkHMiKCZ9ut9QDI6qsa6cpUuB+A/I+zLtdNK4n2DQ=="
- },
"iconv-lite": {
"version": "0.4.23",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
"integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
"requires": {
- "safer-buffer": "2.1.2"
+ "safer-buffer": ">= 2.1.2 < 3"
}
},
"icss-replace-symbols": {
@@ -22870,11 +24768,11 @@
"resolved": "https://registry.npmjs.org/idtoken-verifier/-/idtoken-verifier-1.2.0.tgz",
"integrity": "sha512-8jmmFHwdPz8L73zGNAXHHOV9yXNC+Z0TUBN5rafpoaFaLFltlIFr1JkQa3FYAETP23eSsulVw0sBiwrE8jqbUg==",
"requires": {
- "base64-js": "1.3.0",
- "crypto-js": "3.1.9-1",
- "jsbn": "0.1.1",
- "superagent": "3.8.3",
- "url-join": "1.1.0"
+ "base64-js": "^1.2.0",
+ "crypto-js": "^3.1.9-1",
+ "jsbn": "^0.1.0",
+ "superagent": "^3.8.2",
+ "url-join": "^1.1.0"
}
},
"ieee754": {
@@ -22902,7 +24800,7 @@
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
"requires": {
- "repeating": "2.0.1"
+ "repeating": "^2.0.0"
}
},
"indexes-of": {
@@ -22920,8 +24818,8 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"requires": {
- "once": "1.4.0",
- "wrappy": "1.0.2"
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
"inherits": {
@@ -22929,33 +24827,24 @@
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
- "inline-style-prefixer": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz",
- "integrity": "sha1-hVG45bTVcyROZqNLBPfTIHaitTQ=",
- "requires": {
- "bowser": "1.9.4",
- "css-in-js-utils": "2.0.1"
- }
- },
"inquirer": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-0.12.0.tgz",
"integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=",
"requires": {
- "ansi-escapes": "1.4.0",
- "ansi-regex": "2.1.1",
- "chalk": "1.1.3",
- "cli-cursor": "1.0.2",
- "cli-width": "2.2.0",
- "figures": "1.7.0",
- "lodash": "4.17.10",
- "readline2": "1.0.1",
- "run-async": "0.1.0",
- "rx-lite": "3.1.2",
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "through": "2.3.8"
+ "ansi-escapes": "^1.1.0",
+ "ansi-regex": "^2.0.0",
+ "chalk": "^1.0.0",
+ "cli-cursor": "^1.0.1",
+ "cli-width": "^2.0.0",
+ "figures": "^1.3.5",
+ "lodash": "^4.3.0",
+ "readline2": "^1.0.1",
+ "run-async": "^0.1.0",
+ "rx-lite": "^3.1.2",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.0",
+ "through": "^2.3.6"
}
},
"interpret": {
@@ -22968,7 +24857,7 @@
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
"integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
"requires": {
- "loose-envify": "1.3.1"
+ "loose-envify": "^1.0.0"
}
},
"invert-kv": {
@@ -22986,11 +24875,6 @@
"resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
"integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY="
},
- "is-arguments": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
- "integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA=="
- },
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
@@ -23001,32 +24885,17 @@
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
"integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=",
"requires": {
- "binary-extensions": "1.11.0"
+ "binary-extensions": "^1.0.0"
}
},
- "is-buffer": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
- "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
- },
"is-builtin-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
"requires": {
- "builtin-modules": "1.1.1"
+ "builtin-modules": "^1.0.0"
}
},
- "is-callable": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
- "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="
- },
- "is-date-object": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
- "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
- },
"is-dotfile": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz",
@@ -23037,7 +24906,7 @@
"resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz",
"integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=",
"requires": {
- "is-primitive": "2.0.0"
+ "is-primitive": "^2.0.0"
}
},
"is-extendable": {
@@ -23055,7 +24924,7 @@
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
"requires": {
- "number-is-nan": "1.0.1"
+ "number-is-nan": "^1.0.0"
}
},
"is-fullwidth-code-point": {
@@ -23063,7 +24932,7 @@
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"requires": {
- "number-is-nan": "1.0.1"
+ "number-is-nan": "^1.0.0"
}
},
"is-glob": {
@@ -23071,15 +24940,7 @@
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
"integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
"requires": {
- "is-extglob": "1.0.0"
- }
- },
- "is-lower-case": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz",
- "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=",
- "requires": {
- "lower-case": "1.1.4"
+ "is-extglob": "^1.0.0"
}
},
"is-my-ip-valid": {
@@ -23092,11 +24953,11 @@
"resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz",
"integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==",
"requires": {
- "generate-function": "2.0.0",
- "generate-object-property": "1.2.0",
- "is-my-ip-valid": "1.0.0",
- "jsonpointer": "4.0.1",
- "xtend": "4.0.1"
+ "generate-function": "^2.0.0",
+ "generate-object-property": "^1.1.0",
+ "is-my-ip-valid": "^1.0.0",
+ "jsonpointer": "^4.0.0",
+ "xtend": "^4.0.0"
},
"dependencies": {
"xtend": {
@@ -23111,7 +24972,7 @@
"resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz",
"integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=",
"requires": {
- "kind-of": "3.2.2"
+ "kind-of": "^3.0.2"
}
},
"is-path-cwd": {
@@ -23124,7 +24985,7 @@
"resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz",
"integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==",
"requires": {
- "is-path-inside": "1.0.1"
+ "is-path-inside": "^1.0.0"
}
},
"is-path-inside": {
@@ -23132,7 +24993,7 @@
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
"integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
"requires": {
- "path-is-inside": "1.0.2"
+ "path-is-inside": "^1.0.1"
}
},
"is-plain-obj": {
@@ -23150,34 +25011,16 @@
"resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz",
"integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU="
},
- "is-promise": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
- "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
- },
"is-property": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz",
"integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ="
},
- "is-regex": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz",
- "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=",
- "requires": {
- "has": "1.0.3"
- }
- },
"is-resolvable": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz",
"integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg=="
},
- "is-retina": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-retina/-/is-retina-1.0.3.tgz",
- "integrity": "sha1-10AbKGvqKuN/Ykd1iN5QTQuGR+M="
- },
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
@@ -23188,15 +25031,7 @@
"resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz",
"integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=",
"requires": {
- "html-comment-regex": "1.1.1"
- }
- },
- "is-symbol": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz",
- "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==",
- "requires": {
- "has-symbols": "1.0.0"
+ "html-comment-regex": "^1.1.0"
}
},
"is-typedarray": {
@@ -23204,14 +25039,6 @@
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
},
- "is-upper-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz",
- "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=",
- "requires": {
- "upper-case": "1.1.3"
- }
- },
"is-utf8": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
@@ -23240,8 +25067,8 @@
"resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
"integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=",
"requires": {
- "node-fetch": "1.7.3",
- "whatwg-fetch": "2.0.4"
+ "node-fetch": "^1.0.1",
+ "whatwg-fetch": ">=0.10.0"
},
"dependencies": {
"whatwg-fetch": {
@@ -23267,15 +25094,15 @@
"integrity": "sha1-nIDlOMEtP7lcjZu5VZ+gzAQEBf0=",
"requires": {
"character-parser": "1.2.1",
- "clean-css": "3.4.28",
- "commander": "2.6.0",
- "constantinople": "3.0.2",
+ "clean-css": "^3.1.9",
+ "commander": "~2.6.0",
+ "constantinople": "~3.0.1",
"jstransformer": "0.0.2",
- "mkdirp": "0.5.1",
+ "mkdirp": "~0.5.0",
"transformers": "2.1.0",
- "uglify-js": "2.8.29",
- "void-elements": "2.0.1",
- "with": "4.0.3"
+ "uglify-js": "^2.4.19",
+ "void-elements": "~2.0.1",
+ "with": "~4.0.0"
},
"dependencies": {
"clean-css": {
@@ -23283,8 +25110,8 @@
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz",
"integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=",
"requires": {
- "commander": "2.8.1",
- "source-map": "0.4.4"
+ "commander": "2.8.x",
+ "source-map": "0.4.x"
},
"dependencies": {
"commander": {
@@ -23292,7 +25119,7 @@
"resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
"integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
"requires": {
- "graceful-readlink": "1.0.1"
+ "graceful-readlink": ">= 1.0.0"
}
}
}
@@ -23307,9 +25134,8 @@
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
"requires": {
- "source-map": "0.5.7",
- "uglify-to-browserify": "1.0.2",
- "yargs": "3.10.0"
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0"
},
"dependencies": {
"source-map": {
@@ -23326,7 +25152,7 @@
"resolved": "https://registry.npmjs.org/jade-html-loader/-/jade-html-loader-0.0.3.tgz",
"integrity": "sha1-ggSLSG55YiZ5OPWM0er9nMAAPsw=",
"requires": {
- "loader-utils": "0.2.17"
+ "loader-utils": "0.2.x"
}
},
"jade-loader": {
@@ -23334,7 +25160,7 @@
"resolved": "https://registry.npmjs.org/jade-loader/-/jade-loader-0.8.0.tgz",
"integrity": "sha1-0bCZcam/kKKymLCvWxrQMA0QnC4=",
"requires": {
- "loader-utils": "0.2.17"
+ "loader-utils": "~0.2.5"
}
},
"jade-react-loader": {
@@ -23342,8 +25168,8 @@
"resolved": "https://registry.npmjs.org/jade-react-loader/-/jade-react-loader-1.0.2.tgz",
"integrity": "sha1-MxgiARamZZzJxsMO7qqHLSMKioQ=",
"requires": {
- "loader-utils": "0.2.17",
- "react-jade": "2.5.0"
+ "loader-utils": "^0.2.9",
+ "react-jade": "^2.4.0"
}
},
"js-base64": {
@@ -23371,8 +25197,8 @@
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz",
"integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=",
"requires": {
- "argparse": "1.0.10",
- "esprima": "2.7.3"
+ "argparse": "^1.0.7",
+ "esprima": "^2.6.0"
},
"dependencies": {
"esprima": {
@@ -23392,7 +25218,7 @@
"resolved": "https://registry.npmjs.org/jsdelivr-cdn-data/-/jsdelivr-cdn-data-0.1.1.tgz",
"integrity": "sha1-pFDi3G7O57t7b2pylOUYCsvJwQo=",
"requires": {
- "semver": "2.2.1"
+ "semver": "~2.2.1"
},
"dependencies": {
"semver": {
@@ -23427,7 +25253,7 @@
"resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
"integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
"requires": {
- "jsonify": "0.0.0"
+ "jsonify": "~0.0.0"
}
},
"json-stringify-safe": {
@@ -23478,11 +25304,11 @@
"resolved": "https://registry.npmjs.org/jstransform/-/jstransform-11.0.3.tgz",
"integrity": "sha1-CaeJk+CuTU70SH9hVakfYZDLQiM=",
"requires": {
- "base62": "1.2.8",
- "commoner": "0.10.8",
- "esprima-fb": "15001.1.0-dev-harmony-fb",
- "object-assign": "2.1.1",
- "source-map": "0.4.4"
+ "base62": "^1.1.0",
+ "commoner": "^0.10.1",
+ "esprima-fb": "^15001.1.0-dev-harmony-fb",
+ "object-assign": "^2.0.0",
+ "source-map": "^0.4.2"
}
},
"jstransformer": {
@@ -23490,8 +25316,8 @@
"resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-0.0.2.tgz",
"integrity": "sha1-eq4pqQPRls+glz2IXT5HlH7Ndqs=",
"requires": {
- "is-promise": "2.1.0",
- "promise": "6.1.0"
+ "is-promise": "^2.0.0",
+ "promise": "^6.0.1"
},
"dependencies": {
"asap": {
@@ -23504,43 +25330,17 @@
"resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz",
"integrity": "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=",
"requires": {
- "asap": "1.0.0"
+ "asap": "~1.0.0"
}
}
}
},
- "jwt-decode": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-1.5.1.tgz",
- "integrity": "sha1-vajYcxubc57otKMaDQJcqUrpLTs=",
- "requires": {
- "Base64": "0.1.4"
- }
- },
- "keycode": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz",
- "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ="
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "1.1.6"
- }
- },
- "lazy-cache": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
- "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
- },
"lcid": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
"integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
"requires": {
- "invert-kv": "1.0.0"
+ "invert-kv": "^1.0.0"
}
},
"levn": {
@@ -23548,39 +25348,8 @@
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
"integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
"requires": {
- "prelude-ls": "1.1.2",
- "type-check": "0.3.2"
- }
- },
- "libphonenumber-js": {
- "version": "1.7.26",
- "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.7.26.tgz",
- "integrity": "sha512-23y9szw5sCrko0i4bO+jv6B3fFJkr0+bZ/5DLyY7TxBDJ04ACw+obdOdR3d2aOwbnOW+eevcgt8HqYgvjrfD/A==",
- "requires": {
- "minimist": "1.2.0",
- "xml2js": "0.4.22"
- },
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
- },
- "xml2js": {
- "version": "0.4.22",
- "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.22.tgz",
- "integrity": "sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw==",
- "requires": {
- "sax": "1.2.4",
- "util.promisify": "1.0.0",
- "xmlbuilder": "11.0.1"
- }
- },
- "xmlbuilder": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
- "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
- }
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
}
},
"load-json-file": {
@@ -23588,11 +25357,11 @@
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
"requires": {
- "graceful-fs": "4.1.11",
- "parse-json": "2.2.0",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1",
- "strip-bom": "2.0.0"
+ "graceful-fs": "^4.1.2",
+ "parse-json": "^2.2.0",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0",
+ "strip-bom": "^2.0.0"
}
},
"loader-utils": {
@@ -23600,10 +25369,10 @@
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
"integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=",
"requires": {
- "big.js": "3.2.0",
- "emojis-list": "2.1.0",
- "json5": "0.5.1",
- "object-assign": "4.1.1"
+ "big.js": "^3.1.3",
+ "emojis-list": "^2.0.0",
+ "json5": "^0.5.0",
+ "object-assign": "^4.0.1"
},
"dependencies": {
"object-assign": {
@@ -23628,8 +25397,8 @@
"resolved": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz",
"integrity": "sha1-XdLLVTctbnDg4jkvsjBNZjEJEHU=",
"requires": {
- "lodash.deburr": "3.2.0",
- "lodash.words": "3.2.0"
+ "lodash.deburr": "^3.0.0",
+ "lodash.words": "^3.0.0"
}
},
"lodash._getnative": {
@@ -23652,7 +25421,7 @@
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz",
"integrity": "sha1-kyyLh/ikN3iXxnGXUzKC+Xrqwpg=",
"requires": {
- "lodash._createcompounder": "3.0.0"
+ "lodash._createcompounder": "^3.0.0"
}
},
"lodash.clonedeep": {
@@ -23665,7 +25434,7 @@
"resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz",
"integrity": "sha1-baj1QzSjZqfPTEx2742Aqhs2XtU=",
"requires": {
- "lodash._root": "3.0.1"
+ "lodash._root": "^3.0.0"
}
},
"lodash.frompairs": {
@@ -23688,9 +25457,9 @@
"resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz",
"integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=",
"requires": {
- "lodash._getnative": "3.9.1",
- "lodash.isarguments": "3.1.0",
- "lodash.isarray": "3.0.4"
+ "lodash._getnative": "^3.0.0",
+ "lodash.isarguments": "^3.0.0",
+ "lodash.isarray": "^3.0.0"
}
},
"lodash.memoize": {
@@ -23698,16 +25467,6 @@
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
"integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4="
},
- "lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
- },
- "lodash.throttle": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
- "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ="
- },
"lodash.uniq": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
@@ -23718,25 +25477,15 @@
"resolved": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.2.0.tgz",
"integrity": "sha1-TiqGSbwIdFsXxpWxo86P7llmI7M=",
"requires": {
- "lodash._root": "3.0.1"
+ "lodash._root": "^3.0.0"
}
},
- "lolex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz",
- "integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE="
- },
- "longest": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
- "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
- },
"loose-envify": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
"integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
"requires": {
- "js-tokens": "3.0.2"
+ "js-tokens": "^3.0.0"
}
},
"loud-rejection": {
@@ -23744,21 +25493,8 @@
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
"integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
"requires": {
- "currently-unhandled": "0.4.1",
- "signal-exit": "3.0.2"
- }
- },
- "lower-case": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
- "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw="
- },
- "lower-case-first": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz",
- "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=",
- "requires": {
- "lower-case": "1.1.4"
+ "currently-unhandled": "^0.4.1",
+ "signal-exit": "^3.0.0"
}
},
"lru-cache": {
@@ -23766,8 +25502,8 @@
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
"integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
"requires": {
- "pseudomap": "1.0.2",
- "yallist": "2.1.2"
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
}
},
"map-obj": {
@@ -23775,46 +25511,6 @@
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
},
- "material-ui": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/material-ui/-/material-ui-0.20.2.tgz",
- "integrity": "sha512-VeqgQkdvtK193w+FFvXDEwlVxI4rWk83eWbpYLeOIHDPWr3rbB9B075JRnJt/8IsI2X8q5Aia5W3+7m4KkleDg==",
- "requires": {
- "babel-runtime": "6.26.0",
- "inline-style-prefixer": "3.0.8",
- "keycode": "2.2.0",
- "lodash.merge": "4.6.2",
- "lodash.throttle": "4.1.1",
- "prop-types": "15.6.2",
- "react-event-listener": "0.6.6",
- "react-transition-group": "1.2.1",
- "recompose": "0.26.0",
- "simple-assign": "0.1.0",
- "warning": "3.0.0"
- },
- "dependencies": {
- "react-transition-group": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-1.2.1.tgz",
- "integrity": "sha512-CWaL3laCmgAFdxdKbhhps+c0HRGF4c+hdM4H23+FI1QBNUyx/AMeIJGWorehPNSaKnQNOAxL7PQmqMu78CDj3Q==",
- "requires": {
- "chain-function": "1.0.1",
- "dom-helpers": "3.4.0",
- "loose-envify": "1.3.1",
- "prop-types": "15.6.2",
- "warning": "3.0.0"
- }
- },
- "warning": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
- "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
- "requires": {
- "loose-envify": "1.3.1"
- }
- }
- }
- },
"math-expression-evaluator": {
"version": "1.2.17",
"resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz",
@@ -23825,16 +25521,6 @@
"resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz",
"integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w="
},
- "md5": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz",
- "integrity": "sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=",
- "requires": {
- "charenc": "0.0.2",
- "crypt": "0.0.2",
- "is-buffer": "1.1.6"
- }
- },
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@@ -23845,8 +25531,8 @@
"resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.3.0.tgz",
"integrity": "sha1-e8xrYp46Q+hx1+Kaymrop/FcuyA=",
"requires": {
- "errno": "0.1.7",
- "readable-stream": "2.3.6"
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
}
},
"meow": {
@@ -23854,16 +25540,16 @@
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
"integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
"requires": {
- "camelcase-keys": "2.1.0",
- "decamelize": "1.2.0",
- "loud-rejection": "1.6.0",
- "map-obj": "1.0.1",
- "minimist": "1.2.0",
- "normalize-package-data": "2.4.0",
- "object-assign": "4.1.1",
- "read-pkg-up": "1.0.1",
- "redent": "1.0.0",
- "trim-newlines": "1.0.0"
+ "camelcase-keys": "^2.0.0",
+ "decamelize": "^1.1.2",
+ "loud-rejection": "^1.0.0",
+ "map-obj": "^1.0.1",
+ "minimist": "^1.1.3",
+ "normalize-package-data": "^2.3.4",
+ "object-assign": "^4.0.1",
+ "read-pkg-up": "^1.0.1",
+ "redent": "^1.0.0",
+ "trim-newlines": "^1.0.0"
},
"dependencies": {
"minimist": {
@@ -23893,19 +25579,19 @@
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
"integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
"requires": {
- "arr-diff": "2.0.0",
- "array-unique": "0.2.1",
- "braces": "1.8.5",
- "expand-brackets": "0.1.5",
- "extglob": "0.3.2",
- "filename-regex": "2.0.1",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1",
- "kind-of": "3.2.2",
- "normalize-path": "2.1.1",
- "object.omit": "2.0.1",
- "parse-glob": "3.0.4",
- "regex-cache": "0.4.4"
+ "arr-diff": "^2.0.0",
+ "array-unique": "^0.2.1",
+ "braces": "^1.8.2",
+ "expand-brackets": "^0.1.4",
+ "extglob": "^0.3.1",
+ "filename-regex": "^2.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.1",
+ "kind-of": "^3.0.2",
+ "normalize-path": "^2.0.1",
+ "object.omit": "^2.0.0",
+ "parse-glob": "^3.0.4",
+ "regex-cache": "^0.4.2"
}
},
"mime": {
@@ -23923,7 +25609,7 @@
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
"integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
"requires": {
- "mime-db": "1.33.0"
+ "mime-db": "~1.33.0"
}
},
"minimatch": {
@@ -23931,7 +25617,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
- "brace-expansion": "1.1.11"
+ "brace-expansion": "^1.1.7"
}
},
"minimist": {
@@ -23972,14 +25658,6 @@
"resolved": "https://registry.npmjs.org/natives/-/natives-1.1.4.tgz",
"integrity": "sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg=="
},
- "ncname": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz",
- "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=",
- "requires": {
- "xml-char-classes": "1.0.0"
- }
- },
"negotiator": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
@@ -24000,10 +25678,10 @@
"resolved": "https://registry.npmjs.org/ngcomponent/-/ngcomponent-4.1.0.tgz",
"integrity": "sha512-cGL3iVoqMWTpCfaIwgRKhdaGqiy2Z+CCG0cVfjlBvdqE8saj8xap9B4OTf+qwObxLVZmDTJPDgx3bN6Q/lZ7BQ==",
"requires": {
- "@types/angular": "1.6.50",
- "@types/lodash": "4.14.116",
- "angular": "1.7.2",
- "lodash": "4.17.10"
+ "@types/angular": "^1.6.39",
+ "@types/lodash": "^4.14.85",
+ "angular": ">=1.5.0",
+ "lodash": "^4.17.4"
}
},
"ngreact": {
@@ -24011,9 +25689,9 @@
"resolved": "https://registry.npmjs.org/ngreact/-/ngreact-0.2.0.tgz",
"integrity": "sha1-PaQ6SIFYPFTMUDXim7SNnhFnVYc=",
"requires": {
- "angular": "1.7.2",
- "react": "15.6.2",
- "react-dom": "15.6.2"
+ "angular": "<2.0.0",
+ "react": ">=0.14.0",
+ "react-dom": ">=0.14.0"
}
},
"no-case": {
@@ -24021,15 +25699,7 @@
"resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
"integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
"requires": {
- "lower-case": "1.1.4"
- }
- },
- "node-bourbon": {
- "version": "4.2.8",
- "resolved": "https://registry.npmjs.org/node-bourbon/-/node-bourbon-4.2.8.tgz",
- "integrity": "sha1-5ETx8JQ0q3ZQ6jGMKOLhA9P5Qs0=",
- "requires": {
- "bourbon": "4.3.4"
+ "lower-case": "^1.1.1"
}
},
"node-fetch": {
@@ -24037,8 +25707,8 @@
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
"integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
"requires": {
- "encoding": "0.1.12",
- "is-stream": "1.1.0"
+ "encoding": "^0.1.11",
+ "is-stream": "^1.0.1"
}
},
"node-gyp": {
@@ -24046,18 +25716,18 @@
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.7.0.tgz",
"integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==",
"requires": {
- "fstream": "1.0.11",
- "glob": "7.1.2",
- "graceful-fs": "4.1.11",
- "mkdirp": "0.5.1",
- "nopt": "3.0.6",
- "npmlog": "4.1.2",
- "osenv": "0.1.5",
- "request": "2.81.0",
- "rimraf": "2.6.2",
- "semver": "5.3.0",
- "tar": "2.2.1",
- "which": "1.3.1"
+ "fstream": "^1.0.0",
+ "glob": "^7.0.3",
+ "graceful-fs": "^4.1.2",
+ "mkdirp": "^0.5.0",
+ "nopt": "2 || 3",
+ "npmlog": "0 || 1 || 2 || 3 || 4",
+ "osenv": "0",
+ "request": ">=2.9.0 <2.82.0",
+ "rimraf": "2",
+ "semver": "~5.3.0",
+ "tar": "^2.0.0",
+ "which": "1"
},
"dependencies": {
"form-data": {
@@ -24065,9 +25735,9 @@
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz",
"integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=",
"requires": {
- "asynckit": "0.4.0",
- "combined-stream": "1.0.6",
- "mime-types": "2.1.18"
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.5",
+ "mime-types": "^2.1.12"
}
},
"glob": {
@@ -24075,12 +25745,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
"qs": {
@@ -24093,28 +25763,28 @@
"resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz",
"integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=",
"requires": {
- "aws-sign2": "0.6.0",
- "aws4": "1.7.0",
- "caseless": "0.12.0",
- "combined-stream": "1.0.6",
- "extend": "3.0.1",
- "forever-agent": "0.6.1",
- "form-data": "2.1.4",
- "har-validator": "4.2.1",
- "hawk": "3.1.3",
- "http-signature": "1.1.1",
- "is-typedarray": "1.0.0",
- "isstream": "0.1.2",
- "json-stringify-safe": "5.0.1",
- "mime-types": "2.1.18",
- "oauth-sign": "0.8.2",
- "performance-now": "0.2.0",
- "qs": "6.4.0",
- "safe-buffer": "5.1.2",
- "stringstream": "0.0.6",
- "tough-cookie": "2.3.4",
- "tunnel-agent": "0.6.0",
- "uuid": "3.3.2"
+ "aws-sign2": "~0.6.0",
+ "aws4": "^1.2.1",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.0",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.1.1",
+ "har-validator": "~4.2.1",
+ "hawk": "~3.1.3",
+ "http-signature": "~1.1.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.7",
+ "oauth-sign": "~0.8.1",
+ "performance-now": "^0.2.0",
+ "qs": "~6.4.0",
+ "safe-buffer": "^5.0.1",
+ "stringstream": "~0.0.4",
+ "tough-cookie": "~2.3.0",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.0.0"
}
},
"semver": {
@@ -24129,28 +25799,28 @@
"resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-0.7.0.tgz",
"integrity": "sha1-PicsCBnjCJNeJmdECNevDhSRuDs=",
"requires": {
- "assert": "1.4.1",
- "browserify-zlib": "0.1.4",
- "buffer": "4.9.1",
- "console-browserify": "1.1.0",
- "constants-browserify": "1.0.0",
+ "assert": "^1.1.1",
+ "browserify-zlib": "^0.1.4",
+ "buffer": "^4.9.0",
+ "console-browserify": "^1.1.0",
+ "constants-browserify": "^1.0.0",
"crypto-browserify": "3.3.0",
- "domain-browser": "1.2.0",
- "events": "1.1.1",
+ "domain-browser": "^1.1.1",
+ "events": "^1.0.0",
"https-browserify": "0.0.1",
- "os-browserify": "0.2.1",
+ "os-browserify": "^0.2.0",
"path-browserify": "0.0.0",
- "process": "0.11.10",
- "punycode": "1.4.1",
- "querystring-es3": "0.2.1",
- "readable-stream": "2.3.6",
- "stream-browserify": "2.0.1",
- "stream-http": "2.8.3",
- "string_decoder": "0.10.31",
- "timers-browserify": "2.0.10",
+ "process": "^0.11.0",
+ "punycode": "^1.2.4",
+ "querystring-es3": "^0.2.0",
+ "readable-stream": "^2.0.5",
+ "stream-browserify": "^2.0.1",
+ "stream-http": "^2.3.1",
+ "string_decoder": "^0.10.25",
+ "timers-browserify": "^2.0.2",
"tty-browserify": "0.0.0",
- "url": "0.11.0",
- "util": "0.10.4",
+ "url": "^0.11.0",
+ "util": "^0.10.3",
"vm-browserify": "0.0.4"
},
"dependencies": {
@@ -24169,36 +25839,27 @@
}
}
},
- "node-neat": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/node-neat/-/node-neat-1.7.2.tgz",
- "integrity": "sha1-OEcpELgV4mG4sbmbpRmZRGWhXCE=",
- "requires": {
- "bourbon-neat": "1.7.2",
- "node-bourbon": "4.2.8"
- }
- },
"node-sass": {
"version": "3.13.1",
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-3.13.1.tgz",
"integrity": "sha1-ckD7v/I5YwS0IjUn7TAgWJwAT8I=",
"requires": {
- "async-foreach": "0.1.3",
- "chalk": "1.1.3",
- "cross-spawn": "3.0.1",
- "gaze": "1.1.3",
- "get-stdin": "4.0.1",
- "glob": "7.1.2",
- "in-publish": "2.0.0",
- "lodash.assign": "4.2.0",
- "lodash.clonedeep": "4.5.0",
- "meow": "3.7.0",
- "mkdirp": "0.5.1",
- "nan": "2.10.0",
- "node-gyp": "3.7.0",
- "npmlog": "4.1.2",
- "request": "2.87.0",
- "sass-graph": "2.2.4"
+ "async-foreach": "^0.1.3",
+ "chalk": "^1.1.1",
+ "cross-spawn": "^3.0.0",
+ "gaze": "^1.0.0",
+ "get-stdin": "^4.0.1",
+ "glob": "^7.0.3",
+ "in-publish": "^2.0.0",
+ "lodash.assign": "^4.2.0",
+ "lodash.clonedeep": "^4.3.2",
+ "meow": "^3.7.0",
+ "mkdirp": "^0.5.1",
+ "nan": "^2.3.2",
+ "node-gyp": "^3.3.1",
+ "npmlog": "^4.0.0",
+ "request": "^2.61.0",
+ "sass-graph": "^2.1.1"
},
"dependencies": {
"glob": {
@@ -24206,12 +25867,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
}
}
@@ -24221,8 +25882,8 @@
"resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz",
"integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=",
"requires": {
- "chalk": "0.4.0",
- "underscore": "1.6.0"
+ "chalk": "~0.4.0",
+ "underscore": "~1.6.0"
},
"dependencies": {
"ansi-styles": {
@@ -24235,9 +25896,9 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
"integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=",
"requires": {
- "ansi-styles": "1.0.0",
- "has-color": "0.1.7",
- "strip-ansi": "0.1.1"
+ "ansi-styles": "~1.0.0",
+ "has-color": "~0.1.0",
+ "strip-ansi": "~0.1.0"
}
},
"strip-ansi": {
@@ -24252,7 +25913,7 @@
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"requires": {
- "abbrev": "1.1.1"
+ "abbrev": "1"
}
},
"normalize-package-data": {
@@ -24260,10 +25921,10 @@
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
"integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
"requires": {
- "hosted-git-info": "2.6.1",
- "is-builtin-module": "1.0.0",
- "semver": "5.5.0",
- "validate-npm-package-license": "3.0.3"
+ "hosted-git-info": "^2.1.4",
+ "is-builtin-module": "^1.0.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
}
},
"normalize-path": {
@@ -24271,7 +25932,7 @@
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
"integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=",
"requires": {
- "remove-trailing-separator": "1.1.0"
+ "remove-trailing-separator": "^1.0.1"
}
},
"normalize-range": {
@@ -24284,10 +25945,10 @@
"resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz",
"integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=",
"requires": {
- "object-assign": "4.1.1",
- "prepend-http": "1.0.4",
- "query-string": "4.3.4",
- "sort-keys": "1.1.2"
+ "object-assign": "^4.0.1",
+ "prepend-http": "^1.0.0",
+ "query-string": "^4.1.0",
+ "sort-keys": "^1.0.0"
},
"dependencies": {
"object-assign": {
@@ -24297,30 +25958,15 @@
}
}
},
- "normalizr": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/normalizr/-/normalizr-1.4.1.tgz",
- "integrity": "sha1-qjh8JGXxNhHK86rkK6+Y9wXoos4=",
- "requires": {
- "lodash": "3.10.1"
- },
- "dependencies": {
- "lodash": {
- "version": "3.10.1",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
- "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y="
- }
- }
- },
"npmlog": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"requires": {
- "are-we-there-yet": "1.1.5",
- "console-control-strings": "1.1.0",
- "gauge": "2.7.4",
- "set-blocking": "2.0.0"
+ "are-we-there-yet": "~1.1.2",
+ "console-control-strings": "~1.1.0",
+ "gauge": "~2.7.3",
+ "set-blocking": "~2.0.0"
}
},
"nth-check": {
@@ -24328,7 +25974,7 @@
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz",
"integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=",
"requires": {
- "boolbase": "1.0.0"
+ "boolbase": "~1.0.0"
}
},
"num2fraction": {
@@ -24356,32 +26002,13 @@
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-0.4.0.tgz",
"integrity": "sha1-9RV8EWwUVbJDsG7pdwM5LFrYn+w="
},
- "object-is": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz",
- "integrity": "sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY="
- },
- "object-keys": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz",
- "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag=="
- },
- "object.getownpropertydescriptors": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
- "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
- "requires": {
- "define-properties": "1.1.3",
- "es-abstract": "1.16.0"
- }
- },
"object.omit": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz",
"integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=",
"requires": {
- "for-own": "0.1.5",
- "is-extendable": "0.1.1"
+ "for-own": "^0.1.4",
+ "is-extendable": "^0.1.1"
}
},
"on-finished": {
@@ -24402,7 +26029,7 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"requires": {
- "wrappy": "1.0.2"
+ "wrappy": "1"
}
},
"onetime": {
@@ -24420,7 +26047,7 @@
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz",
"integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=",
"requires": {
- "wordwrap": "0.0.3"
+ "wordwrap": "~0.0.2"
}
},
"optionator": {
@@ -24428,12 +26055,12 @@
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
"integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
"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",
- "wordwrap": "1.0.0"
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.4",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "wordwrap": "~1.0.0"
},
"dependencies": {
"wordwrap": {
@@ -24448,7 +26075,7 @@
"resolved": "https://registry.npmjs.org/original/-/original-1.0.1.tgz",
"integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==",
"requires": {
- "url-parse": "1.4.1"
+ "url-parse": "~1.4.0"
}
},
"os-browserify": {
@@ -24466,7 +26093,7 @@
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
"requires": {
- "lcid": "1.0.0"
+ "lcid": "^1.0.0"
}
},
"os-tmpdir": {
@@ -24479,8 +26106,8 @@
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
"integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"requires": {
- "os-homedir": "1.0.2",
- "os-tmpdir": "1.0.2"
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
}
},
"pako": {
@@ -24493,7 +26120,7 @@
"resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
"integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=",
"requires": {
- "no-case": "2.3.2"
+ "no-case": "^2.2.0"
}
},
"parse-glob": {
@@ -24501,10 +26128,10 @@
"resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz",
"integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=",
"requires": {
- "glob-base": "0.3.0",
- "is-dotfile": "1.0.3",
- "is-extglob": "1.0.0",
- "is-glob": "2.0.1"
+ "glob-base": "^0.3.0",
+ "is-dotfile": "^1.0.0",
+ "is-extglob": "^1.0.0",
+ "is-glob": "^2.0.0"
}
},
"parse-json": {
@@ -24512,7 +26139,7 @@
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
"requires": {
- "error-ex": "1.3.2"
+ "error-ex": "^1.2.0"
}
},
"parseurl": {
@@ -24520,45 +26147,17 @@
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
"integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
},
- "pascal-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-1.1.2.tgz",
- "integrity": "sha1-Pl1kogBDgwp8STRMLXS0G+DJyZs=",
- "requires": {
- "camel-case": "1.2.2",
- "upper-case-first": "1.1.2"
- },
- "dependencies": {
- "camel-case": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-1.2.2.tgz",
- "integrity": "sha1-Gsp8TRlTWaLOmVV5NDPG5VQlEfI=",
- "requires": {
- "sentence-case": "1.1.3",
- "upper-case": "1.1.3"
- }
- }
- }
- },
"path-browserify": {
"version": "0.0.0",
"resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz",
"integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo="
},
- "path-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/path-case/-/path-case-1.1.2.tgz",
- "integrity": "sha1-UM5roNO+090LXCqcRVNpdDRAlRQ=",
- "requires": {
- "sentence-case": "1.1.3"
- }
- },
"path-exists": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
"integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
"requires": {
- "pinkie-promise": "2.0.1"
+ "pinkie-promise": "^2.0.0"
}
},
"path-is-absolute": {
@@ -24586,9 +26185,9 @@
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
"requires": {
- "graceful-fs": "4.1.11",
- "pify": "2.3.0",
- "pinkie-promise": "2.0.1"
+ "graceful-fs": "^4.1.2",
+ "pify": "^2.0.0",
+ "pinkie-promise": "^2.0.0"
}
},
"pbkdf2-compat": {
@@ -24621,7 +26220,7 @@
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
"requires": {
- "pinkie": "2.0.4"
+ "pinkie": "^2.0.0"
}
},
"pkg-dir": {
@@ -24629,7 +26228,7 @@
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz",
"integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=",
"requires": {
- "find-up": "1.1.2"
+ "find-up": "^1.0.0"
}
},
"pluralize": {
@@ -24637,20 +26236,15 @@
"resolved": "https://registry.npmjs.org/pluralize/-/pluralize-1.2.1.tgz",
"integrity": "sha1-0aIUg/0iu0HlihL6NCGCMUCJfEU="
},
- "popper.js": {
- "version": "1.16.0",
- "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.0.tgz",
- "integrity": "sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw=="
- },
"postcss": {
"version": "5.2.18",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz",
"integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==",
"requires": {
- "chalk": "1.1.3",
- "js-base64": "2.4.5",
- "source-map": "0.5.7",
- "supports-color": "3.2.3"
+ "chalk": "^1.1.3",
+ "js-base64": "^2.1.9",
+ "source-map": "^0.5.6",
+ "supports-color": "^3.2.3"
},
"dependencies": {
"source-map": {
@@ -24663,7 +26257,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
"integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
"requires": {
- "has-flag": "1.0.0"
+ "has-flag": "^1.0.0"
}
}
}
@@ -24673,9 +26267,9 @@
"resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz",
"integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=",
"requires": {
- "postcss": "5.2.18",
- "postcss-message-helpers": "2.0.0",
- "reduce-css-calc": "1.3.0"
+ "postcss": "^5.0.2",
+ "postcss-message-helpers": "^2.0.0",
+ "reduce-css-calc": "^1.2.6"
}
},
"postcss-colormin": {
@@ -24683,9 +26277,9 @@
"resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz",
"integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=",
"requires": {
- "colormin": "1.1.2",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
+ "colormin": "^1.0.5",
+ "postcss": "^5.0.13",
+ "postcss-value-parser": "^3.2.3"
}
},
"postcss-convert-values": {
@@ -24693,8 +26287,8 @@
"resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz",
"integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=",
"requires": {
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
+ "postcss": "^5.0.11",
+ "postcss-value-parser": "^3.1.2"
}
},
"postcss-discard-comments": {
@@ -24702,7 +26296,7 @@
"resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz",
"integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=",
"requires": {
- "postcss": "5.2.18"
+ "postcss": "^5.0.14"
}
},
"postcss-discard-duplicates": {
@@ -24710,7 +26304,7 @@
"resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz",
"integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=",
"requires": {
- "postcss": "5.2.18"
+ "postcss": "^5.0.4"
}
},
"postcss-discard-empty": {
@@ -24718,7 +26312,7 @@
"resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz",
"integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=",
"requires": {
- "postcss": "5.2.18"
+ "postcss": "^5.0.14"
}
},
"postcss-discard-overridden": {
@@ -24726,7 +26320,7 @@
"resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz",
"integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=",
"requires": {
- "postcss": "5.2.18"
+ "postcss": "^5.0.16"
}
},
"postcss-discard-unused": {
@@ -24734,8 +26328,8 @@
"resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz",
"integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=",
"requires": {
- "postcss": "5.2.18",
- "uniqs": "2.0.0"
+ "postcss": "^5.0.14",
+ "uniqs": "^2.0.0"
}
},
"postcss-filter-plugins": {
@@ -24743,7 +26337,7 @@
"resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz",
"integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==",
"requires": {
- "postcss": "5.2.18"
+ "postcss": "^5.0.4"
}
},
"postcss-merge-idents": {
@@ -24751,9 +26345,9 @@
"resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz",
"integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=",
"requires": {
- "has": "1.0.3",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
+ "has": "^1.0.1",
+ "postcss": "^5.0.10",
+ "postcss-value-parser": "^3.1.1"
}
},
"postcss-merge-longhand": {
@@ -24761,7 +26355,7 @@
"resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz",
"integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=",
"requires": {
- "postcss": "5.2.18"
+ "postcss": "^5.0.4"
}
},
"postcss-merge-rules": {
@@ -24769,11 +26363,11 @@
"resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz",
"integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=",
"requires": {
- "browserslist": "1.7.7",
- "caniuse-api": "1.6.1",
- "postcss": "5.2.18",
- "postcss-selector-parser": "2.2.3",
- "vendors": "1.0.2"
+ "browserslist": "^1.5.2",
+ "caniuse-api": "^1.5.2",
+ "postcss": "^5.0.4",
+ "postcss-selector-parser": "^2.2.2",
+ "vendors": "^1.0.0"
}
},
"postcss-message-helpers": {
@@ -24786,9 +26380,9 @@
"resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz",
"integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=",
"requires": {
- "object-assign": "4.1.1",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
+ "object-assign": "^4.0.1",
+ "postcss": "^5.0.4",
+ "postcss-value-parser": "^3.0.2"
},
"dependencies": {
"object-assign": {
@@ -24803,8 +26397,8 @@
"resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz",
"integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=",
"requires": {
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
+ "postcss": "^5.0.12",
+ "postcss-value-parser": "^3.3.0"
}
},
"postcss-minify-params": {
@@ -24812,10 +26406,10 @@
"resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz",
"integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=",
"requires": {
- "alphanum-sort": "1.0.2",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0",
- "uniqs": "2.0.0"
+ "alphanum-sort": "^1.0.1",
+ "postcss": "^5.0.2",
+ "postcss-value-parser": "^3.0.2",
+ "uniqs": "^2.0.0"
}
},
"postcss-minify-selectors": {
@@ -24823,10 +26417,10 @@
"resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz",
"integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=",
"requires": {
- "alphanum-sort": "1.0.2",
- "has": "1.0.3",
- "postcss": "5.2.18",
- "postcss-selector-parser": "2.2.3"
+ "alphanum-sort": "^1.0.2",
+ "has": "^1.0.1",
+ "postcss": "^5.0.14",
+ "postcss-selector-parser": "^2.0.0"
}
},
"postcss-modules-extract-imports": {
@@ -24834,7 +26428,7 @@
"resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz",
"integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=",
"requires": {
- "postcss": "6.0.23"
+ "postcss": "^6.0.1"
},
"dependencies": {
"ansi-styles": {
@@ -24842,7 +26436,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
- "color-convert": "1.9.2"
+ "color-convert": "^1.9.0"
}
},
"chalk": {
@@ -24850,9 +26444,9 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"requires": {
- "ansi-styles": "3.2.1",
- "escape-string-regexp": "1.0.5",
- "supports-color": "5.4.0"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
},
"has-flag": {
@@ -24865,9 +26459,9 @@
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
"integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
"requires": {
- "chalk": "2.4.1",
- "source-map": "0.6.1",
- "supports-color": "5.4.0"
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
}
},
"source-map": {
@@ -24880,7 +26474,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
"requires": {
- "has-flag": "3.0.0"
+ "has-flag": "^3.0.0"
}
}
}
@@ -24890,8 +26484,8 @@
"resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz",
"integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=",
"requires": {
- "css-selector-tokenizer": "0.7.0",
- "postcss": "6.0.23"
+ "css-selector-tokenizer": "^0.7.0",
+ "postcss": "^6.0.1"
},
"dependencies": {
"ansi-styles": {
@@ -24899,7 +26493,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
- "color-convert": "1.9.2"
+ "color-convert": "^1.9.0"
}
},
"chalk": {
@@ -24907,9 +26501,9 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"requires": {
- "ansi-styles": "3.2.1",
- "escape-string-regexp": "1.0.5",
- "supports-color": "5.4.0"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
},
"css-selector-tokenizer": {
@@ -24917,9 +26511,9 @@
"resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
"integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
"requires": {
- "cssesc": "0.1.0",
- "fastparse": "1.1.1",
- "regexpu-core": "1.0.0"
+ "cssesc": "^0.1.0",
+ "fastparse": "^1.1.1",
+ "regexpu-core": "^1.0.0"
}
},
"has-flag": {
@@ -24932,9 +26526,9 @@
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
"integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
"requires": {
- "chalk": "2.4.1",
- "source-map": "0.6.1",
- "supports-color": "5.4.0"
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
}
},
"regexpu-core": {
@@ -24942,9 +26536,9 @@
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
"integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
"requires": {
- "regenerate": "1.4.0",
- "regjsgen": "0.2.0",
- "regjsparser": "0.1.5"
+ "regenerate": "^1.2.1",
+ "regjsgen": "^0.2.0",
+ "regjsparser": "^0.1.4"
}
},
"source-map": {
@@ -24957,7 +26551,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
"requires": {
- "has-flag": "3.0.0"
+ "has-flag": "^3.0.0"
}
}
}
@@ -24967,8 +26561,8 @@
"resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz",
"integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=",
"requires": {
- "css-selector-tokenizer": "0.7.0",
- "postcss": "6.0.23"
+ "css-selector-tokenizer": "^0.7.0",
+ "postcss": "^6.0.1"
},
"dependencies": {
"ansi-styles": {
@@ -24976,7 +26570,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
- "color-convert": "1.9.2"
+ "color-convert": "^1.9.0"
}
},
"chalk": {
@@ -24984,9 +26578,9 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"requires": {
- "ansi-styles": "3.2.1",
- "escape-string-regexp": "1.0.5",
- "supports-color": "5.4.0"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
},
"css-selector-tokenizer": {
@@ -24994,9 +26588,9 @@
"resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz",
"integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=",
"requires": {
- "cssesc": "0.1.0",
- "fastparse": "1.1.1",
- "regexpu-core": "1.0.0"
+ "cssesc": "^0.1.0",
+ "fastparse": "^1.1.1",
+ "regexpu-core": "^1.0.0"
}
},
"has-flag": {
@@ -25009,9 +26603,9 @@
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
"integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
"requires": {
- "chalk": "2.4.1",
- "source-map": "0.6.1",
- "supports-color": "5.4.0"
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
}
},
"regexpu-core": {
@@ -25019,9 +26613,9 @@
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz",
"integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=",
"requires": {
- "regenerate": "1.4.0",
- "regjsgen": "0.2.0",
- "regjsparser": "0.1.5"
+ "regenerate": "^1.2.1",
+ "regjsgen": "^0.2.0",
+ "regjsparser": "^0.1.4"
}
},
"source-map": {
@@ -25034,7 +26628,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
"requires": {
- "has-flag": "3.0.0"
+ "has-flag": "^3.0.0"
}
}
}
@@ -25044,8 +26638,8 @@
"resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz",
"integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=",
"requires": {
- "icss-replace-symbols": "1.1.0",
- "postcss": "6.0.23"
+ "icss-replace-symbols": "^1.1.0",
+ "postcss": "^6.0.1"
},
"dependencies": {
"ansi-styles": {
@@ -25053,7 +26647,7 @@
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
- "color-convert": "1.9.2"
+ "color-convert": "^1.9.0"
}
},
"chalk": {
@@ -25061,9 +26655,9 @@
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
"integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
"requires": {
- "ansi-styles": "3.2.1",
- "escape-string-regexp": "1.0.5",
- "supports-color": "5.4.0"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
}
},
"has-flag": {
@@ -25076,9 +26670,9 @@
"resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz",
"integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==",
"requires": {
- "chalk": "2.4.1",
- "source-map": "0.6.1",
- "supports-color": "5.4.0"
+ "chalk": "^2.4.1",
+ "source-map": "^0.6.1",
+ "supports-color": "^5.4.0"
}
},
"source-map": {
@@ -25091,7 +26685,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
"integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
"requires": {
- "has-flag": "3.0.0"
+ "has-flag": "^3.0.0"
}
}
}
@@ -25101,7 +26695,7 @@
"resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz",
"integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=",
"requires": {
- "postcss": "5.2.18"
+ "postcss": "^5.0.5"
}
},
"postcss-normalize-url": {
@@ -25109,10 +26703,10 @@
"resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz",
"integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=",
"requires": {
- "is-absolute-url": "2.1.0",
- "normalize-url": "1.9.1",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
+ "is-absolute-url": "^2.0.0",
+ "normalize-url": "^1.4.0",
+ "postcss": "^5.0.14",
+ "postcss-value-parser": "^3.2.3"
}
},
"postcss-ordered-values": {
@@ -25120,8 +26714,8 @@
"resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz",
"integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=",
"requires": {
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
+ "postcss": "^5.0.4",
+ "postcss-value-parser": "^3.0.1"
}
},
"postcss-reduce-idents": {
@@ -25129,8 +26723,8 @@
"resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz",
"integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=",
"requires": {
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
+ "postcss": "^5.0.4",
+ "postcss-value-parser": "^3.0.2"
}
},
"postcss-reduce-initial": {
@@ -25138,7 +26732,7 @@
"resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz",
"integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=",
"requires": {
- "postcss": "5.2.18"
+ "postcss": "^5.0.4"
}
},
"postcss-reduce-transforms": {
@@ -25146,9 +26740,9 @@
"resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz",
"integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=",
"requires": {
- "has": "1.0.3",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0"
+ "has": "^1.0.1",
+ "postcss": "^5.0.8",
+ "postcss-value-parser": "^3.0.1"
}
},
"postcss-selector-parser": {
@@ -25156,9 +26750,9 @@
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz",
"integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=",
"requires": {
- "flatten": "1.0.2",
- "indexes-of": "1.0.1",
- "uniq": "1.0.1"
+ "flatten": "^1.0.2",
+ "indexes-of": "^1.0.1",
+ "uniq": "^1.0.1"
}
},
"postcss-svgo": {
@@ -25166,10 +26760,10 @@
"resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz",
"integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=",
"requires": {
- "is-svg": "2.1.0",
- "postcss": "5.2.18",
- "postcss-value-parser": "3.3.0",
- "svgo": "0.7.2"
+ "is-svg": "^2.0.0",
+ "postcss": "^5.0.14",
+ "postcss-value-parser": "^3.2.3",
+ "svgo": "^0.7.0"
}
},
"postcss-unique-selectors": {
@@ -25177,9 +26771,9 @@
"resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz",
"integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=",
"requires": {
- "alphanum-sort": "1.0.2",
- "postcss": "5.2.18",
- "uniqs": "2.0.0"
+ "alphanum-sort": "^1.0.1",
+ "postcss": "^5.0.4",
+ "uniqs": "^2.0.0"
}
},
"postcss-value-parser": {
@@ -25192,9 +26786,9 @@
"resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz",
"integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=",
"requires": {
- "has": "1.0.3",
- "postcss": "5.2.18",
- "uniqs": "2.0.0"
+ "has": "^1.0.1",
+ "postcss": "^5.0.4",
+ "uniqs": "^2.0.0"
}
},
"prelude-ls": {
@@ -25217,8 +26811,8 @@
"resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz",
"integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=",
"requires": {
- "renderkid": "2.0.1",
- "utila": "0.4.0"
+ "renderkid": "^2.0.1",
+ "utila": "~0.4"
}
},
"private": {
@@ -25246,7 +26840,7 @@
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
"requires": {
- "asap": "2.0.6"
+ "asap": "~2.0.3"
}
},
"prop-types": {
@@ -25254,8 +26848,8 @@
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz",
"integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==",
"requires": {
- "loose-envify": "1.3.1",
- "object-assign": "4.1.1"
+ "loose-envify": "^1.3.1",
+ "object-assign": "^4.1.1"
},
"dependencies": {
"object-assign": {
@@ -25270,7 +26864,7 @@
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz",
"integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==",
"requires": {
- "forwarded": "0.1.2",
+ "forwarded": "~0.1.2",
"ipaddr.js": "1.6.0"
}
},
@@ -25304,8 +26898,8 @@
"resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz",
"integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=",
"requires": {
- "object-assign": "4.1.1",
- "strict-uri-encode": "1.1.0"
+ "object-assign": "^4.1.0",
+ "strict-uri-encode": "^1.0.0"
},
"dependencies": {
"object-assign": {
@@ -25336,7 +26930,7 @@
"integrity": "sha1-zeKelMQJsW4Z3HCYuJtmWPlyHTs=",
"requires": {
"minimist": "0.0.8",
- "through2": "0.4.2"
+ "through2": "~0.4.1"
}
},
"randomatic": {
@@ -25344,9 +26938,9 @@
"resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz",
"integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==",
"requires": {
- "is-number": "4.0.0",
- "kind-of": "6.0.2",
- "math-random": "1.0.1"
+ "is-number": "^4.0.0",
+ "kind-of": "^6.0.0",
+ "math-random": "^1.0.1"
},
"dependencies": {
"is-number": {
@@ -25390,7 +26984,7 @@
"depd": "1.1.1",
"inherits": "2.0.3",
"setprototypeof": "1.0.3",
- "statuses": "1.4.0"
+ "statuses": ">= 1.3.1 < 2"
}
},
"iconv-lite": {
@@ -25410,10 +27004,10 @@
"resolved": "https://registry.npmjs.org/rc-align/-/rc-align-2.4.3.tgz",
"integrity": "sha512-h5KgyB5IXYR7iKpYFcMr54cuQ2eozPCZ11kbXPG5+6CWvmyJ+c0R/yjndVndiNk2G3MKcTMbJNdDv5DIckLAxQ==",
"requires": {
- "babel-runtime": "6.26.0",
- "dom-align": "1.8.0",
- "prop-types": "15.6.2",
- "rc-util": "4.5.1"
+ "babel-runtime": "^6.26.0",
+ "dom-align": "^1.7.0",
+ "prop-types": "^15.5.8",
+ "rc-util": "^4.0.4"
}
},
"rc-animate": {
@@ -25421,9 +27015,9 @@
"resolved": "https://registry.npmjs.org/rc-animate/-/rc-animate-2.4.4.tgz",
"integrity": "sha512-DjJLTUQj7XKKcuS8cczN0uOLfuSmgrVXFGieP1SZc87xUUTFGh8B/KjNmEtlfvxkSrSuVfb2rrEPER4SqKUtEA==",
"requires": {
- "babel-runtime": "6.26.0",
- "css-animation": "1.4.1",
- "prop-types": "15.6.2"
+ "babel-runtime": "6.x",
+ "css-animation": "^1.3.2",
+ "prop-types": "15.x"
}
},
"rc-slider": {
@@ -25431,13 +27025,13 @@
"resolved": "https://registry.npmjs.org/rc-slider/-/rc-slider-8.6.2.tgz",
"integrity": "sha512-IZf/zSTXlvOoseOBjRgSGQywhxEUYiwhMrGOyTYraoihG7N5lKZZJtVM519eLMRG+SHYkpp7j7wAnGYnQ1TxUQ==",
"requires": {
- "babel-runtime": "6.26.0",
- "classnames": "2.2.6",
- "prop-types": "15.6.2",
- "rc-tooltip": "3.7.2",
- "rc-util": "4.5.1",
- "shallowequal": "1.1.0",
- "warning": "3.0.0"
+ "babel-runtime": "6.x",
+ "classnames": "^2.2.5",
+ "prop-types": "^15.5.4",
+ "rc-tooltip": "^3.7.0",
+ "rc-util": "^4.0.4",
+ "shallowequal": "^1.0.1",
+ "warning": "^3.0.0"
},
"dependencies": {
"warning": {
@@ -25445,7 +27039,7 @@
"resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
"integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
"requires": {
- "loose-envify": "1.3.1"
+ "loose-envify": "^1.0.0"
}
}
}
@@ -25455,9 +27049,9 @@
"resolved": "https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-3.7.2.tgz",
"integrity": "sha512-vsF29ohlfgr7lEP12aJ5j4U/4hzqSBYjWQo8I09re+q95v1o4nDjH1q/B3qFkf9aml2FbgdkJw9KYz/zXUgApA==",
"requires": {
- "babel-runtime": "6.26.0",
- "prop-types": "15.6.2",
- "rc-trigger": "2.5.4"
+ "babel-runtime": "6.x",
+ "prop-types": "^15.5.8",
+ "rc-trigger": "^2.2.2"
}
},
"rc-trigger": {
@@ -25465,12 +27059,12 @@
"resolved": "https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.5.4.tgz",
"integrity": "sha512-clgXOdazDW2qg4vTZSAExpvOuojPNuMoamG+SxAm5Ih+rpVcrtEiDlDZWY4yUHyfEWJZBzgbrr4np/z2FK6RfA==",
"requires": {
- "babel-runtime": "6.26.0",
- "classnames": "2.2.6",
- "prop-types": "15.6.2",
- "rc-align": "2.4.3",
- "rc-animate": "2.4.4",
- "rc-util": "4.5.1"
+ "babel-runtime": "6.x",
+ "classnames": "^2.2.6",
+ "prop-types": "15.x",
+ "rc-align": "^2.4.0",
+ "rc-animate": "2.x",
+ "rc-util": "^4.4.0"
}
},
"rc-util": {
@@ -25478,10 +27072,10 @@
"resolved": "https://registry.npmjs.org/rc-util/-/rc-util-4.5.1.tgz",
"integrity": "sha512-PdCmHyBBodZdw6Oaikt0l+/R79IcRXpYkTrqD/Rbl4ZdoOi61t5TtEe40Q+A7rkWG5U1xjcN+h8j9H6GdtnICw==",
"requires": {
- "add-dom-event-listener": "1.0.2",
- "babel-runtime": "6.26.0",
- "prop-types": "15.6.2",
- "shallowequal": "0.2.2"
+ "add-dom-event-listener": "1.x",
+ "babel-runtime": "6.x",
+ "prop-types": "^15.5.10",
+ "shallowequal": "^0.2.2"
},
"dependencies": {
"shallowequal": {
@@ -25489,7 +27083,7 @@
"resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-0.2.2.tgz",
"integrity": "sha1-HjL9W8q2rWiKSBLLDMBO/HXHAU4=",
"requires": {
- "lodash.keys": "3.1.2"
+ "lodash.keys": "^3.1.2"
}
}
}
@@ -25499,43 +27093,11 @@
"resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz",
"integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=",
"requires": {
- "create-react-class": "15.6.3",
- "fbjs": "0.8.17",
- "loose-envify": "1.3.1",
- "object-assign": "4.1.1",
- "prop-types": "15.6.2"
- },
- "dependencies": {
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- }
- }
- },
- "react-addons-pure-render-mixin": {
- "version": "15.6.2",
- "resolved": "https://registry.npmjs.org/react-addons-pure-render-mixin/-/react-addons-pure-render-mixin-15.6.2.tgz",
- "integrity": "sha1-a4P0C2s27kBzXL1hJes/E84c3ck=",
- "requires": {
- "fbjs": "0.8.17",
- "object-assign": "4.1.1"
- },
- "dependencies": {
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- }
- }
- },
- "react-addons-update": {
- "version": "15.6.2",
- "resolved": "https://registry.npmjs.org/react-addons-update/-/react-addons-update-15.6.2.tgz",
- "integrity": "sha1-5TdTxbNIh5dFEMiC1/sHWFHV5QQ=",
- "requires": {
- "fbjs": "0.8.17",
- "object-assign": "4.1.1"
+ "create-react-class": "^15.6.0",
+ "fbjs": "^0.8.9",
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.0",
+ "prop-types": "^15.5.10"
},
"dependencies": {
"object-assign": {
@@ -25545,43 +27107,15 @@
}
}
},
- "react-avatar": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/react-avatar/-/react-avatar-2.5.1.tgz",
- "integrity": "sha512-bwH5pWY6uxaKZt+IZBfD+SU3Dpy3FaKbmAzrOI4N8SATUPLXOdGaJHWUl6Vl8hHSwWSsoLh/m7xYHdnn0lofZw==",
- "requires": {
- "babel-runtime": "6.26.0",
- "is-retina": "1.0.3",
- "md5": "2.2.1"
- }
- },
- "react-datetime": {
- "version": "2.16.3",
- "resolved": "https://registry.npmjs.org/react-datetime/-/react-datetime-2.16.3.tgz",
- "integrity": "sha512-amWfb5iGEiyqjLmqCLlPpu2oN415jK8wX1qoTq7qn6EYiU7qQgbNHglww014PT4O/3G5eo/3kbJu/M/IxxTyGw==",
- "requires": {
- "create-react-class": "15.6.3",
- "object-assign": "3.0.0",
- "prop-types": "15.6.2",
- "react-onclickoutside": "6.9.0"
- },
- "dependencies": {
- "object-assign": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
- "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
- }
- }
- },
"react-dom": {
"version": "15.6.2",
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.2.tgz",
"integrity": "sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=",
"requires": {
- "fbjs": "0.8.17",
- "loose-envify": "1.3.1",
- "object-assign": "4.1.1",
- "prop-types": "15.6.2"
+ "fbjs": "^0.8.9",
+ "loose-envify": "^1.1.0",
+ "object-assign": "^4.1.0",
+ "prop-types": "^15.5.10"
},
"dependencies": {
"object-assign": {
@@ -25591,59 +27125,25 @@
}
}
},
- "react-dropzone": {
- "version": "3.13.4",
- "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-3.13.4.tgz",
- "integrity": "sha1-hNomgVxAM5aRxJtFRMLvehaRLMw=",
- "requires": {
- "attr-accept": "1.1.3",
- "prop-types": "15.6.2"
- }
- },
- "react-event-listener": {
- "version": "0.6.6",
- "resolved": "https://registry.npmjs.org/react-event-listener/-/react-event-listener-0.6.6.tgz",
- "integrity": "sha512-+hCNqfy7o9wvO6UgjqFmBzARJS7qrNoda0VqzvOuioEpoEXKutiKuv92dSz6kP7rYLmyHPyYNLesi5t/aH1gfw==",
- "requires": {
- "@babel/runtime": "7.6.3",
- "prop-types": "15.6.2",
- "warning": "4.0.3"
- },
- "dependencies": {
- "warning": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
- "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
- "requires": {
- "loose-envify": "1.3.1"
- }
- }
- }
- },
"react-input-autosize": {
"version": "0.6.13",
"resolved": "https://registry.npmjs.org/react-input-autosize/-/react-input-autosize-0.6.13.tgz",
"integrity": "sha1-OG/3qdLD3AFsJlvy5Z05cFD2Wvc="
},
- "react-is": {
- "version": "16.11.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.11.0.tgz",
- "integrity": "sha512-gbBVYR2p8mnriqAwWx9LbuUrShnAuSCNnuPGyc7GJrMVQtPDAh8iLpv7FRuMPFb56KkaVZIYSz1PrjI9q0QPCw=="
- },
"react-jade": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/react-jade/-/react-jade-2.5.0.tgz",
"integrity": "sha1-w02dLdPuoB9S/UnMKIpcGmh8lIw=",
"requires": {
- "acorn": "1.2.2",
- "constantinople": "3.0.2",
- "ent": "2.2.0",
+ "acorn": "^1.1.0",
+ "constantinople": "^3.0.1",
+ "ent": "^2.2.0",
"jade": "1.9.2",
- "js-stringify": "1.0.2",
- "resolve": "1.8.1",
- "static-module": "1.5.0",
- "uglify-js": "2.8.29",
- "with": "5.1.1"
+ "js-stringify": "^1.0.1",
+ "resolve": "^1.1.6",
+ "static-module": "^1.1.2",
+ "uglify-js": "^2.4.21",
+ "with": "^5.0.0"
},
"dependencies": {
"acorn": {
@@ -25662,12 +27162,12 @@
"integrity": "sha1-C4n5xg1OrSc46Ca6eyzKyaVwKr4=",
"requires": {
"character-parser": "1.2.1",
- "commander": "2.6.0",
- "constantinople": "3.0.2",
- "mkdirp": "0.5.1",
+ "commander": "~2.6.0",
+ "constantinople": "~3.0.1",
+ "mkdirp": "~0.5.0",
"transformers": "2.1.0",
- "void-elements": "2.0.1",
- "with": "4.0.3"
+ "void-elements": "~2.0.1",
+ "with": "~4.0.0"
},
"dependencies": {
"with": {
@@ -25675,8 +27175,8 @@
"resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz",
"integrity": "sha1-7v0VTp550sjTQXtkeo8U2f7M4U4=",
"requires": {
- "acorn": "1.2.2",
- "acorn-globals": "1.0.9"
+ "acorn": "^1.0.1",
+ "acorn-globals": "^1.0.3"
}
}
}
@@ -25691,9 +27191,8 @@
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
"requires": {
- "source-map": "0.5.7",
- "uglify-to-browserify": "1.0.2",
- "yargs": "3.10.0"
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0"
}
},
"with": {
@@ -25701,8 +27200,8 @@
"resolved": "https://registry.npmjs.org/with/-/with-5.1.1.tgz",
"integrity": "sha1-+k2qktrzLE6pTtRTyB8EaGtXXf4=",
"requires": {
- "acorn": "3.3.0",
- "acorn-globals": "3.1.0"
+ "acorn": "^3.1.0",
+ "acorn-globals": "^3.0.0"
},
"dependencies": {
"acorn": {
@@ -25715,7 +27214,7 @@
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
"integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
"requires": {
- "acorn": "4.0.13"
+ "acorn": "^4.0.4"
},
"dependencies": {
"acorn": {
@@ -25729,124 +27228,17 @@
}
}
},
- "react-lazy-cache": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/react-lazy-cache/-/react-lazy-cache-3.0.1.tgz",
- "integrity": "sha1-DcZNON8XZ+93Z4xclBkAZMsRsM0=",
- "requires": {
- "deep-equal": "1.1.0"
- }
- },
- "react-lifecycles-compat": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
- "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
- },
- "react-onclickoutside": {
- "version": "6.9.0",
- "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.9.0.tgz",
- "integrity": "sha512-8ltIY3bC7oGhj2nPAvWOGi+xGFybPNhJM0V1H8hY/whNcXgmDeaeoCMPPd8VatrpTsUWjb/vGzrmu6SrXVty3A=="
- },
- "react-popper": {
- "version": "0.7.5",
- "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-0.7.5.tgz",
- "integrity": "sha512-ya9dhhGCf74JTOB2uyksEHhIGw7w9tNZRUJF73lEq2h4H5JT6MBa4PdT4G+sx6fZwq+xKZAL/sVNAIuojPn7Dg==",
- "requires": {
- "popper.js": "1.16.0",
- "prop-types": "15.6.2"
- }
- },
- "react-portal": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/react-portal/-/react-portal-4.2.0.tgz",
- "integrity": "sha512-Zf+vGQ/VEAb5XAy+muKEn48yhdCNYPZaB1BWg1xc8sAZWD8pXTgPtQT4ihBdmWzsfCq8p8/kqf0GWydSBqc+Eg==",
- "requires": {
- "prop-types": "15.6.2"
- }
- },
"react-redux": {
"version": "4.4.9",
"resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.9.tgz",
"integrity": "sha512-3XS7mjTOcvaP2H5OE/LxEgDHRuEyTZxBRlwvXHzNqYkZdYd7Ra98AimWoDSHP9OcLoydjA1ocgiZxxcqeXj0Sw==",
"requires": {
- "create-react-class": "15.6.3",
- "hoist-non-react-statics": "2.5.5",
- "invariant": "2.2.4",
- "lodash": "4.17.10",
- "loose-envify": "1.3.1",
- "prop-types": "15.6.2"
- }
- },
- "react-router": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-1.0.3.tgz",
- "integrity": "sha1-mA7KoFW4bkfIZUjCMq4FqIpB8Lc=",
- "requires": {
- "invariant": "2.2.4",
- "warning": "2.1.0"
- }
- },
- "react-router-dom": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.3.1.tgz",
- "integrity": "sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==",
- "requires": {
- "history": "4.10.1",
- "invariant": "2.2.4",
- "loose-envify": "1.3.1",
- "prop-types": "15.6.2",
- "react-router": "4.3.1",
- "warning": "4.0.3"
- },
- "dependencies": {
- "history": {
- "version": "4.10.1",
- "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
- "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
- "requires": {
- "@babel/runtime": "7.6.3",
- "loose-envify": "1.3.1",
- "resolve-pathname": "3.0.0",
- "tiny-invariant": "1.0.6",
- "tiny-warning": "1.0.3",
- "value-equal": "1.0.1"
- }
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
- },
- "path-to-regexp": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz",
- "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=",
- "requires": {
- "isarray": "0.0.1"
- }
- },
- "react-router": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-4.3.1.tgz",
- "integrity": "sha512-yrvL8AogDh2X42Dt9iknk4wF4V8bWREPirFfS9gLU1huk6qK41sg7Z/1S81jjTrGHxa3B8R3J6xIkDAA6CVarg==",
- "requires": {
- "history": "4.10.1",
- "hoist-non-react-statics": "2.5.5",
- "invariant": "2.2.4",
- "loose-envify": "1.3.1",
- "path-to-regexp": "1.7.0",
- "prop-types": "15.6.2",
- "warning": "4.0.3"
- }
- },
- "warning": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
- "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
- "requires": {
- "loose-envify": "1.3.1"
- }
- }
+ "create-react-class": "^15.5.1",
+ "hoist-non-react-statics": "^2.5.0",
+ "invariant": "^2.0.0",
+ "lodash": "^4.2.0",
+ "loose-envify": "^1.1.0",
+ "prop-types": "^15.5.4"
}
},
"react-select": {
@@ -25854,42 +27246,8 @@
"resolved": "https://registry.npmjs.org/react-select/-/react-select-0.9.1.tgz",
"integrity": "sha1-4yKi0KBjlqSCBrBVPfXsR9Fgg7o=",
"requires": {
- "classnames": "2.2.6",
- "react-input-autosize": "0.6.13"
- }
- },
- "react-switch-button": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/react-switch-button/-/react-switch-button-1.1.2.tgz",
- "integrity": "sha1-jOhPaUa046k3PnttasjngNl/L08="
- },
- "react-textarea-autosize": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-5.2.1.tgz",
- "integrity": "sha512-bx6z2I35aapr71ggw2yZIA4qhmqeTa4ZVsSaTeFvtf9kfcZppDBh2PbMt8lvbdmzEk7qbSFhAxR9vxEVm6oiMg==",
- "requires": {
- "prop-types": "15.6.2"
- }
- },
- "react-transition-group": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz",
- "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==",
- "requires": {
- "dom-helpers": "3.4.0",
- "loose-envify": "1.4.0",
- "prop-types": "15.6.2",
- "react-lifecycles-compat": "3.0.4"
- },
- "dependencies": {
- "loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "requires": {
- "js-tokens": "3.0.2"
- }
- }
+ "classnames": "^2.2.0",
+ "react-input-autosize": "^0.6.2"
}
},
"react2angular": {
@@ -25897,10 +27255,10 @@
"resolved": "https://registry.npmjs.org/react2angular/-/react2angular-4.0.4.tgz",
"integrity": "sha1-UB51p8oZHEr29VglE8RanuA3VgI=",
"requires": {
- "@types/lodash.frompairs": "4.0.4",
- "angular": "1.7.2",
- "lodash.frompairs": "4.0.1",
- "ngcomponent": "4.1.0"
+ "@types/lodash.frompairs": "^4.0.3",
+ "angular": ">=1.5",
+ "lodash.frompairs": "^4.0.1",
+ "ngcomponent": "^4.1.0"
}
},
"read-pkg": {
@@ -25908,9 +27266,9 @@
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
"integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
"requires": {
- "load-json-file": "1.1.0",
- "normalize-package-data": "2.4.0",
- "path-type": "1.1.0"
+ "load-json-file": "^1.0.0",
+ "normalize-package-data": "^2.3.2",
+ "path-type": "^1.0.0"
}
},
"read-pkg-up": {
@@ -25918,8 +27276,8 @@
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
"integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
"requires": {
- "find-up": "1.1.2",
- "read-pkg": "1.1.0"
+ "find-up": "^1.0.0",
+ "read-pkg": "^1.0.0"
}
},
"readable-stream": {
@@ -25927,13 +27285,13 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
- "isarray": "1.0.0",
- "process-nextick-args": "2.0.0",
- "safe-buffer": "5.1.2",
- "string_decoder": "1.1.1",
- "util-deprecate": "1.0.2"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
"readdirp": {
@@ -25941,10 +27299,10 @@
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz",
"integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=",
"requires": {
- "graceful-fs": "4.1.11",
- "minimatch": "3.0.4",
- "readable-stream": "2.3.6",
- "set-immediate-shim": "1.0.1"
+ "graceful-fs": "^4.1.2",
+ "minimatch": "^3.0.2",
+ "readable-stream": "^2.0.2",
+ "set-immediate-shim": "^1.0.1"
}
},
"readline2": {
@@ -25952,8 +27310,8 @@
"resolved": "https://registry.npmjs.org/readline2/-/readline2-1.0.1.tgz",
"integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=",
"requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
"mute-stream": "0.0.5"
}
},
@@ -25963,9 +27321,9 @@
"integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=",
"requires": {
"ast-types": "0.9.6",
- "esprima": "3.1.3",
- "private": "0.1.8",
- "source-map": "0.5.7"
+ "esprima": "~3.1.0",
+ "private": "~0.1.5",
+ "source-map": "~0.5.0"
},
"dependencies": {
"esprima": {
@@ -25980,24 +27338,13 @@
}
}
},
- "recompose": {
- "version": "0.26.0",
- "resolved": "https://registry.npmjs.org/recompose/-/recompose-0.26.0.tgz",
- "integrity": "sha512-KwOu6ztO0mN5vy3+zDcc45lgnaUoaQse/a5yLVqtzTK13czSWnFGmXbQVmnoMgDkI5POd1EwIKSbjU1V7xdZog==",
- "requires": {
- "change-emitter": "0.1.6",
- "fbjs": "0.8.17",
- "hoist-non-react-statics": "2.5.5",
- "symbol-observable": "1.2.0"
- }
- },
"redent": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
"integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
"requires": {
- "indent-string": "2.1.0",
- "strip-indent": "1.0.1"
+ "indent-string": "^2.1.0",
+ "strip-indent": "^1.0.1"
}
},
"reduce-css-calc": {
@@ -26005,9 +27352,9 @@
"resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz",
"integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=",
"requires": {
- "balanced-match": "0.4.2",
- "math-expression-evaluator": "1.2.17",
- "reduce-function-call": "1.0.2"
+ "balanced-match": "^0.4.2",
+ "math-expression-evaluator": "^1.2.14",
+ "reduce-function-call": "^1.0.1"
},
"dependencies": {
"balanced-match": {
@@ -26022,7 +27369,7 @@
"resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz",
"integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=",
"requires": {
- "balanced-match": "0.4.2"
+ "balanced-match": "^0.4.2"
},
"dependencies": {
"balanced-match": {
@@ -26037,51 +27384,12 @@
"resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz",
"integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==",
"requires": {
- "lodash": "4.17.10",
- "lodash-es": "4.17.10",
- "loose-envify": "1.3.1",
- "symbol-observable": "1.2.0"
- }
- },
- "redux-form": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/redux-form/-/redux-form-4.2.2.tgz",
- "integrity": "sha1-uK43pAcJBvRdvTCwcinxoQvyXLA=",
- "requires": {
- "deep-equal": "1.1.0",
- "hoist-non-react-statics": "1.2.0",
- "is-promise": "2.1.0",
- "react-lazy-cache": "3.0.1"
- },
- "dependencies": {
- "hoist-non-react-statics": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz",
- "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs="
- }
- }
- },
- "redux-logger": {
- "version": "2.10.2",
- "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-2.10.2.tgz",
- "integrity": "sha1-PFpfCm8yV3wd6t9mVfJX+CxsOTc=",
- "requires": {
- "deep-diff": "0.3.4"
- }
- },
- "redux-router": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/redux-router/-/redux-router-1.0.0.tgz",
- "integrity": "sha1-PBZ240Qb7FD+jZJFfAF8tjaZM08=",
- "requires": {
- "deep-equal": "1.1.0"
+ "lodash": "^4.2.1",
+ "lodash-es": "^4.2.1",
+ "loose-envify": "^1.1.0",
+ "symbol-observable": "^1.0.3"
}
},
- "redux-thunk": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.3.0.tgz",
- "integrity": "sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw=="
- },
"regenerate": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz",
@@ -26097,9 +27405,9 @@
"resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
"integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
"requires": {
- "babel-runtime": "6.26.0",
- "babel-types": "6.26.0",
- "private": "0.1.8"
+ "babel-runtime": "^6.18.0",
+ "babel-types": "^6.19.0",
+ "private": "^0.1.6"
}
},
"regex-cache": {
@@ -26107,15 +27415,7 @@
"resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz",
"integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==",
"requires": {
- "is-equal-shallow": "0.1.3"
- }
- },
- "regexp.prototype.flags": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz",
- "integrity": "sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==",
- "requires": {
- "define-properties": "1.1.3"
+ "is-equal-shallow": "^0.1.3"
}
},
"regexpu-core": {
@@ -26123,9 +27423,9 @@
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
"integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
"requires": {
- "regenerate": "1.4.0",
- "regjsgen": "0.2.0",
- "regjsparser": "0.1.5"
+ "regenerate": "^1.2.1",
+ "regjsgen": "^0.2.0",
+ "regjsparser": "^0.1.4"
}
},
"regjsgen": {
@@ -26138,7 +27438,7 @@
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
"integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
"requires": {
- "jsesc": "0.5.0"
+ "jsesc": "~0.5.0"
},
"dependencies": {
"jsesc": {
@@ -26148,11 +27448,6 @@
}
}
},
- "relateurl": {
- "version": "0.2.7",
- "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
- "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk="
- },
"remove-trailing-separator": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
@@ -26163,11 +27458,11 @@
"resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz",
"integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=",
"requires": {
- "css-select": "1.2.0",
- "dom-converter": "0.1.4",
- "htmlparser2": "3.3.0",
- "strip-ansi": "3.0.1",
- "utila": "0.3.3"
+ "css-select": "^1.1.0",
+ "dom-converter": "~0.1",
+ "htmlparser2": "~3.3.0",
+ "strip-ansi": "^3.0.0",
+ "utila": "~0.3"
},
"dependencies": {
"utila": {
@@ -26182,17 +27477,12 @@
"resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz",
"integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo="
},
- "repeat-string": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
- "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
- },
"repeating": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
"integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
"requires": {
- "is-finite": "1.0.2"
+ "is-finite": "^1.0.0"
}
},
"request": {
@@ -26200,26 +27490,26 @@
"resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
"integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
"requires": {
- "aws-sign2": "0.7.0",
- "aws4": "1.7.0",
- "caseless": "0.12.0",
- "combined-stream": "1.0.6",
- "extend": "3.0.1",
- "forever-agent": "0.6.1",
- "form-data": "2.3.2",
- "har-validator": "5.0.3",
- "http-signature": "1.2.0",
- "is-typedarray": "1.0.0",
- "isstream": "0.1.2",
- "json-stringify-safe": "5.0.1",
- "mime-types": "2.1.18",
- "oauth-sign": "0.8.2",
- "performance-now": "2.1.0",
- "qs": "6.5.2",
- "safe-buffer": "5.1.2",
- "tough-cookie": "2.3.4",
- "tunnel-agent": "0.6.0",
- "uuid": "3.3.2"
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.6.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.5",
+ "extend": "~3.0.1",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.1",
+ "har-validator": "~5.0.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.17",
+ "oauth-sign": "~0.8.2",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.1",
+ "safe-buffer": "^5.1.1",
+ "tough-cookie": "~2.3.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.1.0"
},
"dependencies": {
"ajv": {
@@ -26227,10 +27517,10 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
"requires": {
- "co": "4.6.0",
- "fast-deep-equal": "1.1.0",
- "fast-json-stable-stringify": "2.0.0",
- "json-schema-traverse": "0.3.1"
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
}
},
"assert-plus": {
@@ -26253,8 +27543,8 @@
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
"integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
"requires": {
- "ajv": "5.5.2",
- "har-schema": "2.0.0"
+ "ajv": "^5.1.0",
+ "har-schema": "^2.0.0"
}
},
"http-signature": {
@@ -26262,9 +27552,9 @@
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"requires": {
- "assert-plus": "1.0.0",
- "jsprim": "1.4.1",
- "sshpk": "1.14.2"
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
}
},
"performance-now": {
@@ -26289,8 +27579,8 @@
"resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz",
"integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=",
"requires": {
- "caller-path": "0.1.0",
- "resolve-from": "1.0.1"
+ "caller-path": "^0.1.0",
+ "resolve-from": "^1.0.0"
}
},
"requires-port": {
@@ -26303,7 +27593,7 @@
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
"integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
"requires": {
- "path-parse": "1.0.5"
+ "path-parse": "^1.0.5"
}
},
"resolve-from": {
@@ -26311,26 +27601,13 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz",
"integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY="
},
- "resolve-pathname": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
- "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
- },
"restore-cursor": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz",
"integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=",
"requires": {
- "exit-hook": "1.1.1",
- "onetime": "1.1.0"
- }
- },
- "right-align": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
- "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
- "requires": {
- "align-text": "0.1.4"
+ "exit-hook": "^1.0.0",
+ "onetime": "^1.0.0"
}
},
"rimraf": {
@@ -26338,7 +27615,7 @@
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
"requires": {
- "glob": "7.1.2"
+ "glob": "^7.0.5"
},
"dependencies": {
"glob": {
@@ -26346,12 +27623,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
}
}
@@ -26366,7 +27643,7 @@
"resolved": "https://registry.npmjs.org/run-async/-/run-async-0.1.0.tgz",
"integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=",
"requires": {
- "once": "1.4.0"
+ "once": "^1.3.0"
}
},
"rx-lite": {
@@ -26379,15 +27656,15 @@
"resolved": "https://registry.npmjs.org/s3/-/s3-4.4.0.tgz",
"integrity": "sha1-VqT3dVFae2ucjlxrGrUfkDdmnx8=",
"requires": {
- "aws-sdk": "2.0.31",
- "fd-slicer": "1.0.1",
- "findit2": "2.2.3",
- "graceful-fs": "3.0.11",
- "mime": "1.2.11",
- "mkdirp": "0.5.1",
- "pend": "1.2.0",
- "rimraf": "2.2.8",
- "streamsink": "1.2.0"
+ "aws-sdk": "~2.0.31",
+ "fd-slicer": "~1.0.0",
+ "findit2": "~2.2.3",
+ "graceful-fs": "~3.0.5",
+ "mime": "~1.2.11",
+ "mkdirp": "~0.5.0",
+ "pend": "~1.2.0",
+ "rimraf": "~2.2.8",
+ "streamsink": "~1.2.0"
},
"dependencies": {
"graceful-fs": {
@@ -26395,7 +27672,7 @@
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
"integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
"requires": {
- "natives": "1.1.4"
+ "natives": "^1.1.0"
}
},
"mime": {
@@ -26420,20 +27697,15 @@
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
- "samsam": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz",
- "integrity": "sha1-vsEf3IOp/aBjQBIQ5AF2wwJNFWc="
- },
"sass-graph": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
"integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
"requires": {
- "glob": "7.1.2",
- "lodash": "4.17.10",
- "scss-tokenizer": "0.2.3",
- "yargs": "7.1.0"
+ "glob": "^7.0.0",
+ "lodash": "^4.0.0",
+ "scss-tokenizer": "^0.2.3",
+ "yargs": "^7.0.0"
},
"dependencies": {
"camelcase": {
@@ -26446,9 +27718,9 @@
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
"integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
"requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1",
- "wrap-ansi": "2.1.0"
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wrap-ansi": "^2.0.0"
}
},
"glob": {
@@ -26456,12 +27728,12 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"requires": {
- "fs.realpath": "1.0.0",
- "inflight": "1.0.6",
- "inherits": "2.0.3",
- "minimatch": "3.0.4",
- "once": "1.4.0",
- "path-is-absolute": "1.0.1"
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
}
},
"yargs": {
@@ -26469,19 +27741,19 @@
"resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
"integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
"requires": {
- "camelcase": "3.0.0",
- "cliui": "3.2.0",
- "decamelize": "1.2.0",
- "get-caller-file": "1.0.2",
- "os-locale": "1.4.0",
- "read-pkg-up": "1.0.1",
- "require-directory": "2.1.1",
- "require-main-filename": "1.0.1",
- "set-blocking": "2.0.0",
- "string-width": "1.0.2",
- "which-module": "1.0.0",
- "y18n": "3.2.1",
- "yargs-parser": "5.0.0"
+ "camelcase": "^3.0.0",
+ "cliui": "^3.2.0",
+ "decamelize": "^1.1.1",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^1.4.0",
+ "read-pkg-up": "^1.0.1",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^1.0.2",
+ "which-module": "^1.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^5.0.0"
}
}
}
@@ -26491,9 +27763,9 @@
"resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-3.2.3.tgz",
"integrity": "sha1-dC6B/YFwqHcal54YYiUBZ0qI41U=",
"requires": {
- "async": "1.5.2",
- "loader-utils": "0.2.17",
- "object-assign": "4.1.1"
+ "async": "^1.4.0",
+ "loader-utils": "^0.2.5",
+ "object-assign": "^4.0.1"
},
"dependencies": {
"async": {
@@ -26508,18 +27780,13 @@
}
}
},
- "sax": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
- "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
- },
"scss-tokenizer": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
"integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
"requires": {
- "js-base64": "2.4.5",
- "source-map": "0.4.4"
+ "js-base64": "^2.1.8",
+ "source-map": "^0.4.2"
}
},
"semver": {
@@ -26533,18 +27800,18 @@
"integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
"requires": {
"debug": "2.6.9",
- "depd": "1.1.2",
- "destroy": "1.0.4",
- "encodeurl": "1.0.2",
- "escape-html": "1.0.3",
- "etag": "1.8.1",
+ "depd": "~1.1.2",
+ "destroy": "~1.0.4",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
"fresh": "0.5.2",
- "http-errors": "1.6.3",
+ "http-errors": "~1.6.2",
"mime": "1.4.1",
"ms": "2.0.0",
- "on-finished": "2.3.0",
- "range-parser": "1.2.0",
- "statuses": "1.4.0"
+ "on-finished": "~2.3.0",
+ "range-parser": "~1.2.0",
+ "statuses": "~1.4.0"
},
"dependencies": {
"debug": {
@@ -26562,26 +27829,18 @@
}
}
},
- "sentence-case": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-1.1.3.tgz",
- "integrity": "sha1-gDSq/CFFdy06vhUJqkLJ4QQtwTk=",
- "requires": {
- "lower-case": "1.1.4"
- }
- },
"serve-index": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
"integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
"requires": {
- "accepts": "1.3.5",
+ "accepts": "~1.3.4",
"batch": "0.6.1",
"debug": "2.6.9",
- "escape-html": "1.0.3",
- "http-errors": "1.6.3",
- "mime-types": "2.1.18",
- "parseurl": "1.3.2"
+ "escape-html": "~1.0.3",
+ "http-errors": "~1.6.2",
+ "mime-types": "~2.1.17",
+ "parseurl": "~1.3.2"
},
"dependencies": {
"debug": {
@@ -26599,9 +27858,9 @@
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
"integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
"requires": {
- "encodeurl": "1.0.2",
- "escape-html": "1.0.3",
- "parseurl": "1.3.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.2",
"send": "0.16.2"
}
},
@@ -26650,23 +27909,6 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
- "simple-assign": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/simple-assign/-/simple-assign-0.1.0.tgz",
- "integrity": "sha1-F/0wZqXz13OPUDIbsPFMooHMS6o="
- },
- "sinon": {
- "version": "2.0.0-pre",
- "resolved": "https://registry.npmjs.org/sinon/-/sinon-2.0.0-pre.tgz",
- "integrity": "sha1-GCk7APsvFVyZ6OW0bjH36t4ygV0=",
- "requires": {
- "formatio": "1.1.1",
- "lolex": "1.3.2",
- "samsam": "1.1.2",
- "text-encoding": "0.5.2",
- "util": "0.11.0"
- }
- },
"slash": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
@@ -26677,20 +27919,12 @@
"resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz",
"integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU="
},
- "snake-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-1.1.2.tgz",
- "integrity": "sha1-DC8l4wUVjZoY09l3BmGH/vilpmo=",
- "requires": {
- "sentence-case": "1.1.3"
- }
- },
"sntp": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz",
"integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=",
"requires": {
- "hoek": "2.16.3"
+ "hoek": "2.x.x"
}
},
"sockjs": {
@@ -26698,8 +27932,8 @@
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz",
"integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==",
"requires": {
- "faye-websocket": "0.10.0",
- "uuid": "3.3.2"
+ "faye-websocket": "^0.10.0",
+ "uuid": "^3.0.1"
}
},
"sockjs-client": {
@@ -26707,12 +27941,12 @@
"resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz",
"integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=",
"requires": {
- "debug": "2.6.9",
+ "debug": "^2.6.6",
"eventsource": "0.1.6",
- "faye-websocket": "0.11.1",
- "inherits": "2.0.3",
- "json3": "3.3.2",
- "url-parse": "1.4.1"
+ "faye-websocket": "~0.11.0",
+ "inherits": "^2.0.1",
+ "json3": "^3.3.2",
+ "url-parse": "^1.1.8"
},
"dependencies": {
"debug": {
@@ -26728,7 +27962,7 @@
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
"integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
"requires": {
- "websocket-driver": "0.7.0"
+ "websocket-driver": ">=0.5.1"
}
}
}
@@ -26738,7 +27972,7 @@
"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
"integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=",
"requires": {
- "is-plain-obj": "1.1.0"
+ "is-plain-obj": "^1.0.0"
}
},
"source-list-map": {
@@ -26751,7 +27985,7 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
"requires": {
- "amdefine": "1.0.1"
+ "amdefine": ">=0.0.4"
}
},
"source-map-support": {
@@ -26759,7 +27993,7 @@
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
"integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
"requires": {
- "source-map": "0.5.7"
+ "source-map": "^0.5.6"
},
"dependencies": {
"source-map": {
@@ -26779,8 +28013,8 @@
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz",
"integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
"requires": {
- "spdx-expression-parse": "3.0.0",
- "spdx-license-ids": "3.0.0"
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
}
},
"spdx-exceptions": {
@@ -26793,8 +28027,8 @@
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
"integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
"requires": {
- "spdx-exceptions": "2.1.0",
- "spdx-license-ids": "3.0.0"
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
}
},
"spdx-license-ids": {
@@ -26812,15 +28046,15 @@
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
"integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
"requires": {
- "asn1": "0.2.3",
- "assert-plus": "1.0.0",
- "bcrypt-pbkdf": "1.0.2",
- "dashdash": "1.14.1",
- "ecc-jsbn": "0.1.1",
- "getpass": "0.1.7",
- "jsbn": "0.1.1",
- "safer-buffer": "2.1.2",
- "tweetnacl": "0.14.5"
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
},
"dependencies": {
"assert-plus": {
@@ -26835,7 +28069,7 @@
"resolved": "https://registry.npmjs.org/static-eval/-/static-eval-0.2.4.tgz",
"integrity": "sha1-t9NNg4k3uWn5ZBygfUj47eJj6ns=",
"requires": {
- "escodegen": "0.0.28"
+ "escodegen": "~0.0.24"
},
"dependencies": {
"escodegen": {
@@ -26843,9 +28077,9 @@
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-0.0.28.tgz",
"integrity": "sha1-Dk/xcV8yh3XWyrUaxEpAbNer/9M=",
"requires": {
- "esprima": "1.0.4",
- "estraverse": "1.3.2",
- "source-map": "0.4.4"
+ "esprima": "~1.0.2",
+ "estraverse": "~1.3.0",
+ "source-map": ">= 0.1.2"
}
},
"esprima": {
@@ -26865,17 +28099,17 @@
"resolved": "https://registry.npmjs.org/static-module/-/static-module-1.5.0.tgz",
"integrity": "sha1-J9qYg8QajNCSNvhC8MHrxu32PYY=",
"requires": {
- "concat-stream": "1.6.2",
- "duplexer2": "0.0.2",
- "escodegen": "1.3.3",
- "falafel": "2.1.0",
- "has": "1.0.3",
- "object-inspect": "0.4.0",
- "quote-stream": "0.0.0",
- "readable-stream": "1.0.34",
- "shallow-copy": "0.0.1",
- "static-eval": "0.2.4",
- "through2": "0.4.2"
+ "concat-stream": "~1.6.0",
+ "duplexer2": "~0.0.2",
+ "escodegen": "~1.3.2",
+ "falafel": "^2.1.0",
+ "has": "^1.0.0",
+ "object-inspect": "~0.4.0",
+ "quote-stream": "~0.0.0",
+ "readable-stream": "~1.0.27-1",
+ "shallow-copy": "~0.0.1",
+ "static-eval": "~0.2.0",
+ "through2": "~0.4.1"
},
"dependencies": {
"isarray": {
@@ -26888,10 +28122,10 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
"isarray": "0.0.1",
- "string_decoder": "0.10.31"
+ "string_decoder": "~0.10.x"
}
},
"string_decoder": {
@@ -26911,8 +28145,8 @@
"resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
"integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=",
"requires": {
- "inherits": "2.0.3",
- "readable-stream": "2.3.6"
+ "inherits": "~2.0.1",
+ "readable-stream": "^2.0.2"
}
},
"stream-cache": {
@@ -26920,21 +28154,16 @@
"resolved": "https://registry.npmjs.org/stream-cache/-/stream-cache-0.0.2.tgz",
"integrity": "sha1-GsWtaDJCjKVWZ9ve45Xa1ObbEY8="
},
- "stream-consume": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz",
- "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg=="
- },
"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==",
"requires": {
- "builtin-status-codes": "3.0.0",
- "inherits": "2.0.3",
- "readable-stream": "2.3.6",
- "to-arraybuffer": "1.0.1",
- "xtend": "4.0.1"
+ "builtin-status-codes": "^3.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.3.6",
+ "to-arraybuffer": "^1.0.0",
+ "xtend": "^4.0.0"
},
"dependencies": {
"xtend": {
@@ -26949,37 +28178,14 @@
"resolved": "https://registry.npmjs.org/streamsink/-/streamsink-1.2.0.tgz",
"integrity": "sha1-76/unx4i01ke1949yqlcP1559zw="
},
- "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="
- },
"string-width": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"requires": {
- "code-point-at": "1.1.0",
- "is-fullwidth-code-point": "1.0.0",
- "strip-ansi": "3.0.1"
- }
- },
- "string.prototype.trimleft": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
- "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
- "requires": {
- "define-properties": "1.1.3",
- "function-bind": "1.1.1"
- }
- },
- "string.prototype.trimright": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
- "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
- "requires": {
- "define-properties": "1.1.3",
- "function-bind": "1.1.1"
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
}
},
"string_decoder": {
@@ -26987,7 +28193,7 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"requires": {
- "safe-buffer": "5.1.2"
+ "safe-buffer": "~5.1.0"
}
},
"stringstream": {
@@ -27000,7 +28206,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"requires": {
- "ansi-regex": "2.1.1"
+ "ansi-regex": "^2.0.0"
}
},
"strip-bom": {
@@ -27008,7 +28214,7 @@
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
"requires": {
- "is-utf8": "0.2.1"
+ "is-utf8": "^0.2.0"
}
},
"strip-indent": {
@@ -27016,7 +28222,7 @@
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
"integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
"requires": {
- "get-stdin": "4.0.1"
+ "get-stdin": "^4.0.1"
}
},
"strip-json-comments": {
@@ -27029,7 +28235,7 @@
"resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.2.tgz",
"integrity": "sha1-dFMzhM9pjHEEx5URULSXF63C87s=",
"requires": {
- "loader-utils": "1.1.0"
+ "loader-utils": "^1.0.2"
},
"dependencies": {
"loader-utils": {
@@ -27037,9 +28243,9 @@
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
"integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
"requires": {
- "big.js": "3.2.0",
- "emojis-list": "2.1.0",
- "json5": "0.5.1"
+ "big.js": "^3.1.3",
+ "emojis-list": "^2.0.0",
+ "json5": "^0.5.0"
}
}
}
@@ -27049,16 +28255,16 @@
"resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz",
"integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==",
"requires": {
- "component-emitter": "1.2.1",
- "cookiejar": "2.1.2",
- "debug": "3.1.0",
- "extend": "3.0.1",
- "form-data": "2.3.2",
- "formidable": "1.2.1",
- "methods": "1.1.2",
- "mime": "1.6.0",
- "qs": "6.5.2",
- "readable-stream": "2.3.6"
+ "component-emitter": "^1.2.0",
+ "cookiejar": "^2.1.0",
+ "debug": "^3.1.0",
+ "extend": "^3.0.0",
+ "form-data": "^2.3.1",
+ "formidable": "^1.2.0",
+ "methods": "^1.1.1",
+ "mime": "^1.4.1",
+ "qs": "^6.5.1",
+ "readable-stream": "^2.3.5"
}
},
"supports-color": {
@@ -27071,22 +28277,13 @@
"resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz",
"integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=",
"requires": {
- "coa": "1.0.4",
- "colors": "1.1.2",
- "csso": "2.3.2",
- "js-yaml": "3.7.0",
- "mkdirp": "0.5.1",
- "sax": "1.2.4",
- "whet.extend": "0.9.9"
- }
- },
- "swap-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz",
- "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=",
- "requires": {
- "lower-case": "1.1.4",
- "upper-case": "1.1.3"
+ "coa": "~1.0.1",
+ "colors": "~1.1.2",
+ "csso": "~2.3.1",
+ "js-yaml": "~3.7.0",
+ "mkdirp": "~0.5.1",
+ "sax": "~1.2.1",
+ "whet.extend": "~0.9.9"
}
},
"symbol-observable": {
@@ -27099,12 +28296,12 @@
"resolved": "https://registry.npmjs.org/table/-/table-3.8.3.tgz",
"integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=",
"requires": {
- "ajv": "4.11.8",
- "ajv-keywords": "1.5.1",
- "chalk": "1.1.3",
- "lodash": "4.17.10",
+ "ajv": "^4.7.0",
+ "ajv-keywords": "^1.0.0",
+ "chalk": "^1.1.1",
+ "lodash": "^4.0.0",
"slice-ansi": "0.0.4",
- "string-width": "2.1.1"
+ "string-width": "^2.0.0"
},
"dependencies": {
"ansi-regex": {
@@ -27122,8 +28319,8 @@
"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"
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
}
},
"strip-ansi": {
@@ -27131,7 +28328,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
"integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
"requires": {
- "ansi-regex": "3.0.0"
+ "ansi-regex": "^3.0.0"
}
}
}
@@ -27146,113 +28343,9 @@
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
"requires": {
- "block-stream": "0.0.9",
- "fstream": "1.0.11",
- "inherits": "2.0.3"
- }
- },
- "tc-ui": {
- "version": "git+https://github.com/appirio-tech/tc-ui.git#e577a0e704136f1e9ecce92ce4c0626aab932691",
- "requires": {
- "classnames": "2.2.6",
- "lodash": "4.17.10",
- "moment": "2.24.0",
- "node-neat": "1.7.2",
- "react": "0.14.9",
- "react-datetime": "2.16.3",
- "react-dom": "0.14.9",
- "react-dropzone": "3.13.4",
- "react-redux": "4.4.9",
- "react-router": "2.8.1",
- "react-select": "0.9.1",
- "redux": "3.7.2"
- },
- "dependencies": {
- "fbjs": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.6.1.tgz",
- "integrity": "sha1-lja3cF9bqWhNRLcveDISVK/IYPc=",
- "requires": {
- "core-js": "1.2.7",
- "loose-envify": "1.3.1",
- "promise": "7.3.1",
- "ua-parser-js": "0.7.18",
- "whatwg-fetch": "0.9.0"
- }
- },
- "history": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/history/-/history-2.1.2.tgz",
- "integrity": "sha1-SqLeiXoOSGfkU5hDvm7Nsphr/ew=",
- "requires": {
- "deep-equal": "1.1.0",
- "invariant": "2.2.4",
- "query-string": "3.0.3",
- "warning": "2.1.0"
- },
- "dependencies": {
- "warning": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz",
- "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE=",
- "requires": {
- "loose-envify": "1.3.1"
- }
- }
- }
- },
- "hoist-non-react-statics": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz",
- "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs="
- },
- "moment": {
- "version": "2.24.0",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
- "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
- },
- "query-string": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.3.tgz",
- "integrity": "sha1-ri4UtNBQcdTpuetIc8NbDc1C5jg=",
- "requires": {
- "strict-uri-encode": "1.1.0"
- }
- },
- "react": {
- "version": "0.14.9",
- "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz",
- "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=",
- "requires": {
- "envify": "3.4.1",
- "fbjs": "0.6.1"
- }
- },
- "react-dom": {
- "version": "0.14.9",
- "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.9.tgz",
- "integrity": "sha1-BQZKPc8PsYgKOyv8nVjFXY2fYpM="
- },
- "react-router": {
- "version": "2.8.1",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-2.8.1.tgz",
- "integrity": "sha1-c+lJH2zrMW0Pd5gpCBhj43juTtc=",
- "requires": {
- "history": "2.1.2",
- "hoist-non-react-statics": "1.2.0",
- "invariant": "2.2.4",
- "loose-envify": "1.3.1",
- "warning": "3.0.0"
- }
- },
- "warning": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
- "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
- "requires": {
- "loose-envify": "1.3.1"
- }
- }
+ "block-stream": "*",
+ "fstream": "^1.0.2",
+ "inherits": "2"
}
},
"tcomb": {
@@ -27265,14 +28358,9 @@
"resolved": "https://registry.npmjs.org/tcomb-validation/-/tcomb-validation-3.4.1.tgz",
"integrity": "sha512-urVVMQOma4RXwiVCa2nM2eqrAomHROHvWPuj6UkDGz/eb5kcy0x6P0dVt6kzpUZtYMNoAqJLWmz1BPtxrtjtrA==",
"requires": {
- "tcomb": "3.2.29"
+ "tcomb": "^3.0.0"
}
},
- "text-encoding": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.5.2.tgz",
- "integrity": "sha1-hbRmCBnwiHd2CUZVUWkP6hN9gko="
- },
"text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -27288,8 +28376,8 @@
"resolved": "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz",
"integrity": "sha1-2/WGYDEVHsg1K7bE22SiKSqEC5s=",
"requires": {
- "readable-stream": "1.0.34",
- "xtend": "2.1.2"
+ "readable-stream": "~1.0.17",
+ "xtend": "~2.1.1"
},
"dependencies": {
"isarray": {
@@ -27302,10 +28390,10 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
"integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
"requires": {
- "core-util-is": "1.0.2",
- "inherits": "2.0.3",
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
"isarray": "0.0.1",
- "string_decoder": "0.10.31"
+ "string_decoder": "~0.10.x"
}
},
"string_decoder": {
@@ -27325,26 +28413,7 @@
"resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz",
"integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==",
"requires": {
- "setimmediate": "1.0.5"
- }
- },
- "tiny-invariant": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.6.tgz",
- "integrity": "sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA=="
- },
- "tiny-warning": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
- "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
- },
- "title-case": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/title-case/-/title-case-1.1.2.tgz",
- "integrity": "sha1-+uSmrlRr+iLQg6DuqRCkDRLtT1o=",
- "requires": {
- "sentence-case": "1.1.3",
- "upper-case": "1.1.3"
+ "setimmediate": "^1.0.4"
}
},
"to-arraybuffer": {
@@ -27367,7 +28436,7 @@
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
"integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
"requires": {
- "punycode": "1.4.1"
+ "punycode": "^1.4.1"
}
},
"transform-loader": {
@@ -27375,7 +28444,7 @@
"resolved": "https://registry.npmjs.org/transform-loader/-/transform-loader-0.2.4.tgz",
"integrity": "sha1-5ch4d7qW1R0/IlNoWHtG4ibRzsk=",
"requires": {
- "loader-utils": "1.1.0"
+ "loader-utils": "^1.0.2"
},
"dependencies": {
"loader-utils": {
@@ -27383,9 +28452,9 @@
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz",
"integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=",
"requires": {
- "big.js": "3.2.0",
- "emojis-list": "2.1.0",
- "json5": "0.5.1"
+ "big.js": "^3.1.3",
+ "emojis-list": "^2.0.0",
+ "json5": "^0.5.0"
}
}
}
@@ -27395,9 +28464,9 @@
"resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz",
"integrity": "sha1-XSPLNVYd2F3Gf7hIIwm0fVPM6ac=",
"requires": {
- "css": "1.0.8",
- "promise": "2.0.0",
- "uglify-js": "2.2.5"
+ "css": "~1.0.8",
+ "promise": "~2.0",
+ "uglify-js": "~2.2.5"
},
"dependencies": {
"is-promise": {
@@ -27410,7 +28479,7 @@
"resolved": "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz",
"integrity": "sha1-RmSKqdYFr10ucMMCS/WUNtoCuA4=",
"requires": {
- "is-promise": "1.0.1"
+ "is-promise": "~1"
}
},
"source-map": {
@@ -27418,7 +28487,7 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
"integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
"requires": {
- "amdefine": "1.0.1"
+ "amdefine": ">=0.0.4"
}
},
"uglify-js": {
@@ -27426,8 +28495,8 @@
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz",
"integrity": "sha1-puAqcNg5eSuXgEiLe4sYTAlcmcc=",
"requires": {
- "optimist": "0.3.7",
- "source-map": "0.1.43"
+ "optimist": "~0.3.5",
+ "source-map": "~0.1.7"
}
}
}
@@ -27457,7 +28526,7 @@
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"requires": {
- "safe-buffer": "5.1.2"
+ "safe-buffer": "^5.0.1"
}
},
"tweetnacl": {
@@ -27471,7 +28540,7 @@
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
"requires": {
- "prelude-ls": "1.1.2"
+ "prelude-ls": "~1.1.2"
}
},
"type-is": {
@@ -27480,14 +28549,9 @@
"integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
"requires": {
"media-typer": "0.3.0",
- "mime-types": "2.1.18"
+ "mime-types": "~2.1.18"
}
},
- "typedarray": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
- },
"ua-parser-js": {
"version": "0.7.18",
"resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.18.tgz",
@@ -27498,8 +28562,8 @@
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.2.tgz",
"integrity": "sha512-/kVQDzwiE9Vy7Y63eMkMozF4jIt0C2+xHctF9YpqNWdE/NLOuMurshkpoYGUlAbeYhACPv0HJPIHJul0Ak4/uw==",
"requires": {
- "commander": "2.15.1",
- "source-map": "0.6.1"
+ "commander": "~2.15.0",
+ "source-map": "~0.6.1"
},
"dependencies": {
"commander": {
@@ -27514,19 +28578,6 @@
}
}
},
- "uglify-to-browserify": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
- "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc="
- },
- "uncontrollable": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-4.1.0.tgz",
- "integrity": "sha1-4DWCkSUuGGUiLZCTmxny9J+Bwak=",
- "requires": {
- "invariant": "2.2.4"
- }
- },
"underscore": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
@@ -27547,25 +28598,12 @@
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
},
- "upper-case": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
- "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg="
- },
- "upper-case-first": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz",
- "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=",
- "requires": {
- "upper-case": "1.1.3"
- }
- },
"uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
"requires": {
- "punycode": "2.1.1"
+ "punycode": "^2.1.0"
},
"dependencies": {
"punycode": {
@@ -27601,8 +28639,8 @@
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.1.tgz",
"integrity": "sha512-x95Td74QcvICAA0+qERaVkRpTGKyBHHYdwL2LXZm5t/gBtCB9KQSO/0zQgSTYEV1p0WcvSg79TLNPSvd5IDJMQ==",
"requires": {
- "querystringify": "2.0.0",
- "requires-port": "1.0.0"
+ "querystringify": "^2.0.0",
+ "requires-port": "^1.0.0"
}
},
"user-home": {
@@ -27610,15 +28648,7 @@
"resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
"integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=",
"requires": {
- "os-homedir": "1.0.2"
- }
- },
- "util": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/util/-/util-0.11.0.tgz",
- "integrity": "sha512-5n12uMzKCjvB2HPFHnbQSjaqAa98L5iIXmHrZCLavuZVe0qe/SJGbDGWlpaHk5lnBkWRDO+dRu1/PgmUYKPPTw==",
- "requires": {
- "inherits": "2.0.3"
+ "os-homedir": "^1.0.0"
}
},
"util-deprecate": {
@@ -27626,15 +28656,6 @@
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
- "util.promisify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
- "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
- "requires": {
- "define-properties": "1.1.3",
- "object.getownpropertydescriptors": "2.0.3"
- }
- },
"utila": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
@@ -27655,15 +28676,10 @@
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz",
"integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==",
"requires": {
- "spdx-correct": "3.0.0",
- "spdx-expression-parse": "3.0.0"
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
}
},
- "value-equal": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
- "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw=="
- },
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
@@ -27679,9 +28695,9 @@
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"requires": {
- "assert-plus": "1.0.0",
+ "assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
- "extsprintf": "1.3.0"
+ "extsprintf": "^1.2.0"
},
"dependencies": {
"assert-plus": {
@@ -27705,11 +28721,11 @@
"integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w="
},
"warning": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz",
- "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE=",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
+ "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
"requires": {
- "loose-envify": "1.3.1"
+ "loose-envify": "^1.0.0"
}
},
"watchpack": {
@@ -27717,9 +28733,9 @@
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-0.2.9.tgz",
"integrity": "sha1-Yuqkq15bo1/fwBgnVibjwPXj+ws=",
"requires": {
- "async": "0.9.2",
- "chokidar": "1.7.0",
- "graceful-fs": "4.1.11"
+ "async": "^0.9.0",
+ "chokidar": "^1.0.0",
+ "graceful-fs": "^4.1.2"
},
"dependencies": {
"async": {
@@ -27734,21 +28750,21 @@
"resolved": "https://registry.npmjs.org/webpack/-/webpack-1.15.0.tgz",
"integrity": "sha1-T/MfU9sDM55VFkqdRo7gMklo/pg=",
"requires": {
- "acorn": "3.3.0",
- "async": "1.5.2",
- "clone": "1.0.4",
- "enhanced-resolve": "0.9.1",
- "interpret": "0.6.6",
- "loader-utils": "0.2.17",
- "memory-fs": "0.3.0",
- "mkdirp": "0.5.1",
- "node-libs-browser": "0.7.0",
- "optimist": "0.6.1",
- "supports-color": "3.2.3",
- "tapable": "0.1.10",
- "uglify-js": "2.7.5",
- "watchpack": "0.2.9",
- "webpack-core": "0.6.9"
+ "acorn": "^3.0.0",
+ "async": "^1.3.0",
+ "clone": "^1.0.2",
+ "enhanced-resolve": "~0.9.0",
+ "interpret": "^0.6.4",
+ "loader-utils": "^0.2.11",
+ "memory-fs": "~0.3.0",
+ "mkdirp": "~0.5.0",
+ "node-libs-browser": "^0.7.0",
+ "optimist": "~0.6.0",
+ "supports-color": "^3.1.0",
+ "tapable": "~0.1.8",
+ "uglify-js": "~2.7.3",
+ "watchpack": "^0.2.1",
+ "webpack-core": "~0.6.9"
},
"dependencies": {
"acorn": {
@@ -27766,8 +28782,8 @@
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
"requires": {
- "minimist": "0.0.8",
- "wordwrap": "0.0.3"
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
}
},
"source-map": {
@@ -27780,7 +28796,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
"integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
"requires": {
- "has-flag": "1.0.0"
+ "has-flag": "^1.0.0"
}
},
"uglify-js": {
@@ -27788,10 +28804,9 @@
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz",
"integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=",
"requires": {
- "async": "0.2.10",
- "source-map": "0.5.7",
- "uglify-to-browserify": "1.0.2",
- "yargs": "3.10.0"
+ "async": "~0.2.6",
+ "source-map": "~0.5.1",
+ "uglify-to-browserify": "~1.0.0"
},
"dependencies": {
"async": {
@@ -27808,8 +28823,8 @@
"resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz",
"integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=",
"requires": {
- "source-list-map": "0.1.8",
- "source-map": "0.4.4"
+ "source-list-map": "~0.1.7",
+ "source-map": "~0.4.1"
}
},
"webpack-dev-middleware": {
@@ -27817,11 +28832,11 @@
"resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz",
"integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==",
"requires": {
- "memory-fs": "0.4.1",
- "mime": "1.6.0",
- "path-is-absolute": "1.0.1",
- "range-parser": "1.2.0",
- "time-stamp": "2.0.0"
+ "memory-fs": "~0.4.1",
+ "mime": "^1.5.0",
+ "path-is-absolute": "^1.0.0",
+ "range-parser": "^1.0.3",
+ "time-stamp": "^2.0.0"
},
"dependencies": {
"memory-fs": {
@@ -27829,8 +28844,8 @@
"resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz",
"integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=",
"requires": {
- "errno": "0.1.7",
- "readable-stream": "2.3.6"
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
}
}
}
@@ -27840,19 +28855,19 @@
"resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-1.16.5.tgz",
"integrity": "sha1-DL1fLSrI1OWTqs1clwLnu9XlmJI=",
"requires": {
- "compression": "1.7.2",
- "connect-history-api-fallback": "1.5.0",
- "express": "4.16.3",
- "http-proxy-middleware": "0.17.4",
+ "compression": "^1.5.2",
+ "connect-history-api-fallback": "^1.3.0",
+ "express": "^4.13.3",
+ "http-proxy-middleware": "~0.17.1",
"open": "0.0.5",
- "optimist": "0.6.1",
- "serve-index": "1.9.1",
- "sockjs": "0.3.19",
- "sockjs-client": "1.1.5",
- "stream-cache": "0.0.2",
- "strip-ansi": "3.0.1",
- "supports-color": "3.2.3",
- "webpack-dev-middleware": "1.12.2"
+ "optimist": "~0.6.1",
+ "serve-index": "^1.7.2",
+ "sockjs": "^0.3.15",
+ "sockjs-client": "^1.0.3",
+ "stream-cache": "~0.0.1",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^3.1.1",
+ "webpack-dev-middleware": "^1.10.2"
},
"dependencies": {
"optimist": {
@@ -27860,8 +28875,8 @@
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
"requires": {
- "minimist": "0.0.8",
- "wordwrap": "0.0.3"
+ "minimist": "~0.0.1",
+ "wordwrap": "~0.0.2"
}
},
"supports-color": {
@@ -27869,7 +28884,7 @@
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
"integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
"requires": {
- "has-flag": "1.0.0"
+ "has-flag": "^1.0.0"
}
}
}
@@ -27879,11 +28894,11 @@
"resolved": "https://registry.npmjs.org/webpack-s3-plugin/-/webpack-s3-plugin-0.6.7.tgz",
"integrity": "sha1-ABLVqFLwPYmz0gj8I3dA6K0iAyA=",
"requires": {
- "aws-sdk": "2.0.31",
- "cdnizer": "1.1.6",
- "lodash": "4.17.10",
- "progress": "1.1.8",
- "s3": "4.4.0"
+ "aws-sdk": "~2.0.31",
+ "cdnizer": "^1.1.5",
+ "lodash": "^4.5.0",
+ "progress": "^1.1.8",
+ "s3": "^4.4.0"
}
},
"websocket-driver": {
@@ -27891,8 +28906,8 @@
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
"integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
"requires": {
- "http-parser-js": "0.4.13",
- "websocket-extensions": "0.1.3"
+ "http-parser-js": ">=0.4.0",
+ "websocket-extensions": ">=0.1.1"
}
},
"websocket-extensions": {
@@ -27915,7 +28930,7 @@
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"requires": {
- "isexe": "2.0.0"
+ "isexe": "^2.0.0"
}
},
"which-module": {
@@ -27928,7 +28943,7 @@
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"requires": {
- "string-width": "1.0.2"
+ "string-width": "^1.0.2 || 2"
}
},
"winchan": {
@@ -27936,18 +28951,13 @@
"resolved": "https://registry.npmjs.org/winchan/-/winchan-0.2.0.tgz",
"integrity": "sha1-OGMCjn+XSw2hQS8oQXukJJcqvZQ="
},
- "window-size": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
- "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
- },
"with": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz",
"integrity": "sha1-7v0VTp550sjTQXtkeo8U2f7M4U4=",
"requires": {
- "acorn": "1.2.2",
- "acorn-globals": "1.0.9"
+ "acorn": "^1.0.1",
+ "acorn-globals": "^1.0.3"
},
"dependencies": {
"acorn": {
@@ -27967,8 +28977,8 @@
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
"integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
"requires": {
- "string-width": "1.0.2",
- "strip-ansi": "3.0.1"
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
}
},
"wrappy": {
@@ -27981,14 +28991,9 @@
"resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz",
"integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
"requires": {
- "mkdirp": "0.5.1"
+ "mkdirp": "^0.5.1"
}
},
- "xml-char-classes": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz",
- "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0="
- },
"xml2js": {
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.2.6.tgz",
@@ -28014,7 +29019,7 @@
"resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
"integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=",
"requires": {
- "object-keys": "0.4.0"
+ "object-keys": "~0.4.0"
},
"dependencies": {
"object-keys": {
@@ -28024,46 +29029,172 @@
}
}
},
- "y18n": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
+ "y18n": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
+ },
+ "yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ },
+ "yargs-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
+ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
+ "requires": {
+ "camelcase": "^3.0.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
+ "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
+ }
+ }
+ },
+ "zepto": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/zepto/-/zepto-0.0.4.tgz",
+ "integrity": "sha1-m7++DxwvVzvvqqz/6fVSzLP6J9I="
+ }
+ }
+ },
+ "tc-core-library-js": {
+ "version": "github:appirio-tech/tc-core-library-js#d16413db30b1eed21c0cf426e185bedb2329ddab",
+ "requires": {
+ "auth0-js": "9.13.0",
+ "axios": "0.12.0",
+ "bunyan": "1.8.12",
+ "jsonwebtoken": "8.5.1",
+ "jwks-rsa": "1.7.0",
+ "le_node": "1.8.0",
+ "lodash": "4.17.15",
+ "millisecond": "0.1.2",
+ "request": "2.88.2"
+ },
+ "dependencies": {
+ "auth0-js": {
+ "version": "9.13.0",
+ "resolved": "https://registry.npmjs.org/auth0-js/-/auth0-js-9.13.0.tgz",
+ "integrity": "sha512-f229fUta9vMr5SLnCIt+fBqsFffjKyWoBs2CuQXwJLMWB33+ljxJJfYZomHOVfynV7bFu1AhYlTaYpx/u2xlLA==",
+ "requires": {
+ "base64-js": "^1.3.0",
+ "idtoken-verifier": "^2.0.1",
+ "js-cookie": "^2.2.0",
+ "qs": "^6.7.0",
+ "superagent": "^3.8.3",
+ "url-join": "^4.0.1",
+ "winchan": "^0.2.2"
+ }
+ },
+ "winchan": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/winchan/-/winchan-0.2.2.tgz",
+ "integrity": "sha512-pvN+IFAbRP74n/6mc6phNyCH8oVkzXsto4KCHPJ2AScniAnA1AmeLI03I2BzjePpaClGSI4GUMowzsD3qz5PRQ=="
+ }
+ }
+ },
+ "tc-ui": {
+ "version": "git+https://github.com/appirio-tech/tc-ui.git#e577a0e704136f1e9ecce92ce4c0626aab932691",
+ "requires": {
+ "classnames": "2.2.6",
+ "lodash": "4.17.15",
+ "moment": "2.24.0",
+ "node-neat": "1.7.2",
+ "react": "0.14.9",
+ "react-datetime": "2.16.3",
+ "react-dom": "0.14.9",
+ "react-dropzone": "3.13.4",
+ "react-redux": "4.4.10",
+ "react-router": "2.8.1",
+ "react-select": "0.9.1",
+ "redux": "3.7.2"
+ },
+ "dependencies": {
+ "history": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/history/-/history-2.1.2.tgz",
+ "integrity": "sha1-SqLeiXoOSGfkU5hDvm7Nsphr/ew=",
+ "requires": {
+ "deep-equal": "^1.0.0",
+ "invariant": "^2.0.0",
+ "query-string": "^3.0.0",
+ "warning": "^2.0.0"
+ },
+ "dependencies": {
+ "warning": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-2.1.0.tgz",
+ "integrity": "sha1-ISINnGOvx3qMkhEeARr3Bc4MaQE=",
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
+ }
+ }
+ },
+ "query-string": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/query-string/-/query-string-3.0.3.tgz",
+ "integrity": "sha1-ri4UtNBQcdTpuetIc8NbDc1C5jg=",
+ "requires": {
+ "strict-uri-encode": "^1.0.0"
+ }
+ },
+ "react": {
+ "version": "0.14.9",
+ "resolved": "https://registry.npmjs.org/react/-/react-0.14.9.tgz",
+ "integrity": "sha1-kRCmSXxJ1EuhwO3TF67CnC4NkdE=",
+ "requires": {
+ "envify": "^3.0.0",
+ "fbjs": "^0.6.1"
+ }
},
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ "react-dom": {
+ "version": "0.14.9",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-0.14.9.tgz",
+ "integrity": "sha1-BQZKPc8PsYgKOyv8nVjFXY2fYpM="
},
- "yargs": {
- "version": "3.10.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
- "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
+ "react-redux": {
+ "version": "4.4.10",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.10.tgz",
+ "integrity": "sha512-tjL0Bmpkj75Td0k+lXlF8Fc8a9GuXFv/3ahUOCXExWs/jhsKiQeTffdH0j5byejCGCRL4tvGFYlrwBF1X/Aujg==",
"requires": {
- "camelcase": "1.2.1",
- "cliui": "2.1.0",
- "decamelize": "1.2.0",
- "window-size": "0.1.0"
+ "create-react-class": "^15.5.1",
+ "hoist-non-react-statics": "^3.3.0",
+ "invariant": "^2.0.0",
+ "lodash": "^4.17.11",
+ "loose-envify": "^1.4.0",
+ "prop-types": "^15.7.2"
}
},
- "yargs-parser": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
- "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
- "requires": {
- "camelcase": "3.0.0"
+ "react-router": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-2.8.1.tgz",
+ "integrity": "sha1-c+lJH2zrMW0Pd5gpCBhj43juTtc=",
+ "requires": {
+ "history": "^2.1.2",
+ "hoist-non-react-statics": "^1.2.0",
+ "invariant": "^2.2.1",
+ "loose-envify": "^1.2.0",
+ "warning": "^3.0.0"
},
"dependencies": {
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
+ "hoist-non-react-statics": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-1.2.0.tgz",
+ "integrity": "sha1-qkSM8JhtVcxAdzsXF0t90GbLfPs="
}
}
},
- "zepto": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/zepto/-/zepto-0.0.4.tgz",
- "integrity": "sha1-m7++DxwvVzvvqqz/6fVSzLP6J9I="
+ "warning": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz",
+ "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=",
+ "requires": {
+ "loose-envify": "^1.0.0"
+ }
}
}
},
@@ -28074,20 +29205,20 @@
"dev": true
},
"terser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-4.2.1.tgz",
- "integrity": "sha512-cGbc5utAcX4a9+2GGVX4DsenG6v0x3glnDi5hx8816X1McEAwPlPgRtXPJzSBsbpILxZ8MQMT0KvArLuE0HP5A==",
+ "version": "4.6.7",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.7.tgz",
+ "integrity": "sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g==",
"dev": true,
"requires": {
- "commander": "2.20.0",
+ "commander": "2.20.3",
"source-map": "0.6.1",
- "source-map-support": "0.5.13"
+ "source-map-support": "0.5.16"
},
"dependencies": {
"source-map-support": {
- "version": "0.5.13",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
- "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+ "version": "0.5.16",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz",
+ "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==",
"dev": true,
"requires": {
"buffer-from": "1.1.1",
@@ -28097,18 +29228,18 @@
}
},
"terser-webpack-plugin": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz",
- "integrity": "sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==",
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz",
+ "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==",
"dev": true,
"requires": {
- "cacache": "12.0.3",
+ "cacache": "12.0.4",
"find-cache-dir": "2.1.0",
"is-wsl": "1.1.0",
"schema-utils": "1.0.0",
- "serialize-javascript": "1.8.0",
+ "serialize-javascript": "2.1.2",
"source-map": "0.6.1",
- "terser": "4.2.1",
+ "terser": "4.6.7",
"webpack-sources": "1.4.3",
"worker-farm": "1.7.0"
},
@@ -28154,9 +29285,9 @@
}
},
"p-limit": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
- "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+ "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
"dev": true,
"requires": {
"p-try": "2.2.0"
@@ -28168,7 +29299,7 @@
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
- "p-limit": "2.2.1"
+ "p-limit": "2.2.2"
}
},
"p-try": {
@@ -28198,7 +29329,7 @@
"integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
"dev": true,
"requires": {
- "ajv": "6.10.2",
+ "ajv": "6.12.0",
"ajv-errors": "1.0.1",
"ajv-keywords": "3.4.1"
}
@@ -28208,6 +29339,12 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true
+ },
+ "serialize-javascript": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz",
+ "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==",
+ "dev": true
}
}
},
@@ -28240,7 +29377,7 @@
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
+ "graceful-fs": "4.2.3",
"parse-json": "2.2.0",
"pify": "2.3.0",
"pinkie-promise": "2.0.1",
@@ -28262,7 +29399,7 @@
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
+ "graceful-fs": "4.2.3",
"pify": "2.3.0",
"pinkie-promise": "2.0.1"
}
@@ -28332,6 +29469,11 @@
}
}
},
+ "text-encoding": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/text-encoding/-/text-encoding-0.5.2.tgz",
+ "integrity": "sha1-hbRmCBnwiHd2CUZVUWkP6hN9gko="
+ },
"text-table": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
@@ -28347,8 +29489,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",
@@ -28356,7 +29497,7 @@
"integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
"dev": true,
"requires": {
- "readable-stream": "2.3.6",
+ "readable-stream": "2.3.7",
"xtend": "4.0.2"
},
"dependencies": {
@@ -28378,15 +29519,24 @@
}
},
"tiny-invariant": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.6.tgz",
- "integrity": "sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA=="
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz",
+ "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw=="
},
"tiny-warning": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
+ "title-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/title-case/-/title-case-1.1.2.tgz",
+ "integrity": "sha1-+uSmrlRr+iLQg6DuqRCkDRLtT1o=",
+ "requires": {
+ "sentence-case": "1.1.3",
+ "upper-case": "1.1.3"
+ }
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@@ -28501,20 +29651,20 @@
"command-line-usage": "5.0.5",
"compression": "1.7.4",
"config": "1.31.0",
- "cookie-parser": "1.4.4",
+ "cookie-parser": "1.4.5",
"express": "4.17.1",
- "helmet": "3.20.0",
+ "helmet": "3.22.0",
"lodash": "4.17.15",
"moment": "2.24.0",
- "morgan": "1.9.1",
+ "morgan": "1.10.0",
"node-forge": "0.7.6",
"prop-types": "15.7.2",
"raf": "3.4.1",
- "react": "16.9.0",
- "react-css-super-themr": "2.2.0",
- "react-dom": "16.9.0",
+ "react": "16.13.1",
+ "react-css-super-themr": "2.3.0",
+ "react-dom": "16.13.1",
"react-helmet": "5.2.1",
- "react-redux": "5.1.1",
+ "react-redux": "5.1.2",
"react-router-dom": "4.3.1",
"redux": "3.7.2",
"redux-actions": "2.6.5",
@@ -28523,9 +29673,9 @@
"redux-devtools-log-monitor": "1.4.0",
"redux-promise": "0.6.0",
"request-ip": "2.1.3",
- "serialize-javascript": "1.8.0",
+ "serialize-javascript": "1.9.1",
"serve-favicon": "2.5.0",
- "shortid": "2.2.14",
+ "shortid": "2.2.15",
"url-parse": "1.4.7"
},
"dependencies": {
@@ -28534,7 +29684,7 @@
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
"requires": {
- "core-js": "2.6.9",
+ "core-js": "2.6.11",
"regenerator-runtime": "0.11.1"
}
},
@@ -28546,17 +29696,25 @@
"json5": "1.0.1"
}
},
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "requires": {
+ "minimist": "1.2.5"
+ }
+ },
"react-redux": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.1.1.tgz",
- "integrity": "sha512-LE7Ned+cv5qe7tMV5BPYkGQ5Lpg8gzgItK07c67yHvJ8t0iaD9kPFPAli/mYkiyJYrs2pJgExR2ZgsGqlrOApg==",
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-5.1.2.tgz",
+ "integrity": "sha512-Ns1G0XXc8hDyH/OcBHOxNgQx9ayH3SPxBnFCOidGKSle8pKihysQw2rG/PmciUQRoclhVBO8HMhiRmGXnDja9Q==",
"requires": {
- "@babel/runtime": "7.5.5",
- "hoist-non-react-statics": "3.3.0",
+ "@babel/runtime": "7.9.2",
+ "hoist-non-react-statics": "3.3.2",
"invariant": "2.2.4",
"loose-envify": "1.4.0",
"prop-types": "15.7.2",
- "react-is": "16.9.0",
+ "react-is": "16.13.1",
"react-lifecycles-compat": "3.0.4"
}
},
@@ -28571,9 +29729,8 @@
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "dev": true,
"requires": {
- "psl": "1.3.0",
+ "psl": "1.8.0",
"punycode": "2.1.1"
}
},
@@ -28604,15 +29761,15 @@
"dev": true
},
"trim-trailing-lines": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.2.tgz",
- "integrity": "sha512-MUjYItdrqqj2zpcHFTkMa9WAv4JHTI6gnRQGPFLrt5L9a6tRMiDnIqYl8JBvu2d2Tc3lWJKQwlGCp0K8AvCM+Q==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz",
+ "integrity": "sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA==",
"dev": true
},
"trough": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.4.tgz",
- "integrity": "sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz",
+ "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==",
"dev": true
},
"true-case-path": {
@@ -28621,13 +29778,29 @@
"integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
"dev": true,
"requires": {
- "glob": "7.1.4"
+ "glob": "7.1.6"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "1.0.0",
+ "inflight": "1.0.6",
+ "inherits": "2.0.4",
+ "minimatch": "3.0.4",
+ "once": "1.4.0",
+ "path-is-absolute": "1.0.1"
+ }
+ }
}
},
"tslib": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
- "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
+ "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==",
"dev": true
},
"tty-browserify": {
@@ -28640,7 +29813,6 @@
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "dev": true,
"requires": {
"safe-buffer": "5.1.2"
}
@@ -28648,8 +29820,7 @@
"tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
- "dev": true
+ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
},
"type-check": {
"version": "0.3.2",
@@ -28666,44 +29837,66 @@
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"requires": {
"media-typer": "0.3.0",
- "mime-types": "2.1.24"
+ "mime-types": "2.1.26"
}
},
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
- "dev": true
+ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
},
"typical": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
"integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw=="
},
+ "ua-parser-js": {
+ "version": "0.7.21",
+ "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.21.tgz",
+ "integrity": "sha512-+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ=="
+ },
"uglify-js": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz",
- "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==",
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.1.tgz",
+ "integrity": "sha512-W7KxyzeaQmZvUFbGj4+YFshhVrMBGSg2IbcYAjGWGvx8DHvJMclbTDMpffdxFUGPBHjIytk7KJUR/KUXstUGDw==",
"dev": true,
"optional": true,
"requires": {
- "commander": "2.20.0",
+ "commander": "2.20.3",
"source-map": "0.6.1"
}
},
+ "uglify-to-browserify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
+ "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc="
+ },
+ "uncontrollable": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-4.1.0.tgz",
+ "integrity": "sha1-4DWCkSUuGGUiLZCTmxny9J+Bwak=",
+ "requires": {
+ "invariant": "2.2.4"
+ }
+ },
"underscore": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
"integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=",
"dev": true
},
+ "unfetch": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.1.0.tgz",
+ "integrity": "sha512-crP/n3eAPUJxZXM9T80/yv0YhkTEx2K1D3h7D1AJM6fzsWZrxdyRuLN0JH/dkZh1LNH8LxCnBzoPFCPbb2iGpg=="
+ },
"unherit": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.2.tgz",
- "integrity": "sha512-W3tMnpaMG7ZY6xe/moK04U9fBhi6wEiCYHUW5Mop/wQHf12+79EQGwxYejNdhEz2mkqkBlGwm7pxmgBKMVUj0w==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.3.tgz",
+ "integrity": "sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==",
"dev": true,
"requires": {
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"xtend": "4.0.2"
},
"dependencies": {
@@ -28715,6 +29908,34 @@
}
}
},
+ "unicode-canonical-property-names-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
+ "dev": true
+ },
+ "unicode-match-property-ecmascript": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
+ "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
+ "dev": true,
+ "requires": {
+ "unicode-canonical-property-names-ecmascript": "1.0.4",
+ "unicode-property-aliases-ecmascript": "1.1.0"
+ }
+ },
+ "unicode-match-property-value-ecmascript": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz",
+ "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==",
+ "dev": true
+ },
+ "unicode-property-aliases-ecmascript": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz",
+ "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==",
+ "dev": true
+ },
"unified": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/unified/-/unified-7.1.0.tgz",
@@ -28723,10 +29944,10 @@
"requires": {
"@types/unist": "2.0.3",
"@types/vfile": "3.0.2",
- "bail": "1.0.4",
+ "bail": "1.0.5",
"extend": "3.0.2",
"is-plain-obj": "1.1.0",
- "trough": "1.0.4",
+ "trough": "1.0.5",
"vfile": "3.0.1",
"x-is-string": "0.1.0"
}
@@ -28774,9 +29995,9 @@
}
},
"unist-util-find-all-after": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.4.tgz",
- "integrity": "sha512-CaxvMjTd+yF93BKLJvZnEfqdM7fgEACsIpQqz8vIj9CJnUb9VpyymFS3tg6TCtgrF7vfCJBF5jbT2Ox9CBRYRQ==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-1.0.5.tgz",
+ "integrity": "sha512-lWgIc3rrTMTlK1Y0hEuL+k+ApzFk78h+lsaa2gHf63Gp5Ww+mt11huDniuaoq1H+XMK2lIIjjPkncxXcDp3QDw==",
"dev": true,
"requires": {
"unist-util-is": "3.0.0"
@@ -28789,19 +30010,22 @@
"dev": true
},
"unist-util-remove-position": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.3.tgz",
- "integrity": "sha512-CtszTlOjP2sBGYc2zcKA/CvNdTdEs3ozbiJ63IPBxh8iZg42SCCb8m04f8z2+V1aSk5a7BxbZKEdoDjadmBkWA==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-1.1.4.tgz",
+ "integrity": "sha512-tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==",
"dev": true,
"requires": {
"unist-util-visit": "1.4.1"
}
},
"unist-util-stringify-position": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz",
- "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==",
- "dev": true
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz",
+ "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==",
+ "dev": true,
+ "requires": {
+ "@types/unist": "2.0.3"
+ }
},
"unist-util-visit": {
"version": "1.4.1",
@@ -28864,12 +30088,6 @@
"integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
"dev": true
},
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
- },
"isobject": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
@@ -28879,16 +30097,28 @@
}
},
"upath": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz",
- "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
"dev": true
},
+ "upper-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg="
+ },
+ "upper-case-first": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz",
+ "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=",
+ "requires": {
+ "upper-case": "1.1.3"
+ }
+ },
"uri-js": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
- "dev": true,
"requires": {
"punycode": "2.1.1"
}
@@ -28917,6 +30147,11 @@
}
}
},
+ "url-join": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz",
+ "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA=="
+ },
"url-parse": {
"version": "1.4.7",
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz",
@@ -28942,7 +30177,6 @@
"version": "0.10.3",
"resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
"integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
- "dev": true,
"requires": {
"inherits": "2.0.1"
},
@@ -28950,25 +30184,25 @@
"inherits": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
- "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
- "dev": true
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE="
}
}
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
- "dev": true
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"util.promisify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
- "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
+ "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
"dev": true,
"requires": {
"define-properties": "1.1.3",
- "object.getownpropertydescriptors": "2.0.3"
+ "es-abstract": "1.17.5",
+ "has-symbols": "1.0.1",
+ "object.getownpropertydescriptors": "2.1.0"
}
},
"utils-merge": {
@@ -28977,10 +30211,9 @@
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
},
"uuid": {
- "version": "3.3.3",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
- "integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==",
- "dev": true
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
},
"v8-compile-cache": {
"version": "2.0.3",
@@ -29008,9 +30241,9 @@
}
},
"value-equal": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-0.4.0.tgz",
- "integrity": "sha512-x+cYdNnaA3CxvMaTX0INdTCN8m8aF2uY9BvEqmxuYp8bL09cs/kWVQPVGcA35fMktdOsP69IgU7wFj/61dJHEw=="
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
+ "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw=="
},
"vary": {
"version": "1.1.2",
@@ -29018,16 +30251,15 @@
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
},
"vendors": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz",
- "integrity": "sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz",
+ "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==",
"dev": true
},
"verror": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "dev": true,
"requires": {
"assert-plus": "1.0.0",
"core-util-is": "1.0.2",
@@ -29040,48 +30272,64 @@
"integrity": "sha512-y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==",
"dev": true,
"requires": {
- "is-buffer": "2.0.3",
+ "is-buffer": "2.0.4",
"replace-ext": "1.0.0",
"unist-util-stringify-position": "1.1.2",
"vfile-message": "1.1.1"
},
"dependencies": {
"is-buffer": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
- "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
+ "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
+ "dev": true
+ },
+ "unist-util-stringify-position": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-1.1.2.tgz",
+ "integrity": "sha512-pNCVrk64LZv1kElr0N1wPiHEUoXNVFERp+mlTg/s9R5Lwg87f9bM/3sQB99w+N9D/qnM9ar3+AKDBwo/gm/iQQ==",
"dev": true
+ },
+ "vfile-message": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz",
+ "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==",
+ "dev": true,
+ "requires": {
+ "unist-util-stringify-position": "1.1.2"
+ }
}
}
},
"vfile-location": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.5.tgz",
- "integrity": "sha512-Pa1ey0OzYBkLPxPZI3d9E+S4BmvfVwNAAXrrqGbwTVXWaX2p9kM1zZ+n35UtVM06shmWKH4RPRN8KI80qE3wNQ==",
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-2.0.6.tgz",
+ "integrity": "sha512-sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==",
"dev": true
},
"vfile-message": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-1.1.1.tgz",
- "integrity": "sha512-1WmsopSGhWt5laNir+633LszXvZ+Z/lxveBf6yhGsqnQIhlhzooZae7zV6YVM1Sdkw68dtAW3ow0pOdPANugvA==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz",
+ "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==",
"dev": true,
"requires": {
- "unist-util-stringify-position": "1.1.2"
+ "@types/unist": "2.0.3",
+ "unist-util-stringify-position": "2.0.3"
}
},
"vm-browserify": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz",
- "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz",
+ "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==",
"dev": true
},
"w3c-hr-time": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz",
- "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
+ "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==",
"dev": true,
"requires": {
- "browser-process-hrtime": "0.1.3"
+ "browser-process-hrtime": "1.0.0"
}
},
"walk-back": {
@@ -29114,17 +30362,17 @@
"dev": true,
"requires": {
"exec-sh": "0.2.2",
- "minimist": "1.2.0"
+ "minimist": "1.2.5"
}
},
"watchpack": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz",
- "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==",
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz",
+ "integrity": "sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==",
"dev": true,
"requires": {
"chokidar": "2.1.8",
- "graceful-fs": "4.2.2",
+ "graceful-fs": "4.2.3",
"neo-async": "2.6.1"
},
"dependencies": {
@@ -29199,15 +30447,15 @@
"anymatch": "2.0.0",
"async-each": "1.0.3",
"braces": "2.3.2",
- "fsevents": "1.2.9",
+ "fsevents": "1.2.12",
"glob-parent": "3.1.0",
- "inherits": "2.0.3",
+ "inherits": "2.0.4",
"is-binary-path": "1.0.1",
"is-glob": "4.0.1",
"normalize-path": "3.0.0",
"path-is-absolute": "1.0.1",
"readdirp": "2.2.1",
- "upath": "1.1.2"
+ "upath": "1.2.0"
}
},
"debug": {
@@ -29397,7 +30645,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-data-descriptor": {
@@ -29406,7 +30654,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-descriptor": {
@@ -29417,7 +30665,7 @@
"requires": {
"is-accessor-descriptor": "1.0.0",
"is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-extglob": {
@@ -29462,9 +30710,9 @@
"dev": true
},
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
},
"micromatch": {
@@ -29480,7 +30728,7 @@
"extend-shallow": "3.0.2",
"extglob": "2.0.4",
"fragment-cache": "0.2.1",
- "kind-of": "6.0.2",
+ "kind-of": "6.0.3",
"nanomatch": "1.2.13",
"object.pick": "1.3.0",
"regex-not": "1.0.2",
@@ -29509,40 +30757,40 @@
"dev": true
},
"webpack": {
- "version": "4.39.2",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.39.2.tgz",
- "integrity": "sha512-AKgTfz3xPSsEibH00JfZ9sHXGUwIQ6eZ9tLN8+VLzachk1Cw2LVmy+4R7ZiwTa9cZZ15tzySjeMui/UnSCAZhA==",
+ "version": "4.42.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.42.1.tgz",
+ "integrity": "sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg==",
"dev": true,
"requires": {
- "@webassemblyjs/ast": "1.8.5",
- "@webassemblyjs/helper-module-context": "1.8.5",
- "@webassemblyjs/wasm-edit": "1.8.5",
- "@webassemblyjs/wasm-parser": "1.8.5",
- "acorn": "6.3.0",
- "ajv": "6.10.2",
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-module-context": "1.9.0",
+ "@webassemblyjs/wasm-edit": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0",
+ "acorn": "6.4.1",
+ "ajv": "6.12.0",
"ajv-keywords": "3.4.1",
"chrome-trace-event": "1.0.2",
- "enhanced-resolve": "4.1.0",
+ "enhanced-resolve": "4.1.1",
"eslint-scope": "4.0.3",
"json-parse-better-errors": "1.0.2",
"loader-runner": "2.4.0",
- "loader-utils": "1.2.3",
+ "loader-utils": "1.4.0",
"memory-fs": "0.4.1",
"micromatch": "3.1.10",
- "mkdirp": "0.5.1",
+ "mkdirp": "0.5.4",
"neo-async": "2.6.1",
"node-libs-browser": "2.2.1",
"schema-utils": "1.0.0",
"tapable": "1.1.3",
- "terser-webpack-plugin": "1.4.1",
- "watchpack": "1.6.0",
+ "terser-webpack-plugin": "1.4.3",
+ "watchpack": "1.6.1",
"webpack-sources": "1.4.3"
},
"dependencies": {
"acorn": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz",
- "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==",
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
+ "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==",
"dev": true
},
"arr-diff": {
@@ -29762,7 +31010,7 @@
"integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-data-descriptor": {
@@ -29771,7 +31019,7 @@
"integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dev": true,
"requires": {
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-descriptor": {
@@ -29782,7 +31030,7 @@
"requires": {
"is-accessor-descriptor": "1.0.0",
"is-data-descriptor": "1.0.0",
- "kind-of": "6.0.2"
+ "kind-of": "6.0.3"
}
},
"is-number": {
@@ -29812,9 +31060,9 @@
"dev": true
},
"kind-of": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
- "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true
},
"micromatch": {
@@ -29830,7 +31078,7 @@
"extend-shallow": "3.0.2",
"extglob": "2.0.4",
"fragment-cache": "0.2.1",
- "kind-of": "6.0.2",
+ "kind-of": "6.0.3",
"nanomatch": "1.2.13",
"object.pick": "1.3.0",
"regex-not": "1.0.2",
@@ -29850,7 +31098,7 @@
"integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==",
"dev": true,
"requires": {
- "ajv": "6.10.2",
+ "ajv": "6.12.0",
"ajv-errors": "1.0.1",
"ajv-keywords": "3.4.1"
}
@@ -29858,9 +31106,9 @@
}
},
"webpack-cli": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.7.tgz",
- "integrity": "sha512-OhTUCttAsr+IZSMVwGROGRHvT+QAs8H6/mHIl4SvhAwYywjiylYjpwybGx7WQ9Hkb45FhjtsymkwiRRbGJ1SZQ==",
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz",
+ "integrity": "sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==",
"dev": true,
"requires": {
"chalk": "2.4.2",
@@ -29912,19 +31160,21 @@
"which": "1.3.1"
}
},
- "execa": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
- "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
+ "emojis-list": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
+ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=",
+ "dev": true
+ },
+ "enhanced-resolve": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz",
+ "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==",
"dev": true,
"requires": {
- "cross-spawn": "6.0.5",
- "get-stream": "4.1.0",
- "is-stream": "1.1.0",
- "npm-run-path": "2.0.2",
- "p-finally": "1.0.0",
- "signal-exit": "3.0.2",
- "strip-eof": "1.0.0"
+ "graceful-fs": "4.2.3",
+ "memory-fs": "0.4.1",
+ "tapable": "1.1.3"
}
},
"find-up": {
@@ -29942,15 +31192,6 @@
"integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
"dev": true
},
- "get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
- "dev": true,
- "requires": {
- "pump": "3.0.0"
- }
- },
"import-local": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz",
@@ -29961,19 +31202,24 @@
"resolve-cwd": "2.0.0"
}
},
- "invert-kv": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
- "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
- "dev": true
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "1.2.5"
+ }
},
- "lcid": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
- "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+ "loader-utils": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz",
+ "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==",
"dev": true,
"requires": {
- "invert-kv": "2.0.0"
+ "big.js": "5.2.2",
+ "emojis-list": "2.1.0",
+ "json5": "1.0.1"
}
},
"locate-path": {
@@ -29986,38 +31232,10 @@
"path-exists": "3.0.0"
}
},
- "mem": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
- "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
- "dev": true,
- "requires": {
- "map-age-cleaner": "0.1.3",
- "mimic-fn": "2.1.0",
- "p-is-promise": "2.1.0"
- }
- },
- "mimic-fn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
- "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
- "dev": true
- },
- "os-locale": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
- "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
- "dev": true,
- "requires": {
- "execa": "1.0.0",
- "lcid": "2.0.0",
- "mem": "4.3.0"
- }
- },
"p-limit": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
- "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+ "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
"dev": true,
"requires": {
"p-try": "2.2.0"
@@ -30029,7 +31247,7 @@
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"dev": true,
"requires": {
- "p-limit": "2.2.1"
+ "p-limit": "2.2.2"
}
},
"p-try": {
@@ -30121,13 +31339,13 @@
"string-width": "3.1.0",
"which-module": "2.0.0",
"y18n": "4.0.0",
- "yargs-parser": "13.1.1"
+ "yargs-parser": "13.1.2"
}
},
"yargs-parser": {
- "version": "13.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
- "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
+ "version": "13.1.2",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
+ "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
"dev": true,
"requires": {
"camelcase": "5.3.1",
@@ -30137,13 +31355,14 @@
}
},
"webpack-dev-middleware": {
- "version": "3.7.0",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz",
- "integrity": "sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA==",
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz",
+ "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==",
"dev": true,
"requires": {
"memory-fs": "0.4.1",
"mime": "2.4.4",
+ "mkdirp": "0.5.4",
"range-parser": "1.2.1",
"webpack-log": "2.0.0"
},
@@ -30175,13 +31394,13 @@
"dev": true,
"requires": {
"ansi-colors": "3.2.4",
- "uuid": "3.3.3"
+ "uuid": "3.4.0"
}
},
"webpack-merge": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.1.tgz",
- "integrity": "sha512-4p8WQyS98bUJcCvFMbdGZyZmsKuWjWVnVHnAS3FFg0HDaRVrPbkivx2RYCre8UiemD67RsiFFLfn4JhLAin8Vw==",
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz",
+ "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==",
"dev": true,
"requires": {
"lodash": "4.17.15"
@@ -30269,10 +31488,21 @@
"resolved": "https://registry.npmjs.org/winchan/-/winchan-0.1.4.tgz",
"integrity": "sha1-iPoSQRzVQutiYBjDihlry7F5k7s="
},
+ "window-size": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
+ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
+ },
+ "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": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
"dev": true
},
"wordwrapjs": {
@@ -30335,8 +31565,7 @@
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
- "dev": true
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"write": {
"version": "0.2.1",
@@ -30344,7 +31573,7 @@
"integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=",
"dev": true,
"requires": {
- "mkdirp": "0.5.1"
+ "mkdirp": "0.5.4"
}
},
"write-file-atomic": {
@@ -30353,9 +31582,9 @@
"integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
"dev": true,
"requires": {
- "graceful-fs": "4.2.2",
+ "graceful-fs": "4.2.3",
"imurmurhash": "0.1.4",
- "signal-exit": "3.0.2"
+ "signal-exit": "3.0.3"
}
},
"ws": {
@@ -30374,9 +31603,14 @@
"dev": true
},
"x-xss-protection": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.2.0.tgz",
- "integrity": "sha512-xN0kV+8XfOQM2OPPBdEbGtbvJNNP1pvZR7sE6d44cjJFQG4OiGDdienPg5iOUGswBTiGbBvtYDURd30BMJwwqg=="
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/x-xss-protection/-/x-xss-protection-1.3.0.tgz",
+ "integrity": "sha512-kpyBI9TlVipZO4diReZMAHWtS0MMa/7Kgx8hwG/EuZLiA6sg4Ah/4TRdASHhRRN3boobzcYgFRUFSgHRge6Qhg=="
+ },
+ "xml-char-classes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz",
+ "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0="
},
"xml-name-validator": {
"version": "3.0.0",
@@ -30384,12 +31618,35 @@
"integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
"dev": true
},
+ "xml2js": {
+ "version": "0.4.23",
+ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz",
+ "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==",
+ "requires": {
+ "sax": "1.2.4",
+ "xmlbuilder": "11.0.1"
+ }
+ },
+ "xmlbuilder": {
+ "version": "11.0.1",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz",
+ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA=="
+ },
"xmlcreate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-1.0.2.tgz",
"integrity": "sha1-+mv3YqYKQT+z3Y9LA8WyaSONMI8=",
"dev": true
},
+ "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.9.2"
+ }
+ },
"xtend": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
@@ -30407,20 +31664,19 @@
"yallist": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
- "dev": true
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
},
"yargs": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz",
- "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==",
+ "version": "11.1.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.1.tgz",
+ "integrity": "sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==",
"dev": true,
"requires": {
"cliui": "4.1.0",
"decamelize": "1.2.0",
"find-up": "2.1.0",
"get-caller-file": "1.0.3",
- "os-locale": "2.1.0",
+ "os-locale": "3.1.0",
"require-directory": "2.1.1",
"require-main-filename": "1.0.1",
"set-blocking": "2.0.0",
diff --git a/package.json b/package.json
index 1b7dadfb..23688a72 100644
--- a/package.json
+++ b/package.json
@@ -22,16 +22,16 @@
},
"scripts": {
"build": "npm run clean && npm run build:dev && npm run build:prod",
- "build:dev": "NODE_ENV=development ./node_modules/.bin/webpack --env=development --progress --profile --colors --display-optimization-bailout",
+ "build:dev": "./node_modules/.bin/webpack --env=development --progress --profile --colors --display-optimization-bailout",
"build:dev:watch": "npm run clean && ./node_modules/.bin/webpack --env=development --progress --profile --colors --watch --display-optimization-bailout",
- "build:prod": "NODE_ENV=production ./node_modules/.bin/webpack --env=production --progress --profile --colors --display-optimization-bailout",
+ "build:prod": "./node_modules/.bin/webpack --env=production --progress --profile --colors --display-optimization-bailout",
"clean": "rimraf dist",
"jest": "jest --no-cache --maxWorkers=4 --config config/jest/default.js",
"lint": "npm run lint:js",
"lint:js": "./node_modules/.bin/eslint --ext .js,.jsx .",
"test": "npm run lint && npm run jest"
},
- "version": "0.10.0",
+ "version": "0.14.0",
"dependencies": {
"auth0-js": "^6.8.4",
"config": "^3.2.0",
@@ -49,6 +49,7 @@
"redux": "^3.7.2",
"redux-actions": "^2.4.0",
"tc-accounts": "https://github.com/appirio-tech/accounts-app.git#dev",
+ "tc-core-library-js": "appirio-tech/tc-core-library-js.git#v2.6",
"to-capital-case": "^1.0.0",
"topcoder-react-utils": "0.7.5"
},
diff --git a/src/actions/index.js b/src/actions/index.js
index 8b1a241b..b053ae50 100644
--- a/src/actions/index.js
+++ b/src/actions/index.js
@@ -13,6 +13,8 @@ import reviewOpportunityActions from './reviewOpportunity';
import lookupActions from './lookup';
import settingsActions from './settings';
import lookerActions from './looker';
+import memberSearchActions from './member-search';
+import notificationActions from './notifications';
export const actions = {
auth: authActions.auth,
@@ -30,6 +32,8 @@ export const actions = {
lookup: lookupActions.lookup,
settings: settingsActions.settings,
looker: lookerActions.looker,
+ memberSearch: memberSearchActions.memberSearch,
+ notifications: notificationActions.notifications,
};
export default undefined;
diff --git a/src/actions/lookup.js b/src/actions/lookup.js
index 350f2267..1ca05121 100644
--- a/src/actions/lookup.js
+++ b/src/actions/lookup.js
@@ -20,8 +20,13 @@ function getSkillTagsInit() {}
*/
function getSkillTagsDone() {
const params = {
- domain: 'SKILLS',
- status: 'APPROVED',
+ filter: {
+ domain: 'SKILLS',
+ status: 'APPROVED',
+ },
+ limit: {
+ limit: 1000,
+ },
};
return getService().getTags(params);
}
@@ -42,6 +47,23 @@ function getCountriesDone() {
return getService().getCountries();
}
+/**
+ * @static
+ * @desc Creates an action that signals beginning of getting all review types.
+ * @return {Action}
+ */
+function getReviewTypesInit() {}
+
+/**
+ * @static
+ * @desc Creates an action that gets all review types.
+ * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.
+ * @return {Action}
+ */
+function getReviewTypesDone(tokenV3) {
+ return getService(tokenV3).getReviewTypes();
+}
+
/**
* @static
* @desc Creates an action that signals beginning of getting all countries api version 5.
@@ -65,6 +87,8 @@ export default createActions({
GET_SKILL_TAGS_DONE: getSkillTagsDone,
GET_COUNTRIES_INIT: getCountriesInit,
GET_COUNTRIES_DONE: getCountriesDone,
+ GET_REVIEW_TYPES_INIT: getReviewTypesInit,
+ GET_REVIEW_TYPES_DONE: getReviewTypesDone,
GET_ALL_COUNTRIES_INIT: getAllCountriesInit,
GET_ALL_COUNTRIES_DONE: getAllCountriesDone,
},
diff --git a/src/actions/member-search.js b/src/actions/member-search.js
new file mode 100644
index 00000000..7b5694bd
--- /dev/null
+++ b/src/actions/member-search.js
@@ -0,0 +1,80 @@
+/**
+ * @module "actions.member-search"
+ * @desc Actions for management of members search.
+ */
+import _ from 'lodash';
+import { createActions } from 'redux-actions';
+import { getService } from '../services/member-search';
+
+/**
+ * @desc Creates an action that fetchs the members data for a search term, and
+ * adds result to the store cumulatively.
+ * @param {String} searchTerm the search term
+ * @param {Number} offset the number of records to skip
+ * @param {Number} limit the maximum number of the return results
+ * @return {Action}
+ */
+function loadMemberSearch(searchTerm, offset = 0, limit = 10) {
+ return getService().getUsernameMatches(searchTerm, offset, limit);
+}
+
+/**
+ * @static
+ * @desc Creates an action that fetchs the members data for a search tag, and
+ * adds result to the store.
+ * @param {Object} tag the tag
+ * @return {Action}
+ */
+function loadMemberSearchForTag(tag) {
+ return getService().getTopMembers(tag);
+}
+
+/**
+ * @static
+ * @desc Creates an action that check if the term is a tag name. If it is unable to check,
+ * or invalid data returned then resets the members data and search terms data in the store
+ * to intial values.
+ * @param {String} searchTerm the search term
+ * @return {Action}
+ */
+function checkIfSearchTermIsATag(searchTerm) {
+ return getService().checkIfSearchTermIsATag(searchTerm);
+}
+
+/**
+ * @static
+ * @desc Creates an action that saves the current search term.
+ * @param {String} searchTerm the search term
+ * @return {Action}
+ */
+function setSearchTerm(searchTerm) {
+ return {
+ previousSearchTerm: searchTerm,
+ };
+}
+
+/**
+ * @static
+ * @desc Creates an action that saves the current search tag.
+ * @param {Object} searchTag the search tag
+ * @return {Action}
+ */
+function setSearchTag(searchTag) {
+ return {
+ searchTermTag: searchTag,
+ };
+}
+
+export default createActions({
+ MEMBER_SEARCH: {
+ USERNAME_SEARCH_SUCCESS: loadMemberSearch,
+ CHECK_IF_SEARCH_TERM_IS_A_TAG: checkIfSearchTermIsATag,
+ TOP_MEMBER_SEARCH_SUCCESS: loadMemberSearchForTag,
+ CLEAR_MEMBER_SEARCH: _.noop,
+ LOAD_MORE_USERNAMES: _.noop,
+ MEMBER_SEARCH_SUCCESS: _.noop,
+ SET_SEARCH_TERM: setSearchTerm,
+ SET_SEARCH_TAG: setSearchTag,
+ RESET_SEARCH_TERM: _.noop,
+ },
+});
diff --git a/src/actions/members.js b/src/actions/members.js
index cd4bfa90..45b9606a 100644
--- a/src/actions/members.js
+++ b/src/actions/members.js
@@ -187,8 +187,8 @@ async function getStatsHistoryInit(handle, uuid) {
* @param {String} tokenV3 v3 auth token.
* @return {Action}
*/
-async function getStatsHistoryDone(handle, uuid, tokenV3) {
- const data = await getService(tokenV3).getStatsHistory(handle);
+async function getStatsHistoryDone(handle, groupIds, uuid, tokenV3) {
+ const data = await getService(tokenV3).getStatsHistory(handle, groupIds);
return { data, handle, uuid };
}
diff --git a/src/actions/notifications.js b/src/actions/notifications.js
new file mode 100644
index 00000000..d7730ef3
--- /dev/null
+++ b/src/actions/notifications.js
@@ -0,0 +1,173 @@
+/**
+ * @module "actions.notifications"
+ * @desc Actions related to notifications data.
+ */
+
+import _ from 'lodash';
+import { createActions } from 'redux-actions';
+import { getService } from '../services/notifications';
+
+/**
+ * TODO: We will need to change this based on API and
+ * frontend mapping we need later.
+ */
+function processData(data) {
+ const retData = _.map(data, (item) => {
+ const object = {};
+ object.id = item.id;
+ object.sourceId = item.contents.id;
+ object.sourceName = item.contents.name || item.contents.title;
+ object.eventType = item.type;
+ object.isRead = item.read;
+ object.isSeen = item.seen;
+ object.contents = item.contents.message || item.contents.title;
+ object.version = item.version;
+ object.date = item.createdAt;
+ return object;
+ });
+ return retData;
+}
+
+/**
+ * @static
+ * @desc Creates an action that signals beginning of notifications
+ * loading.
+ * @return {Action}
+ */
+function getNotificationsInit() {
+ return { };
+}
+
+/**
+ * @static
+ * @desc Creates an action that loads member achievements.
+ * @param {String} tokenV3 v3 auth token.
+ * @return {Action}
+ */
+async function getNotificationsDone(tokenV3) {
+ let data;
+ try {
+ data = await getService(tokenV3).getNotifications();
+ } catch (e) {
+ data = [];
+ }
+ return processData(data.items || []);
+}
+
+/**
+ * @static
+ * @desc Creates an action that signals beginning of mark notification as read
+ * loading.
+ * @return {Action}
+ */
+function markNotificationAsReadInit() {
+ return { };
+}
+
+/**
+ * @static
+ * @desc Creates an action that marks notification as read.
+ * @param {String} tokenV3 v3 auth token.
+ * @return {Action}
+ */
+async function markNotificationAsReadDone(item, tokenV3) {
+ try {
+ await getService(tokenV3).markNotificationAsRead(item.id);
+ } catch (e) {
+ return e;
+ }
+ return item;
+}
+
+/**
+ * @static
+ * @desc Creates an action that signals beginning of mark all notification as read
+ * loading.
+ * @return {Action}
+ */
+function markAllNotificationAsReadInit() {
+ return { };
+}
+
+/**
+ * @static
+ * @desc Creates an action that marks all notification as read.
+ * @param {String} tokenV3 v3 auth token.
+ * @return {Action}
+ */
+async function markAllNotificationAsReadDone(tokenV3) {
+ try {
+ await getService(tokenV3).markAllNotificationAsRead();
+ } catch (e) {
+ return e;
+ }
+ return true;
+}
+
+
+/**
+ * @static
+ * @desc Creates an action that signals beginning of mark all notification as seen
+ * loading.
+ * @return {Action}
+ */
+function markAllNotificationAsSeenInit() {
+ return { };
+}
+
+/**
+ * @static
+ * @desc Creates an action that marks all notification as seen.
+ * @param {String} tokenV3 v3 auth token.
+ * @return {Action}
+ */
+async function markAllNotificationAsSeenDone(items, tokenV3) {
+ try {
+ await getService(tokenV3).markAllNotificationAsSeen(items);
+ } catch (e) {
+ return e;
+ }
+ return items;
+}
+
+
+/**
+ * @static
+ * @desc Creates an action that signals beginning of dismiss all challenge notifications
+ * loading.
+ * @return {Action}
+ */
+function dismissChallengeNotificationsInit() {
+ return { };
+}
+
+/**
+ * @static
+ * @desc Creates an action that dismisses all challenge notifications
+ * @param {String} tokenV3 v3 auth token.
+ * @return {Action}
+ */
+async function dismissChallengeNotificationsDone(challengeId, tokenV3) {
+ try {
+ await getService(tokenV3).dismissChallengeNotifications(challengeId);
+ } catch (e) {
+ return e;
+ }
+ return true;
+}
+
+
+export default createActions({
+ NOTIFICATIONS: {
+ GET_NOTIFICATIONS_INIT: getNotificationsInit,
+ GET_NOTIFICATIONS_DONE: getNotificationsDone,
+ MARK_NOTIFICATION_AS_READ_INIT: markNotificationAsReadInit,
+ MARK_NOTIFICATION_AS_READ_DONE: markNotificationAsReadDone,
+ MARK_ALL_NOTIFICATION_AS_READ_INIT: markAllNotificationAsReadInit,
+ MARK_ALL_NOTIFICATION_AS_READ_DONE: markAllNotificationAsReadDone,
+ MARK_ALL_NOTIFICATION_AS_SEEN_INIT: markAllNotificationAsSeenInit,
+ MARK_ALL_NOTIFICATION_AS_SEEN_DONE: markAllNotificationAsSeenDone,
+ DISMISS_CHALLENGE_NOTIFICATIONS_INIT: dismissChallengeNotificationsInit,
+ DISMISS_CHALLENGE_NOTIFICATIONS_DONE: dismissChallengeNotificationsDone,
+ },
+});
diff --git a/src/reducers/index.js b/src/reducers/index.js
index 15fd144c..e016d5b0 100644
--- a/src/reducers/index.js
+++ b/src/reducers/index.js
@@ -12,6 +12,7 @@ import errors, { factory as errorsFactory } from './errors';
import challenge, { factory as challengeFactory } from './challenge';
import profile, { factory as profileFactory } from './profile';
import members, { factory as membersFactory } from './members';
+import notifications, { factory as notificationsFactory } from './notifications';
import lookup, { factory as lookupFactory } from './lookup';
import memberTasks, { factory as memberTasksFactory } from './member-tasks';
import reviewOpportunity, { factory as reviewOpportunityFactory }
@@ -22,7 +23,7 @@ import settings, { factory as settingsFactory }
from './settings';
import looker, { factory as lookerFactory }
from './looker';
-
+import memberSearch, { factory as memberSearchFactory } from './member-search';
export function factory(options) {
return redux.resolveReducers({
@@ -41,6 +42,8 @@ export function factory(options) {
mySubmissionsManagement: mySubmissionsManagementFactory(options),
settings: settingsFactory(options),
looker: lookerFactory(options),
+ memberSearch: memberSearchFactory(options),
+ notifications: notificationsFactory(options),
});
}
@@ -60,4 +63,6 @@ export default ({
mySubmissionsManagement,
settings,
looker,
+ memberSearch,
+ notifications,
});
diff --git a/src/reducers/lookup.js b/src/reducers/lookup.js
index a8e0670e..f8aba4bf 100644
--- a/src/reducers/lookup.js
+++ b/src/reducers/lookup.js
@@ -48,6 +48,25 @@ function onGetCountriesDone(state, { payload, error }) {
});
}
+/**
+ * Handles LOOKUP/GET_REVIEW_TYPES_DONE action.
+ * @param {Object} state
+ * @param {Object} action Payload will be JSON from api call
+ * @return {Object} New state
+ */
+function onGetReviewTypesDone(state, { payload, error }) {
+ if (error) {
+ logger.error('Failed to get review types', payload);
+ return { ...state, loadingReviewTypesError: true };
+ }
+
+ return ({
+ ...state,
+ loadingReviewTypesError: false,
+ reviewTypes: payload,
+ });
+}
+
/**
* Handles LOOKUP/GET_ALL_COUNTRIES_DONE action.
* @param {Object} state
@@ -79,12 +98,15 @@ function create(initialState = {}) {
[a.getSkillTagsDone]: onGetSkillTagsDone,
[a.getCountriesInit]: state => state,
[a.getCountriesDone]: onGetCountriesDone,
+ [a.getReviewTypesInit]: state => state,
+ [a.getReviewTypesDone]: onGetReviewTypesDone,
[a.getAllCountriesInit]: state => state,
[a.getAllCountriesDone]: onGetAllCountriesDone,
}, _.defaults(initialState, {
skillTags: [],
countries: [],
allCountries: [],
+ reviewTypes: [],
}));
}
diff --git a/src/reducers/member-search.js b/src/reducers/member-search.js
new file mode 100644
index 00000000..bc57ae3b
--- /dev/null
+++ b/src/reducers/member-search.js
@@ -0,0 +1,245 @@
+/**
+ * @module "reducers.member-search"
+ * @desc Reducer for {@link module:actions.member-search} actions.
+ *
+ * State segment managed by this reducer has the following structure:
+ * @param {Boolean} pageLoaded `true` if loading members data for a search term is done
+ * `false`if starting loading members data for a search term,
+ * or loading failed
+ * @param {Boolean} loadingMore `true` if request for loading more data is in progress;
+ * otherwise `false`
+ * @param {Boolean} error `true` if failed to load member data; otherwise `false`
+ * @param {Number} totalCount the number of matched members for a search term
+ * @param {Boolean} moreMatchesAvailable `true` if there are more matched members, for
+ * a search term, to load; otherwise `false`
+ * @param {Array<{}>} usernameMatches contains loaded members data for a search term
+ * @param {Array<{}>} topMembers contains loaded members data for a search tag
+ * @param {String} previousSearchTerm the current search term
+ * @param {Object} searchTermTag the current search tag data if the search term is a tag name;
+ * otherwise `null`
+ */
+import _ from 'lodash';
+import { redux } from 'topcoder-react-utils';
+import actions from '../actions/member-search';
+import { fireErrorMessage } from '../utils/errors';
+
+/**
+ * @private
+ * Returns the new state with the intial members data.
+ */
+function memberSearchFailure(state) {
+ return Object.assign({}, state, {
+ loadingMore: false,
+ error: true,
+ totalCount: 0,
+ usernameMatches: [],
+ topMembers: [],
+ });
+}
+
+/**
+ * @private
+ * Returns the new state with the intial search terms data.
+ */
+function resetSearchTerm(state) {
+ return Object.assign({}, state, {
+ pageLoaded: false,
+ previousSearchTerm: null,
+ searchTermTag: null,
+ });
+}
+
+/**
+ * @private
+ * Returns the new state with the intial members and search terms data.
+ */
+function memberSearchFailureAndResetSearchTerm(state) {
+ let newState = state;
+ newState = memberSearchFailure(newState);
+ newState = resetSearchTerm(newState);
+ return newState;
+}
+
+/**
+ * Handles the actual results of loading members data for a search term cumulatively,
+ * and clear members data on request failure.
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state.
+ */
+function onUsernameSearchSuccess(state, action) {
+ const { payload } = action;
+ if (action.error) {
+ fireErrorMessage('Could not fetch username matches', '');
+ return memberSearchFailure(state);
+ }
+
+ return Object.assign({}, state, {
+ loadingMore: false,
+ totalCount: payload.totalCount,
+ moreMatchesAvailable: state.usernameMatches.length + payload.usernameMatches.length
+ < payload.totalCount,
+ usernameMatches: state.usernameMatches.concat(payload.usernameMatches),
+ });
+}
+
+/**
+ * Clear members data and search terms data on request failure of checking if the search term is
+ * a tag name.
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state if error; otherwise the same state.
+ */
+function onCheckIfSearchTermIsATag(state, action) {
+ if (action.error) {
+ fireErrorMessage('Could not determine if search term is a tag', '');
+ return memberSearchFailureAndResetSearchTerm(state);
+ }
+
+ return state;
+}
+
+/**
+ * Handles the actual results of loading members data for a search tag, and
+ * clear members data and search terms data on request failure.
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state.
+ */
+function onTopMemberSearchSuccess(state, action) {
+ const { payload } = action;
+ if (action.error) {
+ fireErrorMessage('Could not fetch top members', '');
+ return memberSearchFailureAndResetSearchTerm(state);
+ }
+
+ return Object.assign({}, state, {
+ topMembers: payload.topMembers,
+ });
+}
+
+/**
+ * Clear members data to the intial state.
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state.
+ */
+function onClearMemberSearch(state) {
+ return Object.assign({}, state, {
+ pageLoaded: false,
+ loadingMore: false,
+ error: false,
+ totalCount: 0,
+ usernameMatches: [],
+ topMembers: [],
+ });
+}
+
+/**
+ * Marks the request of loading more members data for a search term as in progress
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state.
+ */
+function onLoadMoreUsernames(state) {
+ return Object.assign({}, state, {
+ loadingMore: true,
+ });
+}
+
+/**
+ * Marks the loaded members data for a search term or search tag (if any) as ready.
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state.
+ */
+function onMemberSearchSuccess(state) {
+ return Object.assign({}, state, {
+ pageLoaded: true,
+ });
+}
+
+/**
+ * Handles setting the current search term.
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state.
+ */
+function onSetSearchTerm(state, action) {
+ const { payload } = action;
+ return Object.assign({}, state, {
+ error: false,
+ previousSearchTerm: payload.previousSearchTerm,
+ });
+}
+
+/**
+ * Handles setting the current search tag.
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state.
+ */
+function onSetSearchTag(state, action) {
+ const { payload } = action;
+ return Object.assign({}, state, {
+ searchTermTag: payload.searchTermTag,
+ });
+}
+
+/**
+ * Handles clearing the current search term and search tag.
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state.
+ */
+function onResetSearchTerm(state) {
+ return resetSearchTerm(state);
+}
+
+/**
+ * Creates a new member search reducer with the specified initial state.
+ * @param {Object} initialState Optional. Initial state.
+ * @return {Function} member search reducer.
+ */
+function create(initialState = {}) {
+ const a = actions.memberSearch;
+ return redux.handleActions({
+ [a.usernameSearchSuccess]: onUsernameSearchSuccess,
+ [a.checkIfSearchTermIsATag]: onCheckIfSearchTermIsATag,
+ [a.topMemberSearchSuccess]: onTopMemberSearchSuccess,
+ [a.clearMemberSearch]: onClearMemberSearch,
+ [a.loadMoreUsernames]: onLoadMoreUsernames,
+ [a.memberSearchSuccess]: onMemberSearchSuccess,
+ [a.setSearchTerm]: onSetSearchTerm,
+ [a.setSearchTag]: onSetSearchTag,
+ [a.resetSearchTerm]: onResetSearchTerm,
+ }, _.defaults(initialState, {
+ pageLoaded: false,
+ loadingMore: false,
+ error: false,
+ totalCount: 0,
+ moreMatchesAvailable: false,
+ usernameMatches: [],
+ topMembers: [],
+ previousSearchTerm: null,
+ searchTermTag: null,
+ }));
+}
+
+/**
+ * Factory which creates a new reducer with its initial state tailored to the
+ * given options object, if specified (for server-side rendering). If options
+ * object is not specified, it creates just the default reducer. Accepted options are:
+ * @return {Promise}
+ * @resolves {Function(state, action): state} New reducer.
+ */
+export function factory() {
+ return Promise.resolve(create());
+}
+
+/**
+ * @static
+ * @member default
+ * @desc Reducer with default initial state.
+ */
+export default create();
diff --git a/src/reducers/notifications.js b/src/reducers/notifications.js
new file mode 100644
index 00000000..bb1ecaa8
--- /dev/null
+++ b/src/reducers/notifications.js
@@ -0,0 +1,254 @@
+/**
+ * @module "reducers.notifications"
+ * @desc Reducer for {@link module:actions.notifications} actions.
+ *
+ * State segment managed by this reducer has the following strcuture:
+ * @param {Array} authenticating=true `true` if authentication is still in
+ * progress; `false` if it has already completed or failed.
+ * @param {Object} profile=null Topcoder user profile.
+ * @param {String} tokenV2='' Topcoder v2 auth token.
+ * @param {String} tokenV3='' Topcoder v3 auth token.
+ * @param {Object} user=null Topcoder user object (user information stored in
+ * v3 auth token).
+ */
+
+
+import { handleActions } from 'redux-actions';
+import actions from '../actions/notifications';
+import logger from '../utils/logger';
+import { fireErrorMessage } from '../utils/errors';
+
+
+/**
+ * Handles NOTIFICATIONS/GET_NOTIFICATIONS_INIT action.
+ * @param {Object} state
+ * @return {Object} New state
+ */
+function onGetNotificationsInit(state) {
+ return { ...state };
+}
+
+/**
+ * Handles NOTIFICATIONS/GET_NOTIFICATIONS_DONE action.
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state.
+ */
+function onGetNotificationsDone(state, { error, payload }) {
+ if (error) {
+ logger.error('Failed to get notifications!', payload);
+ fireErrorMessage(
+ 'ERROR: Failed to load the notifications',
+ 'Please, try again a bit later',
+ );
+ return {
+ ...state,
+ fetchNotificationsFailure: true,
+ items: [],
+ };
+ }
+
+ return {
+ ...state,
+ items: payload,
+ fetchNotificationsFailure: false,
+ };
+}
+
+/**
+ * Handles NOTIFICATIONS/MARK_NOTIFICATION_AS_INIT action.
+ * @param {Object} state
+ * @return {Object} New state
+ */
+function onMarkNotificationAsReadInit(state) {
+ return { ...state };
+}
+
+/**
+ * Handles NOTIFICATIONS/MARK_NOTIFICATION_AS_DONE action.
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state.
+ */
+function onMarkNotificationAsReadDone(state, { error, payload }) {
+ if (error) {
+ logger.error('Failed to mark notification as read!', payload);
+ fireErrorMessage(
+ 'ERROR: Failed to mark the notification as read',
+ 'Please, try again a bit later',
+ );
+ return {
+ ...state,
+ fetchNotificationsFailure: true,
+ };
+ }
+
+ const notifications = state.items;
+ const itemIndex = state.items.findIndex(item => item.id === payload.id);
+ notifications[itemIndex].isRead = true;
+
+ return {
+ ...state,
+ fetchNotificationsFailure: false,
+ items: notifications,
+ };
+}
+
+
+/**
+ * Handles NOTIFICATIONS/MARK_ALL_NOTIFICATION_AS_READ_INIT action.
+ * @param {Object} state
+ * @return {Object} New state
+ */
+function onMarkAllNotificationAsReadInit(state) {
+ return { ...state };
+}
+
+/**
+ * Handles NOTIFICATIONS/MARK_ALL_NOTIFICATION_AS_READ_DONE action.
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state.
+ */
+function onMarkAllNotificationAsReadDone(state, { error, payload }) {
+ if (error) {
+ logger.error('Failed to mark notification as read!', payload);
+ fireErrorMessage(
+ 'ERROR: Failed to mark the notification as read',
+ 'Please, try again a bit later',
+ );
+ return {
+ ...state,
+ fetchNotificationsFailure: true,
+ };
+ }
+
+ const notifications = state.items;
+ notifications.forEach((item, index) => {
+ notifications[index].isRead = true;
+ });
+
+ return {
+ ...state,
+ fetchNotificationsFailure: true,
+ items: notifications,
+ };
+}
+
+/**
+ * Handles NOTIFICATIONS/MARK_ALL_NOTIFICATION_AS_SEEN_INIT action.
+ * @param {Object} state
+ * @return {Object} New state
+ */
+function onMarkAllNotificationAsSeenInit(state) {
+ return { ...state };
+}
+
+/**
+ * Handles NOTIFICATIONS/MARK_ALL_NOTIFICATION_AS_SEEN_DONE action.
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state.
+ */
+function onMarkAllNotificationAsSeenDone(state, { error, payload }) {
+ if (error) {
+ logger.error('Failed to mark notification as seen!', payload);
+ fireErrorMessage(
+ 'ERROR: Failed to mark the notification as seen',
+ 'Please, try again a bit later',
+ );
+ return {
+ ...state,
+ fetchNotificationsFailure: true,
+ };
+ }
+
+ const items = payload.split('-');
+ const notifications = state.items;
+ state.items.forEach((item, index) => {
+ if (items.includes(String(item.id))) {
+ notifications[index].isSeen = true;
+ }
+ });
+
+ return {
+ ...state,
+ fetchNotificationsFailure: false,
+ items: notifications,
+ };
+}
+
+/**
+ * Handles NOTIFICATIONS/DISMISS_CHALLENGE_NOTIFICATIONS_INIT action.
+ * @param {Object} state
+ * @return {Object} New state
+ */
+function onDismissChallengeNotificationsInit(state) {
+ return { ...state };
+}
+
+/**
+ * Handles NOTIFICATIONS/DISMISS_CHALLENGE_NOTIFICATIONS_DONE action.
+ * @param {Object} state
+ * @param {Object} action
+ * @return {Object} New state.
+ */
+function onDismissChallengeNotificationsDone(state, { error, payload }) {
+ if (error) {
+ logger.error('Failed to dismiss notification!', payload);
+ fireErrorMessage(
+ 'ERROR: Failed to dismiss the notification',
+ 'Please, try again a bit later',
+ );
+ return {
+ ...state,
+ fetchNotificationsFailure: true,
+ items: [],
+ };
+ }
+
+ return {
+ ...state,
+ fetchNotificationsFailure: false,
+ };
+}
+
+
+/**
+ * Creates a new Members reducer with the specified initial state.
+ * @param {Object} initialState Optional. Initial state.
+ * @return {Function} Members reducer.
+ */
+function create(initialState = {}) {
+ const a = actions.notifications;
+ return handleActions({
+ [a.getNotificationsInit]: onGetNotificationsInit,
+ [a.getNotificationsDone]: onGetNotificationsDone,
+ [a.markNotificationAsReadInit]: onMarkNotificationAsReadInit,
+ [a.markNotificationAsReadDone]: onMarkNotificationAsReadDone,
+ [a.markAllNotificationAsReadInit]: onMarkAllNotificationAsReadInit,
+ [a.markAllNotificationAsReadDone]: onMarkAllNotificationAsReadDone,
+ [a.markAllNotificationAsSeenInit]: onMarkAllNotificationAsSeenInit,
+ [a.markAllNotificationAsSeenDone]: onMarkAllNotificationAsSeenDone,
+ [a.dismissChallengeNotificationsInit]: onDismissChallengeNotificationsInit,
+ [a.dismissChallengeNotificationsDone]: onDismissChallengeNotificationsDone,
+ }, initialState);
+}
+
+/**
+ * Factory which creates a new reducer with its initial state tailored to the
+ * given options object, if specified (for server-side rendering). If options
+ * object is not specified, it creates just the default reducer. Accepted options are:
+ * @return {Promise}
+ * @resolves {Function(state, action): state} New reducer.
+ */
+export function factory() {
+ return Promise.resolve(create());
+}
+
+/**
+ * @static
+ * @member default
+ * @desc Reducer with default initial state.
+ */
+export default create();
diff --git a/src/services/api.js b/src/services/api.js
index 385138c4..03873a92 100644
--- a/src/services/api.js
+++ b/src/services/api.js
@@ -6,12 +6,17 @@
import _ from 'lodash';
import fetch from 'cross-fetch';
import { config, isomorphy } from 'topcoder-react-utils';
+import { auth } from 'tc-core-library-js';
import { delay } from '../utils/time';
import {
setErrorIcon,
ERROR_ICON_TYPES,
} from '../utils/errors';
+const { m2m: m2mAuth } = auth;
+
+const m2m = m2mAuth(_.pick(config.AUTH_CONFIG, ['AUTH0_URL', 'AUTH0_AUDIENCE', 'TOKEN_CACHE_TIME', 'AUTH0_PROXY_SERVER_URL']));
+
/* The minimal delay [ms] between API calls. To avoid problems with the requests
* rate limits configured in Topcoder APIs, we throttle requests rate at the
* client side, and at server-side, in dev mode (which is meant to be used for
@@ -279,27 +284,9 @@ export async function getTcM2mToken() {
if (!isomorphy.isServerSide()) {
throw new Error('getTcM2mToken() called outside the server');
}
- const now = Date.now();
- const { cached } = getTcM2mToken;
+
const { TC_M2M } = config.SECRET;
- if (!cached || cached.expires < now + getTcM2mToken.MIN_LIFETIME) {
- let res = await fetch(`https://${config.AUTH0.DOMAIN}/oauth/token`, {
- headers: { 'Content-Type': 'application/json' },
- body: JSON.stringify({
- client_id: TC_M2M.CLIENT_ID,
- client_secret: TC_M2M.CLIENT_SECRET,
- audience: TC_M2M.AUDIENCE,
- grant_type: TC_M2M.GRANT_TYPE,
- }),
- method: 'POST',
- });
- res = await res.json();
- getTcM2mToken.cached = {
- expires: now + 1000 * res.expires_in, // [ms]
- token: res.access_token,
- };
- }
- return getTcM2mToken.cached.token;
-}
-getTcM2mToken.MIN_LIFETIME = 30 * 1000; // [ms]
+ const token = await m2m.getMachineToken(TC_M2M.CLIENT_ID, TC_M2M.CLIENT_SECRET);
+ return token;
+}
diff --git a/src/services/index.js b/src/services/index.js
index 4d776832..76e2c457 100644
--- a/src/services/index.js
+++ b/src/services/index.js
@@ -15,6 +15,8 @@ import * as user from './user';
import * as lookup from './lookup';
import * as userTraits from './user-traits';
import * as submissions from './submissions';
+import * as memberSearch from './member-search';
+import * as notifications from './notifications';
export const services = {
api,
@@ -31,6 +33,8 @@ export const services = {
lookup,
userTraits,
submissions,
+ memberSearch,
+ notifications,
};
export default undefined;
diff --git a/src/services/lookup.js b/src/services/lookup.js
index 8c6595a9..039ffcc6 100644
--- a/src/services/lookup.js
+++ b/src/services/lookup.js
@@ -25,7 +25,7 @@ class LookupService {
* @return {Promise} Resolves to the tags.
*/
async getTags(params) {
- const res = await this.private.api.get(`/tags/?${qs.stringify(params)}`);
+ const res = await this.private.api.get(`/tags/?filter=${encodeURIComponent(qs.stringify(params.filter))}&${qs.stringify(params.limit)}`);
return getApiResponsePayload(res);
}
@@ -48,6 +48,16 @@ class LookupService {
const jsonResult = await res.json();
return jsonResult;
}
+
+ /**
+ * Gets all reviewTypes.
+ * @return {Promise} Resolves to the review types.
+ */
+ async getReviewTypes() {
+ const res = await this.private.apiV5.get('/reviewTypes');
+ const jsonResult = await res.json();
+ return jsonResult;
+ }
}
let lastInstance = null;
diff --git a/src/services/member-search.js b/src/services/member-search.js
new file mode 100644
index 00000000..94f0ca25
--- /dev/null
+++ b/src/services/member-search.js
@@ -0,0 +1,121 @@
+/**
+ * @module "services.member-search"
+ * @desc This module provides a service for searching members.
+ */
+import _ from 'lodash';
+import qs from 'qs';
+import { getApi } from './api';
+import { checkResponseSucess, mapTagToLeaderboardType } from '../utils/member-search';
+
+/**
+ * Member search service class.
+ */
+class MemberSearchService {
+ /**
+ * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.
+ */
+ constructor(tokenV3) {
+ this.private = {
+ api: getApi('V3', tokenV3),
+ tokenV3,
+ };
+ }
+
+ /**
+ * Get matched members for a search term.
+ * @param {String} searchTerm the search term
+ * @param {Number} offset the number of members to skip from starting
+ * @param {Number} limit the maximum number of return members
+ * @return {Promise} Resolves to an object containing the array of matched members
+ * and the total count
+ */
+ getUsernameMatches(searchTerm, offset, limit) {
+ const params = {
+ query: 'MEMBER_SEARCH',
+ handle: encodeURIComponent(searchTerm),
+ offset,
+ limit,
+ };
+
+ return this.private.api.get(`/members/_search/?${qs.stringify(params)}`)
+ .then(checkResponseSucess)
+ .then((data) => {
+ const usernameMatches = _.get(data, 'result.content');
+ const totalCount = _.get(data, 'result.metadata.totalCount');
+
+ if (!_.isArray(usernameMatches)) {
+ throw new Error('Expected array for username response results');
+ } else if (!_.isNumber(totalCount)) {
+ throw new Error('Expected number for metadata total count');
+ }
+
+ return {
+ usernameMatches,
+ totalCount,
+ };
+ })
+ .catch((err) => {
+ throw new Error(`Could not fetch username matches. Reason: ${err}`);
+ });
+ }
+
+ /**
+ * Check if the search term is a tag.
+ * @param {String} searchTerm the search term
+ * @return {Promise} Resolves to a tag object
+ */
+ checkIfSearchTermIsATag(searchTerm) {
+ return this.private.api.get(`/tags/?filter=name%3D${encodeURIComponent(searchTerm)}`)
+ .then(checkResponseSucess)
+ .then((data) => {
+ const tagInfo = _.get(data, 'result.content');
+
+ if (!_.isArray(tagInfo)) {
+ throw new Error('Tag response must be an array');
+ }
+
+ return tagInfo[0];
+ })
+ .catch((err) => {
+ throw new Error(`Could not determine if search term is a tag. Reason: ${err}`);
+ });
+ }
+
+ /**
+ * Get matched members for a search tag.
+ * @param {Object} tag the tag
+ * @return {Promise} Resolves to an object containing the array of matched members
+ */
+ getTopMembers(tag) {
+ const leaderboardType = mapTagToLeaderboardType(tag.domain);
+
+ return this.private.api.get(`/leaderboards/?filter=id%3D${tag.id}%26type%3D${leaderboardType}`)
+ .then(checkResponseSucess)
+ .then((data) => {
+ const topMembers = _.get(data, 'result.content', []);
+
+ return {
+ topMembers,
+ };
+ })
+ .catch((err) => {
+ throw new Error(`Could not fetch top members. Reason: ${err}`);
+ });
+ }
+}
+
+let lastInstance = null;
+
+/**
+ * Returns a new or existing member-search service.
+ * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.
+ * @return {MemberSearchService} Member search service object
+ */
+export function getService(tokenV3) {
+ if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {
+ lastInstance = new MemberSearchService(tokenV3);
+ }
+ return lastInstance;
+}
+
+export default undefined;
diff --git a/src/services/members.js b/src/services/members.js
index c761bdaa..128a61f4 100644
--- a/src/services/members.js
+++ b/src/services/members.js
@@ -99,8 +99,13 @@ class MembersService {
* @param {String} handle
* @return {Promise} Resolves to the stats object.
*/
- async getStatsHistory(handle) {
- const res = await this.private.api.get(`/members/${handle}/stats/history`);
+ async getStatsHistory(handle, groupIds) {
+ let res;
+ if (groupIds) {
+ res = await this.private.api.get(`/members/${handle}/stats/history?groupIds=${groupIds}`);
+ } else {
+ res = await this.private.api.get(`/members/${handle}/stats/history`);
+ }
return getApiResponsePayload(res);
}
diff --git a/src/services/notifications.js b/src/services/notifications.js
new file mode 100644
index 00000000..94d3ec9d
--- /dev/null
+++ b/src/services/notifications.js
@@ -0,0 +1,83 @@
+/**
+ * @module "services.notifications"
+ * @desc This module provides a service for searching for Topcoder
+ * notifications.
+ */
+
+import { getApi } from './api';
+
+/**
+ * Service class for Notifications.
+ */
+class NotificationService {
+ /**
+ * @param {String} tokenV3 Optional. Auth token for Topcoder API v5.
+ */
+ constructor(tokenV3) {
+ this.private = {
+ apiV5: getApi('V5', tokenV3),
+ tokenV3,
+ };
+ }
+
+ /**
+ * Gets member's notification information.
+ * @return {Promise} Resolves to the notification information object.
+ */
+ async getNotifications() {
+ return this.private.apiV5.get('/notifications/?platform=community&limit=20')
+ .then(res => (res.ok ? res.json() : new Error(res.statusText)));
+ }
+
+ /**
+ * Marks given notification as read.
+ * @return {Promise} Resolves to the notification information object.
+ */
+ async markNotificationAsRead(item) {
+ return this.private.apiV5.put(`/notifications/${item}/read`)
+ .then(res => (res.ok ? null : Promise.reject(new Error(res.statusText))));
+ }
+
+ /**
+ * Marks all notification as read.
+ * @return {Promise} Resolves to the notification information object.
+ */
+ async markAllNotificationAsRead() {
+ return this.private.apiV5.put('/notifications/read')
+ .then(res => (res.ok ? null : Promise.reject(new Error(res.statusText))));
+ }
+
+ /**
+ * Marks all notification as seen.
+ * @return {Promise} Resolves to the notification information object.
+ */
+ async markAllNotificationAsSeen(items) {
+ return this.private.apiV5.put(`/notifications/${items}/seen`)
+ .then(res => (res.ok ? null : Promise.reject(new Error(res.statusText))));
+ }
+
+ /**
+ * Dismiss challenge notifications.
+ * @return {Promise} Resolves to the notification information object.
+ */
+ async dismissChallengeNotifications(challengeID) {
+ return this.private.apiV5.put(`/notifications/${challengeID}/dismiss`)
+ .then(res => (res.ok ? null : Promise.reject(new Error(res.statusText))));
+ }
+}
+
+let lastInstance = null;
+/**
+ * Returns a new or existing notifications service.
+ * @param {String} tokenV3 Optional. Auth token for Topcoder API v3.
+ * @return {NotificationService} Notification service object
+ */
+export function getService(tokenV3) {
+ if (!lastInstance || tokenV3 !== lastInstance.private.tokenV3) {
+ lastInstance = new NotificationService(tokenV3);
+ }
+ return lastInstance;
+}
+
+/* Using default export would be confusing in this case. */
+export default undefined;
diff --git a/src/services/submissions.js b/src/services/submissions.js
index c8b20052..d8342b77 100644
--- a/src/services/submissions.js
+++ b/src/services/submissions.js
@@ -50,6 +50,16 @@ class SubmissionsService {
.then(res => (res.ok ? res.json() : new Error(res.statusText)))
.then(res => res);
}
+
+ /**
+ * Download submission.
+ * @param {Number|String} submissionId Submission ID.
+ * @return {Promise} Resolves to the list of submission object.
+ */
+ async downloadSubmission(submissionId) {
+ return this.private.apiV5.get(`/submissions/${submissionId}/download`)
+ .then(response => response.blob());
+ }
}
let lastInstance = null;
diff --git a/src/utils/member-search.js b/src/utils/member-search.js
new file mode 100644
index 00000000..1fba5b0b
--- /dev/null
+++ b/src/utils/member-search.js
@@ -0,0 +1,18 @@
+export function mapTagToLeaderboardType(tagDomain) {
+ const tagToLeaderboardTypeMap = {
+ SKILLS: 'MEMBER_SKILL',
+ };
+
+ return tagDomain ? tagToLeaderboardTypeMap[tagDomain.toUpperCase()] : null;
+}
+
+export async function checkResponseSucess(res) {
+ if (!res.ok) {
+ throw new Error(res.statusText);
+ }
+ const x = await res.json();
+ if (!x.result.success) {
+ throw new Error(x.result.content);
+ }
+ return x;
+}
diff --git a/src/utils/submission.js b/src/utils/submission.js
index b0b0f7e4..9f0c9274 100644
--- a/src/utils/submission.js
+++ b/src/utils/submission.js
@@ -5,7 +5,7 @@
/* eslint-disable no-param-reassign */
import _ from 'lodash';
-const { AV_SCAN_SCORER_REVIEW_TYPE_ID } = CONFIG;
+const { AV_SCAN_SCORER_REVIEW_TYPE_ID, PROVISIONAL_SCORING_COMPLETED_REVIEW_TYPE_ID } = CONFIG;
function removeDecimal(num) {
const re = new RegExp('^-?\\d+');
@@ -141,6 +141,11 @@ export function processMMSubmissions(submissions, resources, registrants) {
return dateB - dateA;
});
+ const provisionalScoringIsCompleted = _.some(
+ submission.review,
+ { typeId: PROVISIONAL_SCORING_COMPLETED_REVIEW_TYPE_ID },
+ );
+
const provisionalScore = toFixed(_.get(validReviews, '[0].score', '-'), 5);
const finalScore = toFixed(_.get(submission, 'reviewSummation[0].aggregateScore', '-'), 5);
@@ -149,6 +154,8 @@ export function processMMSubmissions(submissions, resources, registrants) {
submissionTime: submission.created,
provisionalScore,
finalScore,
+ provisionalScoringIsCompleted,
+ review: submission.review,
});
});