identity-admin 1.28.9 → 1.28.10

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 (183) hide show
  1. package/README.md +294 -294
  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 +44 -44
  21. package/lib/controllers/DashboardController.js +787 -787
  22. package/lib/controllers/ResourceController.d.ts +15 -15
  23. package/lib/controllers/ResourceController.js +135 -135
  24. package/lib/helpers/ActionsGenerator.d.ts +11 -11
  25. package/lib/helpers/ActionsGenerator.js +179 -179
  26. package/lib/helpers/AdminNotifications/AdminNotificationCreation.d.ts +53 -49
  27. package/lib/helpers/AdminNotifications/AdminNotificationCreation.js +66 -66
  28. package/lib/helpers/AdminNotifications/AdminNotificationFetcher.d.ts +61 -51
  29. package/lib/helpers/AdminNotifications/AdminNotificationFetcher.js +44 -39
  30. package/lib/helpers/FilterQueryHelper.d.ts +9 -9
  31. package/lib/helpers/FilterQueryHelper.js +83 -83
  32. package/lib/helpers/FiltersHelper.d.ts +9 -9
  33. package/lib/helpers/FiltersHelper.js +126 -126
  34. package/lib/helpers/LocalesHelper.d.ts +4 -4
  35. package/lib/helpers/LocalesHelper.js +73 -73
  36. package/lib/helpers/LocalizedStringHelper.d.ts +11 -11
  37. package/lib/helpers/LocalizedStringHelper.js +74 -74
  38. package/lib/helpers/Permissions/PermissionFetcher.d.ts +8 -8
  39. package/lib/helpers/Permissions/PermissionFetcher.js +95 -95
  40. package/lib/helpers/Permissions/PermissionLabel.d.ts +2 -2
  41. package/lib/helpers/Permissions/PermissionLabel.js +42 -42
  42. package/lib/helpers/Permissions/PermissionMapper.d.ts +13 -13
  43. package/lib/helpers/Permissions/PermissionMapper.js +35 -35
  44. package/lib/helpers/Permissions/PermissionResource.d.ts +6 -6
  45. package/lib/helpers/Permissions/PermissionResource.js +62 -62
  46. package/lib/helpers/Permissions/PermissionSavingService.d.ts +13 -13
  47. package/lib/helpers/Permissions/PermissionSavingService.js +32 -32
  48. package/lib/helpers/Permissions/SavePermissionGroup.d.ts +6 -6
  49. package/lib/helpers/Permissions/SavePermissionGroup.js +32 -32
  50. package/lib/helpers/Permissions/UpdatePermissionGroup.d.ts +6 -6
  51. package/lib/helpers/Permissions/UpdatePermissionGroup.js +50 -50
  52. package/lib/helpers/Permissions/types.d.ts +17 -17
  53. package/lib/helpers/Permissions/types.js +2 -2
  54. package/lib/helpers/PopulationHelper.d.ts +12 -12
  55. package/lib/helpers/PopulationHelper.js +50 -50
  56. package/lib/helpers/RecordsCounter.d.ts +10 -10
  57. package/lib/helpers/RecordsCounter.js +33 -33
  58. package/lib/helpers/ReportsGenerator.d.ts +26 -26
  59. package/lib/helpers/ReportsGenerator.js +162 -162
  60. package/lib/helpers/ResourceGenerator.d.ts +9 -9
  61. package/lib/helpers/ResourceGenerator.js +172 -172
  62. package/lib/helpers/ResourceHelper.d.ts +28 -28
  63. package/lib/helpers/ResourceHelper.js +395 -395
  64. package/lib/helpers/RportsGenerator.d.ts +10 -10
  65. package/lib/helpers/RportsGenerator.js +21 -21
  66. package/lib/helpers/SchemaGenerator.d.ts +7 -7
  67. package/lib/helpers/SchemaGenerator.js +132 -132
  68. package/lib/helpers/SchemaHelper.d.ts +5 -5
  69. package/lib/helpers/SchemaHelper.js +21 -21
  70. package/lib/helpers/UserActionsLog/UserActionsLogHelper.d.ts +2 -2
  71. package/lib/helpers/UserActionsLog/UserActionsLogHelper.js +49 -49
  72. package/lib/locales/en.json +53 -53
  73. package/lib/middlewares/cache/decorator.d.ts +3 -3
  74. package/lib/middlewares/cache/decorator.js +60 -60
  75. package/lib/middlewares/cache/deletionMethods.d.ts +3 -3
  76. package/lib/middlewares/cache/deletionMethods.js +23 -23
  77. package/lib/middlewares/isAuth.d.ts +13 -13
  78. package/lib/middlewares/isAuth.js +43 -43
  79. package/lib/models/ModelNames.d.ts +10 -10
  80. package/lib/models/ModelNames.js +13 -13
  81. package/lib/models/adminNotification/AdminNotification.d.ts +5 -5
  82. package/lib/models/adminNotification/AdminNotification.js +65 -53
  83. package/lib/models/adminNotification/IAdminNotification.d.ts +34 -30
  84. package/lib/models/adminNotification/IAdminNotification.js +15 -15
  85. package/lib/models/adminpermission/AdminPermission.d.ts +11 -11
  86. package/lib/models/adminpermission/AdminPermission.js +23 -23
  87. package/lib/models/adminpermission/IAdminPermission.d.ts +13 -13
  88. package/lib/models/adminpermission/IAdminPermission.js +2 -2
  89. package/lib/models/customPage/CustomPage.d.ts +2 -2
  90. package/lib/models/customPage/CustomPage.js +38 -38
  91. package/lib/models/customPage/ICustomPage.d.ts +17 -17
  92. package/lib/models/customPage/ICustomPage.js +2 -2
  93. package/lib/models/file/File.d.ts +2 -2
  94. package/lib/models/file/File.js +23 -23
  95. package/lib/models/file/IFile.d.ts +15 -15
  96. package/lib/models/file/IFile.js +2 -2
  97. package/lib/models/location/ILocation.d.ts +14 -14
  98. package/lib/models/location/ILocation.js +2 -2
  99. package/lib/models/location/Location.d.ts +2 -2
  100. package/lib/models/location/Location.js +21 -21
  101. package/lib/models/mailLog/IMailLog.d.ts +14 -14
  102. package/lib/models/mailLog/IMailLog.js +2 -2
  103. package/lib/models/mailLog/MailLog.d.ts +3 -3
  104. package/lib/models/mailLog/MailLog.js +23 -23
  105. package/lib/models/modelConfiguration/IModelConfigurations.d.ts +29 -29
  106. package/lib/models/modelConfiguration/IModelConfigurations.js +2 -2
  107. package/lib/models/modelConfiguration/ModelConfiguration.d.ts +13 -13
  108. package/lib/models/modelConfiguration/ModelConfiguration.js +95 -95
  109. package/lib/models/permission/IPermission.d.ts +14 -14
  110. package/lib/models/permission/IPermission.js +2 -2
  111. package/lib/models/permission/Permission.d.ts +2 -2
  112. package/lib/models/permission/Permission.js +21 -21
  113. package/lib/models/request-log/IRequestLog.d.ts +22 -22
  114. package/lib/models/request-log/IRequestLog.js +2 -2
  115. package/lib/models/request-log/RequestLog.d.ts +3 -3
  116. package/lib/models/request-log/RequestLog.js +51 -51
  117. package/lib/models/userActionsLog/IUserActionsLog.d.ts +26 -26
  118. package/lib/models/userActionsLog/IUserActionsLog.js +11 -11
  119. package/lib/models/userActionsLog/UserActionsLog.d.ts +3 -3
  120. package/lib/models/userActionsLog/UserActionsLog.js +41 -41
  121. package/lib/pdf/ReportTemplate.d.ts +71 -71
  122. package/lib/pdf/ReportTemplate.js +94 -94
  123. package/lib/repositories/AdminNotificationRepository.d.ts +7 -7
  124. package/lib/repositories/AdminNotificationRepository.js +23 -23
  125. package/lib/repositories/DashboardRepository.d.ts +5 -5
  126. package/lib/repositories/DashboardRepository.js +12 -12
  127. package/lib/repositories/Repository.d.ts +68 -68
  128. package/lib/repositories/Repository.js +215 -215
  129. package/lib/repositories/RequestLogRepository.d.ts +10 -10
  130. package/lib/repositories/RequestLogRepository.js +54 -54
  131. package/lib/repositories/SaveResult.d.ts +14 -14
  132. package/lib/repositories/SaveResult.js +18 -18
  133. package/lib/resources/AdminNotificationsResource.d.ts +3 -3
  134. package/lib/resources/AdminNotificationsResource.js +23 -23
  135. package/lib/resources/parents.d.ts +4 -4
  136. package/lib/resources/parents.js +7 -7
  137. package/lib/router/index.d.ts +8 -8
  138. package/lib/router/index.js +104 -104
  139. package/lib/types/DashbordConfig.d.ts +21 -21
  140. package/lib/types/DashbordConfig.js +2 -2
  141. package/lib/types/IConfigurationFile.d.ts +11 -11
  142. package/lib/types/IConfigurationFile.js +2 -2
  143. package/lib/types/IResourceFile.d.ts +719 -719
  144. package/lib/types/IResourceFile.js +2 -2
  145. package/lib/types/IResourceResponse.d.ts +95 -95
  146. package/lib/types/IResourceResponse.js +2 -2
  147. package/lib/types/helpers.d.ts +67 -67
  148. package/lib/types/helpers.js +82 -82
  149. package/lib/utils/DateUtils.d.ts +7 -7
  150. package/lib/utils/DateUtils.js +45 -45
  151. package/lib/utils/ResourceUtils.d.ts +2 -2
  152. package/lib/utils/ResourceUtils.js +7 -7
  153. package/lib/utils/ResponseUtils.d.ts +11 -11
  154. package/lib/utils/ResponseUtils.js +41 -41
  155. package/lib/utils/StringUtils.d.ts +9 -9
  156. package/lib/utils/StringUtils.js +46 -46
  157. package/lib/view/asset-manifest.json +18 -18
  158. package/lib/view/assets/icons/delete_icon.svg +3 -3
  159. package/lib/view/assets/icons/flags/ic_flag_cn.svg +9 -9
  160. package/lib/view/assets/icons/flags/ic_flag_sa.svg +9 -9
  161. package/lib/view/assets/icons/flags/ic_flag_vn.svg +9 -9
  162. package/lib/view/assets/icons/info_icon.svg +3 -3
  163. package/lib/view/assets/icons/navbar/ic_banking.svg +5 -5
  164. package/lib/view/assets/icons/navbar/ic_invoice.svg +4 -4
  165. package/lib/view/assets/icons/navbar/ic_kanban.svg +7 -7
  166. package/lib/view/assets/icons/navbar/ic_menu_item.svg +8 -8
  167. package/lib/view/assets/icons/small_info_icon.svg +3 -3
  168. package/lib/view/assets/illustrations/Group 16.svg +4 -4
  169. package/lib/view/assets/illustrations/logo.svg +5 -5
  170. package/lib/view/favicon/browserconfig.xml +9 -9
  171. package/lib/view/favicon/safari-pinned-tab.svg +182 -182
  172. package/lib/view/favicon/site.webmanifest +19 -19
  173. package/lib/view/fonts/index.css +18 -18
  174. package/lib/view/index.html +52 -52
  175. package/lib/view/manifest.json +20 -20
  176. package/lib/view/robots.txt +3 -3
  177. package/lib/view/static/css/main.54de06ef.css +1 -1
  178. package/lib/view/static/js/574.778b5963.chunk.js +1 -1
  179. package/lib/view/static/js/678.521704a3.chunk.js +1 -1
  180. package/lib/view/static/js/798.54856416.chunk.js +1 -1
  181. package/lib/view/static/js/main.4687f255.js +2 -2
  182. package/lib/view/static/js/main.4687f255.js.LICENSE.txt +214 -214
  183. package/package.json +63 -63
@@ -1,10 +1,10 @@
1
- import { FieldTypes } from "../types/helpers";
2
- interface Columns {
3
- label: string;
4
- value: string;
5
- type: FieldTypes;
6
- }
7
- export default class ReportsGenerator {
8
- static CreateXlsxFile(columns: Columns[], data: any[], name: string): void;
9
- }
10
- export {};
1
+ import { FieldTypes } from "../types/helpers";
2
+ interface Columns {
3
+ label: string;
4
+ value: string;
5
+ type: FieldTypes;
6
+ }
7
+ export default class ReportsGenerator {
8
+ static CreateXlsxFile(columns: Columns[], data: any[], name: string): void;
9
+ }
10
+ export {};
@@ -1,21 +1,21 @@
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 node_xlsx_1 = __importDefault(require("node-xlsx"));
7
- const lodash_1 = require("lodash");
8
- const helpers_1 = require("../types/helpers");
9
- class ReportsGenerator {
10
- static CreateXlsxFile(columns, data, name) {
11
- const header = columns.map(field => field.label);
12
- const rows = data.map(row => columns.map(field => field.type === helpers_1.FieldTypes.OBJECTID ? (0, lodash_1.get)(row, field.value).toString() : (0, lodash_1.get)(row, field.value)));
13
- const sheets = [{
14
- name,
15
- data: [header, ...rows],
16
- options: {}
17
- }];
18
- const buffer = node_xlsx_1.default.build(sheets);
19
- }
20
- }
21
- exports.default = ReportsGenerator;
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 node_xlsx_1 = __importDefault(require("node-xlsx"));
7
+ const lodash_1 = require("lodash");
8
+ const helpers_1 = require("../types/helpers");
9
+ class ReportsGenerator {
10
+ static CreateXlsxFile(columns, data, name) {
11
+ const header = columns.map(field => field.label);
12
+ const rows = data.map(row => columns.map(field => field.type === helpers_1.FieldTypes.OBJECTID ? (0, lodash_1.get)(row, field.value).toString() : (0, lodash_1.get)(row, field.value)));
13
+ const sheets = [{
14
+ name,
15
+ data: [header, ...rows],
16
+ options: {}
17
+ }];
18
+ const buffer = node_xlsx_1.default.build(sheets);
19
+ }
20
+ }
21
+ exports.default = ReportsGenerator;
@@ -1,7 +1,7 @@
1
- import { IResourceFile } from '../types/IResourceFile';
2
- import { IConfiguartionFile } from '../types/IConfigurationFile';
3
- export default class SchemaGenerator {
4
- static generateSchema(schema: any, model: any, modelName: string, resource: IResourceFile, configurations?: IConfiguartionFile): any[];
5
- private static setNestedSchema;
6
- private static getRefPath;
7
- }
1
+ import { IResourceFile } from '../types/IResourceFile';
2
+ import { IConfiguartionFile } from '../types/IConfigurationFile';
3
+ export default class SchemaGenerator {
4
+ static generateSchema(schema: any, model: any, modelName: string, resource: IResourceFile, configurations?: IConfiguartionFile): any[];
5
+ private static setNestedSchema;
6
+ private static getRefPath;
7
+ }
@@ -1,132 +1,132 @@
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 StringUtils_1 = __importDefault(require("../utils/StringUtils"));
7
- const ResourceHelper_1 = __importDefault(require("./ResourceHelper"));
8
- const helpers_1 = require("../types/helpers");
9
- var pluralize = require('pluralize');
10
- class SchemaGenerator {
11
- static generateSchema(schema, model, modelName, resource, configurations) {
12
- var _a;
13
- const schemaFields = Object.keys(schema);
14
- var populatedString = '';
15
- if (!model) {
16
- model = {};
17
- }
18
- schemaFields.forEach((field) => {
19
- var _a, _b;
20
- const schemaField = schema[field];
21
- const refCheck = schemaField.options.ref;
22
- const translation = ResourceHelper_1.default.checkResourceTranslation(resource, field);
23
- const fieldType = ResourceHelper_1.default.getFieldType(schemaField);
24
- model[field] = model[field] ? model[field] : {};
25
- if (fieldType === helpers_1.FieldTypes.REFERENCE) {
26
- populatedString = StringUtils_1.default.getPopulatedString(populatedString, field);
27
- model[field].path = (_a = model[field].path) !== null && _a !== void 0 ? _a : StringUtils_1.default.lowerCaseFirstLetter(refCheck);
28
- const resourceModel = resource.properties.model;
29
- if (resourceModel && resourceModel[field] && resourceModel[field].mediaUploader) {
30
- model[field].mediaUploader = true;
31
- }
32
- }
33
- if (fieldType === helpers_1.FieldTypes.NESTEDSCHEMA) {
34
- const modelAndPopulatedString = this.setNestedSchema(schema[field].schema.paths, modelName, model, field, populatedString, resource);
35
- model = modelAndPopulatedString[0];
36
- populatedString = modelAndPopulatedString[1];
37
- }
38
- if (fieldType === helpers_1.FieldTypes.DATE) {
39
- var defaultWithTime = false;
40
- if (model[field].withTime === undefined && (field === 'createdAt' || field === 'updatedAt')) {
41
- defaultWithTime = true;
42
- }
43
- model[field].withTime = model[field].withTime ? model[field].withTime : defaultWithTime;
44
- }
45
- else if (fieldType === helpers_1.FieldTypes.ARRAY) {
46
- model[field].required = schema[field].caster.isRequired;
47
- if (schema[field].schema) {
48
- const modelAndPopulatedString = this.setNestedSchema(schema[field].schema.paths, modelName, model, field, populatedString, resource);
49
- model = modelAndPopulatedString[0];
50
- populatedString = modelAndPopulatedString[1];
51
- model[field].arrayType = model[field].arrayType ? model[field].arrayType : helpers_1.FieldTypes.NESTEDSCHEMA;
52
- }
53
- else if (schema[field].caster.options.ref) {
54
- populatedString = StringUtils_1.default.getPopulatedString(populatedString, field);
55
- model[field].path = (_b = model[field].path) !== null && _b !== void 0 ? _b : StringUtils_1.default.lowerCaseFirstLetter(schema[field].caster.options.ref);
56
- model[field].apiRoute = model[field].apiRoute ? model[field].apiRoute : this.getRefPath(schema[field].caster.options.ref, configurations);
57
- model[field].arrayType = model[field].arrayType ? model[field].arrayType : helpers_1.FieldTypes.REFERENCE;
58
- }
59
- else if (schema[field].caster.enumValues && schema[field].caster.enumValues.length > 0) {
60
- model[field].arrayType = model[field].arrayType ? model[field].arrayType : helpers_1.FieldTypes.ENUM;
61
- model[field].enumValues = model[field].enumValues ? model[field].enumValues : schema[field].caster.enumValues;
62
- }
63
- else {
64
- model[field].arrayType = model[field].arrayType ? model[field].arrayType : schema[field].caster.instance;
65
- }
66
- }
67
- model[field].type = model[field].type ? model[field].type : fieldType;
68
- model[field].defaultValue = schema[field].defaultValue ? schema[field].defaultValue : undefined;
69
- model[field].required = model[field].required ? model[field].required : schemaField.isRequired ? schemaField.isRequired : false;
70
- model[field].apiRoute = model[field].apiRoute ? model[field].apiRoute : schemaField.options.ref ? this.getRefPath(schemaField.options.ref, configurations) : undefined;
71
- model[field].enumValues =
72
- model[field].type === helpers_1.FieldTypes.ENUM || model[field].arrayType === helpers_1.FieldTypes.ENUM
73
- ? model[field].enumValues
74
- ? model[field].enumValues
75
- : schemaField.enumValues
76
- : undefined;
77
- model[field].value = model[field].value
78
- ? model[field].value
79
- : translation
80
- ? translation
81
- : refCheck
82
- ? StringUtils_1.default.checkRefId(field)
83
- ? StringUtils_1.default.convertCamelCaseToWord(field.slice(0, -2))
84
- : StringUtils_1.default.convertCamelCaseToWord(field)
85
- : StringUtils_1.default.convertCamelCaseToWord(field);
86
- model[field].isDraggable = model[field].isDraggable === false ? false : true;
87
- });
88
- if (model.virtuals) {
89
- for (const extraField in model.virtuals) {
90
- model[extraField] = model[extraField] ? model[extraField] : {};
91
- model[extraField].type = model.virtuals[extraField].type;
92
- model[extraField].arrayType = model.virtuals[extraField].arrayType ? model.virtuals[extraField].arrayType : undefined;
93
- model[extraField].required = model.virtuals[extraField].required;
94
- model[extraField].value = ResourceHelper_1.default.checkResourceTranslation(resource, extraField)
95
- ? ResourceHelper_1.default.checkResourceTranslation(resource, extraField)
96
- : StringUtils_1.default.convertCamelCaseToWord(extraField);
97
- model[extraField].path = (_a = model[extraField].path) !== null && _a !== void 0 ? _a : StringUtils_1.default.getRefPath(extraField);
98
- }
99
- }
100
- return [model, populatedString];
101
- }
102
- static setNestedSchema(paths, modelName, model, field, populatedString, resource) {
103
- var _a, _b;
104
- var nestedSchema = (_b = (_a = model[field]) === null || _a === void 0 ? void 0 : _a.schema) !== null && _b !== void 0 ? _b : {};
105
- var nestedSchemaKeys = [];
106
- const nestedModelodelAndPopulatedString = this.generateSchema(paths, nestedSchema, modelName, resource);
107
- model[field].schema = nestedModelodelAndPopulatedString[0];
108
- model[field].populatedString = nestedModelodelAndPopulatedString[1];
109
- const populatedStringArray = nestedModelodelAndPopulatedString[1].split(' ');
110
- populatedStringArray.forEach((nestedSchemaPopulatedString) => {
111
- if (nestedSchemaPopulatedString) {
112
- populatedString = StringUtils_1.default.getPopulatedString(populatedString, field + '.' + nestedSchemaPopulatedString);
113
- }
114
- });
115
- for (const key in model[field].schema) {
116
- nestedSchemaKeys.push(key);
117
- }
118
- model[field].keys = nestedSchemaKeys;
119
- return [model, populatedString];
120
- }
121
- static getRefPath(refField, configurations) {
122
- var baseApiUrl = 'admin/';
123
- if (configurations && configurations.baseApiUrl) {
124
- baseApiUrl = configurations.baseApiUrl;
125
- if (!baseApiUrl.endsWith('/')) {
126
- baseApiUrl += '/';
127
- }
128
- }
129
- return baseApiUrl + StringUtils_1.default.lowerCaseFirstLetter(pluralize(refField));
130
- }
131
- }
132
- exports.default = SchemaGenerator;
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 StringUtils_1 = __importDefault(require("../utils/StringUtils"));
7
+ const ResourceHelper_1 = __importDefault(require("./ResourceHelper"));
8
+ const helpers_1 = require("../types/helpers");
9
+ var pluralize = require('pluralize');
10
+ class SchemaGenerator {
11
+ static generateSchema(schema, model, modelName, resource, configurations) {
12
+ var _a;
13
+ const schemaFields = Object.keys(schema);
14
+ var populatedString = '';
15
+ if (!model) {
16
+ model = {};
17
+ }
18
+ schemaFields.forEach((field) => {
19
+ var _a, _b;
20
+ const schemaField = schema[field];
21
+ const refCheck = schemaField.options.ref;
22
+ const translation = ResourceHelper_1.default.checkResourceTranslation(resource, field);
23
+ const fieldType = ResourceHelper_1.default.getFieldType(schemaField);
24
+ model[field] = model[field] ? model[field] : {};
25
+ if (fieldType === helpers_1.FieldTypes.REFERENCE) {
26
+ populatedString = StringUtils_1.default.getPopulatedString(populatedString, field);
27
+ model[field].path = (_a = model[field].path) !== null && _a !== void 0 ? _a : StringUtils_1.default.lowerCaseFirstLetter(refCheck);
28
+ const resourceModel = resource.properties.model;
29
+ if (resourceModel && resourceModel[field] && resourceModel[field].mediaUploader) {
30
+ model[field].mediaUploader = true;
31
+ }
32
+ }
33
+ if (fieldType === helpers_1.FieldTypes.NESTEDSCHEMA) {
34
+ const modelAndPopulatedString = this.setNestedSchema(schema[field].schema.paths, modelName, model, field, populatedString, resource);
35
+ model = modelAndPopulatedString[0];
36
+ populatedString = modelAndPopulatedString[1];
37
+ }
38
+ if (fieldType === helpers_1.FieldTypes.DATE) {
39
+ var defaultWithTime = false;
40
+ if (model[field].withTime === undefined && (field === 'createdAt' || field === 'updatedAt')) {
41
+ defaultWithTime = true;
42
+ }
43
+ model[field].withTime = model[field].withTime ? model[field].withTime : defaultWithTime;
44
+ }
45
+ else if (fieldType === helpers_1.FieldTypes.ARRAY) {
46
+ model[field].required = schema[field].caster.isRequired;
47
+ if (schema[field].schema) {
48
+ const modelAndPopulatedString = this.setNestedSchema(schema[field].schema.paths, modelName, model, field, populatedString, resource);
49
+ model = modelAndPopulatedString[0];
50
+ populatedString = modelAndPopulatedString[1];
51
+ model[field].arrayType = model[field].arrayType ? model[field].arrayType : helpers_1.FieldTypes.NESTEDSCHEMA;
52
+ }
53
+ else if (schema[field].caster.options.ref) {
54
+ populatedString = StringUtils_1.default.getPopulatedString(populatedString, field);
55
+ model[field].path = (_b = model[field].path) !== null && _b !== void 0 ? _b : StringUtils_1.default.lowerCaseFirstLetter(schema[field].caster.options.ref);
56
+ model[field].apiRoute = model[field].apiRoute ? model[field].apiRoute : this.getRefPath(schema[field].caster.options.ref, configurations);
57
+ model[field].arrayType = model[field].arrayType ? model[field].arrayType : helpers_1.FieldTypes.REFERENCE;
58
+ }
59
+ else if (schema[field].caster.enumValues && schema[field].caster.enumValues.length > 0) {
60
+ model[field].arrayType = model[field].arrayType ? model[field].arrayType : helpers_1.FieldTypes.ENUM;
61
+ model[field].enumValues = model[field].enumValues ? model[field].enumValues : schema[field].caster.enumValues;
62
+ }
63
+ else {
64
+ model[field].arrayType = model[field].arrayType ? model[field].arrayType : schema[field].caster.instance;
65
+ }
66
+ }
67
+ model[field].type = model[field].type ? model[field].type : fieldType;
68
+ model[field].defaultValue = schema[field].defaultValue ? schema[field].defaultValue : undefined;
69
+ model[field].required = model[field].required ? model[field].required : schemaField.isRequired ? schemaField.isRequired : false;
70
+ model[field].apiRoute = model[field].apiRoute ? model[field].apiRoute : schemaField.options.ref ? this.getRefPath(schemaField.options.ref, configurations) : undefined;
71
+ model[field].enumValues =
72
+ model[field].type === helpers_1.FieldTypes.ENUM || model[field].arrayType === helpers_1.FieldTypes.ENUM
73
+ ? model[field].enumValues
74
+ ? model[field].enumValues
75
+ : schemaField.enumValues
76
+ : undefined;
77
+ model[field].value = model[field].value
78
+ ? model[field].value
79
+ : translation
80
+ ? translation
81
+ : refCheck
82
+ ? StringUtils_1.default.checkRefId(field)
83
+ ? StringUtils_1.default.convertCamelCaseToWord(field.slice(0, -2))
84
+ : StringUtils_1.default.convertCamelCaseToWord(field)
85
+ : StringUtils_1.default.convertCamelCaseToWord(field);
86
+ model[field].isDraggable = model[field].isDraggable === false ? false : true;
87
+ });
88
+ if (model.virtuals) {
89
+ for (const extraField in model.virtuals) {
90
+ model[extraField] = model[extraField] ? model[extraField] : {};
91
+ model[extraField].type = model.virtuals[extraField].type;
92
+ model[extraField].arrayType = model.virtuals[extraField].arrayType ? model.virtuals[extraField].arrayType : undefined;
93
+ model[extraField].required = model.virtuals[extraField].required;
94
+ model[extraField].value = ResourceHelper_1.default.checkResourceTranslation(resource, extraField)
95
+ ? ResourceHelper_1.default.checkResourceTranslation(resource, extraField)
96
+ : StringUtils_1.default.convertCamelCaseToWord(extraField);
97
+ model[extraField].path = (_a = model[extraField].path) !== null && _a !== void 0 ? _a : StringUtils_1.default.getRefPath(extraField);
98
+ }
99
+ }
100
+ return [model, populatedString];
101
+ }
102
+ static setNestedSchema(paths, modelName, model, field, populatedString, resource) {
103
+ var _a, _b;
104
+ var nestedSchema = (_b = (_a = model[field]) === null || _a === void 0 ? void 0 : _a.schema) !== null && _b !== void 0 ? _b : {};
105
+ var nestedSchemaKeys = [];
106
+ const nestedModelodelAndPopulatedString = this.generateSchema(paths, nestedSchema, modelName, resource);
107
+ model[field].schema = nestedModelodelAndPopulatedString[0];
108
+ model[field].populatedString = nestedModelodelAndPopulatedString[1];
109
+ const populatedStringArray = nestedModelodelAndPopulatedString[1].split(' ');
110
+ populatedStringArray.forEach((nestedSchemaPopulatedString) => {
111
+ if (nestedSchemaPopulatedString) {
112
+ populatedString = StringUtils_1.default.getPopulatedString(populatedString, field + '.' + nestedSchemaPopulatedString);
113
+ }
114
+ });
115
+ for (const key in model[field].schema) {
116
+ nestedSchemaKeys.push(key);
117
+ }
118
+ model[field].keys = nestedSchemaKeys;
119
+ return [model, populatedString];
120
+ }
121
+ static getRefPath(refField, configurations) {
122
+ var baseApiUrl = 'admin/';
123
+ if (configurations && configurations.baseApiUrl) {
124
+ baseApiUrl = configurations.baseApiUrl;
125
+ if (!baseApiUrl.endsWith('/')) {
126
+ baseApiUrl += '/';
127
+ }
128
+ }
129
+ return baseApiUrl + StringUtils_1.default.lowerCaseFirstLetter(pluralize(refField));
130
+ }
131
+ }
132
+ exports.default = SchemaGenerator;
@@ -1,5 +1,5 @@
1
- import { Schema } from 'mongoose';
2
- export default class SchemaHelper {
3
- static belongsTo(schema: Schema, modelName: string): void;
4
- private static lowerFirstLetter;
5
- }
1
+ import { Schema } from 'mongoose';
2
+ export default class SchemaHelper {
3
+ static belongsTo(schema: Schema, modelName: string): void;
4
+ private static lowerFirstLetter;
5
+ }
@@ -1,21 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class SchemaHelper {
4
- static belongsTo(schema, modelName) {
5
- const fieldName = this.lowerFirstLetter(modelName);
6
- const localFieldName = fieldName + 'Id';
7
- schema.virtual(fieldName, {
8
- ref: modelName,
9
- localField: localFieldName,
10
- foreignField: '_id',
11
- justOne: true
12
- });
13
- }
14
- static lowerFirstLetter(value) {
15
- if (value.length == 0) {
16
- return '';
17
- }
18
- return value.charAt(0).toLowerCase() + value.slice(1);
19
- }
20
- }
21
- exports.default = SchemaHelper;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class SchemaHelper {
4
+ static belongsTo(schema, modelName) {
5
+ const fieldName = this.lowerFirstLetter(modelName);
6
+ const localFieldName = fieldName + 'Id';
7
+ schema.virtual(fieldName, {
8
+ ref: modelName,
9
+ localField: localFieldName,
10
+ foreignField: '_id',
11
+ justOne: true
12
+ });
13
+ }
14
+ static lowerFirstLetter(value) {
15
+ if (value.length == 0) {
16
+ return '';
17
+ }
18
+ return value.charAt(0).toLowerCase() + value.slice(1);
19
+ }
20
+ }
21
+ exports.default = SchemaHelper;
@@ -1,2 +1,2 @@
1
- export declare function renderDiff(diff: any): string | null;
2
- export declare function isRelevant(diff: any): boolean;
1
+ export declare function renderDiff(diff: any): string | null;
2
+ export declare function isRelevant(diff: any): boolean;
@@ -1,49 +1,49 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isRelevant = exports.renderDiff = void 0;
4
- function renderDiff(diff) {
5
- var _a;
6
- const path = (_a = diff.path) === null || _a === void 0 ? void 0 : _a.join('.');
7
- const oldValue = formatValue(diff.lhs);
8
- const newValue = formatValue(diff.rhs);
9
- switch (diff.kind) {
10
- case 'N':
11
- return `${path}: Added - ${newValue}`;
12
- case 'D':
13
- return `${path}: Removed - ${oldValue}`;
14
- case 'E':
15
- return `${path}: Modified - ${oldValue} => ${newValue}`;
16
- case 'A':
17
- return renderArrayChange(diff, path);
18
- default:
19
- return null;
20
- }
21
- }
22
- exports.renderDiff = renderDiff;
23
- function formatValue(value) {
24
- if (typeof value === 'object') {
25
- return JSON.stringify(value);
26
- }
27
- if (typeof value === 'boolean') {
28
- return `${value}`;
29
- }
30
- return value;
31
- }
32
- function renderArrayChange(diff, path) {
33
- const { index, item } = diff;
34
- const { kind, rhs, lhs } = item;
35
- const changeText = kind === 'N' ? 'Added' : 'Removed';
36
- const value = formatValue(kind === 'N' ? rhs : lhs);
37
- if (typeof index !== 'undefined') {
38
- return `${path}[${index}]: ${changeText} - ${value}`;
39
- }
40
- else {
41
- return `${path}: Array Change - ${changeText} ${value}`;
42
- }
43
- }
44
- function isRelevant(diff) {
45
- var _a;
46
- const lastElement = (_a = diff.path) === null || _a === void 0 ? void 0 : _a.slice(-1)[0];
47
- return !['__v', 'createdAt', 'updatedAt', '_id', 'id'].includes(lastElement);
48
- }
49
- exports.isRelevant = isRelevant;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isRelevant = exports.renderDiff = void 0;
4
+ function renderDiff(diff) {
5
+ var _a;
6
+ const path = (_a = diff.path) === null || _a === void 0 ? void 0 : _a.join('.');
7
+ const oldValue = formatValue(diff.lhs);
8
+ const newValue = formatValue(diff.rhs);
9
+ switch (diff.kind) {
10
+ case 'N':
11
+ return `${path}: Added - ${newValue}`;
12
+ case 'D':
13
+ return `${path}: Removed - ${oldValue}`;
14
+ case 'E':
15
+ return `${path}: Modified - ${oldValue} => ${newValue}`;
16
+ case 'A':
17
+ return renderArrayChange(diff, path);
18
+ default:
19
+ return null;
20
+ }
21
+ }
22
+ exports.renderDiff = renderDiff;
23
+ function formatValue(value) {
24
+ if (typeof value === 'object') {
25
+ return JSON.stringify(value);
26
+ }
27
+ if (typeof value === 'boolean') {
28
+ return `${value}`;
29
+ }
30
+ return value;
31
+ }
32
+ function renderArrayChange(diff, path) {
33
+ const { index, item } = diff;
34
+ const { kind, rhs, lhs } = item;
35
+ const changeText = kind === 'N' ? 'Added' : 'Removed';
36
+ const value = formatValue(kind === 'N' ? rhs : lhs);
37
+ if (typeof index !== 'undefined') {
38
+ return `${path}[${index}]: ${changeText} - ${value}`;
39
+ }
40
+ else {
41
+ return `${path}: Array Change - ${changeText} ${value}`;
42
+ }
43
+ }
44
+ function isRelevant(diff) {
45
+ var _a;
46
+ const lastElement = (_a = diff.path) === null || _a === void 0 ? void 0 : _a.slice(-1)[0];
47
+ return !['__v', 'createdAt', 'updatedAt', '_id', 'id'].includes(lastElement);
48
+ }
49
+ exports.isRelevant = isRelevant;
@@ -1,54 +1,54 @@
1
- {
2
- "actions_edit": "Edit",
3
- "actions_delete": "Delete",
4
- "actions_delete_confirmMessage_title": "Do you really want to delete this record?",
5
- "actions_delete_confirmMessage_body": "If you clicked yes, this record will be permanently deleted.",
6
- "actions_bulkDelete_confirmMessage_title": "Do you really want to delete these records?",
7
- "actions_bulkDelete_confirmMessage_body": "If you clicked yes, these records will be permanently deleted.",
8
- "actions_delete_options_yes": "Delete",
9
- "actions_delete_options_no": "No",
10
- "ana": "ana",
11
- "Admin": "Admin",
12
- "User": "User",
13
- "ALL": "ALL",
14
- "EMAIL": "EMAIL",
15
- "GOOGLE": "GOOGLE",
16
- "APPLE": "APPLE",
17
- "GUEST": "GUEST",
18
- "Recipient": "Recipient",
19
- "Home View Section": "Home View Section",
20
- "Options": "Options",
21
- "Product": "Product",
22
- "Active": "Active",
23
- "Draft": "Draft",
24
- "Cart": "Cart",
25
- "ACTIVE": "ACTIVE",
26
- "EXPIRED": "EXPIRED",
27
- "Inventory Item": "Inventory Item",
28
- "Collection": "Collection",
29
- "SMART": "SMART",
30
- "MANUAL": "MANUAL",
31
- "Image": "Image",
32
- "Banner": "Banner",
33
- "Brand": "Brand",
34
- "Color": "Color",
35
- "Location": "Location",
36
- "Product Option": "Product Option",
37
- "Product Variant": "Product Variant",
38
- "Flower Type": "Flower Type",
39
- "Collection Product": "Collection Product",
40
- "Device": "Device",
41
- "Favorite Product": "Favorite Product",
42
- "Settings": "Settings",
43
- "Delivery Slot": "Delivery Slot",
44
- "Push Notification": "Push Notification",
45
- "Request Log": "Request Log",
46
- "Success": "Success",
47
- "Unauthorized": "Unauthorized",
48
- "unprocessable": "unprocessable",
49
- "Server Error": "Server Error",
50
- "actions_new": "actions_new",
51
- "Setup": "Setup",
52
- "Country": "Country",
53
- "Country User": "Country User"
1
+ {
2
+ "actions_edit": "Edit",
3
+ "actions_delete": "Delete",
4
+ "actions_delete_confirmMessage_title": "Do you really want to delete this record?",
5
+ "actions_delete_confirmMessage_body": "If you clicked yes, this record will be permanently deleted.",
6
+ "actions_bulkDelete_confirmMessage_title": "Do you really want to delete these records?",
7
+ "actions_bulkDelete_confirmMessage_body": "If you clicked yes, these records will be permanently deleted.",
8
+ "actions_delete_options_yes": "Delete",
9
+ "actions_delete_options_no": "No",
10
+ "ana": "ana",
11
+ "Admin": "Admin",
12
+ "User": "User",
13
+ "ALL": "ALL",
14
+ "EMAIL": "EMAIL",
15
+ "GOOGLE": "GOOGLE",
16
+ "APPLE": "APPLE",
17
+ "GUEST": "GUEST",
18
+ "Recipient": "Recipient",
19
+ "Home View Section": "Home View Section",
20
+ "Options": "Options",
21
+ "Product": "Product",
22
+ "Active": "Active",
23
+ "Draft": "Draft",
24
+ "Cart": "Cart",
25
+ "ACTIVE": "ACTIVE",
26
+ "EXPIRED": "EXPIRED",
27
+ "Inventory Item": "Inventory Item",
28
+ "Collection": "Collection",
29
+ "SMART": "SMART",
30
+ "MANUAL": "MANUAL",
31
+ "Image": "Image",
32
+ "Banner": "Banner",
33
+ "Brand": "Brand",
34
+ "Color": "Color",
35
+ "Location": "Location",
36
+ "Product Option": "Product Option",
37
+ "Product Variant": "Product Variant",
38
+ "Flower Type": "Flower Type",
39
+ "Collection Product": "Collection Product",
40
+ "Device": "Device",
41
+ "Favorite Product": "Favorite Product",
42
+ "Settings": "Settings",
43
+ "Delivery Slot": "Delivery Slot",
44
+ "Push Notification": "Push Notification",
45
+ "Request Log": "Request Log",
46
+ "Success": "Success",
47
+ "Unauthorized": "Unauthorized",
48
+ "unprocessable": "unprocessable",
49
+ "Server Error": "Server Error",
50
+ "actions_new": "actions_new",
51
+ "Setup": "Setup",
52
+ "Country": "Country",
53
+ "Country User": "Country User"
54
54
  }
@@ -1,3 +1,3 @@
1
- import { Request } from 'express';
2
- import 'reflect-metadata';
3
- export declare function cached(duration?: number, cachedResponseModifier?: (cachedData: any, req: Request) => Promise<any>): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
1
+ import { Request } from 'express';
2
+ import 'reflect-metadata';
3
+ export declare function cached(duration?: number, cachedResponseModifier?: (cachedData: any, req: Request) => Promise<any>): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;