@knovator/pagecreator-node 1.2.0 → 1.2.2

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 (128) hide show
  1. package/package.json +4 -2
  2. package/src/constants/index.d.ts +20 -0
  3. package/src/constants/index.js +34 -0
  4. package/src/constants/index.js.map +1 -0
  5. package/src/controllers/PageController.d.ts +4 -0
  6. package/src/controllers/PageController.js +84 -0
  7. package/src/controllers/PageController.js.map +1 -0
  8. package/src/controllers/TabController.d.ts +4 -0
  9. package/src/controllers/TabController.js +46 -0
  10. package/src/controllers/TabController.js.map +1 -0
  11. package/src/controllers/UserController.d.ts +2 -0
  12. package/src/controllers/UserController.js +65 -0
  13. package/src/controllers/UserController.js.map +1 -0
  14. package/src/controllers/WidgetController.d.ts +10 -0
  15. package/src/controllers/WidgetController.js +329 -0
  16. package/src/controllers/WidgetController.js.map +1 -0
  17. package/src/index.d.ts +8 -0
  18. package/src/index.js +48 -0
  19. package/src/index.js.map +1 -0
  20. package/src/models/Item.d.ts +30 -0
  21. package/src/models/Item.js +50 -0
  22. package/src/models/Item.js.map +1 -0
  23. package/src/models/Page.d.ts +30 -0
  24. package/src/models/Page.js +23 -0
  25. package/src/models/Page.js.map +1 -0
  26. package/src/models/SrcSet.d.ts +30 -0
  27. package/src/models/SrcSet.js +17 -0
  28. package/src/models/SrcSet.js.map +1 -0
  29. package/src/models/Tab.d.ts +30 -0
  30. package/src/models/Tab.js +28 -0
  31. package/src/models/Tab.js.map +1 -0
  32. package/src/models/Widget.d.ts +30 -0
  33. package/src/models/Widget.js +63 -0
  34. package/src/models/Widget.js.map +1 -0
  35. package/src/models/{index.ts → index.d.ts} +1 -13
  36. package/src/models/index.js +19 -0
  37. package/src/models/index.js.map +1 -0
  38. package/src/plugins/softDelete.d.ts +7 -0
  39. package/src/plugins/softDelete.js +64 -0
  40. package/src/plugins/softDelete.js.map +1 -0
  41. package/src/routes/PageRoute.d.ts +3 -0
  42. package/src/routes/PageRoute.js +30 -0
  43. package/src/routes/PageRoute.js.map +1 -0
  44. package/src/routes/UserRoute.d.ts +3 -0
  45. package/src/routes/UserRoute.js +23 -0
  46. package/src/routes/UserRoute.js.map +1 -0
  47. package/src/routes/WidgetRoute.d.ts +3 -0
  48. package/src/routes/WidgetRoute.js +68 -0
  49. package/src/routes/WidgetRoute.js.map +1 -0
  50. package/src/services/dataService.d.ts +9 -0
  51. package/src/services/dataService.js +403 -0
  52. package/src/services/dataService.js.map +1 -0
  53. package/src/services/dbService.d.ts +16 -0
  54. package/src/services/dbService.js +88 -0
  55. package/src/services/dbService.js.map +1 -0
  56. package/src/types/{IRequest.ts → IRequest.d.ts} +3 -4
  57. package/src/types/IRequest.js +3 -0
  58. package/src/types/IRequest.js.map +1 -0
  59. package/src/types/{IResponse.ts → IResponse.d.ts} +3 -4
  60. package/src/types/IResponse.js +3 -0
  61. package/src/types/IResponse.js.map +1 -0
  62. package/src/types/{Router.ts → Router.d.ts} +1 -2
  63. package/src/types/Router.js +3 -0
  64. package/src/types/Router.js.map +1 -0
  65. package/src/types/common.d.ts +142 -0
  66. package/src/types/common.js +3 -0
  67. package/src/types/common.js.map +1 -0
  68. package/src/types/enums.d.ts +14 -0
  69. package/src/types/enums.js +21 -0
  70. package/src/types/enums.js.map +1 -0
  71. package/src/types/index.js +9 -0
  72. package/src/types/index.js.map +1 -0
  73. package/src/utils/defaults.d.ts +7 -0
  74. package/src/utils/defaults.js +41 -0
  75. package/src/utils/defaults.js.map +1 -0
  76. package/src/utils/helper.d.ts +7 -0
  77. package/src/utils/helper.js +225 -0
  78. package/src/utils/helper.js.map +1 -0
  79. package/src/utils/redis.d.ts +3 -0
  80. package/src/utils/redis.js +59 -0
  81. package/src/utils/redis.js.map +1 -0
  82. package/src/utils/responseHandlers.d.ts +6 -0
  83. package/src/utils/responseHandlers.js +57 -0
  84. package/src/utils/responseHandlers.js.map +1 -0
  85. package/src/utils/validate.d.ts +4 -0
  86. package/src/utils/validate.js +24 -0
  87. package/src/utils/validate.js.map +1 -0
  88. package/src/utils/validations/page.d.ts +7 -0
  89. package/src/utils/validations/page.js +51 -0
  90. package/src/utils/validations/page.js.map +1 -0
  91. package/src/utils/validations/tab.d.ts +6 -0
  92. package/src/utils/validations/tab.js +26 -0
  93. package/src/utils/validations/tab.js.map +1 -0
  94. package/src/utils/validations/user.d.ts +3 -0
  95. package/src/utils/validations/user.js +13 -0
  96. package/src/utils/validations/user.js.map +1 -0
  97. package/src/utils/validations/widget.d.ts +9 -0
  98. package/src/utils/validations/widget.js +153 -0
  99. package/src/utils/validations/widget.js.map +1 -0
  100. package/src/constants/index.ts +0 -30
  101. package/src/controllers/PageController.ts +0 -88
  102. package/src/controllers/TabController.ts +0 -47
  103. package/src/controllers/UserController.ts +0 -69
  104. package/src/controllers/WidgetController.ts +0 -420
  105. package/src/index.ts +0 -59
  106. package/src/models/Item.ts +0 -53
  107. package/src/models/Page.ts +0 -22
  108. package/src/models/SrcSet.ts +0 -16
  109. package/src/models/Tab.ts +0 -28
  110. package/src/models/Widget.ts +0 -65
  111. package/src/plugins/softDelete.ts +0 -84
  112. package/src/routes/PageRoute.ts +0 -30
  113. package/src/routes/UserRoute.ts +0 -32
  114. package/src/routes/WidgetRoute.ts +0 -77
  115. package/src/services/dataService.ts +0 -475
  116. package/src/services/dbService.ts +0 -102
  117. package/src/types/common.ts +0 -172
  118. package/src/types/enums.ts +0 -16
  119. package/src/utils/defaults.ts +0 -41
  120. package/src/utils/helper.ts +0 -285
  121. package/src/utils/redis.ts +0 -57
  122. package/src/utils/responseHandlers.ts +0 -60
  123. package/src/utils/validate.ts +0 -22
  124. package/src/utils/validations/page.ts +0 -52
  125. package/src/utils/validations/tab.ts +0 -26
  126. package/src/utils/validations/user.ts +0 -10
  127. package/src/utils/validations/widget.ts +0 -169
  128. /package/src/types/{index.ts → index.d.ts} +0 -0
@@ -1,60 +0,0 @@
1
- import {
2
- RESPONSE_CODES,
3
- validationError,
4
- success,
5
- create,
6
- notFoundError,
7
- } from '../constants';
8
- import { IResponse } from '../types';
9
-
10
- export const failureResponse = (data: any, res: IResponse) => {
11
- let i = 0;
12
- if (data.name === 'ValidationError') {
13
- Object.keys(data.errors).forEach((key) => {
14
- if (i !== 1) {
15
- data.message = data.errors[key].message;
16
- }
17
- i++;
18
- });
19
- }
20
- res.message = data.message;
21
- return res.status(validationError).json({
22
- code: RESPONSE_CODES.ERROR,
23
- message: data.message ? data.message : data,
24
- });
25
- };
26
-
27
- export const successResponse = (data: any, res: IResponse) => {
28
- return res.status(success).json({
29
- code: RESPONSE_CODES.DEFAULT,
30
- message: res.message,
31
- data: data,
32
- });
33
- };
34
-
35
- export const createdDocumentResponse = (data: any, res: IResponse) => {
36
- return res.status(create).json({
37
- code: RESPONSE_CODES.DEFAULT,
38
- message: res.message,
39
- data: data,
40
- });
41
- };
42
-
43
- export const recordNotFound = (res: IResponse) => {
44
- return res.status(notFoundError).json({
45
- code: RESPONSE_CODES.ERROR,
46
- message: res.message,
47
- data: {},
48
- });
49
- };
50
-
51
- export const inValidParam = (message: any, res: IResponse) => {
52
- /* eslint-disable no-useless-escape */
53
- message = message.replace(/\"/g, '');
54
- res.message = message;
55
- return res.status(validationError).json({
56
- code: RESPONSE_CODES.ERROR,
57
- message: message,
58
- data: undefined,
59
- });
60
- };
@@ -1,22 +0,0 @@
1
- import { ValidationError } from 'joi';
2
- import { NextFunction } from 'express';
3
- import { IRequest, IResponse } from './../types';
4
-
5
- import { defaults } from './defaults';
6
- import { inValidParam, failureResponse } from './responseHandlers';
7
-
8
- const validate = (validator: any) => {
9
- return async function (req: IRequest, res: IResponse, next: NextFunction) {
10
- try {
11
- req.body = await validator.validateAsync(req.body);
12
- next();
13
- } catch (err) {
14
- defaults.logger.error('ValidationError', err);
15
- if ((err as ValidationError).isJoi)
16
- inValidParam((err as Error).message, res);
17
- else failureResponse((err as Error).message, res);
18
- }
19
- };
20
- };
21
-
22
- export default validate;
@@ -1,52 +0,0 @@
1
- import joi from 'joi';
2
- import { IPageSchema, IDefaultValidations } from '../../types';
3
-
4
- type PageValidation = IPageSchema & IDefaultValidations;
5
-
6
- export const create = joi.object<PageValidation>({
7
- name: joi.string().required(),
8
- code: joi
9
- .string()
10
- .uppercase()
11
- .replace(/\s+/g, '_')
12
- .required(),
13
- slug: joi
14
- .string()
15
- .required(),
16
- widgets: joi.array().items(joi.string()).optional(),
17
- createdBy: joi.any().optional(),
18
- updatedBy: joi.any().optional(),
19
- deletedBy: joi.any().optional(),
20
- deletedAt: joi.any().optional(),
21
- });
22
-
23
- export const update = joi.object<PageValidation>({
24
- name: joi.string().optional(),
25
- widgets: joi.array().items(joi.string()).optional(),
26
- createdBy: joi.any().optional(),
27
- updatedBy: joi.any().optional(),
28
- deletedBy: joi.any().optional(),
29
- deletedAt: joi.any().optional(),
30
- });
31
-
32
- export const list = joi.object({
33
- search: joi.string().allow('').replace(/\s+/g, '_').optional().default(''),
34
- options: joi
35
- .object({
36
- sort: joi
37
- .alternatives()
38
- .try(joi.object(), joi.string())
39
- .optional()
40
- .default({ _id: -1 }),
41
- populate: joi.array().items().optional().default([]),
42
- offset: joi.number().optional(),
43
- page: joi.number().optional(),
44
- limit: joi.number().optional(),
45
- pagination: joi.boolean().default(false),
46
- })
47
- .default({}),
48
- createdBy: joi.any().optional(),
49
- updatedBy: joi.any().optional(),
50
- deletedBy: joi.any().optional(),
51
- deletedAt: joi.any().optional(),
52
- });
@@ -1,26 +0,0 @@
1
- import joi from 'joi';
2
- import { ITabSchema, IDefaultValidations } from '../../types';
3
-
4
- type TabValidation = ITabSchema & IDefaultValidations;
5
-
6
- export const create = joi.object<TabValidation>({
7
- name: joi.string().optional(),
8
- names: joi.object().optional(),
9
- widgetId: joi.string().required(),
10
- collectionItems: joi.array().items(joi.string()).optional(),
11
- createdBy: joi.any().optional(),
12
- updatedBy: joi.any().optional(),
13
- deletedBy: joi.any().optional(),
14
- deletedAt: joi.any().optional(),
15
- });
16
-
17
- export const update = joi.object<TabValidation>({
18
- name: joi.string().optional(),
19
- names: joi.object().optional(),
20
- widgetId: joi.string().optional(),
21
- collectionItems: joi.array().items(joi.string()).optional(),
22
- createdBy: joi.any().optional(),
23
- updatedBy: joi.any().optional(),
24
- deletedBy: joi.any().optional(),
25
- deletedAt: joi.any().optional(),
26
- });
@@ -1,10 +0,0 @@
1
- import joi from 'joi';
2
-
3
- export const getWidgetData = joi.object({
4
- code: joi.string().required(),
5
- });
6
-
7
- export const getPageData = joi.object().keys({
8
- code: joi.string(),
9
- slug: joi.string(),
10
- }).xor('code', 'slug');
@@ -1,169 +0,0 @@
1
- import joi from 'joi';
2
- import { defaults } from '../defaults';
3
- import {
4
- ItemTypes,
5
- ItemsType,
6
- WidgetTypes,
7
- IWidgetSchema,
8
- CollectionItem,
9
- IDefaultValidations,
10
- } from '../../types';
11
-
12
- type ItemValidation = IWidgetSchema & IDefaultValidations;
13
-
14
- const srcset = joi.object().keys({
15
- screenSize: joi.number().required(),
16
- width: joi.number().required(),
17
- height: joi.number().required(),
18
- });
19
-
20
- const item = joi.object({
21
- title: joi.string().optional(),
22
- titles: joi.object().optional(),
23
- subtitle: joi.string().optional().allow(''),
24
- subtitles: joi.object().optional(),
25
- altText: joi.string().optional().allow(''),
26
- altTexts: joi.object().optional(),
27
- link: joi.string().optional().allow(''),
28
- sequence: joi.number().optional(),
29
- srcset: joi.array().items(srcset),
30
- img: joi.string().allow(null).optional(),
31
- imgs: joi.object().optional(),
32
- itemType: joi
33
- .string()
34
- .valid(...Object.values(ItemTypes))
35
- .default(ItemTypes.Web),
36
- });
37
-
38
- export const create = joi.object<ItemValidation>({
39
- name: joi.string().required(),
40
- widgetTitle: joi.string().optional(),
41
- widgetTitles: joi.object().optional(),
42
- code: joi
43
- .string()
44
- .uppercase()
45
- .replace(/\s+/g, '_')
46
- .required(),
47
- isActive: joi.boolean().default(true).optional(),
48
- autoPlay: joi.boolean().default(false).optional(),
49
- webPerRow: joi.number().allow(null).optional(),
50
- mobilePerRow: joi.number().allow(null).optional(),
51
- tabletPerRow: joi.number().allow(null).optional(),
52
- collectionName: joi.string().optional(),
53
- collectionItems: joi.array().items(joi.string()).optional(),
54
- tabs: joi
55
- .array()
56
- .items(
57
- joi.object({
58
- name: joi.string().optional(),
59
- names: joi.object().optional(),
60
- collectionItems: joi.array().items(joi.string()).optional(),
61
- })
62
- )
63
- .optional(),
64
- items: joi.array().items(item).optional(),
65
- backgroundColor: joi
66
- .string()
67
- .regex(/^#[A-Fa-f0-9]{6}/)
68
- .optional(),
69
- itemsType: joi
70
- .string()
71
- .custom((value) => {
72
- if (Object.keys(ItemsType).includes(value)) {
73
- return value;
74
- }
75
- const collectionIndex = defaults.collections.findIndex(
76
- (collection: CollectionItem) => collection.collectionName === value
77
- );
78
- if (collectionIndex > -1) {
79
- return value;
80
- }
81
- throw new Error(`${value} is not a valid widget type`);
82
- })
83
- .optional()
84
- .default(ItemsType.Image),
85
- widgetType: joi.string().optional().default(WidgetTypes.FixedCard),
86
- createdBy: joi.any().optional(),
87
- updatedBy: joi.any().optional(),
88
- deletedBy: joi.any().optional(),
89
- deletedAt: joi.any().optional(),
90
- textContent: joi.string().optional(),
91
- htmlContent: joi.string().optional()
92
- });
93
-
94
- export const update = joi.object<ItemValidation>({
95
- name: joi.string().required(),
96
- widgetTitle: joi.string().optional(),
97
- widgetTitles: joi.object().optional(),
98
- isActive: joi.boolean().optional(),
99
- webPerRow: joi.number().allow(null).optional(),
100
- mobilePerRow: joi.number().allow(null).optional(),
101
- tabletPerRow: joi.number().allow(null).optional(),
102
- autoPlay: joi.boolean().default(false).optional(),
103
- collectionItems: joi.array().items(joi.string()).optional(),
104
- tabs: joi
105
- .array()
106
- .items(
107
- joi.object({
108
- name: joi.string().optional(),
109
- names: joi.object().optional(),
110
- collectionItems: joi.array().items(joi.string()).optional(),
111
- })
112
- )
113
- .optional(),
114
- items: joi.array().items(item).optional(),
115
- backgroundColor: joi
116
- .string()
117
- .regex(/^#[A-Fa-f0-9]{6}/)
118
- .optional(),
119
- widgetType: joi.string().optional(),
120
- createdBy: joi.any().optional(),
121
- updatedBy: joi.any().optional(),
122
- deletedBy: joi.any().optional(),
123
- deletedAt: joi.any().optional(),
124
- textContent: joi.string().optional()
125
- });
126
-
127
- export const list = joi.object({
128
- search: joi.string().allow('').optional().default(''),
129
- options: joi
130
- .object({
131
- sort: joi
132
- .alternatives()
133
- .try(joi.object(), joi.string())
134
- .optional()
135
- .default({ _id: -1 }),
136
- // populate: joi.array().items().optional(),
137
- offset: joi.number().optional(),
138
- page: joi.number().optional(),
139
- limit: joi.number().optional(),
140
- })
141
- .default({
142
- sort: { _id: -1 },
143
- }),
144
- collectionItems: joi.array().optional().default([]),
145
- isActive: joi.boolean().optional(),
146
- all: joi.boolean().default(false),
147
- createdBy: joi.any().optional(),
148
- updatedBy: joi.any().optional(),
149
- deletedBy: joi.any().optional(),
150
- deletedAt: joi.any().optional(),
151
- });
152
-
153
- export const partialUpdate = joi.object({
154
- isActive: joi.boolean().optional(),
155
- createdBy: joi.any().optional(),
156
- updatedBy: joi.any().optional(),
157
- deletedBy: joi.any().optional(),
158
- deletedAt: joi.any().optional(),
159
- });
160
-
161
- export const getCollectionData = joi.object({
162
- collectionName: joi.string().required(),
163
- search: joi.string().allow('').optional().default(''),
164
- collectionItems: joi.array().optional().default([]),
165
- createdBy: joi.any().optional(),
166
- updatedBy: joi.any().optional(),
167
- deletedBy: joi.any().optional(),
168
- deletedAt: joi.any().optional(),
169
- });
File without changes