@elliemae/pui-app-sdk 4.10.0-beta.1 → 4.10.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var baseQuery_exports = {};
20
+ __export(baseQuery_exports, {
21
+ sdkBaseQuery: () => sdkBaseQuery
22
+ });
23
+ module.exports = __toCommonJS(baseQuery_exports);
24
+ var import_index = require("./index.js");
25
+ const sdkBaseQuery = ({ baseUrl } = {}) => async ({ url, method, data, params, headers }) => {
26
+ try {
27
+ const result = await (0, import_index.getAuthHTTPClient)({
28
+ baseURL: baseUrl,
29
+ headers
30
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
31
+ }).request({ url, method, data, params });
32
+ return { data: result.data };
33
+ } catch (axiosError) {
34
+ const err = axiosError;
35
+ return {
36
+ error: {
37
+ status: err.response?.status,
38
+ data: err.response?.data || err.message
39
+ }
40
+ };
41
+ }
42
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var errorMiddleware_exports = {};
20
+ __export(errorMiddleware_exports, {
21
+ errorMiddleware: () => errorMiddleware
22
+ });
23
+ module.exports = __toCommonJS(errorMiddleware_exports);
24
+ var import_toolkit = require("@reduxjs/toolkit");
25
+ var import_error = require("./error/index.js");
26
+ const errorMiddleware = (api) => (next) => (action) => {
27
+ if ((0, import_toolkit.isRejectedWithValue)(action)) {
28
+ api.dispatch(import_error.actions.set({ messageText: action?.error?.data?.message }));
29
+ }
30
+ return next(action);
31
+ };
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var listenerMiddleware_exports = {};
20
+ __export(listenerMiddleware_exports, {
21
+ addListener: () => addListener,
22
+ listenerMiddleware: () => listenerMiddleware,
23
+ removeListener: () => removeListener,
24
+ resetListeners: () => resetListeners
25
+ });
26
+ module.exports = __toCommonJS(listenerMiddleware_exports);
27
+ var import_toolkit = require("@reduxjs/toolkit");
28
+ let listenerAPI;
29
+ const rtkListenerMiddleware = (0, import_toolkit.createListenerMiddleware)();
30
+ const listenerDispatchFns = /* @__PURE__ */ new Map();
31
+ const listenerMiddleware = (_listenerAPI) => {
32
+ listenerAPI = _listenerAPI;
33
+ return rtkListenerMiddleware.middleware(listenerAPI);
34
+ };
35
+ const addListener = ({
36
+ key,
37
+ listener
38
+ }) => {
39
+ if (listenerDispatchFns.has(key) && listenerAPI) {
40
+ listenerDispatchFns.set(key, listener);
41
+ return rtkListenerMiddleware.startListening(listener);
42
+ }
43
+ return null;
44
+ };
45
+ const removeListener = (key) => {
46
+ const listener = listenerDispatchFns.get(key);
47
+ if (listener) {
48
+ listenerDispatchFns.delete(key);
49
+ return rtkListenerMiddleware.stopListening(listener);
50
+ }
51
+ return true;
52
+ };
53
+ const resetListeners = () => {
54
+ listenerDispatchFns.forEach((listener) => {
55
+ rtkListenerMiddleware.stopListening(listener);
56
+ });
57
+ listenerDispatchFns.clear();
58
+ };
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var queryMiddleware_exports = {};
20
+ __export(queryMiddleware_exports, {
21
+ addMiddleware: () => addMiddleware,
22
+ queryMiddleware: () => queryMiddleware,
23
+ removeMiddleware: () => removeMiddleware,
24
+ resetMiddlewares: () => resetMiddlewares
25
+ });
26
+ module.exports = __toCommonJS(queryMiddleware_exports);
27
+ var import_redux = require("redux");
28
+ const middlewareDispatchFns = /* @__PURE__ */ new Map();
29
+ let store;
30
+ const queryMiddleware = (_store) => {
31
+ store = _store;
32
+ const dispatchFns = Array.from(middlewareDispatchFns.values());
33
+ return (next) => (action) => (
34
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
35
+ (0, import_redux.compose)(...dispatchFns)(next)(action)
36
+ );
37
+ };
38
+ const addMiddleware = ({
39
+ key,
40
+ middleware
41
+ }) => {
42
+ if (middlewareDispatchFns.has(key) || !store)
43
+ return;
44
+ middlewareDispatchFns.set(key, middleware(store));
45
+ };
46
+ const removeMiddleware = (key) => {
47
+ middlewareDispatchFns.delete(key);
48
+ };
49
+ const resetMiddlewares = () => {
50
+ middlewareDispatchFns.clear();
51
+ };
@@ -18,20 +18,36 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var redux_injectors_exports = {};
20
20
  __export(redux_injectors_exports, {
21
- createManager: () => import_redux_injectors2.createManager,
22
- useInjectReducer: () => useInjectReducer,
23
- useInjectSaga: () => import_redux_injectors2.useInjectSaga
21
+ useInjectListener: () => useInjectListener,
22
+ useInjectQuery: () => useInjectQuery
24
23
  });
25
24
  module.exports = __toCommonJS(redux_injectors_exports);
25
+ var import_react = require("react");
26
26
  var import_redux_injectors = require("redux-injectors");
27
- var import_middleware = require("./middleware.js");
28
- var import_redux_injectors2 = require("redux-injectors");
29
- const useInjectReducer = ({
27
+ var import_queryMiddleware = require("./queryMiddleware.js");
28
+ var import_listenerMiddleware = require("./listenerMiddleware.js");
29
+ const useInjectQuery = ({
30
30
  key,
31
31
  reducer,
32
- middleware
32
+ queryMiddleware
33
33
  }) => {
34
34
  (0, import_redux_injectors.useInjectReducer)({ key, reducer });
35
- if (middleware)
36
- (0, import_middleware.addMiddleware)(middleware);
35
+ return (0, import_react.useEffect)(() => {
36
+ if (!queryMiddleware)
37
+ return () => {
38
+ };
39
+ (0, import_queryMiddleware.addMiddleware)({ key, middleware: queryMiddleware });
40
+ return () => {
41
+ (0, import_queryMiddleware.removeMiddleware)(key);
42
+ };
43
+ }, [key, reducer, queryMiddleware]);
37
44
  };
45
+ const useInjectListener = ({
46
+ key,
47
+ listener
48
+ }) => (0, import_react.useEffect)(() => {
49
+ (0, import_listenerMiddleware.addListener)({ key, listener });
50
+ return () => {
51
+ (0, import_listenerMiddleware.removeListener)(key);
52
+ };
53
+ }, [key, listener]);
@@ -39,14 +39,15 @@ var import_redux_injectors = require("redux-injectors");
39
39
  var import_redux_saga = __toESM(require("redux-saga"));
40
40
  var import_reducers = require("./reducers.js");
41
41
  var import_webpack_hmr = require("./webpack-hmr.js");
42
- var import_middleware = __toESM(require("./middleware.js"));
42
+ var import_queryMiddleware = require("./queryMiddleware.js");
43
+ var import_listenerMiddleware = require("./listenerMiddleware.js");
43
44
  const rootReducer = (0, import_reducers.createReducer)();
44
45
  let appStore = null;
45
46
  const setStore = (store) => {
46
47
  appStore = store;
47
48
  };
48
49
  const getStore = () => appStore;
49
- const createStore = (initialState, sagaMiddleware, history, middlewareConfig = { thunk: false }) => {
50
+ const createStore = (initialState, sagaMiddleware, history, middlewareConfig = {}) => {
50
51
  const { run: runSaga } = sagaMiddleware;
51
52
  const enhancers = [
52
53
  (0, import_redux_injectors.createInjectorsEnhancer)({
@@ -56,10 +57,7 @@ const createStore = (initialState, sagaMiddleware, history, middlewareConfig = {
56
57
  ];
57
58
  const baseStore = (0, import_toolkit.configureStore)({
58
59
  reducer: rootReducer,
59
- middleware: (getDefaultMiddleware) => getDefaultMiddleware(middlewareConfig).concat([
60
- sagaMiddleware,
61
- import_middleware.default
62
- ]),
60
+ middleware: (getDefaultMiddleware) => getDefaultMiddleware(middlewareConfig).prepend(import_listenerMiddleware.listenerMiddleware).concat([sagaMiddleware, import_queryMiddleware.queryMiddleware]),
63
61
  devTools: true,
64
62
  preloadedState: initialState,
65
63
  enhancers
package/dist/cjs/index.js CHANGED
@@ -68,9 +68,10 @@ __export(lib_exports, {
68
68
  auth: () => import_actions.auth,
69
69
  authorize: () => import_auth.authorize,
70
70
  configureStore: () => import_store.createAppStore,
71
- createManager: () => import_redux_injectors.createManager,
71
+ createManager: () => import_data.createManager,
72
72
  enableReactAppForHostIntegration: () => import_react.enableReactAppForHostIntegration,
73
73
  error: () => import_error.actions,
74
+ errorMiddleware: () => import_errorMiddleware.errorMiddleware,
74
75
  fetchHostAppData: () => import_fetch_host_app_data.fetchHostAppData,
75
76
  fetchUserSettings: () => import_users.getUser,
76
77
  getApiActionCreator: () => import_helpers2.getApiActionCreator,
@@ -108,6 +109,7 @@ __export(lib_exports, {
108
109
  renderWithRouter: () => import_render_with_router.renderWithRouter,
109
110
  renderWithRouterRedux: () => import_render_with_router_redux.renderWithRouterRedux,
110
111
  resetUserIdleTime: () => import_session.resetUserIdleTime,
112
+ sdkBaseQuery: () => import_baseQuery.sdkBaseQuery,
111
113
  sendBAEvent: () => import_analytics.sendBAEvent,
112
114
  sendMessageToHost: () => import_message_to_host_app.sendMessageToHost,
113
115
  setAppConfig: () => import_config.setAppConfig,
@@ -121,8 +123,10 @@ __export(lib_exports, {
121
123
  updateBAEventParameters: () => import_web_analytics.updateBAEventParameters,
122
124
  useAppDispatch: () => import_react_redux.useAppDispatch,
123
125
  useAppSelector: () => import_react_redux.useAppSelector,
124
- useInjectReducer: () => import_redux_injectors.useInjectReducer,
125
- useInjectSaga: () => import_redux_injectors.useInjectSaga,
126
+ useInjectListener: () => import_redux_injectors.useInjectListener,
127
+ useInjectQuery: () => import_redux_injectors.useInjectQuery,
128
+ useInjectReducer: () => import_data.useInjectReducer,
129
+ useInjectSaga: () => import_data.useInjectSaga,
126
130
  useMediaQueryList: () => import_use_media_query_list.useMediaQueryList,
127
131
  waitMessageAction: () => import_actions3.waitMessage,
128
132
  withAppDecorator: () => import_decorator.withAppDecorator
@@ -130,13 +134,16 @@ __export(lib_exports, {
130
134
  module.exports = __toCommonJS(lib_exports);
131
135
  var import_auth = require("./utils/auth/index.js");
132
136
  var import_http_client = require("./communication/http-client/index.js");
137
+ var import_baseQuery = require("./communication/http-client/baseQuery.js");
133
138
  var import_response_interceptor = require("./communication/http-client/response-interceptor.js");
134
139
  var import_actions = require("./data/auth/actions.js");
135
140
  var import_require_auth = require("./view/require-auth.js");
136
141
  var import_page = require("./view/page.js");
137
142
  var import_constants = __toESM(require("./utils/constants.js"));
138
143
  var import_react_redux = require("./data/react-redux.js");
144
+ var import_data = require("./data/index.js");
139
145
  var import_redux_injectors = require("./data/redux-injectors.js");
146
+ var import_errorMiddleware = require("./data/errorMiddleware.js");
140
147
  var import_helper = require("./utils/auth/helper.js");
141
148
  var import_url = require("./utils/url.js");
142
149
  var import_store = require("./data/store.js");
@@ -0,0 +1,22 @@
1
+ import { getAuthHTTPClient } from "./index.js";
2
+ const sdkBaseQuery = ({ baseUrl } = {}) => async ({ url, method, data, params, headers }) => {
3
+ try {
4
+ const result = await getAuthHTTPClient({
5
+ baseURL: baseUrl,
6
+ headers
7
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
8
+ }).request({ url, method, data, params });
9
+ return { data: result.data };
10
+ } catch (axiosError) {
11
+ const err = axiosError;
12
+ return {
13
+ error: {
14
+ status: err.response?.status,
15
+ data: err.response?.data || err.message
16
+ }
17
+ };
18
+ }
19
+ };
20
+ export {
21
+ sdkBaseQuery
22
+ };
@@ -0,0 +1,11 @@
1
+ import { isRejectedWithValue } from "@reduxjs/toolkit";
2
+ import { actions as error } from "./error/index.js";
3
+ const errorMiddleware = (api) => (next) => (action) => {
4
+ if (isRejectedWithValue(action)) {
5
+ api.dispatch(error.set({ messageText: action?.error?.data?.message }));
6
+ }
7
+ return next(action);
8
+ };
9
+ export {
10
+ errorMiddleware
11
+ };
@@ -0,0 +1,38 @@
1
+ import { createListenerMiddleware } from "@reduxjs/toolkit";
2
+ let listenerAPI;
3
+ const rtkListenerMiddleware = createListenerMiddleware();
4
+ const listenerDispatchFns = /* @__PURE__ */ new Map();
5
+ const listenerMiddleware = (_listenerAPI) => {
6
+ listenerAPI = _listenerAPI;
7
+ return rtkListenerMiddleware.middleware(listenerAPI);
8
+ };
9
+ const addListener = ({
10
+ key,
11
+ listener
12
+ }) => {
13
+ if (listenerDispatchFns.has(key) && listenerAPI) {
14
+ listenerDispatchFns.set(key, listener);
15
+ return rtkListenerMiddleware.startListening(listener);
16
+ }
17
+ return null;
18
+ };
19
+ const removeListener = (key) => {
20
+ const listener = listenerDispatchFns.get(key);
21
+ if (listener) {
22
+ listenerDispatchFns.delete(key);
23
+ return rtkListenerMiddleware.stopListening(listener);
24
+ }
25
+ return true;
26
+ };
27
+ const resetListeners = () => {
28
+ listenerDispatchFns.forEach((listener) => {
29
+ rtkListenerMiddleware.stopListening(listener);
30
+ });
31
+ listenerDispatchFns.clear();
32
+ };
33
+ export {
34
+ addListener,
35
+ listenerMiddleware,
36
+ removeListener,
37
+ resetListeners
38
+ };
@@ -0,0 +1,31 @@
1
+ import { compose } from "redux";
2
+ const middlewareDispatchFns = /* @__PURE__ */ new Map();
3
+ let store;
4
+ const queryMiddleware = (_store) => {
5
+ store = _store;
6
+ const dispatchFns = Array.from(middlewareDispatchFns.values());
7
+ return (next) => (action) => (
8
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
9
+ compose(...dispatchFns)(next)(action)
10
+ );
11
+ };
12
+ const addMiddleware = ({
13
+ key,
14
+ middleware
15
+ }) => {
16
+ if (middlewareDispatchFns.has(key) || !store)
17
+ return;
18
+ middlewareDispatchFns.set(key, middleware(store));
19
+ };
20
+ const removeMiddleware = (key) => {
21
+ middlewareDispatchFns.delete(key);
22
+ };
23
+ const resetMiddlewares = () => {
24
+ middlewareDispatchFns.clear();
25
+ };
26
+ export {
27
+ addMiddleware,
28
+ queryMiddleware,
29
+ removeMiddleware,
30
+ resetMiddlewares
31
+ };
@@ -1,17 +1,39 @@
1
- import { useInjectReducer as useOriginalInjectReducer } from "redux-injectors";
2
- import { addMiddleware } from "./middleware.js";
3
- const useInjectReducer = ({
1
+ import { useEffect } from "react";
2
+ import { useInjectReducer } from "redux-injectors";
3
+ import {
4
+ addMiddleware,
5
+ removeMiddleware
6
+ } from "./queryMiddleware.js";
7
+ import {
8
+ addListener,
9
+ removeListener
10
+ } from "./listenerMiddleware.js";
11
+ const useInjectQuery = ({
4
12
  key,
5
13
  reducer,
6
- middleware
14
+ queryMiddleware
7
15
  }) => {
8
- useOriginalInjectReducer({ key, reducer });
9
- if (middleware)
10
- addMiddleware(middleware);
16
+ useInjectReducer({ key, reducer });
17
+ return useEffect(() => {
18
+ if (!queryMiddleware)
19
+ return () => {
20
+ };
21
+ addMiddleware({ key, middleware: queryMiddleware });
22
+ return () => {
23
+ removeMiddleware(key);
24
+ };
25
+ }, [key, reducer, queryMiddleware]);
11
26
  };
12
- import { useInjectSaga, createManager } from "redux-injectors";
27
+ const useInjectListener = ({
28
+ key,
29
+ listener
30
+ }) => useEffect(() => {
31
+ addListener({ key, listener });
32
+ return () => {
33
+ removeListener(key);
34
+ };
35
+ }, [key, listener]);
13
36
  export {
14
- createManager,
15
- useInjectReducer,
16
- useInjectSaga
37
+ useInjectListener,
38
+ useInjectQuery
17
39
  };
@@ -4,14 +4,15 @@ import { createInjectorsEnhancer } from "redux-injectors";
4
4
  import createSagaMiddleware from "redux-saga";
5
5
  import { createReducer } from "./reducers.js";
6
6
  import { enableHotReloading } from "./webpack-hmr.js";
7
- import dynamicMiddleware from "./middleware.js";
7
+ import { queryMiddleware } from "./queryMiddleware.js";
8
+ import { listenerMiddleware } from "./listenerMiddleware.js";
8
9
  const rootReducer = createReducer();
9
10
  let appStore = null;
10
11
  const setStore = (store) => {
11
12
  appStore = store;
12
13
  };
13
14
  const getStore = () => appStore;
14
- const createStore = (initialState, sagaMiddleware, history, middlewareConfig = { thunk: false }) => {
15
+ const createStore = (initialState, sagaMiddleware, history, middlewareConfig = {}) => {
15
16
  const { run: runSaga } = sagaMiddleware;
16
17
  const enhancers = [
17
18
  createInjectorsEnhancer({
@@ -21,10 +22,7 @@ const createStore = (initialState, sagaMiddleware, history, middlewareConfig = {
21
22
  ];
22
23
  const baseStore = configureStore({
23
24
  reducer: rootReducer,
24
- middleware: (getDefaultMiddleware) => getDefaultMiddleware(middlewareConfig).concat([
25
- sagaMiddleware,
26
- dynamicMiddleware
27
- ]),
25
+ middleware: (getDefaultMiddleware) => getDefaultMiddleware(middlewareConfig).prepend(listenerMiddleware).concat([sagaMiddleware, queryMiddleware]),
28
26
  devTools: true,
29
27
  preloadedState: initialState,
30
28
  enhancers
package/dist/esm/index.js CHANGED
@@ -3,6 +3,7 @@ import {
3
3
  getHTTPClient,
4
4
  getAuthHTTPClient
5
5
  } from "./communication/http-client/index.js";
6
+ import { sdkBaseQuery } from "./communication/http-client/baseQuery.js";
6
7
  import { onAuthorizationFailure } from "./communication/http-client/response-interceptor.js";
7
8
  import { auth } from "./data/auth/actions.js";
8
9
  import { RequireAuth } from "./view/require-auth.js";
@@ -13,7 +14,9 @@ import {
13
14
  useInjectReducer,
14
15
  useInjectSaga,
15
16
  createManager
16
- } from "./data/redux-injectors.js";
17
+ } from "./data/index.js";
18
+ import { useInjectQuery, useInjectListener } from "./data/redux-injectors.js";
19
+ import { errorMiddleware } from "./data/errorMiddleware.js";
17
20
  import { getAuthorizationHeader } from "./utils/auth/helper.js";
18
21
  import { getRedirectUrl, removeDoubleSlash } from "./utils/url.js";
19
22
  import { createAppStore } from "./data/store.js";
@@ -150,6 +153,7 @@ export {
150
153
  createManager,
151
154
  enableReactAppForHostIntegration,
152
155
  actions2 as error,
156
+ errorMiddleware,
153
157
  fetchHostAppData,
154
158
  getUser as fetchUserSettings,
155
159
  getApiActionCreator,
@@ -187,6 +191,7 @@ export {
187
191
  renderWithRouter,
188
192
  renderWithRouterRedux,
189
193
  resetUserIdleTime,
194
+ sdkBaseQuery,
190
195
  sendBAEvent,
191
196
  sendMessageToHost,
192
197
  setAppConfig,
@@ -200,6 +205,8 @@ export {
200
205
  updateBAEventParameters,
201
206
  useAppDispatch,
202
207
  useAppSelector,
208
+ useInjectListener,
209
+ useInjectQuery,
203
210
  useInjectReducer,
204
211
  useInjectSaga,
205
212
  useMediaQueryList,
@@ -0,0 +1,14 @@
1
+ import { BaseQueryFn } from '@reduxjs/toolkit/query';
2
+ import { AxiosRequestConfig } from 'axios';
3
+ import { RequestConfig } from './index.js';
4
+ type BaseQueryFunction = BaseQueryFn<{
5
+ url: string;
6
+ method: AxiosRequestConfig['method'];
7
+ data?: AxiosRequestConfig['data'];
8
+ params?: AxiosRequestConfig['params'];
9
+ headers?: RequestConfig;
10
+ }, unknown, unknown>;
11
+ export declare const sdkBaseQuery: ({ baseUrl }?: {
12
+ baseUrl?: string | undefined;
13
+ }) => BaseQueryFunction;
14
+ export {};
@@ -1,6 +1,6 @@
1
1
  import { AxiosInstance, RawAxiosRequestHeaders, HeadersDefaults } from 'axios';
2
2
  type AxiosRequestHeaders = RawAxiosRequestHeaders | Partial<HeadersDefaults>;
3
- type RequestConfig = {
3
+ export type RequestConfig = {
4
4
  Authorization?: string;
5
5
  } & AxiosRequestHeaders;
6
6
  export declare const getHTTPClient: ({ baseURL, headers, }?: {
@@ -0,0 +1,2 @@
1
+ import type { Middleware } from '@reduxjs/toolkit';
2
+ export declare const errorMiddleware: Middleware;
@@ -0,0 +1,11 @@
1
+ import { Middleware, AnyAction } from 'redux';
2
+ declare const rtkListenerMiddleware: import("@reduxjs/toolkit").ListenerMiddlewareInstance<unknown, import("@reduxjs/toolkit").ThunkDispatch<unknown, unknown, AnyAction>, unknown>;
3
+ export type ListenerDispatchFn = Parameters<typeof rtkListenerMiddleware.startListening>[0];
4
+ export declare const listenerMiddleware: Middleware<any, any>;
5
+ export declare const addListener: ({ key, listener, }: {
6
+ key: string;
7
+ listener: Parameters<typeof rtkListenerMiddleware.startListening>[0];
8
+ }) => import("@reduxjs/toolkit").UnsubscribeListener | null;
9
+ export declare const removeListener: (key: string) => boolean;
10
+ export declare const resetListeners: () => void;
11
+ export {};
@@ -0,0 +1,9 @@
1
+ import { createApi } from '@reduxjs/toolkit/query/react';
2
+ export type RTKQueryMiddleware = ReturnType<typeof createApi>['middleware'];
3
+ export declare const queryMiddleware: RTKQueryMiddleware;
4
+ export declare const addMiddleware: ({ key, middleware, }: {
5
+ key: string;
6
+ middleware: RTKQueryMiddleware;
7
+ }) => void;
8
+ export declare const removeMiddleware: (key: string) => void;
9
+ export declare const resetMiddlewares: () => void;
@@ -1,7 +1,12 @@
1
- import { Middleware, Reducer } from 'redux';
2
- export declare const useInjectReducer: ({ key, reducer, middleware, }: {
1
+ import { Reducer } from 'redux';
2
+ import { RTKQueryMiddleware } from './queryMiddleware.js';
3
+ import { ListenerDispatchFn } from './listenerMiddleware.js';
4
+ export declare const useInjectQuery: ({ key, reducer, queryMiddleware, }: {
3
5
  key: string;
4
6
  reducer: Reducer;
5
- middleware?: Middleware<any, any, import("redux").Dispatch<import("redux").AnyAction>> | undefined;
7
+ queryMiddleware?: import("redux").Middleware<{}, import("@reduxjs/toolkit/dist/query/core/apiState.js").RootState<import("@reduxjs/toolkit/dist/query/endpointDefinitions.js").EndpointDefinitions, string, string>, import("redux-thunk").ThunkDispatch<any, any, import("redux").AnyAction>> | undefined;
8
+ }) => void;
9
+ export declare const useInjectListener: ({ key, listener, }: {
10
+ key: string;
11
+ listener: ListenerDispatchFn;
6
12
  }) => void;
7
- export { useInjectSaga, createManager } from 'redux-injectors';
@@ -1,3 +1,4 @@
1
+ import { Middleware } from 'redux';
1
2
  import { History } from 'history';
2
3
  declare const rootReducer: import("redux").Reducer<import("redux").CombinedState<{
3
4
  waitMessage: import("./wait-message/reducer.js").WaitMessageState;
@@ -15,7 +16,7 @@ export type RootState = ReturnType<typeof rootReducer>;
15
16
  export declare const setStore: <T>(store: T) => void;
16
17
  export declare const getStore: () => unknown;
17
18
  type MiddlewareConfig = {
18
- thunk: boolean;
19
+ thunk?: boolean;
19
20
  };
20
21
  export declare const createAppStore: (initialState: import("redux").CombinedState<{
21
22
  waitMessage: import("./wait-message/reducer.js").WaitMessageState;
@@ -33,11 +34,11 @@ export declare const createAppStore: (initialState: import("redux").CombinedStat
33
34
  } | import("redux").AnyAction | {
34
35
  payload: import("./breakpoint/index.js").Breakpoints;
35
36
  type: string;
36
- }, import("@reduxjs/toolkit").MiddlewareArray<[import("@reduxjs/toolkit").ThunkMiddleware<import("redux").CombinedState<{
37
+ }, import("@reduxjs/toolkit").MiddlewareArray<[Middleware<any, any, import("redux").Dispatch<import("redux").AnyAction>>, import("@reduxjs/toolkit").ThunkMiddleware<import("redux").CombinedState<{
37
38
  waitMessage: import("./wait-message/reducer.js").WaitMessageState;
38
39
  error: import("./error/index.js").ErrorState;
39
40
  breakpoint: import("./breakpoint/index.js").BreakpointState;
40
41
  liveMessage: import("./live-message/index.js").LiveMessageState;
41
- }>, import("redux").AnyAction, undefined>, ...(((_store: any) => (next: any) => (action: any) => any) | import("redux-saga").SagaMiddleware<object>)[]]>>;
42
+ }>, import("redux").AnyAction, undefined>, ...Middleware<any, any, import("redux").Dispatch<import("redux").AnyAction>>[]]>>;
42
43
  export type AppStore = ReturnType<typeof createAppStore>;
43
44
  export {};
@@ -1,12 +1,15 @@
1
1
  export { isUserAuthorized, login, authorize } from './utils/auth/index.js';
2
2
  export { getHTTPClient, getAuthHTTPClient, } from './communication/http-client/index.js';
3
+ export { sdkBaseQuery } from './communication/http-client/baseQuery.js';
3
4
  export { onAuthorizationFailure } from './communication/http-client/response-interceptor.js';
4
5
  export { auth } from './data/auth/actions.js';
5
6
  export { RequireAuth } from './view/require-auth.js';
6
7
  export { Page } from './view/page.js';
7
8
  export { default as globalConstants } from './utils/constants.js';
8
9
  export { useAppDispatch, useAppSelector } from './data/react-redux.js';
9
- export { useInjectReducer, useInjectSaga, createManager, } from './data/redux-injectors.js';
10
+ export { useInjectReducer, useInjectSaga, createManager, } from './data/index.js';
11
+ export { useInjectQuery, useInjectListener } from './data/redux-injectors.js';
12
+ export { errorMiddleware } from './data/errorMiddleware.js';
10
13
  export { getAuthorizationHeader } from './utils/auth/helper.js';
11
14
  export { getRedirectUrl, removeDoubleSlash } from './utils/url.js';
12
15
  export { createAppStore as configureStore } from './data/store.js';
@@ -16,12 +16,12 @@ export declare const renderWithRedux: (ui: React.ReactElement, { initialState, s
16
16
  } | import("redux").AnyAction | {
17
17
  payload: import("../../data/breakpoint/index.js").Breakpoints;
18
18
  type: string;
19
- }, import("@reduxjs/toolkit").MiddlewareArray<[import("redux-thunk").ThunkMiddleware<import("redux").CombinedState<{
19
+ }, import("@reduxjs/toolkit").MiddlewareArray<[import("redux").Middleware<any, any, import("redux").Dispatch<import("redux").AnyAction>>, import("redux-thunk").ThunkMiddleware<import("redux").CombinedState<{
20
20
  waitMessage: import("../../data/wait-message/reducer.js").WaitMessageState;
21
21
  error: import("../../data/error/index.js").ErrorState;
22
22
  breakpoint: import("../../data/breakpoint/index.js").BreakpointState;
23
23
  liveMessage: import("../../data/live-message/index.js").LiveMessageState;
24
- }>, import("redux").AnyAction, undefined>, ...(((_store: any) => (next: any) => (action: any) => any) | import("redux-saga").SagaMiddleware<object>)[]]>>;
24
+ }>, import("redux").AnyAction, undefined>, ...import("redux").Middleware<any, any, import("redux").Dispatch<import("redux").AnyAction>>[]]>>;
25
25
  container: HTMLElement;
26
26
  baseElement: HTMLElement;
27
27
  debug: (baseElement?: Element | DocumentFragment | (Element | DocumentFragment)[] | undefined, maxLength?: number | undefined, options?: import("pretty-format").PrettyFormatOptions | undefined) => void;
@@ -19,12 +19,12 @@ export declare const renderWithRouterRedux: (ui: React.ReactElement, { route, hi
19
19
  } | import("redux").AnyAction | {
20
20
  payload: import("../../data/breakpoint/index.js").Breakpoints;
21
21
  type: string;
22
- }, import("@reduxjs/toolkit").MiddlewareArray<[import("redux-thunk").ThunkMiddleware<import("redux").CombinedState<{
22
+ }, import("@reduxjs/toolkit").MiddlewareArray<[import("redux").Middleware<any, any, import("redux").Dispatch<import("redux").AnyAction>>, import("redux-thunk").ThunkMiddleware<import("redux").CombinedState<{
23
23
  waitMessage: import("../../data/wait-message/reducer.js").WaitMessageState;
24
24
  error: import("../../data/error/index.js").ErrorState;
25
25
  breakpoint: import("../../data/breakpoint/index.js").BreakpointState;
26
26
  liveMessage: import("../../data/live-message/index.js").LiveMessageState;
27
- }>, import("redux").AnyAction, undefined>, ...(((_store: any) => (next: any) => (action: any) => any) | import("redux-saga").SagaMiddleware<object>)[]]>>;
27
+ }>, import("redux").AnyAction, undefined>, ...import("redux").Middleware<any, any, import("redux").Dispatch<import("redux").AnyAction>>[]]>>;
28
28
  container: HTMLElement;
29
29
  baseElement: HTMLElement;
30
30
  debug: (baseElement?: Element | DocumentFragment | (Element | DocumentFragment)[] | undefined, maxLength?: number | undefined, options?: import("pretty-format").PrettyFormatOptions | undefined) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/pui-app-sdk",
3
- "version": "4.10.0-beta.1",
3
+ "version": "4.10.0-beta.3",
4
4
  "description": "ICE MT UI Platform Application SDK ",
5
5
  "sideEffects": [
6
6
  "*.css",
@@ -111,7 +111,7 @@
111
111
  "indent": 4
112
112
  },
113
113
  "peerDependencies": {
114
- "@elliemae/app-react-dependencies": "^4.3.0",
114
+ "@elliemae/app-react-dependencies": "^4.4.0",
115
115
  "@elliemae/ds-basic": "^3.13.0",
116
116
  "@elliemae/ds-button": "^3.13.0",
117
117
  "@elliemae/ds-controlled-form": "^3.13.0",
@@ -133,7 +133,7 @@
133
133
  "@elliemae/pui-user-monitoring": "^1.18.1"
134
134
  },
135
135
  "devDependencies": {
136
- "@elliemae/app-react-dependencies": "~4.3.0",
136
+ "@elliemae/app-react-dependencies": "~4.4.0",
137
137
  "@elliemae/browserslist-config-elliemae-latest-browsers": "~1.6.0",
138
138
  "@elliemae/ds-basic": "~3.13.0",
139
139
  "@elliemae/ds-button": "~3.13.0",
@@ -149,7 +149,7 @@
149
149
  "@elliemae/ds-popperjs": "~3.13.0",
150
150
  "@elliemae/ds-toast": "~3.13.0",
151
151
  "@elliemae/em-ssf-guest": "~1.11.2",
152
- "@elliemae/pui-cli": "~7.25.0",
152
+ "@elliemae/pui-cli": "~7.26.0",
153
153
  "@elliemae/pui-diagnostics": "~2.7.5",
154
154
  "@elliemae/pui-doc-gen": "~1.4.1",
155
155
  "@elliemae/pui-e2e-test-sdk": "~7.7.1",
@@ -1,69 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var middleware_exports = {};
20
- __export(middleware_exports, {
21
- addMiddleware: () => addMiddleware,
22
- createDynamicMiddlewares: () => createDynamicMiddlewares,
23
- default: () => middleware_default,
24
- removeMiddleware: () => removeMiddleware,
25
- resetMiddlewares: () => resetMiddlewares
26
- });
27
- module.exports = __toCommonJS(middleware_exports);
28
- var import_redux = require("redux");
29
- const createDynamicMiddlewares = () => {
30
- let allDynamicMiddlewares = [];
31
- let allApplyedDynamicMiddlewares = [];
32
- let store;
33
- const enhancer = (_store) => {
34
- store = _store;
35
- return (next) => (action) => (0, import_redux.compose)(...allApplyedDynamicMiddlewares)(next)(action);
36
- };
37
- const addMiddleware2 = (...middlewares) => {
38
- allApplyedDynamicMiddlewares.push(
39
- ...middlewares.map((middleware) => middleware(store))
40
- );
41
- allDynamicMiddlewares.push(...middlewares);
42
- };
43
- const removeMiddleware2 = (middleware) => {
44
- const index = allDynamicMiddlewares.findIndex((d) => d === middleware);
45
- if (index === -1) {
46
- console.error("Middleware does not exist!", middleware);
47
- return;
48
- }
49
- allDynamicMiddlewares = allDynamicMiddlewares.filter(
50
- (_, mdwIndex) => mdwIndex !== index
51
- );
52
- allApplyedDynamicMiddlewares = allApplyedDynamicMiddlewares.filter(
53
- (_, mdwIndex) => mdwIndex !== index
54
- );
55
- };
56
- const resetMiddlewares2 = () => {
57
- allApplyedDynamicMiddlewares = [];
58
- allDynamicMiddlewares = [];
59
- };
60
- return {
61
- enhancer,
62
- addMiddleware: addMiddleware2,
63
- removeMiddleware: removeMiddleware2,
64
- resetMiddlewares: resetMiddlewares2
65
- };
66
- };
67
- const dynamicMiddlewaresInstance = createDynamicMiddlewares();
68
- var middleware_default = dynamicMiddlewaresInstance.enhancer;
69
- const { addMiddleware, removeMiddleware, resetMiddlewares } = dynamicMiddlewaresInstance;
@@ -1,49 +0,0 @@
1
- import { compose } from "redux";
2
- const createDynamicMiddlewares = () => {
3
- let allDynamicMiddlewares = [];
4
- let allApplyedDynamicMiddlewares = [];
5
- let store;
6
- const enhancer = (_store) => {
7
- store = _store;
8
- return (next) => (action) => compose(...allApplyedDynamicMiddlewares)(next)(action);
9
- };
10
- const addMiddleware2 = (...middlewares) => {
11
- allApplyedDynamicMiddlewares.push(
12
- ...middlewares.map((middleware) => middleware(store))
13
- );
14
- allDynamicMiddlewares.push(...middlewares);
15
- };
16
- const removeMiddleware2 = (middleware) => {
17
- const index = allDynamicMiddlewares.findIndex((d) => d === middleware);
18
- if (index === -1) {
19
- console.error("Middleware does not exist!", middleware);
20
- return;
21
- }
22
- allDynamicMiddlewares = allDynamicMiddlewares.filter(
23
- (_, mdwIndex) => mdwIndex !== index
24
- );
25
- allApplyedDynamicMiddlewares = allApplyedDynamicMiddlewares.filter(
26
- (_, mdwIndex) => mdwIndex !== index
27
- );
28
- };
29
- const resetMiddlewares2 = () => {
30
- allApplyedDynamicMiddlewares = [];
31
- allDynamicMiddlewares = [];
32
- };
33
- return {
34
- enhancer,
35
- addMiddleware: addMiddleware2,
36
- removeMiddleware: removeMiddleware2,
37
- resetMiddlewares: resetMiddlewares2
38
- };
39
- };
40
- const dynamicMiddlewaresInstance = createDynamicMiddlewares();
41
- var middleware_default = dynamicMiddlewaresInstance.enhancer;
42
- const { addMiddleware, removeMiddleware, resetMiddlewares } = dynamicMiddlewaresInstance;
43
- export {
44
- addMiddleware,
45
- createDynamicMiddlewares,
46
- middleware_default as default,
47
- removeMiddleware,
48
- resetMiddlewares
49
- };
@@ -1,16 +0,0 @@
1
- export default enhancer;
2
- export function addMiddleware(...middlewares: any[]): void;
3
- export function removeMiddleware(middleware: any): void;
4
- export function resetMiddlewares(): void;
5
- declare function enhancer(_store: any): (next: any) => (action: any) => any;
6
- declare namespace dynamicMiddlewaresInstance {
7
- export { addMiddleware };
8
- export { removeMiddleware };
9
- export { resetMiddlewares };
10
- }
11
- export function createDynamicMiddlewares(): {
12
- enhancer: (_store: any) => (next: any) => (action: any) => any;
13
- addMiddleware: (...middlewares: any[]) => void;
14
- removeMiddleware: (middleware: any) => void;
15
- resetMiddlewares: () => void;
16
- };