@pega/custom-dx-components 0.23.2 → 0.23.4
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.
- package/.prettierrc.json +7 -1
- package/babel.config.cjs +13 -0
- package/jest.config.cjs +18 -0
- package/package.json +18 -10
- package/src/auth.js +578 -555
- package/src/cli.js +11 -5
- package/src/constants.js +23 -25
- package/src/currentPath.cjs +1 -0
- package/src/tasks/authenticate/helper.js +82 -18
- package/src/tasks/authenticate/index.js +21 -7
- package/src/tasks/build/helper.js +17 -8
- package/src/tasks/build/index.js +29 -7
- package/src/tasks/build-all/helper.js +2 -1
- package/src/tasks/build-all/index.js +32 -25
- package/src/tasks/bundle/builder/index.js +5 -0
- package/src/tasks/bundle/builder/webpack.config.js +3 -2
- package/src/tasks/create/index.js +8 -5
- package/src/tasks/create/templates/Constellation/Field/Boolean/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/Date/DateFormatter.js.mustache +7 -7
- package/src/tasks/create/templates/Constellation/Field/Date/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/Date/date.js.mustache +8 -8
- package/src/tasks/create/templates/Constellation/Field/DateTime/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/DateTime/date-time.js.mustache +10 -10
- package/src/tasks/create/templates/Constellation/Field/DateTime/date-utils.js.mustache +6 -5
- package/src/tasks/create/templates/Constellation/Field/DateTime/date.js.mustache +6 -3
- package/src/tasks/create/templates/Constellation/Field/Decimal/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/Integer/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/Picklist/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/Text/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/Text-Email/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/Text-Input/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/index.jsx.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/Text-URL/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/time-of-day.js.mustache +6 -5
- package/src/tasks/create/templates/Constellation/Template/DETAILS/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Template/FORM/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Template/FORM-region/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Template/PAGE/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Widget/CASE/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Widget/PAGE/config.json.mustache +0 -1
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/config.json.mustache +0 -1
- package/src/tasks/create-all/index.js +68 -47
- package/src/tasks/delete/helper.js +90 -40
- package/src/tasks/delete/index.js +5 -5
- package/src/tasks/delete-all/helper.js +108 -48
- package/src/tasks/delete-all/index.js +6 -6
- package/src/tasks/index.js +2 -1
- package/src/tasks/init/template/README.md +2 -204
- package/src/tasks/init/template/babel.config.cjs +13 -0
- package/src/tasks/init/template/jest.config.cjs +25 -0
- package/src/tasks/init/template/package.json.mustache +13 -5
- package/src/tasks/init/template/src/components/_components.md +1 -1
- package/src/tasks/init/template/tasks.config.json +11 -8
- package/src/tasks/init/template/test/assets/components/create/Pega_DXIL_MyTestText/config.json +55 -0
- package/src/tasks/init/template/test/assets/components/create/Pega_DXIL_MyTestText/demo.stories.jsx +51 -0
- package/src/tasks/init/template/test/assets/components/create/Pega_DXIL_MyTestText/index.jsx +60 -0
- package/src/tasks/init/template/test/assets/components/create/Pega_DXIL_MyTestText/mock.stories.js +13 -0
- package/src/tasks/init/template/test/assets/components/create/Pega_DXIL_MyTestText/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyBoolean/Boolean.js +38 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyBoolean/boolean-format.js +26 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyBoolean/config.json +145 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyBoolean/demo.stories.jsx +61 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyBoolean/event-utils.js +18 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyBoolean/index.jsx +170 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyBoolean/mock.stories.js +21 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyBoolean/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyCaseWidget/OneColumnPage.svg +36 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyCaseWidget/config.json +23 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyCaseWidget/demo.stories.jsx +78 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyCaseWidget/index.jsx +73 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyCaseWidget/mock.stories.js +390 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyCaseWidget/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyCurrency/config.json +291 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyCurrency/demo.stories.jsx +53 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyCurrency/event-utils.js +18 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyCurrency/index.jsx +296 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyCurrency/mock.stories.js +23 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyCurrency/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyCurrency/suggestions-handler.js +10 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDate/DateFormatter.js +61 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDate/FormattedText.jsx +41 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDate/config.json +195 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDate/date.js +439 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDate/demo.stories.jsx +73 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDate/index.jsx +256 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDate/mock.stories.js +23 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDate/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDate/suggestions-handler.js +10 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDateTime/config.json +256 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDateTime/date-time.js +92 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDateTime/date-utils.js +288 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDateTime/date.js +331 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDateTime/demo.stories.jsx +73 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDateTime/index.jsx +254 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDateTime/mock.stories.js +23 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDateTime/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDateTime/suggestions-handler.js +10 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDecimal/config.json +278 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDecimal/demo.stories.jsx +49 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDecimal/event-utils.js +18 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDecimal/index.jsx +270 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDecimal/mock.stories.js +21 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDecimal/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDecimal/suggestions-handler.js +10 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDetails/OneColumnDetails.svg +22 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDetails/StatusWork.jsx +26 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDetails/config.json +35 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDetails/demo.stories.jsx +132 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDetails/index.jsx +83 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDetails/mock.stories.js +189 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDetails/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyDetails/utils.js +152 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyEmail/config.json +111 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyEmail/demo.stories.jsx +48 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyEmail/event-utils.js +18 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyEmail/index.jsx +231 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyEmail/mock.stories.js +22 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyEmail/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyEmail/suggestions-handler.js +10 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyForm/DefaultForm.svg +29 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyForm/config.json +45 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyForm/demo.stories.jsx +166 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyForm/index.jsx +42 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyForm/mock.stories.js +137 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyForm/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyInteger/config.json +344 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyInteger/demo.stories.jsx +49 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyInteger/event-utils.js +18 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyInteger/index.jsx +333 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyInteger/mock.stories.js +21 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyInteger/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyInteger/suggestions-handler.js +10 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPage/GetNextWork.jsx +35 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPage/OneColumnPage.svg +36 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPage/config.json +32 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPage/demo.stories.jsx +102 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPage/index.jsx +70 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPage/localizations.json +4 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPage/mock.stories.js +94 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPage/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPage/utils.js +229 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPageCaseWidget/Avatar.jsx +75 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPageCaseWidget/OneColumnPage.svg +36 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPageCaseWidget/Operator.jsx +237 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPageCaseWidget/config.json +66 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPageCaseWidget/demo.stories.jsx +68 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPageCaseWidget/index.jsx +108 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPageCaseWidget/mock.stories.js +51 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPageCaseWidget/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPageWidget/OneColumnPage.svg +36 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPageWidget/config.json +59 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPageWidget/demo.stories.jsx +30 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPageWidget/index.jsx +48 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPageWidget/mock.stories.js +23 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPageWidget/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyParagraph/config.json +111 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyParagraph/demo.stories.jsx +48 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyParagraph/event-utils.js +18 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyParagraph/index.jsx +231 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyParagraph/mock.stories.js +20 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyParagraph/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyParagraph/suggestions-handler.js +10 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPercentage/config.json +93 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPercentage/demo.stories.jsx +49 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPercentage/event-utils.js +18 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPercentage/index.jsx +275 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPercentage/mock.stories.js +21 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPercentage/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPercentage/suggestions-handler.js +10 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPhone/config.json +123 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPhone/demo.stories.jsx +46 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPhone/event-utils.js +18 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPhone/index.jsx +266 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPhone/mock.stories.js +37 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPhone/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPhone/suggestions-handler.js +10 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPicklist/config.json +114 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPicklist/demo.stories.jsx +78 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPicklist/event-utils.js +18 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPicklist/index.jsx +351 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPicklist/mock.stories.js +67 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPicklist/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyPicklist/suggestions-handler.js +10 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyText/config.json +55 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyText/demo.stories.jsx +51 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyText/index.jsx +60 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyText/mock.stories.js +13 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyText/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTextInput/StatusWork.jsx +26 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTextInput/config.json +111 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTextInput/demo.stories.jsx +48 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTextInput/event-utils.js +18 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTextInput/index.jsx +239 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTextInput/mock.stories.js +21 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTextInput/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTextInput/suggestions-handler.js +10 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTimeOfDay/config.json +185 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTimeOfDay/demo.stories.jsx +57 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTimeOfDay/index.jsx +213 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTimeOfDay/mock.stories.js +20 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTimeOfDay/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTimeOfDay/suggestions-handler.js +10 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTimeOfDay/time-of-day.js +288 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTwoColumnDetails/StatusWork.jsx +26 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTwoColumnDetails/TwoColumnDetails.svg +28 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTwoColumnDetails/config.json +42 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTwoColumnDetails/demo.stories.jsx +136 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTwoColumnDetails/index.jsx +83 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTwoColumnDetails/mock.stories.js +230 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTwoColumnDetails/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTwoColumnDetails/utils.js +155 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTwoColumnForm/TwoColumn.svg +38 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTwoColumnForm/config.json +27 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTwoColumnForm/demo.stories.jsx +175 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTwoColumnForm/index.jsx +45 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTwoColumnForm/mock.stories.js +143 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyTwoColumnForm/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyURL/config.json +237 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyURL/demo.stories.jsx +46 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyURL/event-utils.js +18 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyURL/index.jsx +232 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyURL/mock.stories.js +22 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyURL/styles.js +7 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyURL/suggestions-handler.js +10 -0
- package/src/tasks/init/template/test/assets/components/createAll/Pega_DXIL_MyURL/text-url.jsx +173 -0
- package/src/tasks/init/template/test/functionTest/localCreateAllListDeleteAll.test.js +157 -0
- package/src/tasks/init/template/test/functionTest/localCreateBuildAllDeleteAll.test.js +148 -0
- package/src/tasks/init/template/test/functionTest/localCreateBuildDelete.test.js +84 -0
- package/src/tasks/init/template/test/functionTest/localCreateListDelete.test.js +108 -0
- package/src/tasks/init/template/test/functionTest/localCreatePublishAllDeleteAll.test.js +148 -0
- package/src/tasks/init/template/test/functionTest/localCreatePublishDelete.test.js +84 -0
- package/src/tasks/init/template/test/functionTest/localCreateRenameDelete.test.js +84 -0
- package/src/tasks/init/template/test/functionTest/localPromoteRevertWP.test.js +59 -0
- package/src/tasks/list/helper.js +115 -14
- package/src/tasks/promote-webpack/index.js +126 -0
- package/src/tasks/promote-webpack/webpack.config.js +376 -0
- package/src/tasks/publish/helper.js +116 -61
- package/src/tasks/publish/index.js +34 -8
- package/src/tasks/publish-all/helper.js +115 -63
- package/src/tasks/publish-all/index.js +51 -30
- package/src/tasks/rename/index.js +127 -97
- package/src/tasks/revert-webpack/index.js +71 -0
- package/src/util.js +159 -320
- package/test/unitTest/util.test.js +525 -0
- package/src/tasks/generate-ai/aiPrompt.txt.mustache +0 -23
- package/src/tasks/generate-ai/aiPromptDavinci.txt.mustache +0 -14
- package/src/tasks/generate-ai/helper.js +0 -357
- package/src/tasks/generate-ai/index.js +0 -34
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
const path = require('path');
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
|
|
4
|
+
const webpack = require('webpack');
|
|
5
|
+
const TerserPlugin = require('terser-webpack-plugin');
|
|
6
|
+
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
7
|
+
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
|
|
8
|
+
const getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent.js');
|
|
9
|
+
const ModuleNotFoundPlugin = require('react-dev-utils/ModuleNotFoundPlugin.js');
|
|
10
|
+
const CompressionPlugin = require('compression-webpack-plugin');
|
|
11
|
+
|
|
12
|
+
// Source maps are resource heavy and can cause out of memory issue for large source files.
|
|
13
|
+
|
|
14
|
+
const compressionBRConfObj = {
|
|
15
|
+
filename: '[path][base].br',
|
|
16
|
+
algorithm: 'brotliCompress',
|
|
17
|
+
test: /\.(js|css|html|svg|png|jpg|woff|woff2)$/,
|
|
18
|
+
compressionOptions: { level: 11 }
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/* For gzip use below */
|
|
22
|
+
const compressionGZConfObj = {
|
|
23
|
+
filename: '[path][base].gz',
|
|
24
|
+
algorithm: 'gzip',
|
|
25
|
+
test: /\.(js|css|html|svg|png|jpg|woff|woff2)$/,
|
|
26
|
+
compressionOptions: { level: 9 }
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
let shouldUseSourceMap = process.env.SOURCE_MAP;
|
|
30
|
+
|
|
31
|
+
const imageInlineSizeLimit = Number.parseInt(process.env.IMAGE_INLINE_SIZE_LIMIT || '10000', 10);
|
|
32
|
+
|
|
33
|
+
// style files regex
|
|
34
|
+
const cssRegex = /\.css$/;
|
|
35
|
+
const cssModuleRegex = /\.module\.css$/;
|
|
36
|
+
const sassRegex = /\.(scss|sass)$/;
|
|
37
|
+
const sassModuleRegex = /\.module\.(scss|sass)$/;
|
|
38
|
+
|
|
39
|
+
// Make sure any symlinks in the project folder are resolved:
|
|
40
|
+
// https://github.com/facebook/create-react-app/issues/637
|
|
41
|
+
const appDirectory = fs.realpathSync(process.cwd());
|
|
42
|
+
const resolveApp = relativePath => path.resolve(appDirectory, relativePath);
|
|
43
|
+
|
|
44
|
+
buildPath = 'dist/components';
|
|
45
|
+
|
|
46
|
+
const moduleFileExtensions = [
|
|
47
|
+
'web.mjs',
|
|
48
|
+
'mjs',
|
|
49
|
+
'web.js',
|
|
50
|
+
'js',
|
|
51
|
+
'web.ts',
|
|
52
|
+
'ts',
|
|
53
|
+
'web.tsx',
|
|
54
|
+
'tsx',
|
|
55
|
+
'json',
|
|
56
|
+
'web.jsx',
|
|
57
|
+
'jsx'
|
|
58
|
+
];
|
|
59
|
+
|
|
60
|
+
// Resolve file paths in the same order as webpack
|
|
61
|
+
const resolveModule = (resolveFn, filePath) => {
|
|
62
|
+
const extension = moduleFileExtensions.find(ext =>
|
|
63
|
+
fs.existsSync(resolveFn(`${filePath}.${ext}`))
|
|
64
|
+
);
|
|
65
|
+
|
|
66
|
+
if (extension) {
|
|
67
|
+
return resolveFn(`${filePath}.${extension}`);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return resolveFn(`${filePath}.js`);
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
// config after eject: we're in ./config/
|
|
74
|
+
|
|
75
|
+
const appPath = resolveApp('.');
|
|
76
|
+
const appBuild = resolveApp(buildPath);
|
|
77
|
+
const appSrc = resolveApp('src');
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
// This is the production and development configuration.
|
|
81
|
+
// It is focused on developer experience, fast rebuilds, and a minimal bundle.
|
|
82
|
+
//export default (
|
|
83
|
+
module.exports = (
|
|
84
|
+
webpackEnv,
|
|
85
|
+
// eslint-disable-next-line no-unused-vars
|
|
86
|
+
{ inputFile, outputFile, componentKey, externals, globals, sourceMap, devBuild }
|
|
87
|
+
) => {
|
|
88
|
+
const isEnvDevelopment = webpackEnv === 'development' || devBuild;
|
|
89
|
+
const isEnvProduction = webpackEnv === 'production';
|
|
90
|
+
sourceMap = sourceMap === 'true';
|
|
91
|
+
shouldUseSourceMap = shouldUseSourceMap || sourceMap;
|
|
92
|
+
|
|
93
|
+
// common function to get style loaders
|
|
94
|
+
const getStyleLoaders = (cssOptions, preProcessor) => {
|
|
95
|
+
const loaders = [
|
|
96
|
+
isEnvProduction && {
|
|
97
|
+
loader: MiniCssExtractPlugin.loader
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
loader: require.resolve('css-loader'),
|
|
101
|
+
options: cssOptions
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
// Options for PostCSS as we reference these options twice
|
|
105
|
+
// Adds vendor prefixing based on your specified browser support in
|
|
106
|
+
// package.json
|
|
107
|
+
loader: require.resolve('postcss-loader'),
|
|
108
|
+
options: {
|
|
109
|
+
postcssOptions: {
|
|
110
|
+
plugins: [
|
|
111
|
+
[
|
|
112
|
+
'postcss-preset-env',
|
|
113
|
+
{
|
|
114
|
+
// Options
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
].filter(Boolean);
|
|
123
|
+
if (preProcessor) {
|
|
124
|
+
loaders.push(
|
|
125
|
+
{
|
|
126
|
+
loader: require.resolve('resolve-url-loader'),
|
|
127
|
+
options: {
|
|
128
|
+
sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment,
|
|
129
|
+
root: appSrc
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
loader: require.resolve(preProcessor),
|
|
134
|
+
options: {
|
|
135
|
+
sourceMap: true
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
return loaders;
|
|
141
|
+
};
|
|
142
|
+
return {
|
|
143
|
+
mode: devBuild ? 'development' : 'production',
|
|
144
|
+
// Stop compilation early in production
|
|
145
|
+
bail: isEnvProduction,
|
|
146
|
+
// These are the "entry points" to our application.
|
|
147
|
+
// This means they will be the "root" imports that are included in JS bundle.
|
|
148
|
+
entry: inputFile,
|
|
149
|
+
devtool: devBuild ? 'eval-cheap-module-source-map' : false,
|
|
150
|
+
output: {
|
|
151
|
+
// The build folder.
|
|
152
|
+
//path: paths.appBuild,
|
|
153
|
+
//path: resolveApp('dist/components'),
|
|
154
|
+
path: appBuild,
|
|
155
|
+
// There will be one main bundle, and one file per asynchronous chunk.
|
|
156
|
+
// In development, it does not produce real files.
|
|
157
|
+
filename: isEnvProduction
|
|
158
|
+
? `${componentKey}/${componentKey}.js`
|
|
159
|
+
: isEnvDevelopment && `${componentKey}/${componentKey}.js`,
|
|
160
|
+
chunkFilename: isEnvProduction
|
|
161
|
+
? `${componentKey}/js/[name].[contenthash:8].chunk.js`
|
|
162
|
+
: isEnvDevelopment && `${componentKey}/js/[name].chunk.js`,
|
|
163
|
+
library: {
|
|
164
|
+
name: componentKey,
|
|
165
|
+
type: 'umd',
|
|
166
|
+
export: 'default'
|
|
167
|
+
},
|
|
168
|
+
publicPath: ''
|
|
169
|
+
},
|
|
170
|
+
optimization: {
|
|
171
|
+
minimize: isEnvProduction,
|
|
172
|
+
minimizer: [new TerserPlugin(), new CssMinimizerPlugin()]
|
|
173
|
+
},
|
|
174
|
+
resolve: {
|
|
175
|
+
plugins: [],
|
|
176
|
+
extensions: ['.tsx', '.ts', '.js']
|
|
177
|
+
},
|
|
178
|
+
resolveLoader: {
|
|
179
|
+
plugins: []
|
|
180
|
+
},
|
|
181
|
+
module: {
|
|
182
|
+
strictExportPresence: true,
|
|
183
|
+
rules: [
|
|
184
|
+
{
|
|
185
|
+
// "oneOf" will traverse all following loaders until one will
|
|
186
|
+
// match the requirements. When no loader matches it will fall
|
|
187
|
+
// back to the "file" loader at the end of the loader list.
|
|
188
|
+
oneOf: [
|
|
189
|
+
// TODO: Merge this config once `image/avif` is in the mime-db
|
|
190
|
+
// https://github.com/jshttp/mime-db
|
|
191
|
+
{
|
|
192
|
+
test: [/\.avif$/],
|
|
193
|
+
loader: require.resolve('url-loader'),
|
|
194
|
+
options: {
|
|
195
|
+
limit: imageInlineSizeLimit,
|
|
196
|
+
mimetype: 'image/avif',
|
|
197
|
+
name: `${componentKey}/media/[name].[hash:8].[ext]`
|
|
198
|
+
}
|
|
199
|
+
},
|
|
200
|
+
// "url" loader works like "file" loader except that it embeds assets
|
|
201
|
+
// smaller than specified limit in bytes as data URLs to avoid requests.
|
|
202
|
+
// A missing `test` is equivalent to a match.
|
|
203
|
+
{
|
|
204
|
+
test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/, /\.svg$/],
|
|
205
|
+
loader: require.resolve('url-loader'),
|
|
206
|
+
options: {
|
|
207
|
+
limit: imageInlineSizeLimit,
|
|
208
|
+
name: `${componentKey}/media/[name].[hash:8].[ext]`
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
// Process application JS with TS-Loader.
|
|
212
|
+
// The preset includes JSX, Flow, TypeScript, and some ESnext features.
|
|
213
|
+
{
|
|
214
|
+
test: /\.(js|mjs|jsx)$/,
|
|
215
|
+
include: appSrc,
|
|
216
|
+
loader: 'ts-loader',
|
|
217
|
+
options: {
|
|
218
|
+
configFile: 'tsconfig.build.json'
|
|
219
|
+
},
|
|
220
|
+
exclude: /node_modules/
|
|
221
|
+
},
|
|
222
|
+
|
|
223
|
+
{
|
|
224
|
+
test: /\.(ts|tsx)$/,
|
|
225
|
+
loader: 'ts-loader',
|
|
226
|
+
options: {
|
|
227
|
+
configFile: 'tsconfig.build.json'
|
|
228
|
+
},
|
|
229
|
+
exclude: /node_modules/
|
|
230
|
+
},
|
|
231
|
+
// "postcss" loader applies autoprefixer to our CSS.
|
|
232
|
+
// "css" loader resolves paths in CSS and adds assets as dependencies.
|
|
233
|
+
// "style" loader turns CSS into JS modules that inject <style> tags.
|
|
234
|
+
// In production, we use MiniCSSExtractPlugin to extract that CSS
|
|
235
|
+
// to a file, but in development "style" loader enables hot editing
|
|
236
|
+
// of CSS.
|
|
237
|
+
// By default we support CSS Modules with the extension .module.css
|
|
238
|
+
{
|
|
239
|
+
test: cssRegex,
|
|
240
|
+
exclude: cssModuleRegex,
|
|
241
|
+
use: getStyleLoaders({
|
|
242
|
+
importLoaders: 1,
|
|
243
|
+
sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment
|
|
244
|
+
}),
|
|
245
|
+
// Don't consider CSS imports dead code even if the
|
|
246
|
+
// containing package claims to have no side effects.
|
|
247
|
+
// Remove this when webpack adds a warning or an error for this.
|
|
248
|
+
// See https://github.com/webpack/webpack/issues/6571
|
|
249
|
+
sideEffects: true
|
|
250
|
+
},
|
|
251
|
+
// Adds support for CSS Modules (https://github.com/css-modules/css-modules)
|
|
252
|
+
// using the extension .module.css
|
|
253
|
+
{
|
|
254
|
+
test: cssModuleRegex,
|
|
255
|
+
use: getStyleLoaders({
|
|
256
|
+
importLoaders: 1,
|
|
257
|
+
sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment,
|
|
258
|
+
modules: {
|
|
259
|
+
getLocalIdent: getCSSModuleLocalIdent
|
|
260
|
+
}
|
|
261
|
+
})
|
|
262
|
+
},
|
|
263
|
+
// Opt-in support for SASS (using .scss or .sass extensions).
|
|
264
|
+
// By default we support SASS Modules with the
|
|
265
|
+
// extensions .module.scss or .module.sass
|
|
266
|
+
{
|
|
267
|
+
test: sassRegex,
|
|
268
|
+
exclude: sassModuleRegex,
|
|
269
|
+
use: getStyleLoaders(
|
|
270
|
+
{
|
|
271
|
+
importLoaders: 3,
|
|
272
|
+
sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment
|
|
273
|
+
},
|
|
274
|
+
'sass-loader'
|
|
275
|
+
),
|
|
276
|
+
// Don't consider CSS imports dead code even if the
|
|
277
|
+
// containing package claims to have no side effects.
|
|
278
|
+
// Remove this when webpack adds a warning or an error for this.
|
|
279
|
+
// See https://github.com/webpack/webpack/issues/6571
|
|
280
|
+
sideEffects: true
|
|
281
|
+
},
|
|
282
|
+
// Adds support for CSS Modules, but using SASS
|
|
283
|
+
// using the extension .module.scss or .module.sass
|
|
284
|
+
{
|
|
285
|
+
test: sassModuleRegex,
|
|
286
|
+
use: getStyleLoaders(
|
|
287
|
+
{
|
|
288
|
+
importLoaders: 3,
|
|
289
|
+
sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment,
|
|
290
|
+
modules: {
|
|
291
|
+
getLocalIdent: getCSSModuleLocalIdent
|
|
292
|
+
}
|
|
293
|
+
},
|
|
294
|
+
'sass-loader'
|
|
295
|
+
)
|
|
296
|
+
},
|
|
297
|
+
// "file" loader makes sure those assets get served by WebpackDevServer.
|
|
298
|
+
// When you `import` an asset, you get its (virtual) filename.
|
|
299
|
+
// In production, they would get copied to the `build` folder.
|
|
300
|
+
// This loader doesn't use a "test" so it will catch all modules
|
|
301
|
+
// that fall through the other loaders.
|
|
302
|
+
{
|
|
303
|
+
loader: require.resolve('file-loader'),
|
|
304
|
+
// Exclude `js` files to keep "css" loader working as it injects
|
|
305
|
+
// its runtime that would otherwise be processed through "file" loader.
|
|
306
|
+
// Also exclude `html` and `json` extensions so they get processed
|
|
307
|
+
// by webpack's internal loaders.
|
|
308
|
+
exclude: [/\.(js|mjs|jsx|ts|tsx)$/, /\.html$/, /\.json$/],
|
|
309
|
+
options: {
|
|
310
|
+
name: `${componentKey}/media/[name].[hash:8].[ext]`
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
// ** STOP ** Are you adding a new loader?
|
|
314
|
+
// Make sure to add the new loader(s) before the "file" loader.
|
|
315
|
+
]
|
|
316
|
+
}
|
|
317
|
+
]
|
|
318
|
+
},
|
|
319
|
+
plugins: [
|
|
320
|
+
// This gives some necessary context to module not found errors, such as
|
|
321
|
+
// the requesting resource.
|
|
322
|
+
new ModuleNotFoundPlugin(appPath),
|
|
323
|
+
// Makes some environment variables available to the JS code, for example:
|
|
324
|
+
// if (process.env.NODE_ENV === 'production') { ... }. See `./env.js`.
|
|
325
|
+
// It is absolutely essential that NODE_ENV is set to production
|
|
326
|
+
// during a production build.
|
|
327
|
+
// Otherwise React will be compiled in the very slow development mode.
|
|
328
|
+
isEnvProduction &&
|
|
329
|
+
new webpack.DefinePlugin({
|
|
330
|
+
PRODUCTION: JSON.stringify(true)
|
|
331
|
+
}),
|
|
332
|
+
isEnvProduction &&
|
|
333
|
+
new MiniCssExtractPlugin({
|
|
334
|
+
// Options similar to the same options in webpackOptions.output
|
|
335
|
+
// both options are optional
|
|
336
|
+
filename: `${componentKey}/css/${componentKey}.[contenthash:8].css`,
|
|
337
|
+
chunkFilename: `${componentKey}/css/${componentKey}.[contenthash:8].chunk.css`
|
|
338
|
+
}),
|
|
339
|
+
// Moment.js is an extremely popular library that bundles large locale files
|
|
340
|
+
// by default due to how webpack interprets its code. This is a practical
|
|
341
|
+
// solution that requires the user to opt into importing specific locales.
|
|
342
|
+
// https://github.com/jmblog/how-to-optimize-momentjs-with-webpack
|
|
343
|
+
// You can remove this if you don't use Moment.js:
|
|
344
|
+
new webpack.IgnorePlugin({
|
|
345
|
+
resourceRegExp: /^\.\/locale$/,
|
|
346
|
+
contextRegExp: /moment$/
|
|
347
|
+
}),
|
|
348
|
+
/* Ignore cosmos icons */
|
|
349
|
+
new webpack.IgnorePlugin({
|
|
350
|
+
resourceRegExp: /^\.\/icons$/,
|
|
351
|
+
contextRegExp: /@pega\/cosmos-react-core\/lib\/components\/Icon$/
|
|
352
|
+
}),
|
|
353
|
+
|
|
354
|
+
/* Ignore cosmos icons - windows */
|
|
355
|
+
new webpack.IgnorePlugin({
|
|
356
|
+
resourceRegExp: /^\.\/icons$/,
|
|
357
|
+
contextRegExp: /@pega\\cosmos-react-core\\lib\\components\\Icon$/
|
|
358
|
+
}),
|
|
359
|
+
|
|
360
|
+
new webpack.optimize.LimitChunkCountPlugin({
|
|
361
|
+
maxChunks: 1
|
|
362
|
+
}),
|
|
363
|
+
new webpack.optimize.MinChunkSizePlugin({
|
|
364
|
+
minChunkSize: 100000 // Minimum number of characters
|
|
365
|
+
}),
|
|
366
|
+
!devBuild && new CompressionPlugin(compressionBRConfObj)
|
|
367
|
+
|
|
368
|
+
/* Don't generate gzip file */
|
|
369
|
+
/* isEnvProduction && new CompressionPlugin(compressionGZConfObj) */
|
|
370
|
+
].filter(Boolean),
|
|
371
|
+
performance: {
|
|
372
|
+
hints: 'warning'
|
|
373
|
+
},
|
|
374
|
+
externals
|
|
375
|
+
};
|
|
376
|
+
};
|
|
@@ -13,10 +13,20 @@ import {
|
|
|
13
13
|
getPegaServerConfig,
|
|
14
14
|
validateRulesetVersion
|
|
15
15
|
} from '../../util.js';
|
|
16
|
-
import {
|
|
16
|
+
import {
|
|
17
|
+
PUBLISH_COMPONENT_SERVICE_REST_ENDPOINT,
|
|
18
|
+
LP_PUBLISH_COMPONENT_SERVICE_REST_ENDPOINT,
|
|
19
|
+
TOKEN_PATH
|
|
20
|
+
} from '../../constants.js';
|
|
17
21
|
|
|
18
22
|
export const getPublishComponentQuestions = async () => {
|
|
19
23
|
const components = await getComponents();
|
|
24
|
+
|
|
25
|
+
if (components.length == 0) {
|
|
26
|
+
console.log(chalk.redBright("No components to publish"));
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
|
|
20
30
|
const defaultPegaConfig = await getPegaServerConfig();
|
|
21
31
|
|
|
22
32
|
return [
|
|
@@ -35,6 +45,9 @@ export const getPublishComponentQuestions = async () => {
|
|
|
35
45
|
return true;
|
|
36
46
|
}
|
|
37
47
|
return 'Ruleset name cannot be empty';
|
|
48
|
+
},
|
|
49
|
+
when: () => {
|
|
50
|
+
return defaultPegaConfig.serverType === 'infinity';
|
|
38
51
|
}
|
|
39
52
|
},
|
|
40
53
|
{
|
|
@@ -46,23 +59,28 @@ export const getPublishComponentQuestions = async () => {
|
|
|
46
59
|
return true;
|
|
47
60
|
}
|
|
48
61
|
return 'Please provide compatible version e.g 01-01-01';
|
|
62
|
+
},
|
|
63
|
+
when: () => {
|
|
64
|
+
return defaultPegaConfig.serverType === 'infinity';
|
|
49
65
|
}
|
|
50
66
|
},
|
|
51
67
|
{
|
|
52
68
|
name: 'sourceMap',
|
|
53
69
|
message: 'Generate source map ?',
|
|
54
70
|
default: defaultPegaConfig.sourceMap,
|
|
71
|
+
// eslint-disable-next-line sonarjs/no-redundant-boolean
|
|
55
72
|
when: () => false && !process.env.SOURCE_MAP
|
|
56
73
|
},
|
|
57
74
|
{
|
|
58
75
|
name: 'devBuild',
|
|
76
|
+
type: 'confirm',
|
|
59
77
|
message: 'Generate development build ?',
|
|
60
78
|
default: defaultPegaConfig.devBuild
|
|
61
79
|
}
|
|
62
80
|
];
|
|
63
81
|
};
|
|
64
82
|
|
|
65
|
-
export const zipComponent = async componentKey => {
|
|
83
|
+
export const zipComponent = async (componentKey) => {
|
|
66
84
|
const srcDirectory = await getComponentDirectoryPath(componentKey);
|
|
67
85
|
const buildDirectory = await path.join(path.resolve(), 'dist/components', componentKey);
|
|
68
86
|
const configJson = `${srcDirectory}/config.json`;
|
|
@@ -76,7 +94,7 @@ export const zipComponent = async componentKey => {
|
|
|
76
94
|
|
|
77
95
|
const configContent = Buffer.from(fs.readFileSync(`${srcDirectory}/config.json`)).toString();
|
|
78
96
|
|
|
79
|
-
fs.rmdir('dist', { recursive: true }, err => {
|
|
97
|
+
fs.rmdir('dist', { recursive: true }, (err) => {
|
|
80
98
|
if (err) {
|
|
81
99
|
throw err;
|
|
82
100
|
}
|
|
@@ -85,70 +103,107 @@ export const zipComponent = async componentKey => {
|
|
|
85
103
|
return { zipContent, configContent };
|
|
86
104
|
};
|
|
87
105
|
|
|
88
|
-
export const publishComponentToServer = async data => {
|
|
89
|
-
const { configContent, zipContent,
|
|
90
|
-
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
106
|
+
export const publishComponentToServer = async (data, doFetch) => {
|
|
107
|
+
const { configContent, zipContent, rulesetName, rulesetVersion } = data;
|
|
108
|
+
|
|
109
|
+
const defaultPegaServerConfig = await getPegaServerConfig();
|
|
110
|
+
const { serverType, isolationId } = defaultPegaServerConfig;
|
|
111
|
+
const isLaunchpad = serverType === 'launchpad';
|
|
112
|
+
const launchpadRestEndpoint = LP_PUBLISH_COMPONENT_SERVICE_REST_ENDPOINT.replace(
|
|
113
|
+
'{isolationId}',
|
|
114
|
+
isolationId
|
|
115
|
+
);
|
|
116
|
+
let apiBody;
|
|
117
|
+
|
|
118
|
+
if (isLaunchpad) {
|
|
119
|
+
apiBody = {
|
|
120
|
+
type: 'CustomComponent',
|
|
121
|
+
zipContent,
|
|
122
|
+
componentName: JSON.parse(configContent).componentKey,
|
|
123
|
+
pxUpdateDateTime: '',
|
|
124
|
+
environmentID: defaultPegaServerConfig.isolationId
|
|
125
|
+
};
|
|
126
|
+
} else {
|
|
127
|
+
apiBody = {
|
|
128
|
+
configContent,
|
|
129
|
+
zipContent,
|
|
130
|
+
componentKey: JSON.parse(configContent).componentKey,
|
|
131
|
+
publishFor: 'constellation',
|
|
132
|
+
rulesetName,
|
|
133
|
+
rulesetVersion,
|
|
134
|
+
category: ''
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
|
|
100
138
|
const defaultPegaConfig = await getPegaServerConfig();
|
|
101
139
|
const url = constructCompleteUrl(
|
|
102
140
|
defaultPegaConfig.server,
|
|
103
|
-
PUBLISH_COMPONENT_SERVICE_REST_ENDPOINT
|
|
141
|
+
isLaunchpad ? launchpadRestEndpoint : PUBLISH_COMPONENT_SERVICE_REST_ENDPOINT
|
|
104
142
|
);
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
'Error occurred in authentication. Please regenerate using authenticate'
|
|
131
|
-
);
|
|
132
|
-
// console.log(accessTokenUri, refreshToken);
|
|
133
|
-
/* TODO - Handle refresh_token */
|
|
134
|
-
} else if (status == 200) {
|
|
135
|
-
console.log(chalk.bold.green(`Success : ${respData.message}`));
|
|
136
|
-
} else {
|
|
137
|
-
throw new Error(`${respData.message}`);
|
|
138
|
-
}
|
|
139
|
-
})
|
|
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
|
-
}
|
|
143
|
+
|
|
144
|
+
if (doFetch) {
|
|
145
|
+
try {
|
|
146
|
+
const OauthData = fs.readFileSync(TOKEN_PATH, 'utf8');
|
|
147
|
+
if (OauthData) {
|
|
148
|
+
const {
|
|
149
|
+
access_token: accessToken,
|
|
150
|
+
token_type: tokenType
|
|
151
|
+
// refresh_token: refreshToken
|
|
152
|
+
} = JSON.parse(OauthData);
|
|
153
|
+
let status = 500;
|
|
154
|
+
const headers = {
|
|
155
|
+
Authorization: `${tokenType} ${accessToken}`
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
if (isLaunchpad) {
|
|
159
|
+
headers.cookie = `Pega-AAT=${accessToken}`;
|
|
160
|
+
headers['Content-Type'] = 'application/json';
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
fetch(url, {
|
|
164
|
+
method: 'POST',
|
|
165
|
+
agent: new https.Agent({ rejectUnauthorized: false }),
|
|
166
|
+
headers,
|
|
167
|
+
body: JSON.stringify(apiBody)
|
|
147
168
|
})
|
|
148
|
-
|
|
169
|
+
.then((response) => {
|
|
170
|
+
status = response.status;
|
|
171
|
+
return response.text();
|
|
172
|
+
})
|
|
173
|
+
.then((resp) => {
|
|
174
|
+
const respData = isLaunchpad ? resp : JSON.parse(resp);
|
|
175
|
+
if (status === 401) {
|
|
176
|
+
throw new Error(
|
|
177
|
+
'Error occurred in authentication. Please regenerate using authenticate'
|
|
178
|
+
);
|
|
179
|
+
// console.log(accessTokenUri, refreshToken);
|
|
180
|
+
/* TODO - Handle refresh_token */
|
|
181
|
+
} else if (status === 200 || status === 201) {
|
|
182
|
+
console.log(chalk.bold.green(`Success : ${isLaunchpad ? respData : respData.message}`));
|
|
183
|
+
} else {
|
|
184
|
+
throw new Error(`${respData.message}`);
|
|
185
|
+
}
|
|
186
|
+
})
|
|
187
|
+
.catch((e) => {
|
|
188
|
+
if (e.code === 'ECONNREFUSED') {
|
|
189
|
+
// eslint-disable-next-line prefer-promise-reject-errors
|
|
190
|
+
Promise.reject(`${chalk.bold.red('Error occurred in authentication. Please regenerate using authenticate')}`);
|
|
191
|
+
} else if (status === 403) {
|
|
192
|
+
// eslint-disable-next-line prefer-promise-reject-errors
|
|
193
|
+
Promise.reject(`${chalk.bold.red('Error forbidden: User does not have privileges to Publish.')}`);
|
|
194
|
+
} else {
|
|
195
|
+
// eslint-disable-next-line prefer-promise-reject-errors
|
|
196
|
+
Promise.reject(`${chalk.bold.red(e)}`);
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
} else {
|
|
200
|
+
throw new Error(`Error occurred in authentication. Please regenerate using authenticate`);
|
|
201
|
+
}
|
|
202
|
+
} catch (err) {
|
|
149
203
|
throw new Error(`Error occurred in authentication. Please regenerate using authenticate`);
|
|
150
204
|
}
|
|
151
|
-
|
|
152
|
-
throw new Error(`Error occurred in authentication. Please regenerate using authenticate`);
|
|
205
|
+
|
|
153
206
|
}
|
|
207
|
+
|
|
208
|
+
|
|
154
209
|
};
|
|
@@ -13,14 +13,40 @@ import { getPublishComponentQuestions, publishComponentToServer, zipComponent }
|
|
|
13
13
|
export default async options => {
|
|
14
14
|
showVersion();
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
let componentKey;
|
|
17
|
+
let sourceMap;
|
|
18
|
+
let devBuild;
|
|
19
|
+
let content;
|
|
19
20
|
|
|
20
|
-
let
|
|
21
|
-
...answers
|
|
22
|
-
};
|
|
21
|
+
let doFetch = true;
|
|
23
22
|
|
|
23
|
+
if (options.params.length >= 8) {
|
|
24
|
+
componentKey = options.params[3];
|
|
25
|
+
const rulesetName = options.params[4];
|
|
26
|
+
const rulesetVersion = options.params[5];
|
|
27
|
+
const dBuild = options.params[6];
|
|
28
|
+
devBuild = (dBuild === 'Y' ||
|
|
29
|
+
dBuild === 'y' ||
|
|
30
|
+
dBuild === true ||
|
|
31
|
+
dBuild === 'true') ? true : false;
|
|
32
|
+
doFetch = false;
|
|
33
|
+
|
|
34
|
+
content = { componentKey, rulesetName, rulesetVersion, devBuild}
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
const questions = await getPublishComponentQuestions();
|
|
38
|
+
const answers = await inquirer.prompt(questions);
|
|
39
|
+
({ componentKey, sourceMap, devBuild } = answers);
|
|
40
|
+
|
|
41
|
+
content = {
|
|
42
|
+
...answers
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
const sDevBuild = devBuild ? '(dev build)' : '';
|
|
24
50
|
const tasks = new Listr(
|
|
25
51
|
[
|
|
26
52
|
{
|
|
@@ -38,7 +64,7 @@ export default async options => {
|
|
|
38
64
|
}
|
|
39
65
|
},
|
|
40
66
|
{
|
|
41
|
-
title:
|
|
67
|
+
title: `Bundle Component ${sDevBuild}`,
|
|
42
68
|
task: async () => await bundleComponent(componentKey, sourceMap, devBuild),
|
|
43
69
|
skip: () => (options.skipBundle ? 'Skipped bundling component' : undefined)
|
|
44
70
|
},
|
|
@@ -52,7 +78,7 @@ export default async options => {
|
|
|
52
78
|
{
|
|
53
79
|
title: 'Publish Component',
|
|
54
80
|
task: async () => {
|
|
55
|
-
await publishComponentToServer(content);
|
|
81
|
+
await publishComponentToServer(content, doFetch);
|
|
56
82
|
}
|
|
57
83
|
}
|
|
58
84
|
],
|