@pega/custom-dx-components 0.0.1 → 0.23.1

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 (223) hide show
  1. package/.vscode/extensions.json +1 -1
  2. package/README.md +6 -189
  3. package/package.json +34 -32
  4. package/src/auth.js +608 -0
  5. package/src/cli.js +42 -0
  6. package/src/constants.js +122 -8
  7. package/src/tasks/authenticate/helper.js +91 -8
  8. package/src/tasks/authenticate/index.js +169 -49
  9. package/src/tasks/build/helper.js +122 -0
  10. package/src/tasks/build/index.js +54 -0
  11. package/src/tasks/build-all/helper.js +70 -0
  12. package/src/tasks/build-all/index.js +79 -0
  13. package/src/tasks/{publish/bundle → bundle}/builder/index.js +49 -5
  14. package/src/tasks/{publish/bundle → bundle}/builder/webpack.config.js +5 -3
  15. package/src/tasks/{publish/bundle → bundle}/index.js +2 -2
  16. package/src/tasks/create/index.js +87 -64
  17. package/src/tasks/create/templates/Constellation/Field/Boolean/Boolean.js.mustache +38 -0
  18. package/src/tasks/create/templates/Constellation/Field/Boolean/boolean-format.js.mustache +26 -0
  19. package/src/tasks/create/templates/Constellation/Field/Boolean/config.json.mustache +145 -0
  20. package/src/tasks/create/templates/Constellation/Field/Boolean/demo.stories.jsx.mustache +61 -0
  21. package/src/tasks/create/templates/Constellation/Field/Boolean/event-utils.js.mustache +18 -0
  22. package/src/tasks/create/templates/Constellation/Field/Boolean/index.jsx.mustache +170 -0
  23. package/src/tasks/create/templates/Constellation/Field/Boolean/mock.stories.js.mustache +21 -0
  24. package/src/tasks/create/templates/Constellation/Field/Boolean/styles.js.mustache +7 -0
  25. package/src/tasks/create/templates/Constellation/Field/Date/DateFormatter.js.mustache +61 -0
  26. package/src/tasks/create/templates/Constellation/Field/Date/FormattedText.jsx.mustache +41 -0
  27. package/src/tasks/create/templates/Constellation/Field/Date/config.json.mustache +195 -0
  28. package/src/tasks/create/templates/Constellation/Field/Date/date.js.mustache +439 -0
  29. package/src/tasks/create/templates/Constellation/Field/Date/demo.stories.jsx.mustache +73 -0
  30. package/src/tasks/create/templates/Constellation/Field/Date/index.jsx.mustache +256 -0
  31. package/src/tasks/create/templates/Constellation/Field/Date/mock.stories.js.mustache +23 -0
  32. package/src/tasks/create/templates/Constellation/Field/Date/styles.js.mustache +7 -0
  33. package/src/tasks/create/templates/Constellation/Field/Date/suggestions-handler.js +10 -0
  34. package/src/tasks/create/templates/Constellation/Field/DateTime/config.json.mustache +256 -0
  35. package/src/tasks/create/templates/Constellation/Field/DateTime/date-time.js.mustache +92 -0
  36. package/src/tasks/create/templates/Constellation/Field/DateTime/date-utils.js.mustache +287 -0
  37. package/src/tasks/create/templates/Constellation/Field/DateTime/date.js.mustache +328 -0
  38. package/src/tasks/create/templates/Constellation/Field/DateTime/demo.stories.jsx.mustache +73 -0
  39. package/src/tasks/create/templates/Constellation/Field/DateTime/index.jsx.mustache +254 -0
  40. package/src/tasks/create/templates/Constellation/Field/DateTime/mock.stories.js.mustache +23 -0
  41. package/src/tasks/create/templates/Constellation/Field/DateTime/styles.js.mustache +7 -0
  42. package/src/tasks/create/templates/Constellation/Field/DateTime/suggestions-handler.js +10 -0
  43. package/src/tasks/create/templates/Constellation/Field/Decimal/config.json.mustache +278 -0
  44. package/src/tasks/create/templates/Constellation/Field/Decimal/demo.stories.jsx.mustache +49 -0
  45. package/src/tasks/create/templates/Constellation/Field/Decimal/event-utils.js.mustache +18 -0
  46. package/src/tasks/create/templates/Constellation/Field/Decimal/index.jsx.mustache +273 -0
  47. package/src/tasks/create/templates/Constellation/Field/Decimal/mock.stories.js.mustache +21 -0
  48. package/src/tasks/create/templates/Constellation/Field/Decimal/styles.js.mustache +7 -0
  49. package/src/tasks/create/templates/Constellation/Field/Decimal/suggestions-handler.js +10 -0
  50. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/config.json.mustache +291 -0
  51. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/demo.stories.jsx.mustache +53 -0
  52. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/event-utils.js.mustache +18 -0
  53. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/index.jsx.mustache +299 -0
  54. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/mock.stories.js.mustache +23 -0
  55. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/styles.js.mustache +7 -0
  56. package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/suggestions-handler.js +10 -0
  57. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/config.json.mustache +93 -0
  58. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/demo.stories.jsx.mustache +49 -0
  59. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/event-utils.js.mustache +18 -0
  60. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/index.jsx.mustache +281 -0
  61. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/mock.stories.js.mustache +21 -0
  62. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/styles.js.mustache +7 -0
  63. package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/suggestions-handler.js +10 -0
  64. package/src/tasks/create/templates/Constellation/Field/Integer/config.json.mustache +347 -0
  65. package/src/tasks/create/templates/Constellation/Field/Integer/demo.stories.jsx.mustache +49 -0
  66. package/src/tasks/create/templates/Constellation/Field/Integer/event-utils.js.mustache +18 -0
  67. package/src/tasks/create/templates/Constellation/Field/Integer/index.jsx.mustache +336 -0
  68. package/src/tasks/create/templates/Constellation/Field/Integer/mock.stories.js.mustache +21 -0
  69. package/src/tasks/create/templates/Constellation/Field/Integer/styles.js.mustache +7 -0
  70. package/src/tasks/create/templates/Constellation/Field/Integer/suggestions-handler.js +10 -0
  71. package/src/tasks/create/templates/Constellation/Field/Picklist/config.json.mustache +114 -0
  72. package/src/tasks/create/templates/Constellation/Field/Picklist/demo.stories.jsx.mustache +78 -0
  73. package/src/tasks/create/templates/Constellation/Field/Picklist/event-utils.js.mustache +18 -0
  74. package/src/tasks/create/templates/Constellation/Field/Picklist/index.jsx.mustache +351 -0
  75. package/src/tasks/create/templates/Constellation/Field/Picklist/mock.stories.js.mustache +67 -0
  76. package/src/tasks/create/templates/Constellation/Field/Picklist/styles.js.mustache +7 -0
  77. package/src/tasks/create/templates/Constellation/Field/Picklist/suggestions-handler.js +10 -0
  78. package/src/tasks/create/{template → templates/Constellation/Field/Text}/config.json.mustache +14 -5
  79. package/src/tasks/create/templates/Constellation/Field/Text/demo.stories.jsx.mustache +51 -0
  80. package/src/tasks/create/{template → templates/Constellation/Field/Text}/index.jsx.mustache +5 -0
  81. package/src/tasks/create/templates/Constellation/Field/Text/mock.stories.js.mustache +13 -0
  82. package/src/tasks/create/templates/Constellation/Field/Text/styles.js.mustache +7 -0
  83. package/src/tasks/create/templates/Constellation/Field/Text-Email/config.json.mustache +111 -0
  84. package/src/tasks/create/templates/Constellation/Field/Text-Email/demo.stories.jsx.mustache +48 -0
  85. package/src/tasks/create/templates/Constellation/Field/Text-Email/event-utils.js.mustache +18 -0
  86. package/src/tasks/create/templates/Constellation/Field/Text-Email/index.jsx.mustache +231 -0
  87. package/src/tasks/create/templates/Constellation/Field/Text-Email/mock.stories.js.mustache +22 -0
  88. package/src/tasks/create/templates/Constellation/Field/Text-Email/styles.js.mustache +7 -0
  89. package/src/tasks/create/templates/Constellation/Field/Text-Email/suggestions-handler.js +10 -0
  90. package/src/tasks/create/templates/Constellation/Field/Text-Input/StatusWork.jsx +26 -0
  91. package/src/tasks/create/templates/Constellation/Field/Text-Input/config.json.mustache +111 -0
  92. package/src/tasks/create/templates/Constellation/Field/Text-Input/demo.stories.jsx.mustache +48 -0
  93. package/src/tasks/create/templates/Constellation/Field/Text-Input/event-utils.js.mustache +18 -0
  94. package/src/tasks/create/templates/Constellation/Field/Text-Input/index.jsx.mustache +239 -0
  95. package/src/tasks/create/templates/Constellation/Field/Text-Input/mock.stories.js.mustache +21 -0
  96. package/src/tasks/create/templates/Constellation/Field/Text-Input/styles.js.mustache +7 -0
  97. package/src/tasks/create/templates/Constellation/Field/Text-Input/suggestions-handler.js +10 -0
  98. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/config.json.mustache +111 -0
  99. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/demo.stories.jsx.mustache +48 -0
  100. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/event-utils.js.mustache +18 -0
  101. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/index.jsx.mustache +231 -0
  102. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/mock.stories.js.mustache +20 -0
  103. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/styles.js.mustache +7 -0
  104. package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/suggestions-handler.js +10 -0
  105. package/src/tasks/create/templates/Constellation/Field/Text-Phone/config.json.mustache +123 -0
  106. package/src/tasks/create/templates/Constellation/Field/Text-Phone/demo.stories.jsx.mustache +46 -0
  107. package/src/tasks/create/templates/Constellation/Field/Text-Phone/event-utils.js.mustache +18 -0
  108. package/src/tasks/create/templates/Constellation/Field/Text-Phone/index.jsx.mustache +267 -0
  109. package/src/tasks/create/templates/Constellation/Field/Text-Phone/mock.stories.js.mustache +37 -0
  110. package/src/tasks/create/templates/Constellation/Field/Text-Phone/styles.js.mustache +7 -0
  111. package/src/tasks/create/templates/Constellation/Field/Text-Phone/suggestions-handler.js +10 -0
  112. package/src/tasks/create/templates/Constellation/Field/Text-URL/config.json.mustache +237 -0
  113. package/src/tasks/create/templates/Constellation/Field/Text-URL/demo.stories.jsx.mustache +46 -0
  114. package/src/tasks/create/templates/Constellation/Field/Text-URL/event-utils.js.mustache +18 -0
  115. package/src/tasks/create/templates/Constellation/Field/Text-URL/index.jsx.mustache +232 -0
  116. package/src/tasks/create/templates/Constellation/Field/Text-URL/mock.stories.js.mustache +22 -0
  117. package/src/tasks/create/templates/Constellation/Field/Text-URL/styles.js.mustache +7 -0
  118. package/src/tasks/create/templates/Constellation/Field/Text-URL/suggestions-handler.js +10 -0
  119. package/src/tasks/create/templates/Constellation/Field/Text-URL/text-url.jsx.mustache +173 -0
  120. package/src/tasks/create/templates/Constellation/Field/TimeOfDay/config.json.mustache +185 -0
  121. package/src/tasks/create/templates/Constellation/Field/TimeOfDay/demo.stories.jsx.mustache +57 -0
  122. package/src/tasks/create/templates/Constellation/Field/TimeOfDay/index.jsx.mustache +213 -0
  123. package/src/tasks/create/templates/Constellation/Field/TimeOfDay/mock.stories.js.mustache +20 -0
  124. package/src/tasks/create/templates/Constellation/Field/TimeOfDay/styles.js.mustache +7 -0
  125. package/src/tasks/create/templates/Constellation/Field/TimeOfDay/suggestions-handler.js +10 -0
  126. package/src/tasks/create/templates/Constellation/Field/TimeOfDay/time-of-day.js.mustache +287 -0
  127. package/src/tasks/create/templates/Constellation/Template/DETAILS/OneColumnDetails.svg +22 -0
  128. package/src/tasks/create/templates/Constellation/Template/DETAILS/StatusWork.jsx.mustache +26 -0
  129. package/src/tasks/create/templates/Constellation/Template/DETAILS/config.json.mustache +35 -0
  130. package/src/tasks/create/templates/Constellation/Template/DETAILS/demo.stories.jsx.mustache +132 -0
  131. package/src/tasks/create/templates/Constellation/Template/DETAILS/index.jsx.mustache +86 -0
  132. package/src/tasks/create/templates/Constellation/Template/DETAILS/mock.stories.js.mustache +189 -0
  133. package/src/tasks/create/templates/Constellation/Template/DETAILS/styles.js.mustache +7 -0
  134. package/src/tasks/create/templates/Constellation/Template/DETAILS/utils.js.mustache +152 -0
  135. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/StatusWork.jsx.mustache +26 -0
  136. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/TwoColumnDetails.svg +28 -0
  137. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/config.json.mustache +42 -0
  138. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/demo.stories.jsx.mustache +136 -0
  139. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/index.jsx.mustache +86 -0
  140. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/mock.stories.js.mustache +230 -0
  141. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/styles.js.mustache +7 -0
  142. package/src/tasks/create/templates/Constellation/Template/DETAILS-region/utils.js.mustache +155 -0
  143. package/src/tasks/create/templates/Constellation/Template/FORM/DefaultForm.svg +29 -0
  144. package/src/tasks/create/templates/Constellation/Template/FORM/config.json.mustache +45 -0
  145. package/src/tasks/create/templates/Constellation/Template/FORM/demo.stories.jsx.mustache +169 -0
  146. package/src/tasks/create/templates/Constellation/Template/FORM/index.jsx.mustache +45 -0
  147. package/src/tasks/create/templates/Constellation/Template/FORM/mock.stories.js.mustache +137 -0
  148. package/src/tasks/create/templates/Constellation/Template/FORM/styles.js.mustache +7 -0
  149. package/src/tasks/create/templates/Constellation/Template/FORM-region/TwoColumn.svg +38 -0
  150. package/src/tasks/create/templates/Constellation/Template/FORM-region/config.json.mustache +27 -0
  151. package/src/tasks/create/templates/Constellation/Template/FORM-region/demo.stories.jsx.mustache +178 -0
  152. package/src/tasks/create/templates/Constellation/Template/FORM-region/index.jsx.mustache +48 -0
  153. package/src/tasks/create/templates/Constellation/Template/FORM-region/mock.stories.js.mustache +143 -0
  154. package/src/tasks/create/templates/Constellation/Template/FORM-region/styles.js.mustache +7 -0
  155. package/src/tasks/create/templates/Constellation/Template/PAGE/GetNextWork.jsx.mustache +35 -0
  156. package/src/tasks/create/templates/Constellation/Template/PAGE/OneColumnPage.svg +36 -0
  157. package/src/tasks/create/templates/Constellation/Template/PAGE/config.json.mustache +32 -0
  158. package/src/tasks/create/templates/Constellation/Template/PAGE/demo.stories.jsx.mustache +102 -0
  159. package/src/tasks/create/templates/Constellation/Template/PAGE/index.jsx.mustache +70 -0
  160. package/src/tasks/create/templates/Constellation/Template/PAGE/localizations.json.mustache +4 -0
  161. package/src/tasks/create/templates/Constellation/Template/PAGE/mock.stories.js.mustache +94 -0
  162. package/src/tasks/create/templates/Constellation/Template/PAGE/styles.js.mustache +7 -0
  163. package/src/tasks/create/templates/Constellation/Template/PAGE/utils.js.mustache +229 -0
  164. package/src/tasks/create/templates/Constellation/Widget/CASE/OneColumnPage.svg +36 -0
  165. package/src/tasks/create/templates/Constellation/Widget/CASE/config.json.mustache +23 -0
  166. package/src/tasks/create/templates/Constellation/Widget/CASE/demo.stories.jsx.mustache +78 -0
  167. package/src/tasks/create/templates/Constellation/Widget/CASE/index.jsx.mustache +76 -0
  168. package/src/tasks/create/templates/Constellation/Widget/CASE/mock.stories.js.mustache +390 -0
  169. package/src/tasks/create/{template → templates/Constellation/Widget/CASE}/styles.js.mustache +1 -1
  170. package/src/tasks/create/templates/Constellation/Widget/PAGE/OneColumnPage.svg +36 -0
  171. package/src/tasks/create/templates/Constellation/Widget/PAGE/config.json.mustache +59 -0
  172. package/src/tasks/create/templates/Constellation/Widget/PAGE/demo.stories.jsx.mustache +30 -0
  173. package/src/tasks/create/templates/Constellation/Widget/PAGE/index.jsx.mustache +48 -0
  174. package/src/tasks/create/templates/Constellation/Widget/PAGE/mock.stories.js.mustache +23 -0
  175. package/src/tasks/create/templates/Constellation/Widget/PAGE/styles.js.mustache +7 -0
  176. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Avatar.jsx.mustache +75 -0
  177. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/OneColumnPage.svg +36 -0
  178. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Operator.jsx.mustache +240 -0
  179. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/config.json.mustache +66 -0
  180. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/demo.stories.jsx.mustache +68 -0
  181. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/index.jsx.mustache +110 -0
  182. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/mock.stories.js.mustache +51 -0
  183. package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/styles.js.mustache +7 -0
  184. package/src/tasks/create-all/index.js +398 -0
  185. package/src/tasks/delete/helper.js +6 -4
  186. package/src/tasks/delete/index.js +4 -0
  187. package/src/tasks/delete-all/helper.js +153 -0
  188. package/src/tasks/delete-all/index.js +49 -0
  189. package/src/tasks/generate-ai/aiPrompt.txt.mustache +121 -0
  190. package/src/tasks/generate-ai/helper.js +184 -0
  191. package/src/tasks/generate-ai/index.js +33 -0
  192. package/src/tasks/index.js +7 -0
  193. package/src/tasks/init/index.js +9 -3
  194. package/src/tasks/init/template/.eslintignore +8 -0
  195. package/src/tasks/init/template/.eslintrc.json +186 -5
  196. package/src/tasks/init/template/.vscode/extensions.json +1 -1
  197. package/src/tasks/init/template/README.md +80 -61
  198. package/src/tasks/init/template/keys/DX-ComponentDev.zip +0 -0
  199. package/src/tasks/init/template/keys/dxcb.crt +32 -0
  200. package/src/tasks/init/template/keys/dxcb.key +51 -0
  201. package/src/tasks/init/template/package.json.mustache +44 -21
  202. package/src/tasks/init/template/tasks.config.json +19 -5
  203. package/src/tasks/init/template/templateNPMRC.txt +8 -0
  204. package/src/tasks/linter/index.js +46 -0
  205. package/src/tasks/list/helper.js +19 -6
  206. package/src/tasks/list/index.js +4 -0
  207. package/src/tasks/publish/helper.js +13 -4
  208. package/src/tasks/publish/index.js +14 -1
  209. package/src/tasks/publish-all/helper.js +154 -0
  210. package/src/tasks/publish-all/index.js +95 -0
  211. package/src/tasks/rename/index.js +314 -0
  212. package/src/tasks/validator/index.js +291 -18
  213. package/src/util.js +247 -6
  214. package/src/tasks/create/template/demo.stories.jsx.mustache +0 -44
  215. package/src/tasks/init/template/src/components/MBTAList/MBTAList.stories.tsx +0 -10
  216. package/src/tasks/init/template/src/components/MBTAList/MBTAList.tsx +0 -122
  217. package/src/tasks/init/template/src/components/MBTAList/icons/accessible.icon.tsx +0 -14
  218. package/src/tasks/init/template/src/components/MBTAList/icons/bus.icon.tsx +0 -13
  219. package/src/tasks/init/template/src/components/MBTAList/icons/mbta.icon.tsx +0 -10
  220. package/src/tasks/init/template/src/components/MBTAList/icons/subway.icon.tsx +0 -14
  221. package/src/tasks/init/template/src/components/MBTAList/index.ts +0 -2
  222. /package/src/tasks/{publish/bundle → bundle}/builder/modules.js +0 -0
  223. /package/src/tasks/{publish/bundle → bundle}/builder/paths.js +0 -0
@@ -8,23 +8,26 @@ This project provides you with an environment to extend Constellation by giving
8
8
 
9
9
  Ensure you have access to the following in your system:
10
10
 
11
- - Pega Infinity Server version 8.7 and above
11
+ - Pega Infinity Server version 8.7 or later
12
12
 
13
- - Git version 2.30 and above
13
+ - Git version 2.30 or later
14
14
 
15
- - System node version 14 and above
15
+ - System node version 18
16
16
 
17
- - System npm version 6 and above
17
+ - System npm version 8
18
18
 
19
19
  ## Initialize a project
20
20
 
21
21
  Initialize the project by performing the following procedure in a terminal:
22
22
 
23
23
  1. Enter the following command to initialize the project.
24
- `npx @pega/custom-dx-components init`
24
+
25
+ Pega 8.7 - `npx @pega/custom-dx-components@1 init`
26
+
27
+ Pega 8.8 - `npx @pega/custom-dx-components@2 init`
25
28
 
26
29
  2. If prompted, enter `y` to install the Custom UI Components package.
27
- You will then be asked to set up the project by entering the required details.
30
+ You will then be asked to set up the project by entering the required details.
28
31
 
29
32
  3. Enter the following details:
30
33
  - Name of the project (required)
@@ -38,7 +41,7 @@ Example - `This project is intended to create and publish a custom component.`
38
41
  - Git repository URL (optional)
39
42
  Example - `https://git.custom-components.io/custom-cc.git`
40
43
  - Author (optional)
41
- Example - `Michelle`
44
+ Example - `Michelle`
42
45
 
43
46
  The workspace is now set up to create custom components and publish them to the server.
44
47
 
@@ -47,7 +50,7 @@ The workspace is now set up to create custom components and publish them to the
47
50
  Create custom components using the following procedure:
48
51
 
49
52
  1. Enter the following command to create a component:
50
- `npm run create`
53
+ `npm run create`
51
54
  You will then be asked to enter or review the following details of the component:
52
55
  - Name of the component (required)
53
56
  Example - `customcomp0`
@@ -62,21 +65,22 @@ Example - `Field`
62
65
  - Sub-type of component (required)
63
66
  Example - `Text`
64
67
  - Description of the component (optional)
65
- Example - `This is a customized searchbox that filters data.`
68
+ Example - `This is a customized searchbox that filters data.`
66
69
  The component is created in the following path: _/Users/your_user_name/project_name/src/components/component_name_
67
- You can also pre-configure the values for the above options in a tasks.config.json file as shown below.
68
-
69
- ```json
70
- {
71
- "component": {
72
- "library": "basic",
73
- "type": "field",
74
- "subtype": "text",
75
- "description": "basic field for capturing textual data",
76
- "icon": "basic-field-text.svg"
70
+ You can also pre-configure the values for the above options in a tasks.config.json file as shown below.
71
+
72
+ ```json
73
+ {
74
+ "component": {
75
+ "library": "basic",
76
+ "version": "0.0.1",
77
+ "type": "field",
78
+ "subtype": "text",
79
+ "description": "basic field for capturing textual data",
80
+ "icon": "basic-field-text.svg"
81
+ }
77
82
  }
78
- }
79
- ```
83
+ ```
80
84
  >**Note**:
81
85
  Alternatively, you can enter the following command to skip entering the details of the component now and can manually enter the details in the config.json file after the component is created:
82
86
  `npm run create <enter_component_name>`
@@ -85,7 +89,7 @@ A _src/components_ folder is created and the necessary files required to build t
85
89
 
86
90
  ```sh
87
91
  ├── src
88
-    ├── components
92
+ ├── components
89
93
  ├── <component_name>
90
94
  ├── index.js
91
95
  ├── demo.stories.js
@@ -99,13 +103,19 @@ The *config.json* file contains the mapping of properties for configuring the au
99
103
 
100
104
 
101
105
  2. Enter the following command to start the storybook to view the demo.
102
- `npm start`
106
+ `npm start`
103
107
 
104
108
  3. Modify the source files to build your own component. You can also install and import third-party libraries if required for your component.
105
109
 
106
110
  The custom component is now created. We use the information provided to create uniquely namespaced components in this convention - `<organization>_<library>_<component name>`.
107
111
 
112
+ 4. local build, you can build the component locally to check for config validation and component validation. Enter
113
+ `npm buildComponent`
114
+
115
+ buildComponent will do the same first 2 steps as publish, but will not publish to the server. This allows you to compile your component locally and fix errors before publish.
116
+
108
117
  ## Authenticate the user
118
+
109
119
  Before we publish the custom component to the Pega Infinity Server, authenticate the user to access the resources in the Pega Infinity Server.
110
120
 
111
121
  >**Note**:
@@ -113,53 +123,57 @@ It is required that you configure a value for clientId, clientSecret, and access
113
123
  1. Login to Pega Infinity Server, navigate to Records / Security / OAuth 2.0 Client Registration landing page and open the *DX-CustomComponents* record.
114
124
  2. Click **Regenerate Client Secret**, download the Client Credentials (as the Client ID, Client Secret, and Access token endpoint will be needed), and save the record.
115
125
  3. Update the the task.config.json file with these downloaded values:
116
- ```json
117
- "server-config": {
118
- "server": "https://127.0.0.1:8080/prweb",
119
- "user": "customcomponentoperator",
120
- "password": "pwd",
121
- "clientId": "<mention client ID here>",
122
- "clientSecret": "<mention client secret here>",
123
- "accessTokenUri": "https://127.0.0.1:8080/prweb/PRRestService/oauth2/v1/token"
124
- },
125
- ```
126
+ ```json
127
+ "server-config": {
128
+ "server": "https://127.0.0.1:8080/prweb",
129
+ "user": "customcomponentoperator",
130
+ "password": "pwd",
131
+ "clientId": "<mention client ID here>",
132
+ "clientSecret": "<mention client secret here>",
133
+ "accessTokenUri": "https://127.0.0.1:8080/prweb/PRRestService/oauth2/v1/token"
134
+ },
135
+ ```
126
136
  4. Enter the following command to initiate authentication.
127
- `npm run authenticate`
137
+ `npm run authenticate`
128
138
 
129
139
  The user is now authenticated and can proceed to either publish or list the components.
130
140
 
131
141
  ## Publish custom components
132
142
  Enter the following command to publish custom components to Pega Infinity Server:
133
143
  `npm run publish`
144
+ `npm run publishAll`
134
145
  Publish the finalized custom components changes to Pega Infinity Server so that it can be discoverable in authoring (design palette).
135
146
  You will then be asked to enter the following details:
136
147
 
137
148
  - The component to be published to Pega Infinity Server. It will be updated if the component exists.
149
+ - If publishAll, then you won't get a list
138
150
  - The name of the ruleset where the component must be published.
139
151
  - The version of the ruleset where the component must be published.
140
152
  - Specify if the development build should be generated for debugging.
141
- You can also pre-configure the values for the above options in a tasks.config.json file as shown below. The server, user name, and password must be pre-configured.
142
-
143
- ```json
144
- {
145
- "components-server-config": {
146
- "server": "http://127.0.0.1:8080/prweb",
147
- "user": "customcomponentoperator",
148
- "password": "pwd"
149
- "rulesetName": "TestPega-C11nGall",
150
- "rulesetVersion": "01-01-03",
151
- "sourceOfComponents": "Server",
152
- "devBuild": false,
153
- }
154
- }
155
- ```
156
- When the component is successfully published, you can use the newly published component in App Studio's view authoring.
157
153
 
154
+ - If publishAll, will sequentiall go through the list of local components and publish them
155
+ You can also pre-configure the values for the above options in a tasks.config.json file as shown below. The server, user name, and password must be pre-configured.
156
+
157
+ ```json
158
+ {
159
+ "components-server-config": {
160
+ "server": "http://127.0.0.1:8080/prweb",
161
+ "user": "customcomponentoperator",
162
+ "password": "pwd"
163
+ "rulesetName": "TestPega-C11nGall",
164
+ "rulesetVersion": "01-01-03",
165
+ "sourceOfComponents": "Server",
166
+ "devBuild": false,
167
+ }
168
+ }
169
+ ```
170
+ When the component is successfully published, you can use the newly published component in App Studio's view authoring.
158
171
 
159
- >**Note**:
160
- The Rule-UI-Component instance (with component name) is created on the Pega Infinity Server after publishing the component.
172
+ > **Note**:
173
+ > The Rule-UI-Component instance (with component name) is created on the Pega Infinity Server after publishing the component.
161
174
 
162
175
  ## List custom components
176
+
163
177
  View the available components in the local machine or the server.
164
178
 
165
179
  Enter the following command to list custom components:
@@ -168,37 +182,42 @@ Enter the following command to list custom components:
168
182
  You will then be asked to enter the following details:
169
183
 
170
184
  - List components from Server or Local?
171
- Example - `Server`
185
+ Example - `Server`
172
186
 
173
187
  The custom components will now be listed in the terminal.
174
188
 
175
189
  ## Delete custom components
190
+
176
191
  Delete the available or published components in the local machine or the server.
177
192
 
178
193
  Enter the following command to delete custom components:
179
194
  `npm run delete`
195
+ `npm run deleteAll`
180
196
 
181
197
  You will then be asked to enter the following details:
182
198
 
183
199
  - Delete components from Server or Local?
184
- Example - `Local`
200
+ Example - `Local`
185
201
 
186
202
  - Select component to delete
187
- The list of available components in the following path will be displayed: _/Users/your_user_name/project_name/src/components
188
- Select the component to be deleted from this list.
203
+ The list of available components in the following path will be displayed: \_/Users/your_user_name/project_name/src/components
204
+ Select the component to be deleted from this list.
205
+ - For deleteAll you will see the full list and asked if you want to delete them all.
189
206
 
190
207
  - Are you sure?
191
- Example - `yes`
208
+ Example - `yes`
192
209
 
193
- >**Note**:
194
- If you choose to delete components from the server, the successfully published components along with their ruleset name and ruleset version from the Pega Infinity Server will be displayed. Select the component to be deleted from this list.
210
+ > **Note**:
211
+ > If you choose to delete components from the server, the successfully published components along with their ruleset name and ruleset version from the Pega Infinity Server will be displayed. Select the component to be deleted from this list.
195
212
 
196
213
  ## View existing custom components in storybook
214
+
197
215
  View custom components in a storybook by performing the following procedure:
216
+
198
217
  1. Enter the following command to open the project.
199
- `cd <enter your project's name>`
218
+ `cd <enter your project's name>`
200
219
 
201
220
  2. Enter the following command to start the storybook in development mode.
202
- `npm start`
221
+ `npm start`
203
222
 
204
223
  The storybook is launched in a browser where you can view the components working in isolation.
@@ -0,0 +1,32 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ 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
31
+ TLbK+ysRRoMakF3lLhaZ
32
+ -----END CERTIFICATE-----
@@ -0,0 +1,51 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ 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
51
+ -----END RSA PRIVATE KEY-----
@@ -5,17 +5,24 @@
5
5
  "organization": "{{organization}}",
6
6
  "main": "src/index.js",
7
7
  "scripts": {
8
- "start": "start-storybook --port 6040 --quiet",
8
+ "startStorybook": "start-storybook --port 6040 --quiet",
9
9
  "build": "tsc -b tsconfig.build.json",
10
10
  "lint": "run-p -cl lint:*",
11
11
  "fix": "run-p -cl fix:*",
12
12
  "authenticate": "custom-dx-components authenticate",
13
+ "buildComponent": "custom-dx-components buildComponent",
14
+ "buildAllComponents": "custom-dx-components buildAllComponents",
13
15
  "create": "custom-dx-components create",
16
+ "createAll": "custom-dx-components createAll",
17
+ "generateWithAI": "custom-dx-components generateWithAI",
14
18
  "publish": "custom-dx-components publish",
19
+ "publishAll": "custom-dx-components publishAll",
20
+ "rename": "custom-dx-components rename",
15
21
  "list": "custom-dx-components list",
16
22
  "validate-schema": "custom-dx-components validateSchema",
17
23
  "update": "custom-dx-components update",
18
24
  "delete": "custom-dx-components delete",
25
+ "deleteAll": "custom-dx-components deleteAll",
19
26
  "lint:types": "tsc --noEmit",
20
27
  "lint:es": "eslint .",
21
28
  "lint:styles": "stylelint \"./**/*.@(js|jsx|ts|tsx)\"",
@@ -35,35 +42,51 @@
35
42
  "license": "Enter License",
36
43
  "sideEffects": false,
37
44
  "dependencies": {
38
- "@pega/cosmos-react-core": "^3.0.0-dev.3.0",
39
- "polished": "^4.1.4",
45
+ "@pega/cosmos-react-core": "^3.0.1",
46
+ "@pega/cosmos-react-work": "3.0.1",
47
+ "dayjs": "^1.11.5",
48
+ "polished": "^4.2.2",
49
+ "prop-types": "^15.8.1",
40
50
  "react": "^17.0.2",
41
51
  "react-autosuggest": "^10.1.0",
42
52
  "react-dom": "^17.0.2",
43
- "react-player": "^2.9.0",
44
- "styled-components": "^5.3.3",
45
- "prop-types": "^15.8.1",
46
- "@storybook/addon-knobs": "^6.3.1"
53
+ "react-is": "^18.2.0",
54
+ "react-player": "^2.10.1",
55
+ "react-redux": "^7.2.6",
56
+ "styled-components": "^5.3.5"
47
57
  },
48
58
  "devDependencies": {
49
- "@pega/configs": "^0.3.2",
50
- "@pega/custom-dx-components": "^0.0.1",
51
- "@storybook/addon-actions": "^6.4.19",
52
- "@storybook/addon-essentials": "^6.4.19",
53
- "@storybook/addon-links": "^6.4.19",
54
- "@storybook/addon-storysource": "^6.4.19",
55
- "@storybook/builder-webpack5": "^6.4.19",
56
- "@storybook/manager-webpack5": "^6.4.19",
57
- "@storybook/react": "^6.4.19",
59
+ "@pega/configs": "^0.5.3",
60
+ "@pega/custom-dx-components": "^0.23.1",
61
+ "@pega/eslint-config": "^0.3.2",
62
+ "@storybook/addon-actions": "^6.5.12",
63
+ "@storybook/addon-essentials": "^6.5.12",
64
+ "@storybook/addon-links": "^6.5.12",
65
+ "@storybook/addon-knobs": "^6.3.1",
66
+ "@storybook/addon-storysource": "^6.5.12",
67
+ "@storybook/builder-webpack5": "^6.5.12",
68
+ "@storybook/manager-webpack5": "^6.5.12",
69
+ "@storybook/react": "^6.5.12",
58
70
  "@types/emoji-mart": "^3.0.9",
59
71
  "@types/react": "^17.0.39",
60
72
  "@types/react-color": "^3.0.6",
61
73
  "@types/react-dom": "^17.0.11",
62
- "@types/styled-components": "^5.1.22",
63
- "eslint": "^8.9.0",
74
+ "@types/styled-components": "^5.1.26",
75
+ "@typescript-eslint/eslint-plugin": "^5.6.0",
76
+ "eslint": "^8.4.1",
77
+ "eslint-plugin-import": "^2.25.3",
78
+ "eslint-plugin-jest": "^25.3.0",
79
+ "eslint-plugin-jsx-a11y": "^6.5.1",
80
+ "eslint-plugin-mdx": "^2.0.5",
81
+ "eslint-plugin-prettier": "^4.0.0",
82
+ "eslint-plugin-react": "^7.27.1",
83
+ "eslint-plugin-react-hooks": "^4.3.0",
84
+ "eslint-plugin-sonarjs": "^0.11.0",
85
+ "jest": "^29.3.1",
86
+ "jest-environment-jsdom": "^29.3.1",
64
87
  "npm-run-all": "^4.1.5",
65
- "prettier": "2.5.1",
66
- "stylelint": "^14.5.1",
67
- "typescript": "~4.5.5"
88
+ "prettier": "2.7.1",
89
+ "stylelint": "^14.11.0",
90
+ "typescript": "~4.8.3"
68
91
  }
69
92
  }
@@ -1,19 +1,33 @@
1
1
  {
2
2
  "components-directory-path": "src/components",
3
3
  "server-config": {
4
- "server": "https://localhost:38764/prweb",
5
- "user": "user",
6
- "password": "password",
7
4
  "rulesetName": "rulesetName",
8
5
  "rulesetVersion": "rulesetVersion",
9
6
  "sourceOfComponents": "Server",
10
7
  "devBuild": false,
11
- "clientId": "",
12
- "clientSecret": ""
8
+ "serverType": "infinity",
9
+ "server": "https://localhost:38764/prweb",
10
+ "servicesServer": "https://staging.constellation.pega.io/c11n-appstatic/8.9.0-dev-13180",
11
+ "clientId": "10095186356008396159",
12
+ "clientSecret_comment": "Needed only when using 'passwordCreds' or 'clientCreds' grantType",
13
+ "clientSecret": "",
14
+ "grantType": "authCode",
15
+ "redirectUri": "https://localhost:4010/",
16
+ "cert_and_key_comment": "Path to SSL certificate file and SSL key file to use when starting local HTTPS server",
17
+ "cert_and_key_comment2": "Needed only when using 'authCode' grantType and redirectUri begins with 'https://localhost'",
18
+ "cert": "./keys/dxcb.crt",
19
+ "key": "./keys/dxcb.key",
20
+ "user_and_password_comment": "useful primarily when grantType is set to 'passwordCreds'",
21
+ "user": "",
22
+ "password": "",
23
+ "questions_comment": "useful for designating certain questions should always or never be asked during npm run authenticate",
24
+ "questions_askAlways": "",
25
+ "questions_askNever": ""
13
26
  },
14
27
  "component": {
15
28
  "library": "",
16
29
  "type": "",
30
+ "version": "",
17
31
  "subtype": "",
18
32
  "description": "",
19
33
  "icon": ""
@@ -0,0 +1,8 @@
1
+ # Use default npmjs registry for the SDKs
2
+ registry = https://registry.npmjs.org/
3
+ # For now, turn off npm auto-install of peer dependencies to get rid of warnings
4
+ legacy-peer-deps=true
5
+ # Turn off messages such as > react-sdk@0.1.0 list and > dx-component-builder-sdk list
6
+ loglevel=silent
7
+ #
8
+ #
@@ -0,0 +1,46 @@
1
+ import { ESLint } from 'eslint';
2
+ import chalk from 'chalk';
3
+
4
+ export const lintComponent = async (dirToLint) => {
5
+ // console.log("in dx-component-builder-sdk: lintComponent - dirToLint: " + dirToLint);
6
+ console.log(chalk.green(` linting ${dirToLint}`));
7
+
8
+ // 1. Create an instance.
9
+ const eslint = new ESLint();
10
+
11
+ // 2. Lint files.
12
+ const results = await eslint.lintFiles([dirToLint]);
13
+
14
+ // 3. Format the results.
15
+ const formatter = await eslint.loadFormatter("stylish");
16
+ const resultText = formatter.format(results);
17
+
18
+ // 4. Output it.
19
+ // console.log(`lint resultText: ${resultText}`);
20
+ console.log(resultText);
21
+
22
+ // Indicate linting is complete
23
+ console.log(chalk.green(` linting complete...`));
24
+ };
25
+
26
+ // inpsired by https://eslint.org/docs/latest/developer-guide/nodejs-api
27
+
28
+ // (async function main() {
29
+ // // 1. Create an instance.
30
+ // const eslint = new ESLint();
31
+
32
+ // // 2. Lint files.
33
+ // const results = await eslint.lintFiles(["lib/**/*.js"]);
34
+
35
+ // // 3. Format the results.
36
+ // const formatter = await eslint.loadFormatter("stylish");
37
+ // const resultText = formatter.format(results);
38
+
39
+ // // 4. Output it.
40
+ // console.log(resultText);
41
+ // })().catch((error) => {
42
+ // process.exitCode = 1;
43
+ // console.error(error);
44
+ // });
45
+
46
+ export default lintComponent;
@@ -4,7 +4,7 @@ import https from 'https';
4
4
  import chalk from 'chalk';
5
5
  import fetch from 'node-fetch';
6
6
 
7
- import { LIST_COMPONENT_SERVICE_REST_ENDPOINT, TOKEN_PATH } from '../../constants.js';
7
+ import { LIST_COMPONENT_SERVICE_REST_ENDPOINT, LP_LIST_COMPONENT_SERVICE_REST_ENDPOINT, TOKEN_PATH } from '../../constants.js';
8
8
  import { constructCompleteUrl, getComponents, getPegaServerConfig } from '../../util.js';
9
9
 
10
10
  export const SOURCE_OF_COMPONENT_TYPES = {
@@ -42,9 +42,10 @@ export const listLocalComponents = async sourceOfComponents => {
42
42
 
43
43
  export const getComponentsFromServer = async data => {
44
44
  const defaultPegaServerConfig = await getPegaServerConfig();
45
+ const isLaunchpad = defaultPegaServerConfig.serverType === 'launchpad';
45
46
  const url = constructCompleteUrl(
46
47
  defaultPegaServerConfig.server,
47
- LIST_COMPONENT_SERVICE_REST_ENDPOINT
48
+ isLaunchpad ? LP_LIST_COMPONENT_SERVICE_REST_ENDPOINT : LIST_COMPONENT_SERVICE_REST_ENDPOINT
48
49
  );
49
50
  return new Promise((resolve, reject) => {
50
51
  try {
@@ -63,12 +64,19 @@ export const getComponentsFromServer = async data => {
63
64
  refresh_token: refreshToken
64
65
  } = JSON.parse(data);
65
66
  let status = 500;
67
+
68
+ const headers = {
69
+ Authorization: `${tokenType} ${accessToken}`
70
+ }
71
+
72
+ if(isLaunchpad) {
73
+ headers.cookie = `Pega-AAT=${accessToken}`;
74
+ }
75
+
66
76
  fetch(url, {
67
77
  method: 'GET',
68
78
  agent: new https.Agent({ rejectUnauthorized: false }),
69
- headers: {
70
- Authorization: `${tokenType} ${accessToken}`
71
- }
79
+ headers
72
80
  })
73
81
  .then(response => {
74
82
  status = response.status;
@@ -100,8 +108,13 @@ export const getComponentsFromServer = async data => {
100
108
 
101
109
  export const displayServerComponents = async data => {
102
110
  const defaultPegaServerConfig = await getPegaServerConfig();
111
+ const isLaunchpad = defaultPegaServerConfig.serverType === 'launchpad';
103
112
  const parsedData = JSON.parse(data);
104
- const componentList = parsedData.pxResults?.map(({ label, pyRuleSet, pyRuleSetVersion }) => ({
113
+ const list = isLaunchpad ? parsedData.components : parsedData.pxResults;
114
+ /**
115
+ * TODO: Need to modify the components list mapping code to support Launchpad components
116
+ */
117
+ const componentList = list?.map(({ label, pyRuleSet, pyRuleSetVersion }) => ({
105
118
  'Rule name': label,
106
119
  'Ruleset name': pyRuleSet,
107
120
  'Ruleset version': pyRuleSetVersion
@@ -10,6 +10,8 @@ import {
10
10
  getListComponentsQuestions
11
11
  } from './helper.js';
12
12
 
13
+ import { showVersion } from '../../util.js';
14
+
13
15
  const getList = async (sourceOfComponents, answers) => {
14
16
  switch (sourceOfComponents) {
15
17
  case SOURCE_OF_COMPONENT_TYPES.LOCAL: {
@@ -32,6 +34,8 @@ const getList = async (sourceOfComponents, answers) => {
32
34
  };
33
35
 
34
36
  export default async options => {
37
+ showVersion();
38
+
35
39
  let sourceOfComponentsOption = SOURCE_OF_COMPONENT_TYPES.LOCAL;
36
40
 
37
41
  if (options.params[3] === SOURCE_OF_COMPONENT_TYPES.LOCAL) {
@@ -75,11 +75,13 @@ export const zipComponent = async componentKey => {
75
75
  const zipContent = zip.toBuffer().toString('base64');
76
76
 
77
77
  const configContent = Buffer.from(fs.readFileSync(`${srcDirectory}/config.json`)).toString();
78
+
78
79
  fs.rmdir('dist', { recursive: true }, err => {
79
80
  if (err) {
80
81
  throw err;
81
82
  }
82
83
  });
84
+
83
85
  return { zipContent, configContent };
84
86
  };
85
87
 
@@ -125,7 +127,7 @@ export const publishComponentToServer = async data => {
125
127
  const respData = JSON.parse(resp);
126
128
  if (status === 401) {
127
129
  throw new Error(
128
- 'Error occured in authentication. Please regenerate using authenticate'
130
+ 'Error occurred in authentication. Please regenerate using authenticate'
129
131
  );
130
132
  // console.log(accessTokenUri, refreshToken);
131
133
  /* TODO - Handle refresh_token */
@@ -135,11 +137,18 @@ export const publishComponentToServer = async data => {
135
137
  throw new Error(`${respData.message}`);
136
138
  }
137
139
  })
138
- .catch(e => Promise.reject(`${chalk.bold.red(e)}`));
140
+ .catch( e => {
141
+ if (e.code == 'ECONNREFUSED') {
142
+ Promise.reject(`${chalk.bold.red('Error occurred in authentication. Please regenerate using authenticate')}`);
143
+ }
144
+ else {
145
+ Promise.reject(`${chalk.bold.red(e)}`);
146
+ }
147
+ })
139
148
  } else {
140
- throw new Error(`Error occured in authentication. Please regenerate using authenticate`);
149
+ throw new Error(`Error occurred in authentication. Please regenerate using authenticate`);
141
150
  }
142
151
  } catch (err) {
143
- throw new Error(`Error occured in authentication. Please regenerate using authenticate`);
152
+ throw new Error(`Error occurred in authentication. Please regenerate using authenticate`);
144
153
  }
145
154
  };