react-boilerplate-redux-saga-hoc
Version:
Easy ways to handle api calls,redux,saga...etc
1 lines • 77.5 kB
JavaScript
"use strict";function _interopDefault(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=_interopDefault(require("@babel/runtime/helpers/extends")),React=require("react"),React__default=_interopDefault(React),reactRedux=require("react-redux"),invariant=_interopDefault(require("invariant")),reselect=require("reselect"),redux=require("redux"),AxiosDefault=_interopDefault(require("axios")),effects=require("redux-saga/effects"),_defineProperty=_interopDefault(require("@babel/runtime/helpers/defineProperty")),hoistNonReactStatics=_interopDefault(require("hoist-non-react-statics"));require("fast-deep-equal");var Qs=_interopDefault(require("query-string")),createSagaMiddleware=require("redux-saga"),createSagaMiddleware__default=_interopDefault(createSagaMiddleware);const request=AxiosDefault,_FOR_INTERNAL_USE_ONLY_="@@@__#_FOR_INTERNAL_PURPOSE_ONLY_#__@@@",_USE_TYPE_="@@@__#_USE_TYPE___@#@__#_USE_TYPE___@@@",GET_INITIAL_PROPS_DEFAULT="getInitialProps",API_LOADING_STATUS="app/API_LOADING_STATUS",TAKE_EVERY="every",REFETCH_API_QUERY="REFETCH_API_QUERY",REDUCER_BASE_PATH="app/containers/",IS_DEBOUNCE_API_CALL="is_debounce_api_call",DEBOUNCE_API_CALL_DELAY_IN_MS="debounce_api_call_delay",ON_CANCEL_ERROR="API_CANCEL_ERROR",ON_ERROR="ERROR",ON_SUCCESS="SUCCESS",ON_FINALLY="FINALLY",ON_CANCEL="CANCEL",ON_REQUEST="REQUEST",ON_LOADING="LOADING",ON_UNMOUNT="UNMOUNT",ON_TOAST="TOAST",ERROR="ERROR",SUCCESS="SUCCESS",CALL="CALL",CANCEL="CANCEL",CUSTOM="CUSTOM_TASK",INFINITE_DATA_HANDLER="Infinite-Handler",DATA_HANDLER="Data-Handler",DELETE_DATA_HANDLER="Delete-Handler",UPDATE_DATA_HANDLER="Update-Handler",UPDATE_DATA_KEY_HANDLER="Update-Key-Handler",DELETE_DATA_KEY_HANDLER="Delete-Key-Handler",TOGGLE_DATA_KEY_HANDLER="Toggle-Key-Handler",SPLICE_DATA_HANDLER="Splice-Data-Handler",CALLBACK_HANDLER="Callback-Handler",RESET_HANDLER="Reset-Handler",TOAST_HANDLER="Toast-Handler",ERROR_HANDLER="Error-Handler",LOADER_HANDLER="Loading-Handler",DONT_UPDATE_DATA_HANDLER="Don't-Update-Data-Handler",CUSTOM_HANDLER="Custom-Handler",TYPE_NULL="null",TYPE_UNDEFINED="undefined",TYPE_STRING="string",TYPE_ARRAY="array",TYPE_BOOLEAN="boolean",TYPE_OBJECT="object",TYPE_FUNCTION="function",TYPE_ERROR="error",TYPE_SYMBOL="symbol",TYPE_GENERATOR_FUNCTION="generatorFunction",FOR_INTERNAL_USE_ONLY=_FOR_INTERNAL_USE_ONLY_,USE_TYPE=_USE_TYPE_,HANDLERS="handlers",NEXT_JS="nextJS",CREATE_REDUCER="createReducer",USE_HOOK="useHook",USE_HOC_HOOK="useHocHook",HOOK_WITH_HOC="hookWithHoc",ALLOW_MAP_STATE_TO_PROPS="mapStateToProps",GET_INITIAL_PROPS_KEY="getInitialPropsKey",IS_DEVELOPMENT="isDevelopment",API_END_POINTS="apiEndPoints",INITIAL_STATE="initialState",GET_DEFAULT_CONFIG="getDefaultConfig",DONT_RESET_REDUCER_KEYS="dontResetOnLogout",IS_MOBILE="isMobile",SAGA="saga",SAGA_CONSTANT="constantSaga",REDUCER_CONSTANT="constantReducer",REDUCER="reducer",AXIOS_INTERCEPTORS="axiosInterceptors",REDUCER_NAME="name",HOC_MAIN_CONFIG_KEY={HANDLERS:HANDLERS,NEXT_JS:NEXT_JS,CREATE_REDUCER:CREATE_REDUCER,USE_HOOK:USE_HOOK,USE_HOC_HOOK:"useHocHook",HOOK_WITH_HOC:"hookWithHoc",ALLOW_MAP_STATE_TO_PROPS:"mapStateToProps",GET_INITIAL_PROPS_KEY:"getInitialPropsKey",IS_DEVELOPMENT:IS_DEVELOPMENT,USE_TYPE:USE_TYPE},HOC_INITIAL_CONFIG_KEY={API_END_POINTS:"apiEndPoints",INITIAL_STATE:INITIAL_STATE,GET_DEFAULT_CONFIG:"getDefaultConfig",DONT_RESET_REDUCER_KEYS:"dontResetOnLogout",IS_MOBILE:IS_MOBILE,SAGA:SAGA,SAGA_CONSTANT:SAGA_CONSTANT,REDUCER_CONSTANT:REDUCER_CONSTANT,REDUCER:REDUCER,AXIOS_INTERCEPTORS:AXIOS_INTERCEPTORS,USE_HOOK:USE_HOOK,REDUCER_NAME:"name"},COMMON_TASKS={TASK_NAME:"name",SUB_KEYS_ARRAY:"subKey",IS_CLEAR_PREVIOUS_DATA_ON_SUCCESS:"clearData",IS_CLEAR_PREVIOUS_DATA_ON_API_START:"clearDataOnStart"},DONT_UPDATE_RESPONSE_DATA="dontUpdateResponseData",DONT_UPDATE_SUCCESS_DATA="dontUpdateSuccessData",UPDATE_CALLBACK="updateCallback",ID_REFERENCE_KEY="key",IDS="id",API_TASK_CONFIG_KEYS={TASKS:"tasks",TASK:{KEY:"task",COMMON_TASK_KEYS:COMMON_TASKS,INFINITE_DATA_HANDLER:{...COMMON_TASKS,LIMIT:"limit",IS_APPEND_DATA_ON_TOP:"isAppendTop",SET_INFINITE_END_KEY_TRUE_OR_FALSE:"setInfiniteEnd",UPDATE_CALLBACK:UPDATE_CALLBACK},DATA_HANDLER:{...COMMON_TASKS,UPDATE_CALLBACK:UPDATE_CALLBACK},DELETE_DATA_HANDLER:{...COMMON_TASKS,ID_REFERENCE_KEY:"key",IDS:IDS},UPDATE_DATA_HANDLER:{...COMMON_TASKS,ID_REFERENCE_KEY:"key",IDS:IDS,UPDATE_CALLBACK:UPDATE_CALLBACK,DONT_UPDATE_RESPONSE_DATA:"dontUpdateResponseData",DONT_UPDATE_SUCCESS_DATA:"dontUpdateSuccessData"},UPDATE_DATA_KEY_HANDLER:{...COMMON_TASKS,ID_REFERENCE_KEY:"key",IDS:IDS,UPDATE_CALLBACK:UPDATE_CALLBACK,DONT_UPDATE_RESPONSE_DATA:"dontUpdateResponseData",DONT_UPDATE_SUCCESS_DATA:"dontUpdateSuccessData"},DELETE_DATA_KEY_HANDLER:{...COMMON_TASKS,ID_REFERENCE_KEY:"key",IDS:IDS,UPDATE_CALLBACK:UPDATE_CALLBACK,DELETE_KEYS_ARRAY:"deleteKey"},TOGGLE_DATA_KEY_HANDLER:{...COMMON_TASKS,ID_REFERENCE_KEY:"key",IDS:IDS,UPDATE_CALLBACK:UPDATE_CALLBACK,TOGGLE_KEYS_ARRAY:"toggleKey"},SPLICE_DATA_HANDLER:{...COMMON_TASKS,UPDATE_CALLBACK:UPDATE_CALLBACK,SPLICE_VALUE_ARRAY:"spliceKey"},RESET_HANDLER:{TASK_NAME:COMMON_TASKS.TASK_NAME},CALLBACK_HANDLER:{TASK_NAME:COMMON_TASKS.TASK_NAME,CALLBACK_FUNCTION:"callback"},TOAST_HANDLER:{TASK_NAME:COMMON_TASKS.TASK_NAME,TOAST_OBJECT:"toast"},ERROR_HANDLER:{TASK_NAME:COMMON_TASKS.TASK_NAME,ERROR_OBJECT:"error",IS_ERROR:"isError"},LOADER_HANDLER:{TASK_NAME:COMMON_TASKS.TASK_NAME,IS_LOADING:"loader"},DONT_UPDATE_DATA_HANDLER:{...COMMON_TASKS}},FILTER_ARRAY:"filter",DONT_UPDATE_REUCER:"dontUpdateReducer",EXECUTE_UPDATE_STATE_CALLBACK_ON_ERROR:"excuteUpdateStateCallbackOnError",UPDATE_STATE_DATA_REDUCER_KEYS:"updateDataReducerKey",SET_PROXY_FOR:"proxyFor",REQUEST:{KEY:"request",ASYNC_FUNCTION:"asyncFunction",ASYNC_FUNCTION_PARAMS_ARRAY:"asyncFunctionParams",PAYLOAD:"payload",PARAMS:"params",QUERY:"query",DELAY_FUNCTION:"delayFunction",DONT_UPDATE_REDUCER_ON_SUCCESS:"dontUpdateReducerOnSucess",DONT_UPDATE_REDUCER_ON_ERROR:"dontUpdateReducerOnError",AXIOS_INTERCEPTOR:"axios",PARAM_SERIALIZER:"paramsSerializer",API_CANCEL_KEY:"cancelKey",ON_CANCEL_TASK:"onCancelTask",AXIOS_CONFIG:"axiosConfig",API_QUERY_CACHE_KEY:"key",USE_CACHE_DATA:"useCache",IS_ERROR_DATA_HANDLING:"errorDataHandling",IS_CLEAR_DATA_ON_ERROR:"clearDataOnError",IS_POLLING:"polling",IS_ERROR_PARSER:"errorParser",DEFAULT_ERROR_PARSER_FUNCTION:"defaultErrorParser",POLLING_DELAY_COUNT_IN_MS:"delay",MAX_RETRY_COUNT:"retry",POLLING_MAX_COUNT:"pollingCount",START_POLLING_AFTER_DELAY:"callAfterDelay"},CALLBACK:{KEY:"callback",UPDATE_STATE_CALLBACK:"updateStateCallback",SUCCESS_CALLBACK:"successCallback",ERROR_CALLBACK:"errorCallback",SUCCESS_CALLBACK_EXECUTE_AFTER_100_MILLISECONDS:"logoutCallback",FINAL_CALLBACK:"finalCallback",POLLING_CALLBACK:"pollingCallback",CANCEL_CALLBACK:"cancelCallback",UPDATE_CALLBACK:UPDATE_CALLBACK}},USE_QUERY_REDUCER_CONFIG_KEYS={PARENT_KEY:"key",REDUCER_KEY:"key",REQUIRED_DATA_KEY:"requiredKey",FILTER_ARRAY:"filter",QUERY_DATA_STRING_OR_ARRAY:"initialLoaderqueryState",INITIAL_LOADER_STATE:"initialLoaderState",GET_DEFAULT_DATA_FORMAT:"defaultDataFormat",DEFAULT_DATA_OR_FORMAT:"default"},USE_QUERY_CONFIG_KEYS={REDUCER_NAME:"reducerName",REDUCER_KEYS_ARRAY_OR_OBJECT_OR_STRING:USE_QUERY_REDUCER_CONFIG_KEYS,REDUCER_KEYS_CONFIG:"config",CALLBACK_FUNCTION_RETURN_DATA:"callback",TRIGGER_AFTER_CALLBACK_NO_DATA_RETURN:"callbackSuccess",REFRESH_KEY:"refreshKey"},API_END_POINTS_CONFIG_KEYS={API_URL:"url",AXIOS_INTERCEPTORS:"axios",API_METHOD:"method",API_RESPONSE_SUCCESS_STATUS_CODE_KEY:"responseStatusCodeKey",API_RESPONSE_SUCCESS_STATUS_CODES:"responseStatusCode",API_RESPONSE_SUCCESS_MESSAGE_KEY:"responseMessageKey",API_RESPONSE_SUCCESS_DATA_KEY:"responseDataKey",API_RESPONSE_ERROR_DATA_KEY:"errorDataKey",API_RESPONSE_ERROR_STATUS_CODE_KEY:"errorStatusKey",API_RESPONSE_ERROR_MESSAGE_KEY:"errorMessageKey",API_ERROR_HANDLER_STATUS_CODES:"errorHandlerStatusCode",DEBOUNCE_API_CALL_DELAY_IN_MS:DEBOUNCE_API_CALL_DELAY_IN_MS,IS_DEBOUNCE_API_CALL:IS_DEBOUNCE_API_CALL,SAGA_EFFECT:"effect"},API_END_POINTS_CONFIG_DEFAULT_VALUE={API_URL:void 0,AXIOS_INTERCEPTORS:void 0,API_METHOD:"GET",API_RESPONSE_SUCCESS_STATUS_CODE_KEY:"",API_RESPONSE_SUCCESS_STATUS_CODES:[],API_RESPONSE_SUCCESS_MESSAGE_KEY:"",API_RESPONSE_SUCCESS_DATA_KEY:"",API_RESPONSE_ERROR_DATA_KEY:"error",API_RESPONSE_ERROR_STATUS_CODE_KEY:"",API_RESPONSE_ERROR_MESSAGE_KEY:"",API_ERROR_HANDLER_STATUS_CODES:[],SAGA_EFFECT:"latest"},ENV={DEVELOPMENT:"development",PRODUCTION:"production"},commonConstants={TAKE_EVERY:"every",API_END_POINTS_CONFIG_DEFAULT_VALUE:API_END_POINTS_CONFIG_DEFAULT_VALUE,API_END_POINTS_CONFIG_KEYS:API_END_POINTS_CONFIG_KEYS,USE_QUERY_CONFIG_KEYS:USE_QUERY_CONFIG_KEYS,API_TASK_CONFIG_KEYS:API_TASK_CONFIG_KEYS,ENVIRONMENT_TYPE:ENV,INFINITE_DATA_HANDLER:"Infinite-Handler",DATA_HANDLER:DATA_HANDLER,DELETE_DATA_HANDLER:"Delete-Handler",UPDATE_DATA_HANDLER:"Update-Handler",UPDATE_DATA_KEY_HANDLER:"Update-Key-Handler",DELETE_DATA_KEY_HANDLER:"Delete-Key-Handler",TOGGLE_DATA_KEY_HANDLER:"Toggle-Key-Handler",SPLICE_DATA_HANDLER:SPLICE_DATA_HANDLER,RESET_HANDLER:RESET_HANDLER,CALLBACK_HANDLER:CALLBACK_HANDLER,TOAST_HANDLER:TOAST_HANDLER,ERROR_HANDLER:ERROR_HANDLER,LOADER_HANDLER:LOADER_HANDLER,DONT_UPDATE_DATA_HANDLER:DONT_UPDATE_DATA_HANDLER,ON_CANCEL_ERROR:ON_CANCEL_ERROR,ON_ERROR:ON_ERROR,ON_SUCCESS:ON_SUCCESS,ON_FINALLY:ON_FINALLY,ON_CANCEL:ON_CANCEL,ON_REQUEST:ON_REQUEST,ON_LOADING:ON_LOADING,ON_UNMOUNT:ON_UNMOUNT,ON_TOAST:"TOAST",ERROR:ERROR,SUCCESS:SUCCESS,CALL:CALL,CANCEL:CANCEL,CUSTOM:CUSTOM,TYPE_NULL:"null",TYPE_UNDEFINED:"undefined",TYPE_STRING:"string",TYPE_ARRAY:"array",TYPE_BOOLEAN:"boolean",TYPE_OBJECT:"object",TYPE_FUNCTION:"function",TYPE_ERROR:"error",TYPE_SYMBOL:"symbol",TYPE_GENERATOR_FUNCTION:"generatorFunction"},cloneObject=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.assign({},e,t)},newObject=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t=arguments.length,a=new Array(t>1?t-1:0),r=1;r<t;r++)a[r-1]=arguments[r];return 0===a.length?cloneObject(e):a.reduce((t,a)=>cloneObject(t,"function"==typeof a&&a(e,t)||a),cloneObject(e))};function deleteIn(e,t){let a=0,r=e;return function e(){return Array.isArray(r)?t.length-1===a&&+t[a]>=r.slice().length?(()=>t.length-1===a?(Array.isArray(r)?r.splice(+t[a],1):delete r[t[a]],r):r)():r.slice().map((n,o)=>+t[a]===o?t.length-1===a?(Array.isArray(r)?r.splice(+t[a],1):delete r[t[a]],Array.isArray(r)?null:r):(()=>(r=n,a+=1,e()))():n).filter(e=>e):(()=>t.length-1===a?(delete r[t[a]],r):cloneObject(r,{[t[a]]:(()=>(r=r[t[a]],a+=1,e()))()}))()}()}function getIn(e,t){let a=0,r=e;return t.length>0?function e(){return t.length>0&&t.length-1===a?null==r?r:r[t[a]]:(()=>null==r?r:(r=r[t[a]],a+=1,e()))()}():e}function updateIn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],a=arguments.length>2?arguments[2]:void 0,r=0,n=e;return t.length>0?function e(){return Array.isArray(n)?n.slice().map((o,s)=>+t[r]===s?t.length-1===r?a(o):(()=>(n=o,r+=1,e()))():o):cloneObject(n,{[t&&t[r]]:t.length-1===r?a(n[t[r]]):(()=>(n=n[t[r]]||{},r+=1,e()))()})}():e}const generateTimeStamp=()=>(new Date).getTime(),type={"[object Null]":"null","[object Undefined]":"undefined","[object String]":"string","[object Array]":"array","[object Boolean]":"boolean","[object Object]":"object","[object Function]":"function","[object Error]":"error","[object Symbol]":"symbol","[object GeneratorFunction]":"generatorFunction"},typeOf=e=>void 0===e?typeof e:type[Object.prototype.toString.call(e)]||typeof e,delay=e=>new Promise(t=>setTimeout(t,e)),successAction=e=>(function(t,a,r,n,o){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return{type:e,response:{type:t,data:s,payload:r,statusCode:n,message:o,method:a}}}),errorAction=e=>(function(t,a,r,n,o){let s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return{type:e,response:{type:t,error:s,payload:r,statusCode:n,message:o,method:a}}}),callAction=e=>(function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:e,payload:t}}),cancelAction=e=>(t,a,r,n)=>({type:n&&"string"===typeOf(n)&&n.length?`${e}_[${n}]`:e,response:{type:t,method:a,payload:{filter:r}}}),customAction=e=>(function(t,a,r){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4?arguments[4]:void 0;return{type:e,response:{type:t,method:a,data:n,statusCode:o||a===ON_SUCCESS?200:null,customTask:!0,payload:r}}}),actionsHandler={success:successAction,error:errorAction,call:callAction,cancel:cancelAction,custom:customAction};function apiLoadingStatus(e){let{type:t,data:a={},status:r=!0,loader:n,payload:o}=e;return{type:API_LOADING_STATUS,response:{type:t,status:r,data:a,loader:n,payload:o,method:ON_LOADING}}}const convertData=e=>Object.keys(e).reduce((t,a)=>{const r=Object.keys(e[a]).reduce((e,t)=>newObject(e,{[t]:{[CALL]:`app/containers/${a}/${t}_CALL`,[SUCCESS]:`app/containers/${a}/${t}_${SUCCESS}`,[CUSTOM]:`app/containers/${a}/${t}_${CUSTOM}`,[ERROR]:`app/containers/${a}/${t}_${ERROR}`,[CANCEL]:`app/containers/${a}/${t}_CANCEL`}}),{}),n=Object.keys(e[a]).reduce((e,t)=>newObject(e,{[t]:{[CALL]:actionsHandler.call(r[t].CALL),[SUCCESS]:actionsHandler.success(r[t][SUCCESS]),[CUSTOM]:actionsHandler.custom(r[t][CUSTOM]),[ERROR]:actionsHandler.error(r[t][ERROR]),[CANCEL]:actionsHandler.cancel(r[t].CANCEL)}}),{}),o=Object.entries(e[a]).reduce((e,t)=>{let[a,o]=t;return newObject(e,{[r[a].CALL]:{api:o,cancel:r[a].CANCEL,actions:n[a],effect:"every"===o.effect&&effects.takeEvery}})},{});return newObject(t,{[a]:{actions:n,constants:r,sagaConfig:o}})},{});var generateConstants=e=>{let{apiEndPoints:t,generatorKey:a,dontResetOnLogout:r}=e;const n=Array.isArray(r)?r.reduce((e,t)=>Object.assign(e,{[t]:t}),{}):r,o=convertData(t),{initialState:s,resetState:c}=Object.keys(t[a]).reduce((e,r)=>({initialState:newObject({},e.initialState,{[o[a].constants[r].CALL]:{loading:{},toast:{},initialState:!0,...t[a][r].initialData?{data:t[a][r].initialData}:{}}}),resetState:void 0===n[r]&&newObject({},e.resetState,{[o[a].constants[r].CALL]:{loading:{},toast:{},initialState:!0,...t[a][r].initialData?{data:t[a][r].initialData}:{}}})||e.resetState}),{initialState:{},resetState:{}}),{constants:i,actions:l,sagaConfig:d}=o[a];return{constants:i,initialState:s,generatorKey:a,actions:l,sagaConfig:d,resetState:c}};function checkStore(e){invariant("object"===typeOf(e)&&"function"===typeOf(e.dispatch)&&"function"===typeOf(e.subscribe)&&"function"===typeOf(e.getState)&&"function"===typeOf(e.replaceReducer)&&"function"===typeOf(e.runSaga)&&"object"===typeOf(e.injectedReducers)&&"object"===typeOf(e.injectedSagas),"(app/utils...) injectors: Expected a valid redux store")}const RESTART_ON_REMOUNT="@@saga-injector/restart-on-remount",DAEMON="@@saga-injector/daemon",ONCE_TILL_UNMOUNT="@@saga-injector/once-till-unmount",allowedModes=[RESTART_ON_REMOUNT,DAEMON,ONCE_TILL_UNMOUNT],checkKey=e=>invariant(e&&"string"===typeOf(e),"(app/utils...) injectSaga: Expected `key` to be a non empty string"),checkDescriptor=e=>{invariant("object"===typeOf(e)&&"function"==typeof e.saga&&allowedModes.includes(e.mode),"(app/utils...) injectSaga: Expected a valid saga descriptor")};function injectSagaFactory(e,t){return function(a){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;t||checkStore(e);const o={...r,mode:r.mode||DAEMON},{saga:s,mode:c}=o;checkKey(a),checkDescriptor(o);let i=Reflect.has(e.injectedSagas,a);if("production"!==process.env.NODE_ENV){const t=e.injectedSagas[a];i&&t.saga!==s&&(t.task.cancel(),i=!1)}(!i||i&&c!==DAEMON&&c!==ONCE_TILL_UNMOUNT)&&(e.injectedSagas[a]={...o,task:e.runSaga(s,n)})}}function ejectSagaFactory(e,t){return function(a){if(t||checkStore(e),checkKey(a),Reflect.has(e.injectedSagas,a)){const t=e.injectedSagas[a];t.mode&&t.mode!==DAEMON&&(t.task.cancel(),"production"===process.env.NODE_ENV&&(e.injectedSagas[a]="done"))}}}function getInjectors(e){return checkStore(e),{injectSaga:injectSagaFactory(e,!0),ejectSaga:ejectSagaFactory(e,!0)}}var injectSaga=e=>{let{key:t,saga:a,mode:r}=e;return e=>{class n extends React__default.Component{constructor(e,n){super(e,n),this.injectors=getInjectors(n.store),this.injectors.injectSaga(t,{saga:a,mode:r},this.props)}componentWillUnmount(){this.injectors.ejectSaga(t)}render(){return React__default.createElement(e,this.props)}}return _defineProperty(n,"WrappedComponent",e),_defineProperty(n,"contextType",reactRedux.ReactReduxContext),_defineProperty(n,"displayName",`withSaga(${e.displayName||e.name||"Component"})`),hoistNonReactStatics(n,e)}};const useInjectSaga=function(e){let{key:t,saga:a,mode:r}=e,n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],o=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=arguments.length>3?arguments[3]:void 0;const c=React__default.useContext(reactRedux.ReactReduxContext);React__default.useEffect(()=>{const e=getInjectors(c.store);return n&&(e.injectSaga(t,{saga:a,mode:r}),"function"==typeof s&&s()),()=>{o&&e.ejectSaga(t)}},[])};function createReducer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=Object.keys(e).length>0?e:{global:()=>({})};return redux.combineReducers(t)}function injectReducerFactory(e,t){return function(a,r,n){t||checkStore(e),invariant("string"===typeOf(a)&&a&&"function"===typeOf(r),"(app/utils...) injectReducer: Expected `reducer` to be a reducer function"),Reflect.has(e.injectedReducers,a)&&e.injectedReducers[a]===r||(e.injectedReducers[a]=r,e.replaceReducer((n||createReducer)(e.injectedReducers)))}}function getInjectors$1(e){return checkStore(e),{injectReducer:injectReducerFactory(e,!0)}}var injectReducer=(e,t)=>{let{key:a,reducer:r}=e;return e=>{class n extends React__default.Component{constructor(e,n){super(e,n),getInjectors$1(n.store).injectReducer(a,r,t)}render(){return React__default.createElement(e,this.props)}}return _defineProperty(n,"WrappedComponent",e),_defineProperty(n,"contextType",reactRedux.ReactReduxContext),_defineProperty(n,"displayName",`withReducer(${e.displayName||e.name||"Component"})`),hoistNonReactStatics(n,e)}};const useInjectReducer=function(e,t){let{key:a,reducer:r}=e,n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];const o=React__default.useContext(reactRedux.ReactReduxContext);React__default.useEffect(()=>{n&&getInjectors$1(o.store).injectReducer(a,r,t)},[])},selectAuthenticationDomain=(e,t)=>a=>a[t]||e,makeSelectAuthenticationState=e=>{let{apiEndPoints:t,initialState:a,InitialState:r,generatorKey:n,constants:o}=e;return()=>reselect.createSelector(selectAuthenticationDomain(a,n),e=>newObject(Object.keys(r).reduce((t,a)=>({...t,[a]:e[a]}),{}),Object.keys(t[n]).reduce((t,a)=>({...t,[a]:e[o[a].CALL]}),{})))},ignore={component:[SUCCESS,ERROR],saga:[CALL,CANCEL,CUSTOM],cancel:[SUCCESS,ERROR,CALL,CUSTOM]},bindKey=[CANCEL,CUSTOM],actionConverter=(e,t,a,r)=>Object.entries(e).reduce((n,o)=>{let[s,c]=o;return a&&ignore[r].includes(s)&&n||cloneObject(n,{[`${t}_${s}`]:bindKey.includes(s)&&c.bind({},e.CALL().type)||c})},{});var actionConverter$1=e=>Object.entries(e).reduce((e,t)=>{let[a,r]=t;return{actions:cloneObject(e.actions,actionConverter(r,a)),sagaActions:cloneObject(e.sagaActions,actionConverter(r,a,!0,"saga")),componentActions:cloneObject(e.componentActions,actionConverter(r,a,!0,"component")),cancelActions:cloneObject(e.cancelActions,actionConverter(r,a,!0,"cancel"))}},{}),generateAction=e=>{const{componentActions:t,actions:a,sagaActions:r,cancelActions:n}=actionConverter$1(e);return{componentActions:t,actions:a,sagaActions:r,cancelActions:n}};const executeTask=(e,t)=>{let{id:a,key:r}=e;return Array.isArray(t)?Array.isArray(a)?t.reduce((e,t)=>a.includes(t[r])?e:e.concat([t]),[]):t.filter(e=>{let{[r]:t}=e;return t!==a}):t},deleteHandler=e=>{let{task:{key:t,id:a,subKey:r=[]}={},successData:n={},successDataStatusCode:o}=e;return function(){let{data:e=[],statusCode:s}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const c={key:t,id:a},i="object"===typeOf(n)?n:{};return{data:r.length>0?updateIn({...e,...i,[r[0]]:e[r[0]]},r,e=>executeTask(c,e)):executeTask(c,e),statusCode:o||s,lastUpdated:generateTimeStamp(),isError:!1,reset:!1,initialState:!1}}},errorHandler=function(){let{errorData:e,clearDataOnError:t=!1,statusCode:a}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return r=>{let{data:n={}}=r;return{...t?{data:Array.isArray(n)?[]:{}}:{},error:e||null,isError:!0,statusCode:a,lastUpdated:generateTimeStamp(),isInfinite:null,infiniteEnd:null,initialState:!1}}},_CheckFilter=e=>Array.isArray(e)&&e.length>0?e:e&&"string"==typeof e?e.split("."):[],filterArrayErrorHandler=function(){let{errorData:e,filter:t,clearDataOnError:a,statusCode:r}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return n=>{let{data:o={}}=n;return{data:(()=>t&&t.some(e=>Array.isArray(e))?t.reduce((t,n)=>updateIn(t,_CheckFilter(n),t=>_CheckFilter(n).length>0?newObject(t,t=>{let{data:n}=t;return{...a?{data:Array.isArray(n)?[]:{}}:{},error:e||null,isError:!0,statusCode:r,lastUpdated:generateTimeStamp(),isInfinite:null,infiniteEnd:null}}):t),o):updateIn(o,t,t=>newObject(t,t=>{let{data:n}=t;return{...a?{data:Array.isArray(n)?[]:{}}:{},error:e||null,isError:!0,statusCode:r,lastUpdated:generateTimeStamp(),isInfinite:null,infiniteEnd:null,initialState:!1}})))()}}},_CheckFilter$1=e=>Array.isArray(e)&&e.length>0?e:e&&"string"==typeof e?e.split("."):[],commonFilterHandler=e=>(function(){let{filter:t=[],successDataStatusCode:a,...r}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return n=>{let{data:o={},statusCode:s}=n;return{lastUpdated:generateTimeStamp(),data:(()=>{const n={filter:t,...r};return t&&t.some(e=>Array.isArray(e))?t.reduce((t,a)=>updateIn(t,_CheckFilter$1(a),t=>_CheckFilter$1(a).length>0?newObject(t,e(n)):t),o):updateIn(o,t,t=>newObject({...t,statusCode:a||s,lastUpdated:generateTimeStamp(),error:!1,isError:!1,initialState:!1},e(n)))})()}}}),CONSTRUCTOR_CHECK={string:String,number:Number,boolean:Boolean};let errorConsole=function(e,t,a){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],n=arguments.length>4?arguments[4]:void 0;r?console.log(`%c${e} %c is found %c "${t}" %c not a function %c ${a} %c is invalid`,"background: #000; color: red; font-size: 12px","background: #000; color: orange; font-size: 12px","background: #000; color: red; font-size: 12px","background: #000; color: orange; font-size: 12px","background: #000; color: red; font-size: 12px","background: #000; color: orange; font-size: 12px"):console.log(`%c${n?"%c key":`${e} %c is undefined`}%c "${t}" %cnot found ${n?`in %c"${e}"%c object`:"%c%c"} %c ${a} %c is invalid`,"background: #000; color: red; font-size: 12px","background: #000; color: orange; font-size: 12px","background: #000; color: red; font-size: 12px","background: #000; color: orange; font-size: 12px","background: #000; color: green; font-size: 12px","background: #000; color: orange; font-size: 12px","background: #000; color: red; font-size: 12px","background: #000; color: orange; font-size: 12px")};const errorLog=()=>{let e=new Error,t=e.stack?e.stack.toString().split(/\r\n|\n/):e.stack;console.log("Error :"),t&&t.length&&(t.splice(0,1),t.map((e,a)=>console.log(`[${t[t.length-1-a]} ]`)))},nullCheck=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,n=arguments.length>4?arguments[4]:void 0,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:[],s=arguments.length>6&&void 0!==arguments[6]&&arguments[6];const c=void 0!==r?r:void 0;if("string"!=typeof a)return s&&(console.log("%c[Object] path is invalid it should be string","background: #000; color: orange; font-size: 12px"),errorLog(new e)),"function"==typeof n?n(c):c;let i=a.split(/\.|\[|\(/);const l=(i=i.map(e=>e.replace(/\]|\(/g,"").replace(/\)/,"()"))).splice(0,1);if(!t||"object"!=typeof t||0===Object.keys(t).length)return s&&errorLog(new e),"function"==typeof n?n(c):c;let d=t,u=l,E=0,_=u,A=void 0;for(let t=0;t<i.length;t++){if(d[i[t]]||"boolean"==typeof d||Object.prototype.hasOwnProperty.call(d,i[t])){if(u=Number(i[t])||0===Number(i[t])?`${u}[${i[t]}]`:`${u}.${i[t]}`,!(d=d[i[t]])&&"boolean"!=typeof d&&t===i.length-1)return"function"==typeof n?n(void 0!==r?r:d):void 0!==r?r:d;if(!d&&"boolean"!=typeof d)return s&&(errorLog(new e),errorConsole(_,u,a)),"function"==typeof n?n(void 0!==r?r:d):void 0!==r?r:d;if((d||"boolean"==typeof d)&&i[t+1]&&"function"==typeof d[i[t+1]]&&(A=d),i[t+1]){if("()"===i[t+1]&&"function"!=typeof d)return s&&(errorLog(new e),errorConsole(_,u,a,!0)),"function"==typeof n?n(c):c;if("object"!=typeof d&&"()"!==i[t+1]&&!d[i[t+1]]&&"boolean"!=typeof d)return s&&(errorLog(new e),errorConsole(_,u,a,!1)),"function"==typeof n?n(c):c}}else{if("()"!==i[t])return u=Number(i[t])||0===Number(i[t])?`${u}[${i[t]}]`:`${u}.${i[t]}`,s&&(errorLog(new e),errorConsole(u,i[t],a,!1,!0)),"function"==typeof n?n(c):c;if(u=`${u}${i[t]}`,"function"!=typeof d)return s&&(errorLog(new e),errorConsole(_,u,a,!0)),"function"==typeof n?n(c):c;if(!(d=CONSTRUCTOR_CHECK[typeof A]?o&&o[E]?CONSTRUCTOR_CHECK[typeof A].prototype[i[t-1]].apply(A,o[E]):CONSTRUCTOR_CHECK[typeof A].prototype[i[t-1]].call(A):o&&o[E]?d.apply(null,[...o[E]]):d())&&"boolean"!=typeof d&&t===i.length-1)return"function"==typeof n?n(void 0!==r?r:d):void 0!==r?r:d;if(!d&&"boolean"!=typeof d)return s&&(errorLog(new e),errorConsole(_,u,a)),"function"==typeof n?n(void 0!==r?r:d):void 0!==r?r:d;if(!d&&"boolean"!=typeof d&&t===i.length-1)return"function"==typeof n?n(void 0!==r?r:d):void 0!==r?r:d;if(!d&&"boolean"!=typeof d)return s&&(errorLog(new e),errorConsole(_,u,a)),"function"==typeof n?n(void 0!==r?r:d):void 0!==r?r:d;if((d||"boolean"==typeof d)&&i[t+1]&&"function"==typeof d[i[t+1]]&&(A=d),i[t+1]){if("()"===i[t+1]&&"function"!=typeof d)return s&&(errorLog(new e),errorConsole(_,u,a,!0)),"function"==typeof n?n(c):c;if("object"!=typeof d&&"()"!==i[t+1]&&!d[i[t+1]]&&"boolean"!=typeof d)return s&&(errorLog(new e),errorConsole(_,u,a,!0)),"function"==typeof n?n(c):c}E+=1}_=u}const p=(!d&&"boolean"!=typeof d||"[object Null]"===Object.prototype.toString.call(r)||void 0===r||Object.prototype.toString.call(d)!==Object.prototype.toString.call(r))&&void 0!==r&&"[object Null]"!==Object.prototype.toString.call(r)?r:d;return"function"==typeof n?n(p):p};var nullcheck=nullCheck.bind(null,Error);const infiniteHandler=e=>{let{callback:{updateCallback:t}={},task:{clearData:a,subKey:r=[],limit:n,isAppendTop:o=!1,setInfiniteEnd:s,updateCallback:c=t}={},successData:i={},successDataStatusCode:l,type:d,state:u}=e;return function(){let{data:e={},statusCode:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{data:(()=>{if(r.length>0&&Array.isArray(getIn(e,r))){return updateIn({...e,..."object"===typeOf(i)?i:{},[r[0]]:e[r[0]]},r,e=>a?nullcheck(i,`.${r.join(".")}`,[]):c?c({oldData:e,successData:nullcheck(i,`.${r.join(".")}`,[]),type:d,state:u}):o?nullcheck(i,`.${r.join(".")}`,[]).concat(e):e.concat(nullcheck(i,`.${r.join(".")}`,[])))}const t=Array.isArray(i)?i:[],n=Array.isArray(e)?o?t.concat(e):e.concat(t):t,s=a?i:Array.isArray(i)?n:i;return c?c({oldData:e,successData:i,type:d,state:u}):s})(),error:!1,lastUpdated:generateTimeStamp(),statusCode:l||t,isInfinite:"number"==typeof n,isError:!1,initialState:!1,infiniteEnd:void 0!==s&&"function"==typeof s?s(i):void 0!==n&&"number"==typeof n?(r.length>0?nullcheck(i,`.${r.join(".")}`,[]):i).length<n:null}}},_CheckFilter$2=e=>Array.isArray(e)&&e.length>0?e:e&&"string"==typeof e?e.split("."):[],returnData=e=>{let{data:t,initialData:a,clearData:r,loader:n,request:o}=e;return newObject(t,e=>{let{data:t}=e;return{loading:{status:n,lastUpdated:generateTimeStamp()},lastUpdated:generateTimeStamp(),initialState:!1,...o?{request:o}:{},...r||a?{data:Array.isArray(t)?a||[]:a||{}}:{}}})},filterArrayloadingHandler=function(){let{loader:e,filter:t,clearData:a,initialData:r,request:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o=>{let{data:s={}}=o;return{lastUpdated:generateTimeStamp(),data:(()=>t&&t.some(e=>Array.isArray(e))?t.reduce((t,o)=>updateIn(t,_CheckFilter$2(o),t=>_CheckFilter$2(o).length>0?returnData({data:t,initialData:r,clearData:a,loader:e,request:n}):t),s):updateIn(s,t,t=>returnData({data:t,initialData:r,clearData:a,loader:e,request:n})))()}}},_CheckFilter$3=e=>Array.isArray(e)&&e.length>0?e:e&&"string"==typeof e?e.split("."):[],filterArrayToastEmptyHandler=function(){let{filter:e,isInfinite:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return a=>{let{data:r={}}=a;return{lastUpdated:generateTimeStamp(),data:(()=>e&&e.some(e=>Array.isArray(e))?e.reduce((e,a)=>updateIn(e,_CheckFilter$3(a),e=>_CheckFilter$3(a).length>0?newObject(e,e=>{let{toast:a={}}=e;return{isInfinite:t,toast:newObject(a,{message:"",status:"",isError:null,key:""})}}):e),r):updateIn(r,e,e=>newObject(e,e=>{let{toast:a={}}=e;return{isInfinite:t,toast:newObject(a,{message:"",status:"",isError:null,key:""})}})))()}}},filterArrayToastHandler=function(){let{statusCode:e,filter:t,message:a,isError:r,type:n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return o=>{let{data:s={}}=o;return{lastUpdated:generateTimeStamp(),data:(()=>t&&t.some(e=>Array.isArray(e))?t.reduce((t,o)=>updateIn(t,_CheckFilter$3(o),t=>_CheckFilter$3(o).length>0?newObject(t,{toast:{isError:"boolean"==typeof r?r:![200,201].includes(e),status:e,message:a,key:n,lastUpdated:generateTimeStamp()}}):t),s):updateIn(s,t,t=>newObject(t,{lastUpdated:generateTimeStamp(),toast:{isError:"boolean"==typeof r?r:![200,201].includes(e),status:e,message:a,key:n,lastUpdated:generateTimeStamp()}})))()}}},updateData=function(e,t,a,r,n){let o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:{};return a?a({oldData:e,successData:t,type:r,state:n,config:o})||e:"object"!=typeof t||Array.isArray(t)||"object"!=typeof e||Array.isArray(e)?t:newObject(e,t)},updateHandler=e=>{let{callback:{updateCallback:t}={},task:{key:a,id:r,subKey:n=[],values:o={},dontUpdateResponseData:s=!1,dontUpdateSuccessData:c,updateCallback:i=t}={},successData:l={},successDataStatusCode:d,type:u,state:E}=e;return function(){let{data:e=[],statusCode:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{data:n.length>0?updateIn({...e,..."object"!==typeOf(l)||s||c?{}:l,[n[0]]:e[n[0]]},n,e=>(()=>{let t=-1;const s=Array.isArray(o);return Array.isArray(e)?Array.isArray(r)&&a&&Array.isArray(e)?e.reduce(function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return r.includes(n[a])?(()=>(t+=1,e.concat([updateData(n,o[s?t:n[a]]||l||n,i,u,E,{index:t,id:s?t:n[a]})])))():e.concat([n])},[]):(0===r||r)&&a?e.map(e=>e[a]===r?(()=>(t+=1,updateData(e,o[s?t:e[a]]||l||e,i,u,E,{index:t,id:s?t:e[a]})))():e):updateData(e,nullcheck(l,`.${n.join(".")}`)||l,i,u,E):updateData(e,nullcheck(l,`.${n.join(".")}`)||l,i,u,E)})()):(()=>{let t=-1;const n=Array.isArray(o);return Array.isArray(e)?Array.isArray(r)&&a?e.reduce(function(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return r.includes(s[a])?(()=>(t+=1,e.concat([updateData(s,o[n?t:s[a]]||l||s,i,u,E,{index:t,id:n?t:s[a]})])))():e.concat([s])},[]):(0===r||r)&&a?e.map(e=>e[a]===r?(()=>(t+=1,updateData(e,o[n?t:e[a]]||l||e,i,u,E,{index:t,id:n?t:e[a]})))():e):updateData(e,l,i,u,E):updateData(e,l,i,u,E)})(),statusCode:d||t,lastUpdated:generateTimeStamp(),isError:!1,initialState:!1}}},deletedData=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],a=e;return a="object"===typeOf(e)?{...a}:a,"object"===typeOf(e)?((Array.isArray(t)?t:[t]).forEach(e=>{a=Array.isArray(e)?deleteIn(a,e):deleteIn(a,[e])}),a):e},executeTask$1=(e,t)=>{let{updateCallback:a,successData:r,deleteKey:n,id:o,key:s,type:c,state:i}=e;return a?a({oldData:t,successData:r,type:c,state:i})||t:Array.isArray(t)?Array.isArray(o)?t.reduce((e,t)=>o.includes(t[s])?e.concat([deletedData(t,n)]):e.concat([t]),[]):t.map(e=>e[s]===o?deletedData(e,n):e):deletedData(t,n)},deleteKeyHandler=e=>{let{callback:{updateCallback:t}={},task:{key:a,id:r,deleteKey:n=[],subKey:o=[],updateCallback:s=t}={},successData:c={},successDataStatusCode:i,type:l,state:d}=e;return function(){let{data:e={},statusCode:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const u={updateCallback:s,successData:c,deleteKey:n,id:r,key:a,type:l,state:d};return{data:o.length>0?updateIn({...e,...c,[o[0]]:e[o[0]]},o,e=>executeTask$1(u,e)):executeTask$1(u,e),statusCode:i||t,lastUpdated:generateTimeStamp(),isError:!1,initialState:!1}}},resetHandler=function(e,t,a){let{response:{type:r}}=a,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;return newObject(e,e=>{let{[n||r]:t}=e;return{[n||r]:newObject(t,e=>{let{data:t,toast:a,infiniteEnd:r}=e;return{data:Array.isArray(t)&&[]||{},toast:newObject(a,{message:"",status:""}),loading:{},isError:!1,statusCode:200,infiniteEnd:"boolean"!=typeof r&&void 0,lastUpdated:generateTimeStamp(),initialState:!0,request:void 0}})}})},_CheckFilter$4=e=>Array.isArray(e)&&e.length>0?e:e&&"string"==typeof e?e.split("."):[],filterArrayResetHandler=function(e,t,a,r){let n=arguments.length>4&&void 0!==arguments[4]?arguments[4]:void 0;const{response:{type:o}}=a;return newObject(e,e=>{let{[n||o]:t}=e;return{[o]:newObject(t,function(){let{data:e={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{lastUpdated:generateTimeStamp(),data:(()=>r&&r.some(e=>Array.isArray(e))?r.reduce((e,t)=>updateIn(e,_CheckFilter$4(t),e=>_CheckFilter$4(t).length>0?newObject(e,e=>{let{data:t,toast:a,infiniteEnd:r}=e;return{data:Array.isArray(t)&&[]||{},toast:newObject(a,{message:"",status:""}),isError:!1,infiniteEnd:"boolean"!=typeof r&&void 0,lastUpdated:generateTimeStamp(),initialState:!0,request:void 0}}):e),e):updateIn(e,r,e=>newObject(e,e=>{let{data:t,toast:a,infiniteEnd:r}=e;return{data:Array.isArray(t)&&[]||{},toast:newObject(a,{message:"",status:""}),isError:!1,infiniteEnd:"boolean"!=typeof r&&void 0,lastUpdated:generateTimeStamp(),initialState:!0,request:void 0}})))()}})}})},updateData$1=function(e,t,a,r,n,o){let s=arguments.length>6&&void 0!==arguments[6]?arguments[6]:{};return a?a({oldData:e,successData:t,type:n,state:o,config:s})||e:"object"!=typeof t||Array.isArray(t)||"object"!=typeof e||Array.isArray(e)?t:r?r.reduce((e,a)=>Array.isArray(a)&&a.length>0?updateIn(e,a,e=>nullcheck(t,`.${a.join(".")}`)):{...e,[a]:t[a]},e):e},updateKeyHandler=e=>{let{callback:{updateCallback:t}={},task:{key:a,id:r,subKey:n=[],values:o={},updateKey:s=[],updateCallback:c=t,dontUpdateResponseData:i,dontUpdateSuccessData:l}={},successData:d={},successDataStatusCode:u,type:E,state:_}=e;return function(){let{data:e=[],statusCode:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{data:n.length>0?updateIn({...e,..."object"!==typeOf(d)||i||l?{}:d,[n[0]]:e[n[0]]},n,e=>(()=>{let t=-1;const i=Array.isArray(o);return Array.isArray(e)?Array.isArray(r)&&a&&Array.isArray(e)?e.reduce(function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return r.includes(n[a])?(()=>(t+=1,e.concat([updateData$1(n,o[i?t:n[a]]||n,c,s,E,_,{index:t,id:i?t:n[a]})])))():e.concat([n])},[]):(0===r||r)&&a?e.map(e=>e[a]===r?(()=>(t+=1,updateData$1(e,o[i?t:e[a]]||e,c,s,E,_,{index:t,id:i?t:e[a]})))():e):updateData$1(e,nullcheck(d,`.${n.join(".")}`),c,s,E,_):updateData$1(e,nullcheck(d,`.${n.join(".")}`),c,s,E,_)})()):(()=>{let t=-1;const n=Array.isArray(o);return Array.isArray(e)?Array.isArray(r)&&a?e.reduce(function(e){let i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return r.includes(i[a])?(()=>(t+=1,e.concat([updateData$1(i,o[n?t:i[a]]||i,c,s,E,_,{index:t,id:n?t:i[a]})])))():e.concat([i])},[]):(0===r||r)&&a?e.map(e=>e[a]===r?(()=>(t+=1,updateData$1(e,o[n?t:e[a]],c,s,E,_,{index:t,id:n?t:e[a]})))():e):updateData$1(e,d,c,s,E,_):updateData$1(e,d,c,s,E,_)})(),statusCode:u||t,lastUpdated:generateTimeStamp(),isError:!1,initialState:!1}}},toggleData=(e,t)=>Object.keys(e).reduce((a,r)=>({...a,[r]:t.includes(r)?!e[r]:e[r]}),{}),executeTask$2=(e,t)=>{let{successData:a,toggleKey:r,id:n,key:o,updateCallback:s,type:c,state:i}=e;const l=Array.isArray(t)?Array.isArray(n)?t.reduce((e,t)=>n.includes(t[o])?e.concat([toggleData(t,r)]):e.concat([t]),[]):t.map(e=>e[o]===n?toggleData(e,r):e):toggleData(t,r);return s?s({updatedData:l,successData:a,type:c,state:i})||t:l},toggleKeyHandler=e=>{let{callback:{updateCallback:t}={},task:{key:a,id:r,toggleKey:n=[],subKey:o=[],updateCallback:s=t}={},successData:c={},successDataStatusCode:i,type:l,state:d}=e;return function(){let{data:e={},statusCode:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const u={successData:c,toggleKey:n,id:r,key:a,updateCallback:s,type:l,state:d};return{data:o.length>0?updateIn({...e,..."object"===typeOf(c)?c:{},[o[0]]:e[o[0]]},o,e=>executeTask$2(u,e)):executeTask$2(u,e),statusCode:i||t,lastUpdated:generateTimeStamp(),isError:!1,initialState:!1}}},_checkIsNotObject=e=>"[object Object]"!==Object.prototype.toString.call(e),dataHandler=e=>{let{mutation:t,callback:{updateCallback:a}={},task:{clearData:r,subKey:n=[],updateCallback:o=a}={},successData:s={},successDataStatusCode:c,type:i,state:l}=e;return function(){let{data:e={},statusCode:a,...d}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t?{data:e,statusCode:a,...d,...s}:{data:(()=>{if(n.length>0){return updateIn({...e,..._checkIsNotObject(s)?{}:s,[n[0]]:e[n[0]]},n,e=>r?nullcheck(s,`.${n.join(".")}`):o?o({oldData:e,successData:nullcheck(s,`.${n.join(".")}`),type:i,state:l}):_checkIsNotObject(nullcheck(s,`.${n.join(".")}`))||_checkIsNotObject(nullcheck(e,`.${n.join(".")}`))?nullcheck(s,`.${n.join(".")}`):newObject(e,nullcheck(s,`.${n.join(".")}`)))}return o?o({oldData:e,successData:s,type:i,state:l}):_checkIsNotObject(s)||_checkIsNotObject(e)||r?s:newObject(e,s)})(),statusCode:c||a,error:!1,lastUpdated:generateTimeStamp(),isInfinite:null,infiniteEnd:null,isError:!1,initialState:!1}}},dontUpdateDataHandler=e=>{let{successDataStatusCode:t}=e;return function(){let{statusCode:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{statusCode:t||e,error:!1,lastUpdated:generateTimeStamp(),isError:!1}}},spliceHandler=e=>{let{callback:{updateCallback:t}={},task:{clearData:a,spliceKey:r=[],subKey:n=[],updateCallback:o=t}={},successData:s={},successDataStatusCode:c,type:i,state:l}=e;return function(){let{data:e={},statusCode:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{data:(()=>{if(n.length>0&&Array.isArray(getIn(e,n))){return updateIn({...e,..."object"===typeOf(s)?s:{},[n[0]]:e[n[0]]},n,e=>a?nullcheck(s,`.${n.join(".")}`,[]):o?o({oldData:e,successData:nullcheck(s,`.${n.join(".")}`,[]),type:i,state:l}):Array.isArray(e)?(()=>{const t=e.slice();return t.splice(...r,...nullcheck(s,`.${n.join(".")}`,[])),t})():e)}const t=Array.isArray(e)?e.slice().splice(...r,...nullcheck(s,`.${n.join(".")}`,[])):e;return o?o({oldData:e,successData:s,type:i,state:l}):t})(),statusCode:c||t,error:!1,lastUpdated:generateTimeStamp(),isError:!1,initialState:!1}}},checkKey$1=e=>{invariant("function"===typeOf(e),`(react-boilerplate-redux-saga-hoc) ${void 0===e?"Callback Handler required callback key":"callback is not a function"}`)},callbackHandler=e=>{let{task:{callback:t}={},successData:a={},successDataStatusCode:r,state:n,type:o,...s}=e;return function(){let{data:e={},statusCode:s,...c}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return checkKey$1(t),{lastUpdated:generateTimeStamp(),...t({oldData:e,newData:a,rest:{...c,statusCode:s},status:s||r,successDataStatusCode:r,state:n,type:o,extras:c||{}})}}},resetReducerHandler=()=>(function(){let{data:{data:e,toast:t,infiniteEnd:a}={},statusCode:r,...n}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{data:Array.isArray(e)?[]:{},toast:{message:"",status:""},isError:!1,statusCode:null,infiniteEnd:"boolean"!=typeof a&&void 0,lastUpdated:generateTimeStamp(),initialState:!0}}),reducerErrorHandler=e=>{let{task:{error:t,isError:a}={},successData:r={},successDataStatusCode:n}=e;return function(){let{data:{data:e,toast:r,infiniteEnd:n,error:o,isError:s}={},statusCode:c,...i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{error:t||o||{},isError:"boolean"==typeof a?a:s,lastUpdated:generateTimeStamp()}}},reducerLoadingHandler=e=>{let{task:{loader:t}={},successData:a={},successDataStatusCode:r}=e;return function(){let{data:{data:e,toast:a,infiniteEnd:r,error:n,isError:o,loading:{status:s}={}}={},statusCode:c,...i}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{loading:{status:"boolean"==typeof t?t:s,lastUpdated:generateTimeStamp()},lastUpdated:generateTimeStamp()}}},reducerToastHandler=e=>{let{task:{toast:t}={},successData:a={},successDataStatusCode:r}=e;return function(){let{data:{data:e,toast:a,infiniteEnd:r}={},statusCode:n,...o}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{toast:t||a||{message:"",status:""},isError:!1,lastUpdated:generateTimeStamp()}}},{API_END_POINTS_CONFIG_DEFAULT_VALUE:API_END_POINTS_CONFIG_DEFAULT_VALUE$1,API_END_POINTS_CONFIG_KEYS:API_END_POINTS_CONFIG_KEYS$1,USE_QUERY_CONFIG_KEYS:USE_QUERY_CONFIG_KEYS$1,API_TASK_CONFIG_KEYS:API_TASK_CONFIG_KEYS$1,INFINITE_DATA_HANDLER:INFINITE_DATA_HANDLER$1,DATA_HANDLER:DATA_HANDLER$1,DELETE_DATA_HANDLER:DELETE_DATA_HANDLER$1,UPDATE_DATA_HANDLER:UPDATE_DATA_HANDLER$1,UPDATE_DATA_KEY_HANDLER:UPDATE_DATA_KEY_HANDLER$1,DELETE_DATA_KEY_HANDLER:DELETE_DATA_KEY_HANDLER$1,TOGGLE_DATA_KEY_HANDLER:TOGGLE_DATA_KEY_HANDLER$1,SPLICE_DATA_HANDLER:SPLICE_DATA_HANDLER$1,RESET_HANDLER:RESET_HANDLER$1,CALLBACK_HANDLER:CALLBACK_HANDLER$1,TOAST_HANDLER:TOAST_HANDLER$1,ERROR_HANDLER:ERROR_HANDLER$1,LOADER_HANDLER:LOADER_HANDLER$1,DONT_UPDATE_DATA_HANDLER:DONT_UPDATE_DATA_HANDLER$1,ON_CANCEL_ERROR:ON_CANCEL_ERROR$1,ON_ERROR:ON_ERROR$1,ON_SUCCESS:ON_SUCCESS$1,ON_FINALLY:ON_FINALLY$1,ON_CANCEL:ON_CANCEL$1,ON_REQUEST:ON_REQUEST$1,ON_LOADING:ON_LOADING$1,ON_UNMOUNT:ON_UNMOUNT$1,ON_TOAST:ON_TOAST$1,ERROR:ERROR$1,SUCCESS:SUCCESS$1,CALL:CALL$1,CANCEL:CANCEL$1,CUSTOM:CUSTOM$1,TYPE_NULL:TYPE_NULL$1,TYPE_UNDEFINED:TYPE_UNDEFINED$1,TYPE_STRING:TYPE_STRING$1,TYPE_ARRAY:TYPE_ARRAY$1,TYPE_BOOLEAN:TYPE_BOOLEAN$1,TYPE_OBJECT:TYPE_OBJECT$1,TYPE_FUNCTION:TYPE_FUNCTION$1,TYPE_ERROR:TYPE_ERROR$1,TYPE_SYMBOL:TYPE_SYMBOL$1,TYPE_GENERATOR_FUNCTION:TYPE_GENERATOR_FUNCTION$1,TAKE_EVERY:TAKE_EVERY$1}=commonConstants,safe=nullcheck,responseErrorParser=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Array.isArray(e)&&e.reduce((e,t)=>{const[a,r]=Object.entries(t)[0];return{...e,[a.split(",")[1]]:r}},{})||{}},commmonStateHandler=e=>{let{state:t,action:a,newState:r,method:n,constants:o,updateState:s}=e;const{payload:{filter:c,task:i={},dontUpdateReducer:l,dontUpdateReducerOnCall:d,request:u}={}}=a,E=u?{...u}:void 0;if(E&&E.payload&&delete E.payload,l||d)return t;const{payload:{task:{clearDataOnStart:_}={},initialCallData:A,proxyFor:p}={}}=a,{response:{type:S,statusCode:O,message:f,status:y,customTask:R,payload:{proxyFor:C,filter:T,loader:N,toast:D}={}}={}}=a,g=p||C||S||a.type,L=p||C||S,h=Object.keys(o).includes(a.type);let I=newObject(t);if(((n===ON_LOADING||h||[ON_SUCCESS,ON_ERROR].includes(n))&&!R||void 0!==N&&R&&(Array.isArray(n)?n:[n]).includes(ON_LOADING))&&((y||h)&&c&&c.length>0?I=r(e=>{let{[g]:t}=e;return{[g]:newObject(t,filterArrayToastEmptyHandler({isInfinite:"Infinite-Handler"===i.name,filter:Array.isArray(c)&&c||[c]})(t))}}):(y||h)&&(I=r(e=>{let{[g]:t}=e;return{[g]:newObject(t,e=>{let{toast:t={}}=e;return{toast:newObject(t,{message:"",status:"",isError:!1,key:""})}})}})),I=(c||T)&&!R&&(c||T).length>0||R&&void 0!==N&&(c||T||[]).length>0?newObject(I,e=>{let{[g]:t}=e;return{[g]:newObject(t,filterArrayloadingHandler({filter:Array.isArray(c||T)&&(c||T)||[c||T],...E?{request:E}:{},loader:R&&void 0!==N?N:!A&&(![ON_SUCCESS,ON_ERROR].includes(n)&&(y||h)),clearData:_,initialData:A})(t))}}):newObject(I,e=>{let{[g]:t}=e;return{[g]:newObject(t,e=>{let{data:t}=e;return{loading:{status:R&&void 0!==N?N:!A&&(![ON_SUCCESS,ON_ERROR].includes(n)&&(y||h)),lastUpdated:generateTimeStamp()},...E?{request:E}:{},initialState:!1,...!_&&!A||[ON_SUCCESS,ON_ERROR].includes(n)?{}:{data:A||(Array.isArray(t)?[]:{})}}})}}),n===ON_LOADING||h))return I;return([ON_SUCCESS,ON_ERROR].includes(n)&&Object.keys(o).includes(L)&&!R||D&&R&&(Array.isArray(n)?n:[n]).includes("TOAST"))&&(I=T&&T.length>0?newObject(I,e=>{let{[L]:t}=e;return{[L]:newObject(t,filterArrayToastHandler({statusCode:O,filter:Array.isArray(T)&&T||[T],message:f,type:L,...D&&R&&(Array.isArray(n)?n:[n]).includes("TOAST")?D:{}})(t))}}):newObject(I,e=>{let{[L]:t}=e;return{[L]:newObject(t,{toast:{isError:![200,201].includes(O),status:O,message:f,key:L,lastUpdated:generateTimeStamp(),...D&&R&&(Array.isArray(n)?n:[n]).includes("TOAST")?D:{}},initialState:!1})}})),s({state:I,newState:newObject.bind({},I),action:a,reset:T&&T.length>0?filterArrayResetHandler.bind({},t,r,a,T):resetHandler.bind({},t,r,a)})},getData=function(e,t){let a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[];return{...safe(e,`${r.length?".data.":""}${r.join(".")}`,{}),data:safe(e,`.data${r.length?".":""}${r.join(".")}${r.length?".data":""}`,t),loader:safe(e,`${r.length?".data.":""}${r.join(".")}.loading.status`,"boolean"==typeof a&&a),lastUpdated:safe(e,`${r.length?".data.":""}${r.join(".")}.lastUpdated`),isInfinite:safe(e,`${r.length?".data.":""}${r.join(".")}.isInfinite`,!1),infiniteEnd:safe(e,`${r.length?".data.":""}${r.join(".")}.infiniteEnd`,!1),isError:safe(e,`${r.length?".data.":""}${r.join(".")}.isError`,!1),toast:safe(e,`${r.length?".data.":""}${r.join(".")}.toast`,{}),error:safe(e,`${r.length?".data.":""}${r.join(".")}.error`,{})}},bindActionsToDispatch=(e,t)=>Object.entries(redux.bindActionCreators(e,t)).reduce((e,t)=>{let[a,r]=t;return{...e,[a]:a&&a.includes("_CALL")&&"_CALL"===a.slice(-5)?toPromise.bind(null,r):r}},{}),mutateState=(e,t)=>a=>e({type:`${t}_MUTATE_STATE`,payload:a}),mapDispatchToProps=(e,t,a)=>r=>({dispatch:r,...e&&Object.keys(e).length?newObject(t,t=>{let{[`${a}_hoc`]:n}=t;return{[`${a}_hoc`]:newObject(n,{actions:bindActionsToDispatch(e,r),mutateState:mutateState(r,a)})}}):{}}),toPromise=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,n=t,o=!1;return"boolean"==typeof t?(n={},o=t):o=n._isReject||a,typeOf(n)!==TYPE_OBJECT$1&&(n={}),new Promise((t,a)=>"function"==typeof r?r(e({...n,resolve:t,reject:a,isReject:o})):e({...n,resolve:t,reject:a,isReject:o}))},HANDLERS$1=[{name:"Infinite-Handler",handler:infiniteHandler},{name:DATA_HANDLER,handler:dataHandler},{name:"Delete-Handler",handler:deleteHandler},{name:"Update-Handler",handler:updateHandler},{name:"Update-Key-Handler",handler:updateKeyHandler},{name:"Delete-Key-Handler",handler:deleteKeyHandler},{name:"Toggle-Key-Handler",handler:toggleKeyHandler},{name:SPLICE_DATA_HANDLER,handler:spliceHandler},{name:CALLBACK_HANDLER,handler:callbackHandler},{name:RESET_HANDLER,handler:resetReducerHandler},{name:TOAST_HANDLER,handler:reducerToastHandler},{name:ERROR_HANDLER,handler:reducerErrorHandler},{name:LOADER_HANDLER,handler:reducerLoadingHandler},{name:DONT_UPDATE_DATA_HANDLER,handler:dontUpdateDataHandler}],checkKey$2=(e,t,a)=>{invariant(typeOf(e)===a,`(react-boilerplate-redux-saga-hoc) Expected \`${t}\` to be a ${a}`)},CheckCustomHanderFormat=e=>e&&"function"==typeof e?e:null,_CheckFilter$5=e=>Array.isArray(e)&&e.length>0?e:e&&"string"==typeof e&&e.length>0?e.split("."):null,COMMON_HANDLER=(e,t,a,r)=>{let n=t;const o="array"===typeOf(e.tasks)?e.tasks.filter(e=>e.task||e.filter):[];return(o.length>0?o:Array(1).fill(e)).forEach(function(){let{task:t={},filter:o}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=null;t.response&&!t.dontUpdateResponseData&&checkKey$2(t.response,"task { response : { data }}","object"),s=(n=>n({...e,type:r,state:a,filter:_CheckFilter$5(o||e.filter),successData:t.dontUpdateResponseData?{}:(t.response||{}).data||e.successData}));const c=CheckCustomHanderFormat(t.customHandler),i=_CheckFilter$5(o),l=e=>newObject(n,s(e)),d=HANDLERS$1.concat(Array.isArray(e.handlers)?e.handlers:[]).find(e=>{let{name:a}=e;return a===t.name||a===t});if(d)checkKey$2(d.handler,`${d.name} handler with key name handler`,"function"),n=l(i?commonFilterHandler(d.handler):d.handler);else if(c&&t.name===CUSTOM_HANDLER)n=l(i?commonFilterHandler(c):c)||n;else{if(t.name===DONT_UPDATE_DATA_HANDLER||t===DONT_UPDATE_DATA_HANDLER)return n;n=l(i?commonFilterHandler(dataHandler):dataHandler)}}),n},COMMON_REDUCER_HANDLER=(e,t)=>{const{response:{customTask:a,mutation:r,data:{data:n={},...o}={},payload:{request:{query:s={},clearDataOnError:c=!1}={},filter:i,error:l}={},error:{data:d={}}={}}={}}=e,u=_CheckFilter$5(i);return[COMMON_HANDLER.bind(null,{handlers:t,successData:n,errorData:d,successDataStatusCode:o.statusCode,customTask:a,mutation:r,...e.response.payload}),(u&&filterArrayErrorHandler||errorHandler).bind(null,{errorData:a?l:d,query:s,filter:u,clearDataOnError:c,statusCode:o.statusCode})]},DEFAULT_REDUCER_HANDLER=e=>{let{method:t,reset:a,state:r,action:n,handlers:o,type:s}=e;const[c,i]=COMMON_REDUCER_HANDLER(n,o),{response:{customTask:l,mutation:d,data:{data:u={},...E}={},payload:{callback:{updateStateCallback:_}={},excuteUpdateStateCallbackOnError:A,updateStateCallbackOnError:p,tasks:S,updateDataReducerKey:O,proxyFor:f,_errortask:y}={},error:{data:R={},status:C}={}}={}}=n;let T=r;const N=f||s,D=(Array.isArray(t)?t:[t,y?ON_SUCCESS:null]).filter(e=>[ON_SUCCESS,ON_ERROR,ON_UNMOUNT].includes(e));for(let e=0;e<D.length;e+=1)switch(D[e]){case ON_SUCCESS:{let e;const t=S?Array.isArray(S)&&S.filter(e=>"object"===typeOf(e)):null;