@webbio/strapi-plugin-page-builder 0.12.2-platform → 0.12.3-platform

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 (172) hide show
  1. package/README.md +166 -166
  2. package/admin/src/api/collection-type.ts +111 -111
  3. package/admin/src/api/entity-relation.ts +42 -42
  4. package/admin/src/api/has-page-relation.ts +37 -37
  5. package/admin/src/api/has-platform-relation.ts +40 -40
  6. package/admin/src/api/page-type-relation.ts +41 -41
  7. package/admin/src/api/platform-page-types.ts +45 -45
  8. package/admin/src/api/platform-relation.ts +42 -42
  9. package/admin/src/api/platform.ts +35 -35
  10. package/admin/src/api/search-filtered-entity.ts +114 -114
  11. package/admin/src/api/template.ts +39 -39
  12. package/admin/src/components/Combobox/index.tsx +83 -83
  13. package/admin/src/components/Combobox/react-select-custom-styles.tsx +121 -121
  14. package/admin/src/components/Combobox/styles.ts +46 -46
  15. package/admin/src/components/ConfirmModal/index.tsx +90 -90
  16. package/admin/src/components/EditView/CollectionTypeSearch/index.tsx +127 -127
  17. package/admin/src/components/EditView/CollectionTypeSettings/CreatePageButton/index.tsx +149 -149
  18. package/admin/src/components/EditView/CollectionTypeSettings/CreatePageButton/styles.ts +19 -19
  19. package/admin/src/components/EditView/CollectionTypeSettings/index.tsx +82 -82
  20. package/admin/src/components/EditView/Details/index.tsx +48 -48
  21. package/admin/src/components/EditView/Details/styles.ts +51 -51
  22. package/admin/src/components/EditView/PageSettings/index.tsx +124 -124
  23. package/admin/src/components/EditView/Platform/platform-select.tsx +30 -30
  24. package/admin/src/components/EditView/Template/TemplateConfirmModal/index.tsx +36 -36
  25. package/admin/src/components/EditView/Template/TemplateSelect/index.tsx +70 -70
  26. package/admin/src/components/EditView/Template/TemplateSelect/use-template-modules.ts +41 -41
  27. package/admin/src/components/EditView/index.tsx +35 -35
  28. package/admin/src/components/EditView/page-type-select.tsx +32 -32
  29. package/admin/src/components/EditView/wrapper.tsx +41 -41
  30. package/admin/src/components/GlobalPlatformSelect/index.tsx +40 -40
  31. package/admin/src/components/GlobalPlatformSelect/styles.ts +27 -27
  32. package/admin/src/components/Initializer/index.tsx +24 -24
  33. package/admin/src/components/PageFilters/PageTypeFilter/index.tsx +39 -39
  34. package/admin/src/components/PageFilters/PlatformFilter/index.tsx +32 -32
  35. package/admin/src/components/PageFilters/filters.tsx +189 -189
  36. package/admin/src/components/PageFilters/index.tsx +35 -35
  37. package/admin/src/components/PageTypeEditView/TemplatePlatformSelect/index.tsx +76 -76
  38. package/admin/src/components/PageTypeEditView/index.tsx +53 -53
  39. package/admin/src/components/PlatformFilteredSelectField/InputIcon/index.tsx +23 -23
  40. package/admin/src/components/PlatformFilteredSelectField/Multi/index.tsx +210 -210
  41. package/admin/src/components/PlatformFilteredSelectField/Single/index.tsx +197 -197
  42. package/admin/src/components/PlatformFilteredSelectField/hooks/useRelationLoad.tsx +128 -128
  43. package/admin/src/components/PlatformFilteredSelectField/index.tsx +85 -85
  44. package/admin/src/components/PlatformFilteredSelectField/styles.tsx +77 -77
  45. package/admin/src/components/PlatformFilteredSelectField/utils/get-translations.ts +3 -3
  46. package/admin/src/components/PlatformFilteredSelectField/utils/relation-helper.ts +147 -147
  47. package/admin/src/components/PluginIcon/index.tsx +94 -94
  48. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/components/Relations/RelationInput.tsx +689 -689
  49. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/components/Relations/RelationInputDataManager.tsx +6 -6
  50. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/components/Relations/useRelation.ts +170 -170
  51. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/components/Relations/utils/getRelationLink.ts +5 -5
  52. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/components/Relations/utils/normalizeRelations.ts +52 -52
  53. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/constants/attributes.ts +3 -3
  54. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/hooks/useDragAndDrop.ts +253 -253
  55. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/hooks/useKeyboardDragAndDrop.ts +96 -96
  56. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/hooks/usePrev.ts +11 -11
  57. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/utils/dragAndDrop.ts +8 -8
  58. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/utils/paths.ts +29 -29
  59. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/utils/refs.ts +19 -19
  60. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/utils/translations.ts +3 -3
  61. package/admin/src/components/StrapiCore/content-manager/shared/contracts/collection-types.ts +300 -300
  62. package/admin/src/components/StrapiCore/content-manager/shared/contracts/components.ts +72 -72
  63. package/admin/src/components/StrapiCore/content-manager/shared/contracts/content-types.ts +116 -116
  64. package/admin/src/components/StrapiCore/content-manager/shared/contracts/index.ts +8 -8
  65. package/admin/src/components/StrapiCore/content-manager/shared/contracts/init.ts +22 -22
  66. package/admin/src/components/StrapiCore/content-manager/shared/contracts/relations.ts +80 -80
  67. package/admin/src/components/StrapiCore/content-manager/shared/contracts/review-workflows.ts +88 -88
  68. package/admin/src/components/StrapiCore/content-manager/shared/contracts/single-types.ts +112 -112
  69. package/admin/src/components/StrapiCore/content-manager/shared/contracts/uid.ts +48 -48
  70. package/admin/src/components/StrapiCore/content-manager/shared/index.ts +1 -1
  71. package/admin/src/constants.ts +3 -3
  72. package/admin/src/index.tsx +101 -101
  73. package/admin/src/middlewares/index.tsx +37 -37
  74. package/admin/src/pages/app/index.tsx +14 -14
  75. package/admin/src/pluginId.ts +5 -5
  76. package/admin/src/translations/en.json +9 -9
  77. package/admin/src/translations/nl.json +9 -9
  78. package/admin/src/utils/findDomElement.ts +6 -6
  79. package/admin/src/utils/findElementParent.ts +20 -20
  80. package/admin/src/utils/getObjectFromFormName.ts +42 -42
  81. package/admin/src/utils/getRequestUrl.ts +11 -11
  82. package/admin/src/utils/getTrad.ts +5 -5
  83. package/admin/src/utils/hooks/useDebounce.ts +17 -17
  84. package/admin/src/utils/hooks/useDefaultPlatformFromLocalStorage.ts +61 -61
  85. package/admin/src/utils/hooks/useGetLocaleFromUrl.ts +9 -9
  86. package/admin/src/utils/hooks/useHideOverviewFilterTags.ts +34 -34
  87. package/admin/src/utils/hooks/usePlatformFormData.ts +64 -64
  88. package/admin/src/utils/hooks/usePrevious.ts +12 -12
  89. package/admin/src/utils/sanitizeModules.ts +93 -93
  90. package/custom.d.ts +6 -6
  91. package/dist/package.json +1 -1
  92. package/dist/server/bootstrap.js +1 -1
  93. package/dist/server/graphql/page-by-path.js +20 -17
  94. package/dist/server/graphql/pages-by-uid.js +5 -5
  95. package/dist/server/services/private-content/graphql/index.js +27 -27
  96. package/dist/server/services/private-content/graphql/types/index.js +74 -74
  97. package/dist/tsconfig.server.tsbuildinfo +1 -1
  98. package/package.json +78 -78
  99. package/server/bootstrap/collection-type-lifecycles.ts +47 -47
  100. package/server/bootstrap/permissions.ts +161 -161
  101. package/server/bootstrap.ts +261 -261
  102. package/server/config/index.ts +4 -4
  103. package/server/content-types/index.ts +7 -7
  104. package/server/content-types/user-category/schema.json +23 -23
  105. package/server/controllers/collection-types.ts +32 -32
  106. package/server/controllers/index.ts +19 -19
  107. package/server/controllers/page-type.ts +18 -18
  108. package/server/controllers/page.ts +9 -9
  109. package/server/controllers/platform.ts +21 -21
  110. package/server/controllers/private-content.ts +17 -17
  111. package/server/controllers/sitemap.ts +32 -32
  112. package/server/controllers/template.ts +16 -16
  113. package/server/controllers/user-category.ts +3 -3
  114. package/server/destroy.ts +5 -5
  115. package/server/graphql/index.ts +9 -9
  116. package/server/graphql/page-by-path.ts +135 -132
  117. package/server/graphql/page-type.ts +67 -67
  118. package/server/graphql/pages-by-uid.ts +89 -89
  119. package/server/index.ts +23 -23
  120. package/server/middlewares/index.ts +1 -1
  121. package/server/policies/index.ts +5 -5
  122. package/server/policies/isAuthorizedPage.ts +11 -11
  123. package/server/register.ts +22 -22
  124. package/server/routes/index.ts +115 -115
  125. package/server/routes/user-category.ts +3 -3
  126. package/server/schema/page-end.json +96 -96
  127. package/server/schema/page-start.json +87 -87
  128. package/server/schema/page-type-end.json +53 -53
  129. package/server/schema/page-type-start.json +38 -38
  130. package/server/schema/platform-start.json +21 -21
  131. package/server/schema/template-end.json +40 -40
  132. package/server/schema/template-start.json +35 -35
  133. package/server/services/builder.ts +232 -232
  134. package/server/services/collection-types.ts +95 -95
  135. package/server/services/email.ts +127 -127
  136. package/server/services/index.ts +23 -23
  137. package/server/services/page-type.ts +30 -30
  138. package/server/services/page.ts +24 -24
  139. package/server/services/platform.ts +30 -30
  140. package/server/services/private-content/components/admin-email.json +22 -22
  141. package/server/services/private-content/components/email.json +22 -22
  142. package/server/services/private-content/components/platform-email.json +30 -30
  143. package/server/services/private-content/constants/index.ts +13 -13
  144. package/server/services/private-content/graphql/index.ts +88 -88
  145. package/server/services/private-content/graphql/resolvers/findOnePage.ts +40 -40
  146. package/server/services/private-content/graphql/resolvers/findPage.ts +45 -45
  147. package/server/services/private-content/graphql/resolvers/forgot-password.ts +34 -34
  148. package/server/services/private-content/graphql/resolvers/login.ts +56 -56
  149. package/server/services/private-content/graphql/resolvers/register.ts +78 -78
  150. package/server/services/private-content/graphql/resolvers/reset-password.ts +44 -44
  151. package/server/services/private-content/graphql/types/index.ts +96 -96
  152. package/server/services/private-content/index.ts +95 -95
  153. package/server/services/private-content/mail-template/txtMail.email.template.text.ts +6 -6
  154. package/server/services/private-content/page.ts +20 -20
  155. package/server/services/private-content/platform.ts +19 -19
  156. package/server/services/private-content/schemas/index.ts +28 -28
  157. package/server/services/private-content/user.ts +197 -197
  158. package/server/services/sitemap.ts +83 -83
  159. package/server/services/template.ts +13 -13
  160. package/server/services/user-category.ts +3 -3
  161. package/server/utils/filter-underscore-arguments.ts +12 -12
  162. package/server/utils/reload-strapi-on-load.ts +13 -13
  163. package/server/utils/strapi.ts +50 -50
  164. package/shared/utils/constants.ts +8 -8
  165. package/shared/utils/sleep.ts +1 -1
  166. package/strapi-admin.js +3 -3
  167. package/strapi-server.js +3 -3
  168. package/tsconfig.json +20 -20
  169. package/tsconfig.server.json +25 -25
  170. package/dist/server/graphql/page-by-slug.js +0 -89
  171. package/dist/server/utils/graphql.js +0 -100
  172. package/dist/server/utils/paginationValidation.js +0 -31
@@ -1,95 +1,95 @@
1
- import { getConfig } from '../../utils/strapi';
2
- import { extendControllers, extendUser } from './user';
3
- import { extendGraphQL } from './graphql';
4
- import { extendPlatform } from './platform';
5
- import { extendPage } from './page';
6
-
7
- export default {
8
- async enablePrivateContent() {
9
- if (this.isPrivateContentEnabled()) {
10
- await strapi.services?.['plugin::page-builder.builder']?.buildComponents();
11
- extendUser();
12
- extendControllers();
13
- extendGraphQL();
14
- extendPlatform();
15
- extendPage();
16
- const extensionService = strapi.plugin('graphql').service('extension');
17
- extensionService.shadowCRUD('api::page.page').disableActions(['find', 'findOne']);
18
- }
19
- },
20
- isPrivateContentEnabled(): boolean {
21
- const pageBuilderConfig = getConfig();
22
- return pageBuilderConfig?.privateContent === true;
23
- },
24
- async activateUser(token: string): Promise<void> {
25
- try {
26
- const jwtService = strapi.plugin('users-permissions').service('jwt');
27
- const decodedToken = await jwtService.verify(token);
28
-
29
- if (decodedToken) {
30
- const user = await strapi.query('plugin::users-permissions.user').findOne({
31
- where: {
32
- id: decodedToken.userId,
33
- platform: {
34
- id: decodedToken.platformId
35
- }
36
- },
37
- populate: {
38
- platform: true
39
- }
40
- });
41
-
42
- if (user?.confirmed === false && user?.confirmationToken != null && user?.confirmationToken === token) {
43
- await strapi.entityService.update('plugin::users-permissions.user', user.id, {
44
- // @ts-ignore
45
- data: { confirmed: true, confirmationToken: null }
46
- });
47
- await strapi.service('plugin::page-builder.email').sendAdminMail(user);
48
- return user;
49
- } else {
50
- throw new Error("Error activating user. User doesn't exist or is already activated.");
51
- }
52
- }
53
- } catch (error) {
54
- console.error(error);
55
- throw error;
56
- }
57
- },
58
- async removeInactiveUsers() {
59
- const oneDayAgo = new Date();
60
- oneDayAgo.setHours(oneDayAgo.getHours() - 24);
61
-
62
- const usersToDelete = await (
63
- await strapi.query('plugin::users-permissions.user').findMany({
64
- where: {
65
- $and: [
66
- {
67
- confirmed: {
68
- $eq: false
69
- }
70
- },
71
- {
72
- createdAt: {
73
- $lt: oneDayAgo
74
- }
75
- }
76
- ]
77
- }
78
- })
79
- ).map((user) => {
80
- return user.id;
81
- });
82
-
83
- try {
84
- await strapi.query('plugin::users-permissions.user').deleteMany({
85
- where: {
86
- id: {
87
- $in: usersToDelete
88
- }
89
- }
90
- });
91
- } catch (error) {
92
- console.log(error);
93
- }
94
- }
95
- };
1
+ import { getConfig } from '../../utils/strapi';
2
+ import { extendControllers, extendUser } from './user';
3
+ import { extendGraphQL } from './graphql';
4
+ import { extendPlatform } from './platform';
5
+ import { extendPage } from './page';
6
+
7
+ export default {
8
+ async enablePrivateContent() {
9
+ if (this.isPrivateContentEnabled()) {
10
+ await strapi.services?.['plugin::page-builder.builder']?.buildComponents();
11
+ extendUser();
12
+ extendControllers();
13
+ extendGraphQL();
14
+ extendPlatform();
15
+ extendPage();
16
+ const extensionService = strapi.plugin('graphql').service('extension');
17
+ extensionService.shadowCRUD('api::page.page').disableActions(['find', 'findOne']);
18
+ }
19
+ },
20
+ isPrivateContentEnabled(): boolean {
21
+ const pageBuilderConfig = getConfig();
22
+ return pageBuilderConfig?.privateContent === true;
23
+ },
24
+ async activateUser(token: string): Promise<void> {
25
+ try {
26
+ const jwtService = strapi.plugin('users-permissions').service('jwt');
27
+ const decodedToken = await jwtService.verify(token);
28
+
29
+ if (decodedToken) {
30
+ const user = await strapi.query('plugin::users-permissions.user').findOne({
31
+ where: {
32
+ id: decodedToken.userId,
33
+ platform: {
34
+ id: decodedToken.platformId
35
+ }
36
+ },
37
+ populate: {
38
+ platform: true
39
+ }
40
+ });
41
+
42
+ if (user?.confirmed === false && user?.confirmationToken != null && user?.confirmationToken === token) {
43
+ await strapi.entityService.update('plugin::users-permissions.user', user.id, {
44
+ // @ts-ignore
45
+ data: { confirmed: true, confirmationToken: null }
46
+ });
47
+ await strapi.service('plugin::page-builder.email').sendAdminMail(user);
48
+ return user;
49
+ } else {
50
+ throw new Error("Error activating user. User doesn't exist or is already activated.");
51
+ }
52
+ }
53
+ } catch (error) {
54
+ console.error(error);
55
+ throw error;
56
+ }
57
+ },
58
+ async removeInactiveUsers() {
59
+ const oneDayAgo = new Date();
60
+ oneDayAgo.setHours(oneDayAgo.getHours() - 24);
61
+
62
+ const usersToDelete = await (
63
+ await strapi.query('plugin::users-permissions.user').findMany({
64
+ where: {
65
+ $and: [
66
+ {
67
+ confirmed: {
68
+ $eq: false
69
+ }
70
+ },
71
+ {
72
+ createdAt: {
73
+ $lt: oneDayAgo
74
+ }
75
+ }
76
+ ]
77
+ }
78
+ })
79
+ ).map((user) => {
80
+ return user.id;
81
+ });
82
+
83
+ try {
84
+ await strapi.query('plugin::users-permissions.user').deleteMany({
85
+ where: {
86
+ id: {
87
+ $in: usersToDelete
88
+ }
89
+ }
90
+ });
91
+ } catch (error) {
92
+ console.log(error);
93
+ }
94
+ }
95
+ };
@@ -1,6 +1,6 @@
1
- import Handlebars from 'handlebars';
2
-
3
- export const txtEmail = (text: string, variables?: Record<string, string>) => {
4
- const template = Handlebars.compile(text);
5
- return template(variables);
6
- };
1
+ import Handlebars from 'handlebars';
2
+
3
+ export const txtEmail = (text: string, variables?: Record<string, string>) => {
4
+ const template = Handlebars.compile(text);
5
+ return template(variables);
6
+ };
@@ -1,20 +1,20 @@
1
- import { PAGE_UID } from '../../../shared/utils/constants';
2
-
3
- export const extendPage = () => {
4
- const pageContentType = strapi.contentType(PAGE_UID);
5
- pageContentType.attributes = {
6
- ...pageContentType.attributes,
7
- isPrivate: {
8
- pluginOptions: {
9
- i18n: {
10
- localized: true
11
- }
12
- },
13
-
14
- type: 'boolean',
15
- required: false,
16
- default: false
17
- }
18
- };
19
- delete pageContentType.attributes.username;
20
- };
1
+ import { PAGE_UID } from '../../../shared/utils/constants';
2
+
3
+ export const extendPage = () => {
4
+ const pageContentType = strapi.contentType(PAGE_UID);
5
+ pageContentType.attributes = {
6
+ ...pageContentType.attributes,
7
+ isPrivate: {
8
+ pluginOptions: {
9
+ i18n: {
10
+ localized: true
11
+ }
12
+ },
13
+
14
+ type: 'boolean',
15
+ required: false,
16
+ default: false
17
+ }
18
+ };
19
+ delete pageContentType.attributes.username;
20
+ };
@@ -1,19 +1,19 @@
1
- import { PLATFORM_UID } from '../../../shared/utils/constants';
2
-
3
- export const extendPlatform = () => {
4
- const platformContentType = strapi.contentType(PLATFORM_UID);
5
- platformContentType.attributes = {
6
- ...platformContentType.attributes,
7
- isPrivate: {
8
- type: 'boolean',
9
- required: false,
10
- default: false
11
- },
12
- platformEmails: {
13
- type: 'component',
14
- repeatable: false,
15
- component: 'internal.platform-email'
16
- }
17
- };
18
- delete platformContentType.attributes.username;
19
- };
1
+ import { PLATFORM_UID } from '../../../shared/utils/constants';
2
+
3
+ export const extendPlatform = () => {
4
+ const platformContentType = strapi.contentType(PLATFORM_UID);
5
+ platformContentType.attributes = {
6
+ ...platformContentType.attributes,
7
+ isPrivate: {
8
+ type: 'boolean',
9
+ required: false,
10
+ default: false
11
+ },
12
+ platformEmails: {
13
+ type: 'component',
14
+ repeatable: false,
15
+ component: 'internal.platform-email'
16
+ }
17
+ };
18
+ delete platformContentType.attributes.username;
19
+ };
@@ -1,28 +1,28 @@
1
- import { validateYupSchema, yup } from '@strapi/utils';
2
-
3
- const registerSchema = yup.object({
4
- email: yup.string().email().required(),
5
- password: yup.string().required(),
6
- domain: yup.string().required()
7
- });
8
-
9
- export const loginSchema = yup.object({
10
- email: yup.string().email().required(),
11
- password: yup.string().required(),
12
- domain: yup.string().required()
13
- });
14
-
15
- export const forgotPasswordSchema = yup.object({
16
- email: yup.string().email().required(),
17
- domain: yup.string().required()
18
- });
19
-
20
- export const resetPasswordSchema = yup.object({
21
- password: yup.string().required(),
22
- resetPasswordToken: yup.string().required()
23
- });
24
-
25
- export const validateRegisterSchema = async (input: any) => validateYupSchema(input, registerSchema);
26
- export const validateLoginSchema = async (input: any) => validateYupSchema(input, loginSchema);
27
- export const validateForgotPasswordSchema = async (input: any) => validateYupSchema(input, forgotPasswordSchema);
28
- export const validateResetPasswordSchema = async (input: any) => validateYupSchema(input, resetPasswordSchema);
1
+ import { validateYupSchema, yup } from '@strapi/utils';
2
+
3
+ const registerSchema = yup.object({
4
+ email: yup.string().email().required(),
5
+ password: yup.string().required(),
6
+ domain: yup.string().required()
7
+ });
8
+
9
+ export const loginSchema = yup.object({
10
+ email: yup.string().email().required(),
11
+ password: yup.string().required(),
12
+ domain: yup.string().required()
13
+ });
14
+
15
+ export const forgotPasswordSchema = yup.object({
16
+ email: yup.string().email().required(),
17
+ domain: yup.string().required()
18
+ });
19
+
20
+ export const resetPasswordSchema = yup.object({
21
+ password: yup.string().required(),
22
+ resetPasswordToken: yup.string().required()
23
+ });
24
+
25
+ export const validateRegisterSchema = async (input: any) => validateYupSchema(input, registerSchema);
26
+ export const validateLoginSchema = async (input: any) => validateYupSchema(input, loginSchema);
27
+ export const validateForgotPasswordSchema = async (input: any) => validateYupSchema(input, forgotPasswordSchema);
28
+ export const validateResetPasswordSchema = async (input: any) => validateYupSchema(input, resetPasswordSchema);