@lighthouse/sdk
Advanced tools
Comparing version 7.4.0-alpha-3 to 8.0.0-beta-1
@@ -53,3 +53,5 @@ 'use strict'; | ||
headersFn = options.headersFn, | ||
statePath = options.statePath; | ||
statePath = options.statePath, | ||
_options$analyticsFns = options.analyticsFns, | ||
analyticsFns = _options$analyticsFns === undefined ? {} : _options$analyticsFns; | ||
@@ -148,7 +150,13 @@ | ||
function findByIdRequest(endpoint, headers, params, id) { | ||
return _defineProperty({}, _api.CALL_API, { | ||
var _action$analyticsFns; | ||
var action = { | ||
types: [actions.FIND_REQUEST, actions.FIND_SUCCESS, actions.FIND_ERROR], | ||
endpoint: endpoint, | ||
headers: headers | ||
}); | ||
}; | ||
action.analyticsFns = (_action$analyticsFns = {}, _defineProperty(_action$analyticsFns, actions.FIND_SUCCESS, analyticsFns.findSuccess), _defineProperty(_action$analyticsFns, actions.FIND_ERROR, analyticsFns.findError), _action$analyticsFns); | ||
return _defineProperty({}, _api.CALL_API, action); | ||
} | ||
@@ -190,2 +198,5 @@ | ||
var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; | ||
var _action$analyticsFns2; | ||
var payload = arguments[3]; | ||
@@ -209,3 +220,3 @@ var id = arguments[4]; | ||
return _defineProperty({}, _api.CALL_API, { | ||
var action = { | ||
types: [actions.SAVE_REQUEST, actions.SAVE_SUCCESS, actions.SAVE_ERROR], | ||
@@ -217,3 +228,7 @@ method: method, | ||
headers: headers | ||
}); | ||
}; | ||
action.analyticsFns = (_action$analyticsFns2 = {}, _defineProperty(_action$analyticsFns2, actions.SAVE_SUCCESS, analyticsFns.saveSuccess), _defineProperty(_action$analyticsFns2, actions.SAVE_ERROR, analyticsFns.saveError), _action$analyticsFns2); | ||
return _defineProperty({}, _api.CALL_API, action); | ||
} | ||
@@ -236,3 +251,5 @@ | ||
function removeRequest(endpoint, headers, params, id) { | ||
return _defineProperty({}, _api.CALL_API, { | ||
var _action$analyticsFns3; | ||
var action = { | ||
types: [actions.REMOVE_REQUEST, actions.REMOVE_SUCCESS, actions.REMOVE_ERROR], | ||
@@ -242,3 +259,7 @@ method: 'DELETE', | ||
headers: headers | ||
}); | ||
}; | ||
action.analyticsFns = (_action$analyticsFns3 = {}, _defineProperty(_action$analyticsFns3, actions.REMOVE_SUCCESS, analyticsFns.removeSuccess), _defineProperty(_action$analyticsFns3, actions.REMOVE_ERROR, analyticsFns.removeError), _action$analyticsFns3); | ||
return _defineProperty({}, _api.CALL_API, action); | ||
} | ||
@@ -300,3 +321,9 @@ | ||
return { type: actions.SET_LIST_FILTERS, listId: listId, filters: filters }; | ||
var action = { type: actions.SET_LIST_FILTERS, listId: listId, filters: filters }; | ||
if (analyticsFns.setListFilters) { | ||
action.analyticsFn = analyticsFns.setListFilters; | ||
} | ||
return action; | ||
} | ||
@@ -303,0 +330,0 @@ |
@@ -25,5 +25,5 @@ 'use strict'; | ||
var _promiseRetry = require('promise-retry'); | ||
var _bluebirdRetry = require('bluebird-retry'); | ||
var _promiseRetry2 = _interopRequireDefault(_promiseRetry); | ||
var _bluebirdRetry2 = _interopRequireDefault(_bluebirdRetry); | ||
@@ -72,3 +72,3 @@ var _fetchPonyfill = require('fetch-ponyfill'); | ||
// NOTE wait this amount of time before invalidating request | ||
var TIMEOUT_MS = 20000; // 20s | ||
var TIMEOUT_MS = 6000; // 6s | ||
@@ -88,3 +88,3 @@ // Debounce are connection status responses to avoid hammering our | ||
var fatalErrorResponse = { | ||
message: 'FatalError' | ||
message: 'FatalHttpError' | ||
}; | ||
@@ -152,2 +152,3 @@ | ||
var state = store.getState(); | ||
if (typeof callAPI === 'undefined') { | ||
@@ -160,3 +161,5 @@ return next(action); | ||
query = _callAPI$query === undefined ? {} : _callAPI$query; | ||
var _callAPI$attachToActi = callAPI.attachToActions, | ||
var _callAPI$analyticsFns = callAPI.analyticsFns, | ||
analyticsFns = _callAPI$analyticsFns === undefined ? {} : _callAPI$analyticsFns, | ||
_callAPI$attachToActi = callAPI.attachToActions, | ||
attachToActions = _callAPI$attachToActi === undefined ? {} : _callAPI$attachToActi, | ||
@@ -169,2 +172,3 @@ types = callAPI.types, | ||
var isDeleteRequest = method === 'DELETE'; | ||
@@ -180,3 +184,2 @@ var hasQueryParams = query && Object.keys(query).length > 0; | ||
} | ||
if (typeof endpoint !== 'string') { | ||
@@ -200,5 +203,8 @@ throw new Error('Specify a string endpoint URL.'); | ||
var requestObj = { | ||
type: requestType | ||
}; | ||
var requestObj = { type: requestType }; | ||
if (analyticsFns[requestType]) { | ||
requestObj.analyticsFn = analyticsFns[requestType]; | ||
} | ||
var fetchOpts = { | ||
@@ -233,11 +239,15 @@ method: method, | ||
// ~32s max retry time | ||
// ~1.5s max retry time | ||
var retryOpts = { | ||
retries: 7, | ||
factor: 2, | ||
minTimeout: 250 | ||
max_tries: 2, | ||
backoff: 2, | ||
interval: 500 | ||
}; | ||
var attempts = 0; | ||
// NOTE - retry promise pattern | ||
return _bluebird2.default.resolve((0, _promiseRetry2.default)(function (retry, number) { | ||
// return Promise.resolve(promiseRetry((retry, number) => { | ||
return (0, _bluebirdRetry2.default)(function makeRequest() { | ||
++attempts; | ||
return callApi(endpoint, fetchOpts).catch(function () { | ||
@@ -249,10 +259,9 @@ // Notify reducer of error with retry details | ||
retrying: { | ||
attempt: 3 | ||
attempt: attempts | ||
} | ||
}; | ||
next(actionWith(actionObj)); | ||
// NOTE it's important this is called after the action is fired | ||
retry(); | ||
return _bluebird2.default.reject(new Error(fatalErrorResponse.message)); | ||
}); | ||
}, retryOpts)).then(function (response) { | ||
}, retryOpts).then(function (response) { | ||
// Error response | ||
@@ -270,7 +279,8 @@ if (response.error) { | ||
var actionObj = { | ||
type: failureType, | ||
error: response.error | ||
}; | ||
var actionObj = { type: failureType, error: response.error }; | ||
if (analyticsFns[failureType]) { | ||
actionObj.analyticsFn = analyticsFns[failureType]; | ||
} | ||
// if the request is for an individual resource, | ||
@@ -301,2 +311,6 @@ // add the resource id to the action | ||
if (analyticsFns[successType]) { | ||
successObj.analyticsFn = analyticsFns[successType]; | ||
} | ||
// modify data response depending on request type | ||
@@ -352,3 +366,3 @@ if (isDeleteRequest && resourceId) { | ||
return _bluebird2.default.reject(fatalErrorResponse); | ||
return _bluebird2.default.reject(new Error(fatalErrorResponse.message)); | ||
}); | ||
@@ -358,2 +372,4 @@ | ||
var finalAction = _extends({}, action, attachToActions, response); | ||
delete finalAction.analyticsFns; | ||
delete finalAction[CALL_API]; | ||
@@ -360,0 +376,0 @@ return finalAction; |
@@ -53,5 +53,13 @@ 'use strict'; | ||
var isSwitchingToSameApplication = isSwitchingApplication && currentApplication === action.applicationId; | ||
var isSettingApplicationWhenUnauthenticated = isSetApplication && !isAuthenticated; | ||
var shouldSkipRegistration = isSwitchingToSameApplication || isSettingApplicationWhenUnauthenticated; | ||
// NOTE the message registration/deregistration should only be skipped when | ||
// the user is setting an application outside of authentication | ||
if (isSetApplication && !isAuthenticated) return next(action); | ||
// the user is setting an application outside of authentication. It's also | ||
// important to return a promise here with the result of the action as that's | ||
// what setApplication expects because of the async nature of this middleware | ||
if (shouldSkipRegistration) return _bluebird2.default.resolve(next(action)); | ||
@@ -58,0 +66,0 @@ var deviceToken = (0, _get2.default)(state, 'mobile.deviceToken'); |
@@ -6,3 +6,3 @@ 'use strict'; | ||
}); | ||
exports.reducer = exports.selectors = exports.actionCreators = exports.actions = exports.permissionMappings = undefined; | ||
exports.reducer = exports.selectors = exports.actionCreators = exports.actions = undefined; | ||
@@ -13,10 +13,4 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* | ||
exports.getPermissionMapping = getPermissionMapping; | ||
var _redux = require('redux'); | ||
var _pluralize = require('pluralize'); | ||
var _pluralize2 = _interopRequireDefault(_pluralize); | ||
var _crud = require('../../crud'); | ||
@@ -32,21 +26,2 @@ | ||
var permissionMappings = exports.permissionMappings = { | ||
auditentries: 'auditEntry', | ||
loopexceptions: 'loopException', | ||
taskentries: 'taskEntry' | ||
}; | ||
/** | ||
* getPermissionMapping | ||
* Activity 'types' and permission 'module' references follow a slightly | ||
* different format, so we have this little helper to convert between the two. | ||
* Some need to be camelCased so we keep a mapping reference, but for anything | ||
* else we can use the pluralize module | ||
* @param {String} str the value to get mapping for | ||
*/ | ||
function getPermissionMapping(str) { | ||
var mapping = permissionMappings[str]; | ||
return mapping || _pluralize2.default.singular(str); | ||
} | ||
var actions = exports.actions = _crud2.default.actions(resource); | ||
@@ -53,0 +28,0 @@ var actionCreators = exports.actionCreators = _crud2.default.actionCreators(actions, { |
@@ -23,2 +23,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _crud = require('../../crud'); | ||
@@ -52,2 +56,4 @@ | ||
function _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; } } | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -66,3 +72,4 @@ | ||
method: 'PUT' | ||
} | ||
}, | ||
analyticsFns: analyticsFns | ||
}); | ||
@@ -69,0 +76,0 @@ var customActionCreators = (0, _actionCreators2.default)(actions, (0, _app.applicationResourceUrlFn)('users'), _app.authorizationHeadersFn, _app.applicationParamsFn); |
@@ -16,2 +16,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _crud = require('../../crud'); | ||
@@ -25,5 +29,8 @@ | ||
function _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; } } | ||
var resource = 'auditEntries'; | ||
var actions = exports.actions = _crud2.default.actions(resource); | ||
var actionCreators = exports.actionCreators = _crud2.default.actionCreators(actions, { | ||
@@ -33,4 +40,6 @@ baseUrlFn: baseUrlFn, | ||
statePath: '' + resource, | ||
paramsFn: _app.applicationParamsFn | ||
paramsFn: _app.applicationParamsFn, | ||
analyticsFns: analyticsFns | ||
}); | ||
var selectors = exports.selectors = _crud2.default.selectors(resource); | ||
@@ -37,0 +46,0 @@ |
@@ -14,2 +14,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _redux = require('redux'); | ||
@@ -29,2 +33,4 @@ | ||
function _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; } } | ||
var resource = 'audits'; | ||
@@ -37,3 +43,4 @@ | ||
statePath: '' + resource, | ||
paramsFn: _app.applicationParamsFn | ||
paramsFn: _app.applicationParamsFn, | ||
analyticsFns: analyticsFns | ||
}); | ||
@@ -40,0 +47,0 @@ |
@@ -25,2 +25,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _seamlessImmutable = require('seamless-immutable'); | ||
@@ -38,2 +42,4 @@ | ||
function _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; } } | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -141,3 +147,3 @@ | ||
function authenticate(endpoint, data) { | ||
return _defineProperty({}, _api.CALL_API, { | ||
var action = { | ||
types: [AUTHENTICATE_REQUEST, AUTHENTICATE_SUCCESS, AUTHENTICATE_ERROR], | ||
@@ -147,3 +153,7 @@ method: 'POST', | ||
endpoint: endpoint | ||
}); | ||
}; | ||
action.analyticsFns = _defineProperty({}, AUTHENTICATE_ERROR, analyticsFns.authenticateError); | ||
return _defineProperty({}, _api.CALL_API, action); | ||
} | ||
@@ -150,0 +160,0 @@ |
@@ -14,2 +14,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _crud = require('../../crud'); | ||
@@ -23,5 +27,8 @@ | ||
function _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; } } | ||
var resource = 'dataExports'; | ||
var actions = exports.actions = _crud2.default.actions(resource); | ||
var actionCreators = exports.actionCreators = _crud2.default.actionCreators(actions, { | ||
@@ -31,3 +38,4 @@ baseUrlFn: (0, _app.applicationResourceUrlFn)('data-exports'), | ||
statePath: '' + resource, | ||
paramsFn: _app.applicationParamsFn | ||
paramsFn: _app.applicationParamsFn, | ||
analyticsFns: analyticsFns | ||
}); | ||
@@ -34,0 +42,0 @@ |
@@ -14,2 +14,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _crud = require('../../crud'); | ||
@@ -23,5 +27,8 @@ | ||
function _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; } } | ||
var resource = 'events'; | ||
var actions = exports.actions = _crud2.default.actions(resource); | ||
var actionCreators = exports.actionCreators = _crud2.default.actionCreators(actions, { | ||
@@ -31,4 +38,6 @@ baseUrlFn: (0, _app.applicationResourceUrlFn)(resource), | ||
statePath: '' + resource, | ||
paramsFn: _app.applicationParamsFn | ||
paramsFn: _app.applicationParamsFn, | ||
analyticsFns: analyticsFns | ||
}); | ||
var selectors = exports.selectors = _crud2.default.selectors(resource); | ||
@@ -35,0 +44,0 @@ |
@@ -14,2 +14,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _crud = require('../../crud'); | ||
@@ -31,2 +35,4 @@ | ||
function _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; } } | ||
var resource = 'exceptions'; | ||
@@ -47,3 +53,4 @@ | ||
statePath: '' + resource, | ||
paramsFn: _app.applicationParamsFn | ||
paramsFn: _app.applicationParamsFn, | ||
analyticsFns: analyticsFns | ||
}); | ||
@@ -50,0 +57,0 @@ |
@@ -18,6 +18,2 @@ 'use strict'; | ||
var _assign = require('lodash/assign'); | ||
var _assign2 = _interopRequireDefault(_assign); | ||
var _transform = require('lodash/transform'); | ||
@@ -160,3 +156,4 @@ | ||
var actionCreators = moduleInterface.actionCreators, | ||
var schema = moduleInterface.schema, | ||
actionCreators = moduleInterface.actionCreators, | ||
_selectors = moduleInterface.selectors; | ||
@@ -166,16 +163,14 @@ | ||
var customSelectors = (0, _omit2.default)(_selectors, 'cache', 'list', 'state', 'current', 'filter'); | ||
var sanitizedModule = (0, _omit2.default)(moduleInterface, 'actionCreators', 'selectors'); | ||
// Expose the module in a use structure | ||
return (0, _assign2.default)({}, sanitizedModule, _extends({}, actionCreators, { | ||
// NOTE that the seclectors function is curry-style to allow for flexiblity | ||
// for working with data. E.g you will always be using the same state, so that | ||
// option is passed first. You can then call the return function multiple times | ||
// with different listIds to return wrapped selectors for those lists | ||
// for crud modules, we only really want the actionCreators and selectors | ||
// NOTE that the seclectors function is curry-style to allow for flexiblity | ||
// for working with data. E.g you will always be using the same state, so that | ||
// option is passed first. You can then call the return function multiple times | ||
// with different listIds to return wrapped selectors for those lists | ||
return _extends({}, actionCreators, { | ||
schema: schema, | ||
selectors: function selectors(state) { | ||
return function (listId) { | ||
var wrappedCustomSelectors = (0, _transform2.default)(customSelectors, function (accum, selectorFn, selectorKey) { | ||
accum[selectorKey] = function () { | ||
return selectorFn.apply(undefined, arguments)(state); | ||
}; | ||
accum[selectorKey] = selectorFn(state); | ||
}, {}); | ||
@@ -199,3 +194,3 @@ return _extends({ | ||
} | ||
})); | ||
}); | ||
} |
@@ -14,2 +14,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _crud = require('../../crud'); | ||
@@ -23,5 +27,8 @@ | ||
function _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; } } | ||
var resource = 'issues'; | ||
var actions = exports.actions = _crud2.default.actions(resource); | ||
var actionCreators = exports.actionCreators = _crud2.default.actionCreators(actions, { | ||
@@ -31,4 +38,6 @@ baseUrlFn: (0, _app.applicationResourceUrlFn)(resource), | ||
statePath: '' + resource, | ||
paramsFn: _app.applicationParamsFn | ||
paramsFn: _app.applicationParamsFn, | ||
analyticsFns: analyticsFns | ||
}); | ||
var selectors = exports.selectors = _crud2.default.selectors(resource); | ||
@@ -35,0 +44,0 @@ |
@@ -16,2 +16,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _crud = require('../../../crud'); | ||
@@ -37,2 +41,4 @@ | ||
function _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; } } | ||
var resource = 'messages'; | ||
@@ -51,3 +57,4 @@ var actionNamespace = 'messages/messages'; | ||
statePath: statePath, | ||
paramsFn: _app.applicationParamsFn | ||
paramsFn: _app.applicationParamsFn, | ||
analyticsFns: analyticsFns | ||
}); | ||
@@ -65,7 +72,4 @@ | ||
// NOTE we memoize the factory function for the selector to ensure it is not | ||
// rebuilt on repeat calls. This just ensures the same selector is used when the | ||
// same `roomId` is provided | ||
var filterByRoom = (0, _memoize2.default)(function (roomId) { | ||
return (0, _reselect.createSelector)(crudSelectors.cache, function (cache) { | ||
var filterByRoom = (0, _reselect.createSelector)(crudSelectors.cache, function (cache) { | ||
return (0, _memoize2.default)(function (roomId) { | ||
return (0, _filter2.default)(cache, ['entity.room', roomId]); | ||
@@ -72,0 +76,0 @@ }); |
@@ -13,2 +13,3 @@ 'use strict'; | ||
function buildActionCreators(actions, baseUrlFn, headersFn, paramsFn) { | ||
var analyticsFns = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {}; | ||
@@ -42,2 +43,3 @@ return { | ||
}; | ||
return dispatch(markAsReadRequest(endpoint, headers, payload, attachToActions)); | ||
@@ -48,3 +50,5 @@ }; | ||
function markAsReadRequest(endpoint, headers, payload, attachToActions) { | ||
return _defineProperty({}, _api.CALL_API, { | ||
var _action$analyticsFns; | ||
var action = { | ||
types: [actions.MARK_AS_READ_REQUEST, actions.MARK_AS_READ_SUCCESS, actions.MARK_AS_READ_ERROR], | ||
@@ -56,4 +60,8 @@ method: 'PUT', | ||
attachToActions: attachToActions | ||
}); | ||
}; | ||
action.analyticsFns = (_action$analyticsFns = {}, _defineProperty(_action$analyticsFns, actions.MARK_AS_READ_SUCCESS, analyticsFns.markAsReadSuccess), _defineProperty(_action$analyticsFns, actions.MARK_AS_READ_ERROR, analyticsFns.markAsReadError), _action$analyticsFns); | ||
return _defineProperty({}, _api.CALL_API, action); | ||
} | ||
} |
@@ -18,2 +18,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _crud = require('../../../crud'); | ||
@@ -57,2 +61,4 @@ | ||
function _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; } } | ||
var resource = 'messages'; | ||
@@ -78,3 +84,3 @@ var actionNamespace = 'messages/rooms'; | ||
var customActionCreators = (0, _actionCreators2.default)(actions, baseUrlFn, headersFn, _app.applicationParamsFn); | ||
var customActionCreators = (0, _actionCreators2.default)(actions, baseUrlFn, headersFn, _app.applicationParamsFn, analyticsFns); | ||
@@ -91,16 +97,16 @@ var actionCreators = _extends({}, crudActionCreators, customActionCreators); | ||
// create a new selector for every call | ||
var hasUnread = (0, _memoize2.default)(function (roomId, speakerId) { | ||
return (0, _reselect.createSelector)(crudSelectors.cache, function (cache) { | ||
var hasUnread = (0, _reselect.createSelector)(crudSelectors.cache, function (cache) { | ||
return (0, _memoize2.default)(function (roomId, speakerId) { | ||
var room = cache[roomId].entity; | ||
return speakerHasUnreadInRoom(room, speakerId); | ||
}, function () { | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
return args.join('-'); | ||
}); | ||
}, function () { | ||
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { | ||
args[_key] = arguments[_key]; | ||
} | ||
return args.join('-'); | ||
}); | ||
var unreadCountSelector = (0, _reselect.createSelector)(crudSelectors.cache, _userApplications.speakerIdSelector, function (cache, speakerId) { | ||
var unreadCount = (0, _reselect.createSelector)(crudSelectors.cache, _userApplications.speakerIdSelector, function (cache, speakerId) { | ||
var count = (0, _reduce2.default)(cache, function (accum, room) { | ||
@@ -113,9 +119,5 @@ var hasUnreadInRoom = speakerHasUnreadInRoom(room.entity, speakerId); | ||
var unreadCount = function unreadCount() { | ||
return unreadCountSelector; | ||
}; | ||
// NOTE speakerIdSelector is handled within the userApplications module, because | ||
// that's where the speakers Id is stored for the appropriate application | ||
var speakerRoomsSelector = (0, _reselect.createSelector)(crudSelectors.cache, _userApplications.speakerIdSelector, function (cache, speakerId) { | ||
var speakerRooms = (0, _reselect.createSelector)(crudSelectors.cache, _userApplications.speakerIdSelector, function (cache, speakerId) { | ||
return (0, _filter2.default)(cache, { | ||
@@ -130,6 +132,2 @@ entity: { | ||
var speakerRooms = function speakerRooms() { | ||
return speakerRoomsSelector; | ||
}; | ||
var selectors = exports.selectors = _extends({}, crudSelectors, { | ||
@@ -136,0 +134,0 @@ hasUnread: hasUnread, |
@@ -78,4 +78,4 @@ 'use strict'; | ||
var aliases = (0, _memoize2.default)(function (speakerIdOrIds) { | ||
return (0, _reselect.createSelector)(crudSelectors.cache, function (cache) { | ||
var aliases = (0, _reselect.createSelector)(crudSelectors.cache, function (cache) { | ||
return (0, _memoize2.default)(function (speakerIdOrIds) { | ||
var filteredSpeakers = (0, _pick2.default)(cache, speakerIdOrIds); | ||
@@ -85,5 +85,5 @@ return (0, _map2.default)(filteredSpeakers, function (speaker) { | ||
}); | ||
}, function (speakerIdOrIds) { | ||
return (0, _isArray2.default)(speakerIdOrIds) ? speakerIdOrIds.join('-') : speakerIdOrIds; | ||
}); | ||
}, function (speakerIdOrIds) { | ||
return (0, _isArray2.default)(speakerIdOrIds) ? speakerIdOrIds.join('-') : speakerIdOrIds; | ||
}); | ||
@@ -90,0 +90,0 @@ |
@@ -14,2 +14,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _crud = require('../../crud'); | ||
@@ -23,5 +27,8 @@ | ||
function _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; } } | ||
var resource = 'roles'; | ||
var actions = exports.actions = _crud2.default.actions(resource); | ||
var actionCreators = exports.actionCreators = _crud2.default.actionCreators(actions, { | ||
@@ -31,4 +38,6 @@ baseUrlFn: (0, _app.applicationResourceUrlFn)(resource), | ||
statePath: '' + resource, | ||
paramsFn: _app.applicationParamsFn | ||
paramsFn: _app.applicationParamsFn, | ||
analyticsFns: analyticsFns | ||
}); | ||
var selectors = exports.selectors = _crud2.default.selectors(resource); | ||
@@ -35,0 +44,0 @@ |
@@ -14,2 +14,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _crud = require('../../crud'); | ||
@@ -27,2 +31,4 @@ | ||
function _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; } } | ||
var resource = 'shifts'; | ||
@@ -45,3 +51,4 @@ var actions = _crud2.default.actions(resource); | ||
statePath: '' + resource, | ||
paramsFn: _app.applicationParamsFn | ||
paramsFn: _app.applicationParamsFn, | ||
analyticsFns: analyticsFns | ||
}); | ||
@@ -48,0 +55,0 @@ |
@@ -16,2 +16,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _crud = require('../../crud'); | ||
@@ -25,5 +29,8 @@ | ||
function _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; } } | ||
var resource = 'taskEntries'; | ||
var actions = exports.actions = _crud2.default.actions(resource); | ||
var actionCreators = exports.actionCreators = _crud2.default.actionCreators(actions, { | ||
@@ -33,4 +40,6 @@ baseUrlFn: baseUrlFn, | ||
statePath: '' + resource, | ||
paramsFn: _app.applicationParamsFn | ||
paramsFn: _app.applicationParamsFn, | ||
analyticsFns: analyticsFns | ||
}); | ||
var selectors = exports.selectors = _crud2.default.selectors(resource); | ||
@@ -37,0 +46,0 @@ |
@@ -23,2 +23,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _crud = require('../../crud'); | ||
@@ -30,2 +34,4 @@ | ||
function _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; } } | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -36,2 +42,3 @@ | ||
var actions = exports.actions = _crud2.default.actions(resource); | ||
var actionCreators = exports.actionCreators = _crud2.default.actionCreators(actions, { | ||
@@ -41,4 +48,6 @@ baseUrlFn: (0, _app.applicationResourceUrlFn)(resource), | ||
statePath: '' + resource, | ||
paramsFn: _app.applicationParamsFn | ||
paramsFn: _app.applicationParamsFn, | ||
analyticsFns: analyticsFns | ||
}); | ||
var selectors = exports.selectors = _crud2.default.selectors(resource); | ||
@@ -45,0 +54,0 @@ |
@@ -23,2 +23,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _crud = require('../../crud'); | ||
@@ -30,2 +34,4 @@ | ||
function _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; } } | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
@@ -36,2 +42,3 @@ | ||
var actions = exports.actions = _crud2.default.actions(resource); | ||
var actionCreators = exports.actionCreators = _crud2.default.actionCreators(actions, { | ||
@@ -41,3 +48,4 @@ baseUrlFn: (0, _app.applicationResourceUrlFn)(resource), | ||
statePath: '' + resource, | ||
paramsFn: _app.applicationParamsFn | ||
paramsFn: _app.applicationParamsFn, | ||
analyticsFns: analyticsFns | ||
}); | ||
@@ -44,0 +52,0 @@ |
@@ -6,3 +6,3 @@ 'use strict'; | ||
}); | ||
exports.speakerIdSelector = exports.askPermission = exports.getPermissions = exports.getCurrentApplication = exports.QUERY_ERROR = exports.QUERY_SUCCESS = exports.QUERY_REQUEST = undefined; | ||
exports.speakerIdSelector = exports.getCurrentApplication = exports.QUERY_ERROR = exports.QUERY_SUCCESS = exports.QUERY_REQUEST = undefined; | ||
@@ -37,4 +37,2 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /* | ||
var _hallPass = require('@lighthouse/hall-pass'); | ||
var _reselect = require('reselect'); | ||
@@ -166,27 +164,2 @@ | ||
var getPermissions = exports.getPermissions = (0, _reselect.createSelector)(getCurrentApplication, function (currentApplication) { | ||
return (0, _get2.default)(currentApplication, 'role.permissions'); | ||
}); | ||
/** | ||
* askPermission | ||
* can be used to assert permissions or to attain a list of available | ||
* permissions for a certain module | ||
* TODO flesh out these docs | ||
*/ | ||
var askPermission = exports.askPermission = function askPermission(options) { | ||
return (0, _reselect.createSelector)(getPermissions, function (permissions) { | ||
var action = options.action, | ||
module = options.module, | ||
documentIds = options.documentIds; | ||
var permissionOpts = { | ||
module: module, | ||
documentIds: documentIds | ||
}; | ||
var result = (0, _hallPass.ask)(permissions, action, permissionOpts); | ||
return result; | ||
}); | ||
}; | ||
var speakerIdSelector = exports.speakerIdSelector = (0, _reselect.createSelector)(getCurrentApplication, function (currentApplication) { | ||
@@ -193,0 +166,0 @@ return (0, _get2.default)(currentApplication, 'speakerbox.speakerId'); |
@@ -14,2 +14,6 @@ 'use strict'; | ||
var _analytics = require('./analytics'); | ||
var analyticsFns = _interopRequireWildcard(_analytics); | ||
var _crud = require('../../crud'); | ||
@@ -31,2 +35,4 @@ | ||
function _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; } } | ||
var resource = 'visits'; | ||
@@ -50,3 +56,4 @@ | ||
statePath: '' + resource, | ||
paramsFn: _app.applicationParamsFn | ||
paramsFn: _app.applicationParamsFn, | ||
analyticsFns: analyticsFns | ||
}); | ||
@@ -53,0 +60,0 @@ |
@@ -25,2 +25,6 @@ 'use strict'; | ||
var _get2 = require('lodash/get'); | ||
var _get3 = _interopRequireDefault(_get2); | ||
var _memoize = require('lodash/memoize'); | ||
@@ -42,2 +46,6 @@ | ||
var _isEmpty = require('lodash/isEmpty'); | ||
var _isEmpty2 = _interopRequireDefault(_isEmpty); | ||
var _crud = require('../../crud'); | ||
@@ -85,15 +93,36 @@ | ||
var crudSelectors = _crud2.default.selectors(resource); | ||
var getZoneByBeacon = (0, _memoize2.default)(function (beacon) { | ||
return (0, _reselect.createSelector)(crudSelectors.cache, function (cache) { | ||
var getZoneByBeacon = (0, _reselect.createSelector)(crudSelectors.cache, function (cache) { | ||
return (0, _memoize2.default)(function (beacon) { | ||
if (!beacon) return null; | ||
var beaconObj = (0, _mapValues2.default)(beacon, _toString2.default); | ||
var zone = (0, _find2.default)(cache, ['entity.beacon', beaconObj]); | ||
if ((0, _isEmpty2.default)(beaconObj)) return false; | ||
var zone = (0, _find2.default)(cache, function (zone) { | ||
var _get = (0, _get3.default)(zone, 'entity.beacon', {}), | ||
uuid = _get.uuid, | ||
major = _get.major, | ||
minor = _get.minor; | ||
var zoneHasBeacon = uuid && major && minor; | ||
if (!zoneHasBeacon) return false; | ||
return uuid.toLowerCase() === beaconObj.uuid.toLowerCase() && major === beaconObj.major && minor === beaconObj.minor; | ||
}); | ||
return zone && zone.entity; | ||
}, function () { | ||
var beacon = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
var uuid = beacon.uuid, | ||
major = beacon.major, | ||
minor = beacon.minor; | ||
var isValid = uuid && major && minor; | ||
if (!isValid) return null; | ||
var cacheKey = uuid + '-' + major + '-' + minor; | ||
return cacheKey; | ||
}); | ||
}, function (beacon) { | ||
var uuid = beacon.uuid, | ||
major = beacon.major, | ||
minor = beacon.minor; | ||
var cacheKey = uuid + '-' + major + '-' + minor; | ||
return cacheKey; | ||
}); | ||
@@ -100,0 +129,0 @@ |
@@ -38,2 +38,6 @@ 'use strict'; | ||
var _middleware3 = require('../modules/analytics/middleware'); | ||
var _middleware4 = _interopRequireDefault(_middleware3); | ||
var _api = require('../middleware/api'); | ||
@@ -85,3 +89,4 @@ | ||
var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : noop; | ||
var baseUrl = config.baseUrl, | ||
var analyticsTrackFn = config.analyticsTrackFn, | ||
baseUrl = config.baseUrl, | ||
native = config.native, | ||
@@ -109,6 +114,14 @@ storageAdapter = config.storageAdapter, | ||
var rootReducer = (0, _redux.combineReducers)(reducersObj); | ||
var api = (0, _api2.default)(baseUrl); | ||
var persistenceOpts = _extends({}, persistenceOpts, { | ||
storage: storageAdapter | ||
}); | ||
// middleware | ||
var apiMiddleware = (0, _api2.default)(baseUrl); | ||
var analyticsMiddleware = (0, _middleware4.default)({ | ||
analyticsTrackFn: analyticsTrackFn | ||
}); | ||
var actionLoggerMiddleware = (0, _reduxLogger2.default)({ | ||
@@ -123,3 +136,3 @@ logger: logger, | ||
var middleware = (0, _redux.applyMiddleware)(_reduxThunk2.default, api, _messages2.default, | ||
var middleware = (0, _redux.applyMiddleware)(_reduxThunk2.default, apiMiddleware, analyticsMiddleware, _messages2.default, | ||
// loggerMiddleware processes our custom logger queue, | ||
@@ -130,2 +143,3 @@ // actionLoggerMiddleware logs out all redux action | ||
// rehydrate the store | ||
(0, _reduxPersist.getStoredState)(persistenceOpts, function (err, restoredState) { | ||
@@ -132,0 +146,0 @@ var hasRestoredState = !(0, _isEmpty2.default)(restoredState); |
{ | ||
"name": "@lighthouse/sdk", | ||
"version": "7.4.0-alpha-3", | ||
"version": "8.0.0-beta-1", | ||
"description": "Lighthouse.io SDK for JavaScript applications", | ||
"main": "build/index.js", | ||
"scripts": { | ||
"build": "yarn run clean && node_modules/.bin/babel src --ignore *.test.js --out-dir build", | ||
"clean": "rm -r -f build/*", | ||
"release": "yarn run clean && node_modules/.bin/babel lib --ignore *.test.js --out-dir build", | ||
"lint": "node_modules/.bin/eslint lib", | ||
"test": "NODE_ENV=test node_modules/.bin/mocha --compilers js:babel-core/register --reporter dot --require should --require jsdom-global/register --grep ${grep:-''} 'lib/**/*.test.js'", | ||
"lint": "node_modules/.bin/eslint src", | ||
"prepublish": "yarn build", | ||
"preversion": "yarn test", | ||
"test": "NODE_ENV=test node_modules/.bin/mocha --compilers js:babel-core/register --reporter dot --require should --require jsdom-global/register --grep ${grep:-''} 'src/**/*.test.js'", | ||
"test:ci": "yarn run test -- --reporter mocha-junit-reporter", | ||
"test:watch": "yarn test -- --watch" | ||
"test:watch": "yarn test -- --watch", | ||
"version": "yarn run build" | ||
}, | ||
@@ -47,4 +50,4 @@ "repository": { | ||
"dependencies": { | ||
"@lighthouse/hall-pass": "^1.2.0", | ||
"bluebird": "^3.4.0", | ||
"bluebird-retry": "^0.10.1", | ||
"cuid": "^1.3.8", | ||
@@ -55,4 +58,2 @@ "es6-symbol": "^3.0.2", | ||
"parse-link-header": "^0.4.1", | ||
"pluralize": "^3.1.0", | ||
"promise-retry": "^1.1.1", | ||
"pubnub": "^3.15.1", | ||
@@ -59,0 +60,0 @@ "query-string": "^3.0.0", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
18
392090
111
5301
+ Addedbluebird-retry@^0.10.1
+ Addedbluebird-retry@0.10.1(transitive)
- Removed@lighthouse/hall-pass@^1.2.0
- Removedpluralize@^3.1.0
- Removedpromise-retry@^1.1.1
- Removederr-code@1.1.2(transitive)
- Removedpluralize@3.1.0(transitive)
- Removedpromise-retry@1.1.1(transitive)
- Removedretry@0.10.1(transitive)