identity-admin 1.28.26 → 1.28.27

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.
Files changed (213) hide show
  1. package/README.md +148 -148
  2. package/lib/Dashboard.d.ts +14 -14
  3. package/lib/Dashboard.js +95 -95
  4. package/lib/container/helpers/HelperInversify.d.ts +6 -6
  5. package/lib/container/helpers/HelperInversify.js +10 -10
  6. package/lib/container/helpers/HelperTypes.d.ts +5 -5
  7. package/lib/container/helpers/HelperTypes.js +7 -7
  8. package/lib/container/index.d.ts +1 -1
  9. package/lib/container/index.js +14 -14
  10. package/lib/container/repositories/RepositoryInversify.d.ts +4 -4
  11. package/lib/container/repositories/RepositoryInversify.js +13 -13
  12. package/lib/container/repositories/RepositoryTypes.d.ts +4 -4
  13. package/lib/container/repositories/RepositoryTypes.js +6 -6
  14. package/lib/container/types.d.ts +8 -8
  15. package/lib/container/types.js +9 -9
  16. package/lib/controllers/ActionController.d.ts +9 -9
  17. package/lib/controllers/ActionController.js +141 -141
  18. package/lib/controllers/AdminNotificationController.d.ts +8 -8
  19. package/lib/controllers/AdminNotificationController.js +69 -69
  20. package/lib/controllers/DashboardController.d.ts +45 -45
  21. package/lib/controllers/DashboardController.js +829 -827
  22. package/lib/controllers/PermissionController.d.ts +6 -6
  23. package/lib/controllers/PermissionController.js +52 -52
  24. package/lib/controllers/ResourceController.d.ts +15 -15
  25. package/lib/controllers/ResourceController.js +128 -128
  26. package/lib/helpers/ActionsGenerator.d.ts +11 -11
  27. package/lib/helpers/ActionsGenerator.js +168 -168
  28. package/lib/helpers/AdminNotifications/AdminNotificationCreation.d.ts +54 -54
  29. package/lib/helpers/AdminNotifications/AdminNotificationCreation.js +66 -66
  30. package/lib/helpers/AdminNotifications/AdminNotificationFetcher.d.ts +63 -63
  31. package/lib/helpers/AdminNotifications/AdminNotificationFetcher.js +45 -45
  32. package/lib/helpers/FilterQueryHelper.d.ts +9 -9
  33. package/lib/helpers/FilterQueryHelper.js +83 -83
  34. package/lib/helpers/FiltersHelper.d.ts +9 -9
  35. package/lib/helpers/FiltersHelper.js +126 -126
  36. package/lib/helpers/JsonRichText/DraftRawToUniversalConverter.d.ts +3 -3
  37. package/lib/helpers/JsonRichText/DraftRawToUniversalConverter.js +144 -144
  38. package/lib/helpers/JsonRichText/IDraftRawType.d.ts +18 -18
  39. package/lib/helpers/JsonRichText/IDraftRawType.js +2 -2
  40. package/lib/helpers/JsonRichText/IUniversalJsonType.d.ts +24 -24
  41. package/lib/helpers/JsonRichText/IUniversalJsonType.js +10 -10
  42. package/lib/helpers/LocalesHelper.d.ts +4 -4
  43. package/lib/helpers/LocalesHelper.js +73 -73
  44. package/lib/helpers/LocalizedStringHelper.d.ts +11 -11
  45. package/lib/helpers/LocalizedStringHelper.js +76 -76
  46. package/lib/helpers/Permissions/PermissionFetcher.d.ts +8 -8
  47. package/lib/helpers/Permissions/PermissionFetcher.js +95 -95
  48. package/lib/helpers/Permissions/PermissionLabel.d.ts +2 -2
  49. package/lib/helpers/Permissions/PermissionLabel.js +42 -42
  50. package/lib/helpers/Permissions/PermissionMapper.d.ts +13 -13
  51. package/lib/helpers/Permissions/PermissionMapper.js +35 -35
  52. package/lib/helpers/Permissions/PermissionResource.d.ts +6 -6
  53. package/lib/helpers/Permissions/PermissionResource.js +62 -62
  54. package/lib/helpers/Permissions/PermissionSavingService.d.ts +13 -13
  55. package/lib/helpers/Permissions/PermissionSavingService.js +32 -32
  56. package/lib/helpers/Permissions/SavePermissionGroup.d.ts +6 -6
  57. package/lib/helpers/Permissions/SavePermissionGroup.js +32 -32
  58. package/lib/helpers/Permissions/UpdatePermissionGroup.d.ts +6 -6
  59. package/lib/helpers/Permissions/UpdatePermissionGroup.js +50 -50
  60. package/lib/helpers/Permissions/types.d.ts +17 -17
  61. package/lib/helpers/Permissions/types.js +2 -2
  62. package/lib/helpers/PopulationHelper.d.ts +12 -12
  63. package/lib/helpers/PopulationHelper.js +50 -50
  64. package/lib/helpers/RecordsCounter.d.ts +10 -10
  65. package/lib/helpers/RecordsCounter.js +33 -33
  66. package/lib/helpers/ReportsGenerator.d.ts +26 -26
  67. package/lib/helpers/ReportsGenerator.js +162 -162
  68. package/lib/helpers/ResourceGenerator.d.ts +9 -9
  69. package/lib/helpers/ResourceGenerator.js +172 -172
  70. package/lib/helpers/ResourceHelper.d.ts +28 -28
  71. package/lib/helpers/ResourceHelper.js +397 -397
  72. package/lib/helpers/RportsGenerator.d.ts +10 -10
  73. package/lib/helpers/RportsGenerator.js +21 -21
  74. package/lib/helpers/SchemaGenerator.d.ts +7 -7
  75. package/lib/helpers/SchemaGenerator.js +137 -137
  76. package/lib/helpers/SchemaHelper.d.ts +5 -5
  77. package/lib/helpers/SchemaHelper.js +21 -21
  78. package/lib/helpers/UserActionsLog/UserActionsLogHelper.d.ts +2 -2
  79. package/lib/helpers/UserActionsLog/UserActionsLogHelper.js +49 -49
  80. package/lib/locales/en.json +54 -54
  81. package/lib/middlewares/cache/decorator.d.ts +3 -3
  82. package/lib/middlewares/cache/decorator.js +60 -60
  83. package/lib/middlewares/cache/deletionMethods.d.ts +3 -3
  84. package/lib/middlewares/cache/deletionMethods.js +23 -23
  85. package/lib/middlewares/isAuth.d.ts +13 -13
  86. package/lib/middlewares/isAuth.js +43 -43
  87. package/lib/models/ModelNames.d.ts +10 -10
  88. package/lib/models/ModelNames.js +13 -13
  89. package/lib/models/adminNotification/AdminNotification.d.ts +5 -5
  90. package/lib/models/adminNotification/AdminNotification.js +70 -70
  91. package/lib/models/adminNotification/IAdminNotification.d.ts +35 -35
  92. package/lib/models/adminNotification/IAdminNotification.js +15 -15
  93. package/lib/models/adminpermission/AdminPermission.d.ts +6 -6
  94. package/lib/models/adminpermission/AdminPermission.js +27 -27
  95. package/lib/models/adminpermission/IAdminPermission.d.ts +13 -13
  96. package/lib/models/adminpermission/IAdminPermission.js +2 -2
  97. package/lib/models/customPage/CustomPage.d.ts +2 -2
  98. package/lib/models/customPage/CustomPage.js +38 -38
  99. package/lib/models/customPage/ICustomPage.d.ts +17 -17
  100. package/lib/models/customPage/ICustomPage.js +2 -2
  101. package/lib/models/file/File.d.ts +2 -2
  102. package/lib/models/file/File.js +23 -23
  103. package/lib/models/file/IFile.d.ts +15 -15
  104. package/lib/models/file/IFile.js +2 -2
  105. package/lib/models/language/ILanguage.d.ts +8 -8
  106. package/lib/models/language/ILanguage.js +8 -8
  107. package/lib/models/language/LanguageSchema.d.ts +9 -9
  108. package/lib/models/language/LanguageSchema.js +17 -17
  109. package/lib/models/location/ILocation.d.ts +16 -16
  110. package/lib/models/location/ILocation.js +2 -2
  111. package/lib/models/location/Location.d.ts +2 -2
  112. package/lib/models/location/Location.js +29 -29
  113. package/lib/models/mailLog/IMailLog.d.ts +14 -14
  114. package/lib/models/mailLog/IMailLog.js +2 -2
  115. package/lib/models/mailLog/MailLog.d.ts +3 -3
  116. package/lib/models/mailLog/MailLog.js +23 -23
  117. package/lib/models/modelConfiguration/IModelConfigurations.d.ts +31 -31
  118. package/lib/models/modelConfiguration/IModelConfigurations.js +2 -2
  119. package/lib/models/modelConfiguration/ModelConfiguration.d.ts +13 -13
  120. package/lib/models/modelConfiguration/ModelConfiguration.js +103 -103
  121. package/lib/models/permission/IPermission.d.ts +14 -14
  122. package/lib/models/permission/IPermission.js +2 -2
  123. package/lib/models/permission/Permission.d.ts +6 -6
  124. package/lib/models/permission/Permission.js +28 -28
  125. package/lib/models/permissiongroup/IPermissionGroup.d.ts +15 -13
  126. package/lib/models/permissiongroup/IPermissionGroup.js +2 -2
  127. package/lib/models/permissiongroup/PermissionGroup.d.ts +6 -6
  128. package/lib/models/permissiongroup/PermissionGroup.js +23 -16
  129. package/lib/models/request-log/IRequestLog.d.ts +22 -22
  130. package/lib/models/request-log/IRequestLog.js +2 -2
  131. package/lib/models/request-log/RequestLog.d.ts +3 -3
  132. package/lib/models/request-log/RequestLog.js +51 -51
  133. package/lib/models/userActionsLog/IUserActionsLog.d.ts +26 -26
  134. package/lib/models/userActionsLog/IUserActionsLog.js +11 -11
  135. package/lib/models/userActionsLog/UserActionsLog.d.ts +3 -3
  136. package/lib/models/userActionsLog/UserActionsLog.js +41 -41
  137. package/lib/pdf/ReportTemplate.d.ts +71 -71
  138. package/lib/pdf/ReportTemplate.js +94 -94
  139. package/lib/repositories/AdminNotificationRepository.d.ts +7 -7
  140. package/lib/repositories/AdminNotificationRepository.js +23 -23
  141. package/lib/repositories/AdminPermissionRepository.d.ts +7 -7
  142. package/lib/repositories/AdminPermissionRepository.js +23 -23
  143. package/lib/repositories/DashboardRepository.d.ts +5 -5
  144. package/lib/repositories/DashboardRepository.js +12 -12
  145. package/lib/repositories/PermissionGroupRepository.d.ts +7 -7
  146. package/lib/repositories/PermissionGroupRepository.js +23 -23
  147. package/lib/repositories/PermissionRepository.d.ts +7 -7
  148. package/lib/repositories/PermissionRepository.js +23 -23
  149. package/lib/repositories/Repository.d.ts +68 -68
  150. package/lib/repositories/Repository.js +215 -215
  151. package/lib/repositories/RequestLogRepository.d.ts +10 -10
  152. package/lib/repositories/RequestLogRepository.js +54 -54
  153. package/lib/repositories/SaveResult.d.ts +14 -14
  154. package/lib/repositories/SaveResult.js +18 -18
  155. package/lib/resources/AdminNotificationsResource.d.ts +3 -3
  156. package/lib/resources/AdminNotificationsResource.js +23 -23
  157. package/lib/resources/AdminPermissionResource.d.ts +5 -5
  158. package/lib/resources/AdminPermissionResource.js +36 -36
  159. package/lib/resources/PermissionGroupResource.d.ts +5 -5
  160. package/lib/resources/PermissionGroupResource.js +60 -53
  161. package/lib/resources/PermissionsResource.d.ts +5 -5
  162. package/lib/resources/PermissionsResource.js +23 -23
  163. package/lib/resources/parents.d.ts +12 -12
  164. package/lib/resources/parents.js +15 -15
  165. package/lib/router/index.d.ts +8 -8
  166. package/lib/router/index.js +104 -104
  167. package/lib/seeds/PermissionSeeder.d.ts +4 -4
  168. package/lib/seeds/PermissionSeeder.js +56 -56
  169. package/lib/types/DashbordConfig.d.ts +21 -21
  170. package/lib/types/DashbordConfig.js +2 -2
  171. package/lib/types/IConfigurationFile.d.ts +14 -14
  172. package/lib/types/IConfigurationFile.js +2 -2
  173. package/lib/types/IResourceFile.d.ts +736 -736
  174. package/lib/types/IResourceFile.js +2 -2
  175. package/lib/types/IResourceResponse.d.ts +96 -96
  176. package/lib/types/IResourceResponse.js +2 -2
  177. package/lib/types/helpers.d.ts +71 -71
  178. package/lib/types/helpers.js +83 -83
  179. package/lib/utils/DateUtils.d.ts +7 -7
  180. package/lib/utils/DateUtils.js +45 -45
  181. package/lib/utils/ResourceUtils.d.ts +2 -2
  182. package/lib/utils/ResourceUtils.js +7 -7
  183. package/lib/utils/ResponseUtils.d.ts +11 -11
  184. package/lib/utils/ResponseUtils.js +41 -41
  185. package/lib/utils/StringUtils.d.ts +9 -9
  186. package/lib/utils/StringUtils.js +46 -46
  187. package/lib/view/asset-manifest.json +18 -18
  188. package/lib/view/assets/icons/delete_icon.svg +3 -3
  189. package/lib/view/assets/icons/flags/ic_flag_cn.svg +9 -9
  190. package/lib/view/assets/icons/flags/ic_flag_sa.svg +9 -9
  191. package/lib/view/assets/icons/flags/ic_flag_vn.svg +9 -9
  192. package/lib/view/assets/icons/info_icon.svg +3 -3
  193. package/lib/view/assets/icons/navbar/ic_banking.svg +5 -5
  194. package/lib/view/assets/icons/navbar/ic_invoice.svg +4 -4
  195. package/lib/view/assets/icons/navbar/ic_kanban.svg +7 -7
  196. package/lib/view/assets/icons/navbar/ic_menu_item.svg +8 -8
  197. package/lib/view/assets/icons/small_info_icon.svg +3 -3
  198. package/lib/view/assets/illustrations/Group 16.svg +4 -4
  199. package/lib/view/assets/illustrations/logo.svg +5 -5
  200. package/lib/view/favicon/browserconfig.xml +9 -9
  201. package/lib/view/favicon/safari-pinned-tab.svg +182 -182
  202. package/lib/view/favicon/site.webmanifest +19 -19
  203. package/lib/view/fonts/index.css +18 -18
  204. package/lib/view/index.html +52 -52
  205. package/lib/view/manifest.json +20 -20
  206. package/lib/view/robots.txt +3 -3
  207. package/lib/view/static/css/main.54de06ef.css +1 -1
  208. package/lib/view/static/js/574.778b5963.chunk.js +1 -1
  209. package/lib/view/static/js/678.521704a3.chunk.js +1 -1
  210. package/lib/view/static/js/798.54856416.chunk.js +1 -1
  211. package/lib/view/static/js/main.4687f255.js +2 -2
  212. package/lib/view/static/js/main.4687f255.js.LICENSE.txt +214 -214
  213. package/package.json +64 -64
package/README.md CHANGED
@@ -1,148 +1,148 @@
1
- # Identity Admin Dashboard
2
-
3
- [![Build Status](https://travis-ci.org/joemccann/dillinger.svg?branch=master)](https://travis-ci.org/joemccann/dillinger)
4
-
5
- ## How to install
6
-
7
- ```bash
8
- npm i identity-admin
9
- ```
10
-
11
- ## Features
12
-
13
- - Creating Dashboard with minimal Ui for mongoose models.
14
- - Provide DashboardController for custom routing and middlewares.
15
- - Provide multiple dashboard instances with diffrent routes.
16
-
17
- ## Create new `unAuthenticated` Dashboard:
18
-
19
- - Create new instance from Dashboard.
20
- - Provide Resources array of
21
- resources file.
22
- - Build the instance after mongoose setup by passing app instance to the build function.
23
-
24
- ```Typescript
25
- const dashboard: Dashboard = new Dashboard({ resources:[ <Resource: IResourceFile> ]);
26
- ```
27
-
28
- ```Typescript
29
- dashboard.build(app);
30
- ```
31
-
32
- ## To create new `Authenticated` Dashboard:
33
-
34
- - Create new instance from Dashboard.
35
- - Provide Resources array of
36
- resources file.
37
- - Provide authenticate function which take AdminCredentials as parameter and return a promise of boolean or user data.
38
- - Provide cookiesConfiguration (cookie name and cookie secret).
39
- - Build the instance after mongoose setup by passing app instance to the build function.
40
-
41
- ```Typescript
42
- const dashboard = new Dashboard({
43
- resources: [ UserResource ],
44
- cookiesConfiguration: {
45
- cookiesSecret: "cokieieSecret",
46
- cookieName: "connect.sid"
47
- },
48
- authenticate: async (credentials: AdminCredentials) => {
49
- const user = await Admin.findOne({ email: credentials.email });
50
- if (user) {
51
- const matched = await bcrypt.compare(credentials.password, user.encryptedPassword);
52
- if (matched) {
53
- return user;
54
- }
55
- }
56
- return false;
57
- }
58
- })
59
- ```
60
-
61
- ```Typescript
62
- dashboard.build(app);
63
- ```
64
-
65
- ## To create new `CustomRoutes` Dashboard:
66
-
67
- `This method require to implement your own view and new react app`
68
-
69
- - Create new controller class with invirsify-express-utils notaitions and extend ActionController.
70
- - Create new controller class with invirsify-express-utils notaitions and extend ResourceController.
71
- - Create new controller class with invirsify-express-utils notaitions and extend DashboardController.
72
- - Provide resource file and repository in super constructor.
73
- - ` Following class will create new route /v1/contries ***Now you can pass any auth middlewares you want`
74
-
75
- ```TypeScript
76
- @controller('/v1/actions', defaultHeaders)
77
- export default class ActionsController extends ActionController{
78
-
79
- constructor(
80
- @inject(TYPES.IResources) private resources: IResourceFile[]) {
81
- super(resources);
82
- }
83
- }
84
- ```
85
-
86
- ```TypeScript
87
- @controller('/v1/resources', defaultHeaders)
88
- export default class ResourcesController extends ResourceController{
89
-
90
- constructor(
91
- @inject(TYPES.IResources) private resources: IResourceFile[]) {
92
- super(resources);
93
- }
94
- }
95
- ```
96
-
97
- ```TypeScript
98
- @controller('/v1/contries', defaultHeaders)
99
- export default class CountryController extends DashboardController{
100
-
101
- constructor(
102
- @inject(TYPES.ICountryRepository) private countryRepository: CountryRepository,
103
- @inject(TYPES.ICountryResource) private countryResource: IResourceFile ) {
104
-
105
- super(CountryResource, countryRepository);
106
- }
107
- }
108
- ```
109
-
110
- ## Documentaion:
111
-
112
- ```Typescript
113
- Dashboard(dashBoardConfig: DashboardConfig);
114
- build(app: Application): void;
115
- ```
116
-
117
- #### Dashboard:
118
-
119
- Dashboard constructor to create new instance from idntity-admin.
120
-
121
- - dashBoardConfig:
122
-
123
- ```js
124
- {
125
- resources: IResourceFile[]; // Array of resources files.
126
- rootPath?: string; // optional root path default to /dashboard
127
- localesOptions?: i18n.ConfigurationOptions; // locales options for custom dashboard
128
- cookiesConfiguration: CookieConfiguration; // cookies configuration in case of authenticated dashboard
129
- authenticate?: AuthenticateMiddleWare; // authenticate function used to login the admin.
130
- }
131
- ```
132
-
133
- - IResourceFile
134
- ` For resource file example check`
135
- [IResourceFile](src/types/IResourceFile.ts)
136
-
137
- - CookieConfiguration
138
-
139
- ```js
140
- {
141
- cookiesSecret: string; // cookie secret to handle sessions
142
- cookieName: string; // cookie name as appeared in browser
143
- }
144
- ```
145
-
146
- ## Plugins:
147
- - [Permissions](./docs/permissions.md)
148
- - [Admin Notification](./docs/adminNotifications.md)
1
+ # Identity Admin Dashboard
2
+
3
+ [![Build Status](https://travis-ci.org/joemccann/dillinger.svg?branch=master)](https://travis-ci.org/joemccann/dillinger)
4
+
5
+ ## How to install
6
+
7
+ ```bash
8
+ npm i identity-admin
9
+ ```
10
+
11
+ ## Features
12
+
13
+ - Creating Dashboard with minimal Ui for mongoose models.
14
+ - Provide DashboardController for custom routing and middlewares.
15
+ - Provide multiple dashboard instances with diffrent routes.
16
+
17
+ ## Create new `unAuthenticated` Dashboard:
18
+
19
+ - Create new instance from Dashboard.
20
+ - Provide Resources array of
21
+ resources file.
22
+ - Build the instance after mongoose setup by passing app instance to the build function.
23
+
24
+ ```Typescript
25
+ const dashboard: Dashboard = new Dashboard({ resources:[ <Resource: IResourceFile> ]);
26
+ ```
27
+
28
+ ```Typescript
29
+ dashboard.build(app);
30
+ ```
31
+
32
+ ## To create new `Authenticated` Dashboard:
33
+
34
+ - Create new instance from Dashboard.
35
+ - Provide Resources array of
36
+ resources file.
37
+ - Provide authenticate function which take AdminCredentials as parameter and return a promise of boolean or user data.
38
+ - Provide cookiesConfiguration (cookie name and cookie secret).
39
+ - Build the instance after mongoose setup by passing app instance to the build function.
40
+
41
+ ```Typescript
42
+ const dashboard = new Dashboard({
43
+ resources: [ UserResource ],
44
+ cookiesConfiguration: {
45
+ cookiesSecret: "cokieieSecret",
46
+ cookieName: "connect.sid"
47
+ },
48
+ authenticate: async (credentials: AdminCredentials) => {
49
+ const user = await Admin.findOne({ email: credentials.email });
50
+ if (user) {
51
+ const matched = await bcrypt.compare(credentials.password, user.encryptedPassword);
52
+ if (matched) {
53
+ return user;
54
+ }
55
+ }
56
+ return false;
57
+ }
58
+ })
59
+ ```
60
+
61
+ ```Typescript
62
+ dashboard.build(app);
63
+ ```
64
+
65
+ ## To create new `CustomRoutes` Dashboard:
66
+
67
+ `This method require to implement your own view and new react app`
68
+
69
+ - Create new controller class with invirsify-express-utils notaitions and extend ActionController.
70
+ - Create new controller class with invirsify-express-utils notaitions and extend ResourceController.
71
+ - Create new controller class with invirsify-express-utils notaitions and extend DashboardController.
72
+ - Provide resource file and repository in super constructor.
73
+ - ` Following class will create new route /v1/contries ***Now you can pass any auth middlewares you want`
74
+
75
+ ```TypeScript
76
+ @controller('/v1/actions', defaultHeaders)
77
+ export default class ActionsController extends ActionController{
78
+
79
+ constructor(
80
+ @inject(TYPES.IResources) private resources: IResourceFile[]) {
81
+ super(resources);
82
+ }
83
+ }
84
+ ```
85
+
86
+ ```TypeScript
87
+ @controller('/v1/resources', defaultHeaders)
88
+ export default class ResourcesController extends ResourceController{
89
+
90
+ constructor(
91
+ @inject(TYPES.IResources) private resources: IResourceFile[]) {
92
+ super(resources);
93
+ }
94
+ }
95
+ ```
96
+
97
+ ```TypeScript
98
+ @controller('/v1/contries', defaultHeaders)
99
+ export default class CountryController extends DashboardController{
100
+
101
+ constructor(
102
+ @inject(TYPES.ICountryRepository) private countryRepository: CountryRepository,
103
+ @inject(TYPES.ICountryResource) private countryResource: IResourceFile ) {
104
+
105
+ super(CountryResource, countryRepository);
106
+ }
107
+ }
108
+ ```
109
+
110
+ ## Documentaion:
111
+
112
+ ```Typescript
113
+ Dashboard(dashBoardConfig: DashboardConfig);
114
+ build(app: Application): void;
115
+ ```
116
+
117
+ #### Dashboard:
118
+
119
+ Dashboard constructor to create new instance from idntity-admin.
120
+
121
+ - dashBoardConfig:
122
+
123
+ ```js
124
+ {
125
+ resources: IResourceFile[]; // Array of resources files.
126
+ rootPath?: string; // optional root path default to /dashboard
127
+ localesOptions?: i18n.ConfigurationOptions; // locales options for custom dashboard
128
+ cookiesConfiguration: CookieConfiguration; // cookies configuration in case of authenticated dashboard
129
+ authenticate?: AuthenticateMiddleWare; // authenticate function used to login the admin.
130
+ }
131
+ ```
132
+
133
+ - IResourceFile
134
+ ` For resource file example check`
135
+ [IResourceFile](src/types/IResourceFile.ts)
136
+
137
+ - CookieConfiguration
138
+
139
+ ```js
140
+ {
141
+ cookiesSecret: string; // cookie secret to handle sessions
142
+ cookieName: string; // cookie name as appeared in browser
143
+ }
144
+ ```
145
+
146
+ ## Plugins:
147
+ - [Permissions](./docs/permissions.md)
148
+ - [Admin Notification](./docs/adminNotifications.md)
@@ -1,14 +1,14 @@
1
- import { Application } from "express";
2
- import i18n from "i18n";
3
- import DashboardConfig from "./types/DashbordConfig";
4
- export default class Dashboard {
5
- private dashBoardConfig;
6
- private DEFAULT_ROOT_PATH;
7
- constructor(dashBoardConfig: DashboardConfig);
8
- build(app: Application): void;
9
- private configureLocalization;
10
- private buildRouter;
11
- private configureAuthentication;
12
- private configureSession;
13
- static configurBaseLocalization(options: i18n.ConfigurationOptions, locale: string): void;
14
- }
1
+ import { Application } from "express";
2
+ import i18n from "i18n";
3
+ import DashboardConfig from "./types/DashbordConfig";
4
+ export default class Dashboard {
5
+ private dashBoardConfig;
6
+ private DEFAULT_ROOT_PATH;
7
+ constructor(dashBoardConfig: DashboardConfig);
8
+ build(app: Application): void;
9
+ private configureLocalization;
10
+ private buildRouter;
11
+ private configureAuthentication;
12
+ private configureSession;
13
+ static configurBaseLocalization(options: i18n.ConfigurationOptions, locale: string): void;
14
+ }
package/lib/Dashboard.js CHANGED
@@ -1,95 +1,95 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const express_1 = __importDefault(require("express"));
30
- const DashboardController_1 = __importDefault(require("./controllers/DashboardController"));
31
- const router_1 = __importStar(require("./router"));
32
- const i18n_1 = __importDefault(require("i18n"));
33
- const ResourceController_1 = __importDefault(require("./controllers/ResourceController"));
34
- const path_1 = __importDefault(require("path"));
35
- const ActionController_1 = __importDefault(require("./controllers/ActionController"));
36
- var session = require('express-session');
37
- var cookieParser = require('cookie-parser');
38
- class Dashboard {
39
- constructor(dashBoardConfig) {
40
- this.dashBoardConfig = dashBoardConfig;
41
- this.DEFAULT_ROOT_PATH = "/dashboard";
42
- }
43
- build(app) {
44
- this.configureLocalization();
45
- app.use(i18n_1.default.init);
46
- app.use((req, res, next) => {
47
- req.setLocale(req.headers['accept-language'] ? req.headers['accept-language'] : 'en');
48
- i18n_1.default.setLocale(req.headers['accept-language'] ? req.headers['accept-language'] : 'en');
49
- next();
50
- });
51
- this.configureAuthentication(app);
52
- this.buildRouter(app);
53
- }
54
- configureLocalization() {
55
- var _a;
56
- i18n_1.default.configure((_a = this.dashBoardConfig.localesOptions) !== null && _a !== void 0 ? _a : {
57
- locales: ["en", "ar"],
58
- directory: __dirname + '/locales',
59
- });
60
- }
61
- buildRouter(app) {
62
- var _a;
63
- const dashboardController = new DashboardController_1.default(undefined, undefined, this.dashBoardConfig.resources);
64
- const resourceController = new ResourceController_1.default(this.dashBoardConfig.resources, this.dashBoardConfig.configurations);
65
- const actionController = new ActionController_1.default(this.dashBoardConfig.resources);
66
- const appPath = path_1.default.normalize(path_1.default.join(__dirname, '/view'));
67
- const router = (0, router_1.default)(dashboardController, resourceController, actionController, this.dashBoardConfig.authenticate);
68
- app.use(express_1.default.static(appPath));
69
- (0, router_1.createViewRoute)(router, appPath);
70
- app.use((_a = this.dashBoardConfig.rootPath) !== null && _a !== void 0 ? _a : this.DEFAULT_ROOT_PATH, router);
71
- }
72
- configureAuthentication(app) {
73
- if (!this.dashBoardConfig.authenticate || !this.dashBoardConfig.cookiesConfiguration) {
74
- return;
75
- }
76
- app.use(cookieParser());
77
- this.configureSession(app, this.dashBoardConfig.cookiesConfiguration);
78
- }
79
- configureSession(app, cookiesConfiguration) {
80
- var _a;
81
- const rootPath = (_a = this.dashBoardConfig.rootPath) !== null && _a !== void 0 ? _a : this.DEFAULT_ROOT_PATH;
82
- app.use(`${rootPath}`, session({
83
- secret: cookiesConfiguration.cookiesSecret,
84
- resave: false,
85
- saveUninitialized: false,
86
- name: cookiesConfiguration.cookieName,
87
- cookie: { path: `${rootPath}`, httpOnly: true }
88
- }));
89
- }
90
- static configurBaseLocalization(options, locale) {
91
- i18n_1.default.configure(options);
92
- i18n_1.default.setLocale(locale);
93
- }
94
- }
95
- exports.default = Dashboard;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const express_1 = __importDefault(require("express"));
30
+ const DashboardController_1 = __importDefault(require("./controllers/DashboardController"));
31
+ const router_1 = __importStar(require("./router"));
32
+ const i18n_1 = __importDefault(require("i18n"));
33
+ const ResourceController_1 = __importDefault(require("./controllers/ResourceController"));
34
+ const path_1 = __importDefault(require("path"));
35
+ const ActionController_1 = __importDefault(require("./controllers/ActionController"));
36
+ var session = require('express-session');
37
+ var cookieParser = require('cookie-parser');
38
+ class Dashboard {
39
+ constructor(dashBoardConfig) {
40
+ this.dashBoardConfig = dashBoardConfig;
41
+ this.DEFAULT_ROOT_PATH = "/dashboard";
42
+ }
43
+ build(app) {
44
+ this.configureLocalization();
45
+ app.use(i18n_1.default.init);
46
+ app.use((req, res, next) => {
47
+ req.setLocale(req.headers['accept-language'] ? req.headers['accept-language'] : 'en');
48
+ i18n_1.default.setLocale(req.headers['accept-language'] ? req.headers['accept-language'] : 'en');
49
+ next();
50
+ });
51
+ this.configureAuthentication(app);
52
+ this.buildRouter(app);
53
+ }
54
+ configureLocalization() {
55
+ var _a;
56
+ i18n_1.default.configure((_a = this.dashBoardConfig.localesOptions) !== null && _a !== void 0 ? _a : {
57
+ locales: ["en", "ar"],
58
+ directory: __dirname + '/locales',
59
+ });
60
+ }
61
+ buildRouter(app) {
62
+ var _a;
63
+ const dashboardController = new DashboardController_1.default(undefined, undefined, this.dashBoardConfig.resources);
64
+ const resourceController = new ResourceController_1.default(this.dashBoardConfig.resources, this.dashBoardConfig.configurations);
65
+ const actionController = new ActionController_1.default(this.dashBoardConfig.resources);
66
+ const appPath = path_1.default.normalize(path_1.default.join(__dirname, '/view'));
67
+ const router = (0, router_1.default)(dashboardController, resourceController, actionController, this.dashBoardConfig.authenticate);
68
+ app.use(express_1.default.static(appPath));
69
+ (0, router_1.createViewRoute)(router, appPath);
70
+ app.use((_a = this.dashBoardConfig.rootPath) !== null && _a !== void 0 ? _a : this.DEFAULT_ROOT_PATH, router);
71
+ }
72
+ configureAuthentication(app) {
73
+ if (!this.dashBoardConfig.authenticate || !this.dashBoardConfig.cookiesConfiguration) {
74
+ return;
75
+ }
76
+ app.use(cookieParser());
77
+ this.configureSession(app, this.dashBoardConfig.cookiesConfiguration);
78
+ }
79
+ configureSession(app, cookiesConfiguration) {
80
+ var _a;
81
+ const rootPath = (_a = this.dashBoardConfig.rootPath) !== null && _a !== void 0 ? _a : this.DEFAULT_ROOT_PATH;
82
+ app.use(`${rootPath}`, session({
83
+ secret: cookiesConfiguration.cookiesSecret,
84
+ resave: false,
85
+ saveUninitialized: false,
86
+ name: cookiesConfiguration.cookieName,
87
+ cookie: { path: `${rootPath}`, httpOnly: true }
88
+ }));
89
+ }
90
+ static configurBaseLocalization(options, locale) {
91
+ i18n_1.default.configure(options);
92
+ i18n_1.default.setLocale(locale);
93
+ }
94
+ }
95
+ exports.default = Dashboard;
@@ -1,6 +1,6 @@
1
- import { Container } from 'inversify';
2
- import { IResourceFile } from '../../types/IResourceFile';
3
- export default class HelperInversify {
4
- static register(container: Container): void;
5
- static registerResources(container: Container, resources: IResourceFile[]): void;
6
- }
1
+ import { Container } from 'inversify';
2
+ import { IResourceFile } from '../../types/IResourceFile';
3
+ export default class HelperInversify {
4
+ static register(container: Container): void;
5
+ static registerResources(container: Container, resources: IResourceFile[]): void;
6
+ }
@@ -1,10 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class HelperInversify {
4
- static register(container) {
5
- // container.bind<IResourceFile[]>(TYPES.Resources).toConstantValue([]);
6
- }
7
- static registerResources(container, resources) {
8
- }
9
- }
10
- exports.default = HelperInversify;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class HelperInversify {
4
+ static register(container) {
5
+ // container.bind<IResourceFile[]>(TYPES.Resources).toConstantValue([]);
6
+ }
7
+ static registerResources(container, resources) {
8
+ }
9
+ }
10
+ exports.default = HelperInversify;
@@ -1,5 +1,5 @@
1
- declare const HelperTypes: {
2
- Resources: symbol;
3
- RootPath: symbol;
4
- };
5
- export default HelperTypes;
1
+ declare const HelperTypes: {
2
+ Resources: symbol;
3
+ RootPath: symbol;
4
+ };
5
+ export default HelperTypes;
@@ -1,7 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const HelperTypes = {
4
- Resources: Symbol.for("Resources"),
5
- RootPath: Symbol.for("rootPath")
6
- };
7
- exports.default = HelperTypes;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const HelperTypes = {
4
+ Resources: Symbol.for("Resources"),
5
+ RootPath: Symbol.for("rootPath")
6
+ };
7
+ exports.default = HelperTypes;
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,14 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- // let weapons = new ContainerModule(
4
- // (
5
- // bind: interfaces.Bind,
6
- // unbind: interfaces.Unbind,
7
- // isBound: interfaces.IsBound,
8
- // rebind: interfaces.Rebind
9
- // ) => {
10
- // bind<Katana>("Katana").to(Katana);
11
- // bind<Shuriken>("Shuriken").to(Shuriken);
12
- // }
13
- // );
14
- // export default container;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ // let weapons = new ContainerModule(
4
+ // (
5
+ // bind: interfaces.Bind,
6
+ // unbind: interfaces.Unbind,
7
+ // isBound: interfaces.IsBound,
8
+ // rebind: interfaces.Rebind
9
+ // ) => {
10
+ // bind<Katana>("Katana").to(Katana);
11
+ // bind<Shuriken>("Shuriken").to(Shuriken);
12
+ // }
13
+ // );
14
+ // export default container;
@@ -1,4 +1,4 @@
1
- import { Container } from 'inversify';
2
- export default class RepositoryInversify {
3
- static register(container: Container): void;
4
- }
1
+ import { Container } from 'inversify';
2
+ export default class RepositoryInversify {
3
+ static register(container: Container): void;
4
+ }
@@ -1,13 +1,13 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const RequestLogRepository_1 = __importDefault(require("../../repositories/RequestLogRepository"));
7
- const types_1 = __importDefault(require("../types"));
8
- class RepositoryInversify {
9
- static register(container) {
10
- container.bind(types_1.default.IRequestLogRepository).to(RequestLogRepository_1.default);
11
- }
12
- }
13
- exports.default = RepositoryInversify;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const RequestLogRepository_1 = __importDefault(require("../../repositories/RequestLogRepository"));
7
+ const types_1 = __importDefault(require("../types"));
8
+ class RepositoryInversify {
9
+ static register(container) {
10
+ container.bind(types_1.default.IRequestLogRepository).to(RequestLogRepository_1.default);
11
+ }
12
+ }
13
+ exports.default = RepositoryInversify;