@dashadmin/dash-app-common 1.3.25 → 1.3.28
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.
- package/README.md +35 -0
- package/dist/DashApp.js +176 -1
- package/dist/DashAppLoader.js +348 -3
- package/dist/DashDefaultResources.js +10 -1
- package/dist/components/DashDefaultPrivateApp.js +150 -1
- package/dist/components/DashDefaultPrivateResources.js +10 -1
- package/dist/components/DashDefaultPublicApp.js +20 -1
- package/dist/components/DashResourceLoader.js +245 -1
- package/dist/defaults/extensions/bootstrap/DashDefaultErrorBoundary.js +78 -1
- package/dist/defaults/extensions/bootstrap/dashDefaultInitializeApp.js +59 -1
- package/dist/defaults/extensions/bootstrap/index.js +24 -1
- package/dist/defaults/extensions/components/DashDefaultLoader.js +43 -2
- package/dist/defaults/extensions/components/dashDefaultAutoAdminComponents.js +67 -1
- package/dist/defaults/extensions/components/dashDefaultNotification.js +28 -1
- package/dist/defaults/extensions/components/dashDefaultStaticComponents.js +15 -1
- package/dist/defaults/extensions/components/index.js +13 -1
- package/dist/defaults/extensions/electron/dashDefaultIpcListeners.js +38 -1
- package/dist/defaults/extensions/electron/index.js +5 -1
- package/dist/defaults/extensions/hooks/index.js +12 -1
- package/dist/defaults/extensions/hooks/useDashDefaultLazyAutoAdminComponents.js +17 -1
- package/dist/defaults/extensions/hooks/useDashDefaultLazyI18nProvider.js +51 -1
- package/dist/defaults/extensions/hooks/useDashDefaultLazyResources.js +19 -1
- package/dist/defaults/extensions/hooks/useDashDefaultMountTracker.js +22 -1
- package/dist/defaults/extensions/hooks/useDashDefaultRoutePath.js +17 -1
- package/dist/defaults/extensions/i18n/dashDefaultI18nProvider.js +44 -1
- package/dist/defaults/extensions/i18n/dashDefaultTranslations.js +87 -1
- package/dist/defaults/extensions/i18n/index.js +24 -1
- package/dist/defaults/extensions/index.js +190 -1
- package/dist/defaults/extensions/layout/dashDefaultDomainAppLayout.js +58 -1
- package/dist/defaults/extensions/layout/index.js +12 -1
- package/dist/defaults/extensions/managers/DashDefaultWSMessagesManager.js +84 -1
- package/dist/defaults/extensions/managers/index.js +5 -1
- package/dist/defaults/extensions/providers/dashDefaultAuthProvider.js +220 -1
- package/dist/defaults/extensions/providers/dashDefaultDataProvider.js +395 -1
- package/dist/defaults/extensions/providers/index.js +24 -1
- package/dist/defaults/extensions/router/DashDefaultLanding.js +46 -1
- package/dist/defaults/extensions/router/dashDefaultPrivateRoutes.js +38 -1
- package/dist/defaults/extensions/router/dashDefaultPublicRoutes.js +65 -1
- package/dist/defaults/extensions/router/dashDefaultRouter.js +39 -1
- package/dist/defaults/extensions/router/dashDefaultSharedRoutes.js +40 -1
- package/dist/defaults/extensions/router/index.js +12 -1
- package/dist/defaults/extensions/state/dashDefaultAppCommon.js +57 -1
- package/dist/defaults/extensions/state/dashDefaultAppSettings.js +38 -1
- package/dist/defaults/extensions/state/dashDefaultInitialAppState.js +31 -1
- package/dist/defaults/extensions/state/dashDefaultLayoutSettings.js +48 -1
- package/dist/defaults/extensions/state/dashDefaultQueryClient.js +58 -1
- package/dist/defaults/extensions/state/dashDefaultResourcesIcons.js +24 -1
- package/dist/defaults/extensions/state/index.js +29 -1
- package/dist/defaults/extensions/styles/index.js +2 -1
- package/dist/defaults/extensions/theme/dashDefaultThemeOptions.js +74 -1
- package/dist/defaults/extensions/theme/index.js +6 -1
- package/dist/defaults/extensions/utils/IPCMessageBrokerContext.js +12 -1
- package/dist/defaults/extensions/utils/dashDefaultAuthProviderUtils.js +29 -1
- package/dist/defaults/extensions/utils/dashDefaultDataProviderUtils.js +37 -1
- package/dist/defaults/extensions/utils/dashDefaultNotificationsProcessor.js +149 -1
- package/dist/defaults/extensions/utils/index.js +44 -1
- package/dist/defaults/filters/demo/dashDefaultDemoFilters.js +36 -1
- package/dist/defaults/filters/demo/index.js +4 -1
- package/dist/defaults/filters/index.js +5 -1
- package/dist/defaults/index.js +14 -1
- package/dist/defaults/pages/Account/DashDefaultRegister.js +282 -1
- package/dist/defaults/pages/Account/DashDefaultSignUp.js +420 -1
- package/dist/defaults/pages/Account/DashDefaultSignUpSuccess.js +101 -1
- package/dist/defaults/pages/Account/index.js +8 -1
- package/dist/defaults/pages/DashDefaultLogin.js +218 -1
- package/dist/defaults/pages/Misc/DashDefaultNotFound.js +74 -1
- package/dist/defaults/pages/Misc/DashDefaultServerError.js +79 -1
- package/dist/defaults/pages/Misc/DashDefaultUnauthorized.js +90 -1
- package/dist/defaults/pages/Misc/index.js +8 -1
- package/dist/defaults/pages/Static/DashDefaultPrivacyPage.js +48 -1
- package/dist/defaults/pages/Static/DashDefaultStaticPage.js +55 -1
- package/dist/defaults/pages/Static/DashDefaultTermsPage.js +52 -1
- package/dist/defaults/pages/Static/index.js +8 -1
- package/dist/defaults/pages/index.js +25 -1
- package/dist/defaults/schemas/dashDefaultSchema.js +14 -1
- package/dist/defaults/schemas/demo/dashDefaultTodoSchema.js +24 -1
- package/dist/defaults/schemas/demo/index.js +4 -1
- package/dist/defaults/schemas/index.js +7 -1
- package/dist/filters/demo/todoFilters.js +36 -1
- package/dist/index.js +56 -5975
- package/dist/resources/demo/todoResource.js +58 -1
- package/dist/schemas/defaultSchema.js +14 -1
- package/dist/schemas/demo/todoSchema.js +24 -1
- package/package.json +132 -77
- package/src/DashApp.tsx +294 -0
- package/src/DashAppLoader.tsx +717 -0
- package/src/DashDefaultResources.tsx +10 -0
- package/src/components/DashDefaultPrivateApp.tsx +358 -0
- package/src/components/DashDefaultPrivateResources.tsx +10 -0
- package/src/components/DashDefaultPublicApp.tsx +40 -0
- package/src/components/DashResourceLoader.tsx +564 -0
- package/src/defaults/extensions/bootstrap/DashDefaultErrorBoundary.tsx +113 -0
- package/src/defaults/extensions/bootstrap/dashDefaultInitializeApp.ts +81 -0
- package/src/defaults/extensions/bootstrap/index.ts +32 -0
- package/src/defaults/extensions/components/DashDefaultLoader.tsx +59 -0
- package/src/defaults/extensions/components/dashDefaultAutoAdminComponents.tsx +49 -0
- package/src/defaults/extensions/components/dashDefaultNotification.tsx +37 -0
- package/src/defaults/extensions/components/dashDefaultStaticComponents.tsx +34 -0
- package/src/defaults/extensions/components/index.ts +17 -0
- package/src/defaults/extensions/electron/dashDefaultIpcListeners.ts +62 -0
- package/src/defaults/extensions/electron/index.ts +7 -0
- package/src/defaults/extensions/hooks/index.ts +11 -0
- package/src/defaults/extensions/hooks/useDashDefaultLazyAutoAdminComponents.ts +25 -0
- package/src/defaults/extensions/hooks/useDashDefaultLazyI18nProvider.ts +38 -0
- package/src/defaults/extensions/hooks/useDashDefaultLazyResources.ts +29 -0
- package/src/defaults/extensions/hooks/useDashDefaultMountTracker.ts +28 -0
- package/src/defaults/extensions/hooks/useDashDefaultRoutePath.ts +27 -0
- package/src/defaults/extensions/i18n/dashDefaultI18nProvider.ts +66 -0
- package/src/defaults/extensions/i18n/dashDefaultTranslations.ts +82 -0
- package/src/defaults/extensions/i18n/index.ts +22 -0
- package/src/defaults/extensions/index.ts +177 -0
- package/src/defaults/extensions/layout/dashDefaultDomainAppLayout.tsx +126 -0
- package/src/defaults/extensions/layout/index.ts +12 -0
- package/src/defaults/extensions/managers/DashDefaultWSMessagesManager.tsx +99 -0
- package/src/defaults/extensions/managers/index.ts +7 -0
- package/src/defaults/extensions/providers/dashDefaultAuthProvider.ts +256 -0
- package/src/defaults/extensions/providers/dashDefaultDataProvider.ts +513 -0
- package/src/defaults/extensions/providers/index.ts +25 -0
- package/src/defaults/extensions/router/DashDefaultLanding.tsx +51 -0
- package/src/defaults/extensions/router/dashDefaultPrivateRoutes.tsx +50 -0
- package/src/defaults/extensions/router/dashDefaultPublicRoutes.tsx +86 -0
- package/src/defaults/extensions/router/dashDefaultRouter.tsx +54 -0
- package/src/defaults/extensions/router/dashDefaultSharedRoutes.tsx +56 -0
- package/src/defaults/extensions/router/index.ts +13 -0
- package/src/defaults/extensions/state/dashDefaultAppCommon.ts +54 -0
- package/src/defaults/extensions/state/dashDefaultAppSettings.ts +29 -0
- package/src/defaults/extensions/state/dashDefaultInitialAppState.ts +75 -0
- package/src/defaults/extensions/state/dashDefaultLayoutSettings.ts +59 -0
- package/src/defaults/extensions/state/dashDefaultQueryClient.ts +59 -0
- package/src/defaults/extensions/state/dashDefaultResourcesIcons.tsx +23 -0
- package/src/defaults/extensions/state/index.ts +29 -0
- package/src/defaults/extensions/styles/index.ts +17 -0
- package/src/defaults/extensions/theme/dashDefaultThemeOptions.ts +89 -0
- package/src/defaults/extensions/theme/index.ts +7 -0
- package/src/defaults/extensions/utils/IPCMessageBrokerContext.tsx +22 -0
- package/src/defaults/extensions/utils/dashDefaultAuthProviderUtils.ts +36 -0
- package/src/defaults/extensions/utils/dashDefaultDataProviderUtils.ts +46 -0
- package/src/defaults/extensions/utils/dashDefaultNotificationsProcessor.tsx +208 -0
- package/src/defaults/extensions/utils/index.ts +42 -0
- package/src/defaults/filters/demo/dashDefaultDemoFilters.tsx +50 -0
- package/src/defaults/filters/demo/index.ts +6 -0
- package/src/defaults/filters/index.ts +11 -0
- package/src/defaults/index.ts +27 -0
- package/src/defaults/pages/Account/DashDefaultRegister.tsx +281 -0
- package/src/defaults/pages/Account/DashDefaultSignUp.tsx +492 -0
- package/src/defaults/pages/Account/DashDefaultSignUpSuccess.tsx +113 -0
- package/src/defaults/pages/Account/index.ts +8 -0
- package/src/defaults/pages/DashDefaultLogin.tsx +224 -0
- package/src/defaults/pages/Misc/DashDefaultNotFound.tsx +96 -0
- package/src/defaults/pages/Misc/DashDefaultServerError.tsx +102 -0
- package/src/defaults/pages/Misc/DashDefaultUnauthorized.tsx +116 -0
- package/src/defaults/pages/Misc/index.ts +8 -0
- package/src/defaults/pages/Static/DashDefaultPrivacyPage.tsx +85 -0
- package/src/defaults/pages/Static/DashDefaultStaticPage.tsx +75 -0
- package/src/defaults/pages/Static/DashDefaultTermsPage.tsx +69 -0
- package/src/defaults/pages/Static/index.ts +8 -0
- package/src/defaults/pages/index.ts +28 -0
- package/src/defaults/schemas/dashDefaultSchema.tsx +25 -0
- package/src/defaults/schemas/demo/dashDefaultTodoSchema.tsx +39 -0
- package/src/defaults/schemas/demo/index.ts +6 -0
- package/src/defaults/schemas/index.ts +14 -0
- package/src/filters/demo/todoFilters.tsx +39 -0
- package/src/index.ts +131 -0
- package/src/resources/demo/todoResource.tsx +68 -0
- package/src/schemas/defaultSchema.tsx +14 -0
- package/src/schemas/demo/todoSchema.tsx +27 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dash Default Auth Provider Extension
|
|
3
|
+
*
|
|
4
|
+
* This file wraps the dash-auto-admin DashAuthProvider factory,
|
|
5
|
+
* providing default app overrides and customizations.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
createDashAuthProvider,
|
|
10
|
+
type DashAuthProviderConfig,
|
|
11
|
+
type DashAuthProviderOverrides
|
|
12
|
+
} from 'dash-auto-admin';
|
|
13
|
+
import { getEnv } from 'dash-constants';
|
|
14
|
+
import { DASHAppConstants, DASHAdminSystemConstants } from 'dash-constants';
|
|
15
|
+
import { setAuthEvent } from 'dash-admin/src/contexts/auth';
|
|
16
|
+
import { AuthPersistenceService, syncDeviceStoreToLocalStorage, syncLocalStorageToDeviceStore } from 'dash-auth';
|
|
17
|
+
import { useAxios } from 'dash-axios-hook';
|
|
18
|
+
import { dashStorage } from 'dash-utils';
|
|
19
|
+
import { dashDefaultLogoutFromStorage } from '../utils/dashDefaultAuthProviderUtils';
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Dash default auth provider configuration
|
|
24
|
+
*/
|
|
25
|
+
export const dashDefaultAuthProviderConfig: DashAuthProviderConfig = {
|
|
26
|
+
useAxios: useAxios,
|
|
27
|
+
storage: dashStorage,
|
|
28
|
+
authPersistence: AuthPersistenceService,
|
|
29
|
+
syncToDeviceStore: syncLocalStorageToDeviceStore,
|
|
30
|
+
syncFromDeviceStore: syncDeviceStoreToLocalStorage,
|
|
31
|
+
setAuthEvent: setAuthEvent,
|
|
32
|
+
logoutFromStorage: dashDefaultLogoutFromStorage,
|
|
33
|
+
getAuthEndpoint: () => getEnv('APP_GETAUTH_ENDPOINT') || '/auth',
|
|
34
|
+
guestRole: DASHAppConstants.system.GUEST_ROLE,
|
|
35
|
+
enableTenantImpersonation: JSON.parse(
|
|
36
|
+
DASHAdminSystemConstants.system.ENABLE_TENANT_IMPERSONATION?.toString() || 'false'
|
|
37
|
+
),
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Dash default auth provider overrides
|
|
42
|
+
* These override the default implementations from dash-auto-admin
|
|
43
|
+
*/
|
|
44
|
+
export const dashDefaultAuthProviderOverrides: DashAuthProviderOverrides = {
|
|
45
|
+
/**
|
|
46
|
+
* Dash default login implementation with Dash-specific logic
|
|
47
|
+
*/
|
|
48
|
+
login: async ({ username, password }) => {
|
|
49
|
+
await syncDeviceStoreToLocalStorage();
|
|
50
|
+
|
|
51
|
+
const axios = useAxios();
|
|
52
|
+
|
|
53
|
+
if (!(username && password)) {
|
|
54
|
+
return Promise.reject();
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
try {
|
|
58
|
+
const loginResponse = await axios.post('/login', {
|
|
59
|
+
email: username,
|
|
60
|
+
password,
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
if (loginResponse.status >= 200 && loginResponse.status <= 299) {
|
|
64
|
+
const redirectTo = loginResponse.data.redirectTo;
|
|
65
|
+
|
|
66
|
+
if (loginResponse.data !== "") {
|
|
67
|
+
dashStorage.setItem('token', loginResponse.data.token);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
try {
|
|
71
|
+
// Get complete auth data
|
|
72
|
+
const { data: auth } = await axios.get(getEnv('APP_GETAUTH_ENDPOINT'));
|
|
73
|
+
|
|
74
|
+
// Use AuthPersistenceService to save auth data
|
|
75
|
+
AuthPersistenceService.saveAuth(auth);
|
|
76
|
+
|
|
77
|
+
// Set basic localStorage for react-admin compatibility
|
|
78
|
+
dashStorage.setItem('authenticated', 'true');
|
|
79
|
+
dashStorage.setItem('user', JSON.stringify(auth.user));
|
|
80
|
+
dashStorage.setItem(
|
|
81
|
+
'roles',
|
|
82
|
+
auth.user?.roles
|
|
83
|
+
? JSON.stringify(auth.user.roles)
|
|
84
|
+
: JSON.stringify(DASHAppConstants.system.GUEST_ROLE),
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
// Trigger auth context update
|
|
88
|
+
setAuthEvent({
|
|
89
|
+
authenticated: true,
|
|
90
|
+
user: auth.user,
|
|
91
|
+
auth: auth.auth,
|
|
92
|
+
token: loginResponse.data.token,
|
|
93
|
+
roles: auth.user?.roles
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
await syncLocalStorageToDeviceStore();
|
|
97
|
+
|
|
98
|
+
// Handle redirect from backend response
|
|
99
|
+
if (redirectTo) {
|
|
100
|
+
return Promise.resolve({ redirectTo });
|
|
101
|
+
} else {
|
|
102
|
+
return Promise.resolve(auth);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
} catch (error) {
|
|
106
|
+
console.error('Error getting user auth');
|
|
107
|
+
dashDefaultLogoutFromStorage("login get auth error");
|
|
108
|
+
return Promise.reject(error);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
} catch (error) {
|
|
112
|
+
console.error(error);
|
|
113
|
+
dashDefaultLogoutFromStorage("login error logout");
|
|
114
|
+
return Promise.reject(error);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
dashDefaultLogoutFromStorage("login default error logout");
|
|
118
|
+
return Promise.reject();
|
|
119
|
+
},
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Dash default logout implementation
|
|
123
|
+
*/
|
|
124
|
+
logout: async (params?: any, redirectTo?: string | false) => {
|
|
125
|
+
await dashDefaultLogoutFromStorage("logout");
|
|
126
|
+
return Promise.resolve(redirectTo || "/login");
|
|
127
|
+
},
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Dash default getIdentity implementation
|
|
131
|
+
*/
|
|
132
|
+
getIdentity: async () => {
|
|
133
|
+
const axios = useAxios();
|
|
134
|
+
const token = dashStorage.getItem('token');
|
|
135
|
+
|
|
136
|
+
if (!token) {
|
|
137
|
+
return Promise.reject('No token present');
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
try {
|
|
141
|
+
const { data: auth } = await axios.get(getEnv('APP_GETAUTH_ENDPOINT'));
|
|
142
|
+
|
|
143
|
+
dashStorage.setItem(
|
|
144
|
+
'roles',
|
|
145
|
+
auth.user?.roles
|
|
146
|
+
? JSON.stringify(auth.user.roles)
|
|
147
|
+
: JSON.stringify(DASHAppConstants.system.GUEST_ROLE),
|
|
148
|
+
);
|
|
149
|
+
dashStorage.setItem('authenticated', 'true');
|
|
150
|
+
dashStorage.setItem('user', JSON.stringify(auth.user));
|
|
151
|
+
|
|
152
|
+
if (
|
|
153
|
+
JSON.parse(
|
|
154
|
+
DASHAdminSystemConstants.system.ENABLE_TENANT_IMPERSONATION.toString(),
|
|
155
|
+
) &&
|
|
156
|
+
auth.user?.tenant_id
|
|
157
|
+
) {
|
|
158
|
+
dashStorage.setItem('tenant_id', auth.user?.tenant_id);
|
|
159
|
+
dashStorage.setItem('user_id', auth.user?.id);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return await Promise.resolve(auth);
|
|
163
|
+
} catch (error) {
|
|
164
|
+
dashDefaultLogoutFromStorage("get identity error logout");
|
|
165
|
+
return Promise.reject(error);
|
|
166
|
+
} finally {
|
|
167
|
+
await syncLocalStorageToDeviceStore();
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Dash default checkAuth implementation
|
|
173
|
+
*/
|
|
174
|
+
checkAuth: async () => {
|
|
175
|
+
const isAuthenticated = JSON.parse(dashStorage.getItem('authenticated') || 'false');
|
|
176
|
+
const user = JSON.parse(dashStorage.getItem('user') || 'null');
|
|
177
|
+
|
|
178
|
+
if (isAuthenticated && user?.id) {
|
|
179
|
+
const persistedAuth = AuthPersistenceService.getAuth();
|
|
180
|
+
if (persistedAuth) {
|
|
181
|
+
return Promise.resolve();
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
return Promise.reject();
|
|
186
|
+
},
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Dash default checkError implementation with Dash error handling
|
|
190
|
+
*/
|
|
191
|
+
checkError: (error) => {
|
|
192
|
+
const errorStatus = error?.response?.status;
|
|
193
|
+
|
|
194
|
+
window.dispatchEvent(
|
|
195
|
+
new MessageEvent('dash-global-loader', { data: false }),
|
|
196
|
+
);
|
|
197
|
+
|
|
198
|
+
if (errorStatus) {
|
|
199
|
+
const errors: any = {};
|
|
200
|
+
switch (errorStatus) {
|
|
201
|
+
case 400:
|
|
202
|
+
case 401:
|
|
203
|
+
case 403:
|
|
204
|
+
case 500:
|
|
205
|
+
window.dispatchEvent(
|
|
206
|
+
new MessageEvent('GlobalError', {
|
|
207
|
+
data: { error: error.response.data || error }
|
|
208
|
+
}),
|
|
209
|
+
);
|
|
210
|
+
return Promise.resolve();
|
|
211
|
+
case 422:
|
|
212
|
+
case 409:
|
|
213
|
+
errors.error =
|
|
214
|
+
'An undefined error has occurred, please try again later';
|
|
215
|
+
if (error.response.data?.errors) {
|
|
216
|
+
Object.keys(error.response.data?.errors).forEach((key) => {
|
|
217
|
+
errors[key] = error.response.data?.errors[key].join(' , ');
|
|
218
|
+
});
|
|
219
|
+
} else if (error.response.data?.message) {
|
|
220
|
+
errors.error = error.response.data?.message;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
window.dispatchEvent(
|
|
224
|
+
new MessageEvent('GlobalError', { data: { error: errors } }),
|
|
225
|
+
);
|
|
226
|
+
return Promise.resolve();
|
|
227
|
+
default:
|
|
228
|
+
window.dispatchEvent(
|
|
229
|
+
new MessageEvent('GlobalError', {
|
|
230
|
+
data: { error: error.response.data || error }
|
|
231
|
+
}),
|
|
232
|
+
);
|
|
233
|
+
return Promise.resolve();
|
|
234
|
+
}
|
|
235
|
+
} else {
|
|
236
|
+
const _errors: any = {};
|
|
237
|
+
Object.keys(error).forEach((key) => {
|
|
238
|
+
_errors[key] = Array.isArray(error[key])
|
|
239
|
+
? error[key].join(' , ')
|
|
240
|
+
: error[key];
|
|
241
|
+
});
|
|
242
|
+
return Promise.resolve();
|
|
243
|
+
}
|
|
244
|
+
},
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Create the dash default auth provider using the factory
|
|
249
|
+
* This combines the base implementation with app-specific overrides
|
|
250
|
+
*/
|
|
251
|
+
export const dashDefaultAuthProvider = createDashAuthProvider(
|
|
252
|
+
dashDefaultAuthProviderConfig,
|
|
253
|
+
dashDefaultAuthProviderOverrides
|
|
254
|
+
);
|
|
255
|
+
|
|
256
|
+
export default dashDefaultAuthProvider;
|