@pega/custom-dx-components 0.0.1 → 0.23.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 (234) 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 +125 -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 +146 -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 +196 -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 +257 -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 +279 -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 +292 -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 +94 -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 +348 -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 +115 -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 +15 -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 +112 -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 +112 -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 +112 -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 +124 -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 +238 -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 +186 -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 +36 -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 +43 -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 +46 -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 +28 -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 +33 -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 +24 -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 +60 -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/{init/template/src/components/Organization_Library_VideoPlayer/styles.js → create/templates/Constellation/Widget/PAGE/styles.js.mustache} +3 -1
  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 +67 -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/{init/template/src/components/Organization_Library_MediaURL/MediaURL.styles.ts → create/templates/Constellation/Widget/PAGE-CASE/styles.js.mustache} +3 -1
  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 +23 -0
  190. package/src/tasks/generate-ai/aiPromptDavinci.txt.mustache +14 -0
  191. package/src/tasks/generate-ai/helper.js +357 -0
  192. package/src/tasks/generate-ai/index.js +34 -0
  193. package/src/tasks/index.js +7 -0
  194. package/src/tasks/init/index.js +9 -3
  195. package/src/tasks/init/template/.eslintignore +8 -0
  196. package/src/tasks/init/template/.eslintrc.json +186 -5
  197. package/src/tasks/init/template/.vscode/extensions.json +1 -1
  198. package/src/tasks/init/template/README.md +80 -61
  199. package/src/tasks/init/template/keys/DX-ComponentDev.zip +0 -0
  200. package/src/tasks/init/template/keys/dxcb.crt +32 -0
  201. package/src/tasks/init/template/keys/dxcb.key +51 -0
  202. package/src/tasks/init/template/package.json.mustache +44 -21
  203. package/src/tasks/init/template/src/components/_components.md +1 -0
  204. package/src/tasks/init/template/tasks.config.json +19 -5
  205. package/src/tasks/init/template/templateNPMRC.txt +8 -0
  206. package/src/tasks/linter/index.js +46 -0
  207. package/src/tasks/list/helper.js +19 -6
  208. package/src/tasks/list/index.js +4 -0
  209. package/src/tasks/publish/helper.js +13 -4
  210. package/src/tasks/publish/index.js +14 -1
  211. package/src/tasks/publish-all/helper.js +154 -0
  212. package/src/tasks/publish-all/index.js +95 -0
  213. package/src/tasks/rename/index.js +314 -0
  214. package/src/tasks/validator/index.js +291 -18
  215. package/src/util.js +372 -6
  216. package/src/tasks/create/template/demo.stories.jsx.mustache +0 -44
  217. package/src/tasks/init/template/src/components/MBTAList/MBTAList.stories.tsx +0 -10
  218. package/src/tasks/init/template/src/components/MBTAList/MBTAList.tsx +0 -122
  219. package/src/tasks/init/template/src/components/MBTAList/icons/accessible.icon.tsx +0 -14
  220. package/src/tasks/init/template/src/components/MBTAList/icons/bus.icon.tsx +0 -13
  221. package/src/tasks/init/template/src/components/MBTAList/icons/mbta.icon.tsx +0 -10
  222. package/src/tasks/init/template/src/components/MBTAList/icons/subway.icon.tsx +0 -14
  223. package/src/tasks/init/template/src/components/MBTAList/index.ts +0 -2
  224. package/src/tasks/init/template/src/components/Organization_Library_MediaURL/MediaURL.stories.tsx +0 -19
  225. package/src/tasks/init/template/src/components/Organization_Library_MediaURL/MediaURL.types.ts +0 -10
  226. package/src/tasks/init/template/src/components/Organization_Library_MediaURL/MediaURLDisplay.tsx +0 -25
  227. package/src/tasks/init/template/src/components/Organization_Library_MediaURL/MediaURLInput.tsx +0 -24
  228. package/src/tasks/init/template/src/components/Organization_Library_MediaURL/config.json +0 -13
  229. package/src/tasks/init/template/src/components/Organization_Library_MediaURL/index.ts +0 -2
  230. package/src/tasks/init/template/src/components/Organization_Library_VideoPlayer/config.json +0 -44
  231. package/src/tasks/init/template/src/components/Organization_Library_VideoPlayer/demo.stories.jsx +0 -40
  232. package/src/tasks/init/template/src/components/Organization_Library_VideoPlayer/index.jsx +0 -42
  233. /package/src/tasks/{publish/bundle → bundle}/builder/modules.js +0 -0
  234. /package/src/tasks/{publish/bundle → bundle}/builder/paths.js +0 -0
@@ -5,8 +5,13 @@ import chalk from 'chalk';
5
5
  import inquirer from 'inquirer';
6
6
  import Ajv from 'ajv';
7
7
 
8
- import { COMPONENT_SCHEMA } from '../../constants.js';
9
- import { getComponentDirectoryPath, getComponents, getOOTBComponents } from '../../util.js';
8
+ import {
9
+ COMPONENT_SCHEMA } from '../../constants.js';
10
+
11
+ import {
12
+ getComponentDirectoryPath,
13
+ getComponents,
14
+ getOOTBComponents } from '../../util.js';
10
15
 
11
16
  const ajv = new Ajv({ allErrors: true });
12
17
 
@@ -15,12 +20,20 @@ const combinationTypes = ['PAGE', 'CASE'];
15
20
  const allowedSubtypes = [
16
21
  ...new Set([
17
22
  ...COMPONENT_SCHEMA.subtype.field.map(({ value }) => value),
18
- ...COMPONENT_SCHEMA.subtype.template,
19
- ...COMPONENT_SCHEMA.subtype.widget,
20
- combinationTypes
23
+ ...COMPONENT_SCHEMA.subtype.template.map(({ value }) => value),
24
+ ...COMPONENT_SCHEMA.subtype.widget.map(({ value }) => value)
21
25
  ])
22
26
  ];
23
27
 
28
+ // additional subtypes are manually added below
29
+ const allowedOverrideSubtypes = [
30
+ ...new Set([
31
+ ...COMPONENT_SCHEMA.subtype.field.map(({ value }) => value),
32
+ ...COMPONENT_SCHEMA.subtype.template.map(({ value }) => value),
33
+ ...COMPONENT_SCHEMA.subtype.widget.map(({ value }) => value)
34
+ ]), "ACTION", "DATA_CAPTURE", "SUMMARY", "CASEVIEW", "DATAVIEW", "LIST"
35
+ ];
36
+
24
37
  const schema = {
25
38
  type: 'object',
26
39
  properties: {
@@ -32,7 +45,7 @@ const schema = {
32
45
  organization: { type: 'string' },
33
46
  version: { type: 'string' },
34
47
  library: { type: 'string' },
35
- allowedApplications : { type: 'array' },
48
+ allowedApplications: { type: 'array' },
36
49
  type: { type: 'string', enum: COMPONENT_SCHEMA.type.map(({ value }) => value) },
37
50
  subtype: {
38
51
  anyOf: [{ type: 'string' }, { type: 'array' }],
@@ -44,24 +57,263 @@ const schema = {
44
57
  type: 'array',
45
58
  uniqueItems: true,
46
59
  items: {
47
- type: 'object',
48
- properties: {
49
- name: { type: 'string' },
50
- label: { type: 'string' },
51
- format: { type: 'string' }
52
- },
53
- required: ['name', 'label', 'format']
60
+ anyOf: [
61
+ {
62
+ type: 'object',
63
+ properties: {
64
+ name: { type: 'string' },
65
+ label: { type: 'string' },
66
+ format: { type: 'string' }
67
+ },
68
+ required: ['name', 'label', 'format']
69
+ },
70
+ {
71
+ type: 'object',
72
+ properties: {
73
+ format: { type: 'string' },
74
+ source: {
75
+ type: 'object',
76
+ properties: {
77
+ name: { type: 'string' },
78
+ label: { type: 'string' },
79
+ format: { type: 'string' }
80
+ },
81
+ required: ['name', 'label', 'format']
82
+ },
83
+ cascadeElements: {
84
+ type: 'array',
85
+ uniqueItems: true,
86
+ items: {
87
+ anyOf: [
88
+ {
89
+ type: 'object',
90
+ properties: {
91
+ key: { type: 'string'},
92
+ name: { type: 'string' },
93
+ label: { type: 'string' },
94
+ format: { type: 'string' }
95
+ },
96
+ required: ['key','name', 'label', 'format']
97
+ }
98
+ ]
99
+ }
100
+ },
101
+ },
102
+ required: ['format']
103
+ },
104
+ {
105
+ type: 'object',
106
+ properties: {
107
+ label: { type: 'string' },
108
+ format: { type: 'string' },
109
+ properties: {
110
+ type: 'array',
111
+ uniqueItems: true,
112
+ items: {
113
+ anyOf: [
114
+ {
115
+ type: 'object',
116
+ properties: {
117
+ name: { type: 'string' },
118
+ label: { type: 'string' },
119
+ format: { type: 'string' }
120
+ },
121
+ required: ['name', 'label', 'format']
122
+ },
123
+ {
124
+ type: 'object',
125
+ properties: {
126
+ variant: { type: 'string' },
127
+ label: { type: 'string' },
128
+ format: { type: 'string' }
129
+ },
130
+ required: ['variant', 'label', 'format']
131
+ },
132
+ {
133
+ type: 'object',
134
+ properties: {
135
+ format: { type: 'string' },
136
+ elements: {
137
+ type: 'array',
138
+ uniqueItems: true,
139
+ items: {
140
+ anyOf: [
141
+ {
142
+ type: 'object',
143
+ properties: {
144
+ key: { type: 'string' },
145
+ name: { type: 'string' },
146
+ label: { type: 'string' },
147
+ format: { type: 'string' },
148
+ variant: { type: 'string' }
149
+ },
150
+ required: ['key', 'format', 'label']
151
+ }
152
+ ]
153
+ }
154
+ }
155
+ },
156
+ required: ['format', 'elements']
157
+ },
158
+ ]
159
+ }
160
+ }
161
+
162
+ },
163
+ required: ['label', 'format'],
164
+ }
165
+ ]
54
166
  }
55
167
  },
56
168
  defaultConfig: { type: 'object' }
57
169
  },
58
170
  required: ['componentKey', 'name', 'description', 'type', 'subtype', 'properties'],
59
- additionalProperties: false
171
+ additionalProperties: true
172
+ };
173
+
174
+ const overrideSchema = {
175
+ type: 'object',
176
+ properties: {
177
+ baseComponentName: { type: 'string' },
178
+ componentKey: { type: 'string', pattern: '^[A-Za-z0-9]+$' },
179
+ name: { type: 'string', pattern: '^[A-Za-z0-9]+$' },
180
+ label: { type: 'string' },
181
+ description: { type: 'string' },
182
+ organization: { type: 'string' },
183
+ version: { type: 'string' },
184
+ library: { type: 'string' },
185
+ allowedApplications: { type: 'array' },
186
+ type: { type: 'string', enum: COMPONENT_SCHEMA.type.map(({ value }) => value) },
187
+ subtype: {
188
+ anyOf: [{ type: 'string' }, { type: 'array' }],
189
+
190
+ enum: allowedOverrideSubtypes
191
+ },
192
+ icon: { type: 'string' },
193
+ properties: {
194
+ type: 'array',
195
+ uniqueItems: true,
196
+ items: {
197
+ anyOf: [
198
+ {
199
+ type: 'object',
200
+ properties: {
201
+ name: { type: 'string' },
202
+ label: { type: 'string' },
203
+ format: { type: 'string' }
204
+ },
205
+ required: ['name', 'label', 'format']
206
+ },
207
+ {
208
+ type: 'object',
209
+ properties: {
210
+ format: { type: 'string' },
211
+ source: {
212
+ type: 'object',
213
+ properties: {
214
+ name: { type: 'string' },
215
+ label: { type: 'string' },
216
+ format: { type: 'string' }
217
+ },
218
+ required: ['name', 'label', 'format']
219
+ },
220
+ cascadeElements: {
221
+ type: 'array',
222
+ uniqueItems: true,
223
+ items: {
224
+ anyOf: [
225
+ {
226
+ type: 'object',
227
+ properties: {
228
+ key: { type: 'string'},
229
+ name: { type: 'string' },
230
+ label: { type: 'string' },
231
+ format: { type: 'string' }
232
+ },
233
+ required: ['key','name', 'label', 'format']
234
+ }
235
+ ]
236
+ }
237
+ },
238
+ },
239
+ required: ['format']
240
+ },
241
+ {
242
+ type: 'object',
243
+ properties: {
244
+ label: { type: 'string' },
245
+ format: { type: 'string' },
246
+ properties: {
247
+ type: 'array',
248
+ uniqueItems: true,
249
+ items: {
250
+ anyOf: [
251
+ {
252
+ type: 'object',
253
+ properties: {
254
+ name: { type: 'string' },
255
+ label: { type: 'string' },
256
+ format: { type: 'string' }
257
+ },
258
+ required: ['name', 'label', 'format']
259
+ },
260
+ {
261
+ type: 'object',
262
+ properties: {
263
+ variant: { type: 'string' },
264
+ label: { type: 'string' },
265
+ format: { type: 'string' }
266
+ },
267
+ required: ['variant', 'label', 'format']
268
+ },
269
+ {
270
+ type: 'object',
271
+ properties: {
272
+ format: { type: 'string' },
273
+ elements: {
274
+ type: 'array',
275
+ uniqueItems: true,
276
+ items: {
277
+ anyOf: [
278
+ {
279
+ type: 'object',
280
+ properties: {
281
+ key: { type: 'string' },
282
+ name: { type: 'string' },
283
+ label: { type: 'string' },
284
+ format: { type: 'string' },
285
+ variant: { type: 'string' }
286
+ },
287
+ required: ['key', 'format', 'label']
288
+ }
289
+ ]
290
+ }
291
+ }
292
+ },
293
+ required: ['format', 'elements']
294
+ },
295
+ ]
296
+ }
297
+ }
298
+
299
+ },
300
+ required: ['label', 'format'],
301
+ }
302
+ ]
303
+ }
304
+ },
305
+ defaultConfig: { type: 'object' }
306
+ },
307
+ required: ['name', 'type', 'subtype', 'properties', 'componentKey'],
308
+ additionalProperties: true
60
309
  };
61
310
 
62
311
  const validateSchema = ajv.compile(schema);
312
+ const validateOverideSchema = ajv.compile(overrideSchema);
313
+
314
+
63
315
 
64
- export default async option => {
316
+ export default async (option) => {
65
317
  let componentToValidate = null;
66
318
  if (option.params && option.params[3]) {
67
319
  componentToValidate = option.params[3];
@@ -75,26 +327,47 @@ export default async option => {
75
327
  });
76
328
 
77
329
  componentToValidate = answer.component;
330
+ } else if (option.name) {
331
+ componentToValidate = option.value;
78
332
  } else {
79
333
  componentToValidate = option;
80
334
  }
81
335
 
82
336
  const componentDirectory = await getComponentDirectoryPath(componentToValidate);
83
- const configFile = path.join(componentDirectory, 'config.json');
84
- const data = JSON.parse(fs.readFileSync(path.resolve(configFile), 'utf8'));
337
+ let configFileName = "config.json";
338
+
339
+ const configFile = path.join(componentDirectory, configFileName);
340
+ let configData;
341
+ try {
342
+ configData = fs.readFileSync(path.resolve(configFile), 'utf8');
343
+ }
344
+ catch (err) {
345
+
346
+ // for now, if now file just end
347
+ console.log(`${chalk.bold.yellow('Config file not availabe for: ' + componentToValidate)}`);
348
+ return;
349
+
350
+ }
351
+
352
+ //const data = JSON.parse(fs.readFileSync(path.resolve(configFile), 'utf8'));
353
+ const data = JSON.parse(configData);
354
+
85
355
  const valid = validateSchema(data);
86
356
 
87
357
  if (valid) {
358
+
88
359
  if (
89
360
  componentToValidate &&
90
361
  !/^[A-Za-z0-9]+_[A-Za-z0-9]+_[A-Za-z0-9]+$/.test(componentToValidate)
91
362
  ) {
92
363
  const ootbComponents = await getOOTBComponents();
93
364
  if (ootbComponents.includes(componentToValidate)) {
94
- throw new Error(`Invalid: Error occured in validating ${componentToValidate}`);
365
+ throw new Error(`Invalid: Error occurred in validating ${componentToValidate}`);
95
366
  }
96
367
  }
97
368
 
369
+
370
+
98
371
  console.log(`${chalk.bold.green(componentToValidate)} schema is valid`);
99
372
  } else {
100
373
  throw new Error(`Invalid: ${ajv.errorsText(validateSchema.errors)}`);