@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.
- package/.vscode/extensions.json +1 -1
- package/README.md +6 -189
- package/package.json +34 -32
- package/src/auth.js +608 -0
- package/src/cli.js +42 -0
- package/src/constants.js +125 -8
- package/src/tasks/authenticate/helper.js +91 -8
- package/src/tasks/authenticate/index.js +169 -49
- package/src/tasks/build/helper.js +122 -0
- package/src/tasks/build/index.js +54 -0
- package/src/tasks/build-all/helper.js +70 -0
- package/src/tasks/build-all/index.js +79 -0
- package/src/tasks/{publish/bundle → bundle}/builder/index.js +49 -5
- package/src/tasks/{publish/bundle → bundle}/builder/webpack.config.js +5 -3
- package/src/tasks/{publish/bundle → bundle}/index.js +2 -2
- package/src/tasks/create/index.js +87 -64
- package/src/tasks/create/templates/Constellation/Field/Boolean/Boolean.js.mustache +38 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/boolean-format.js.mustache +26 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/config.json.mustache +146 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/demo.stories.jsx.mustache +61 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/index.jsx.mustache +170 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Date/DateFormatter.js.mustache +61 -0
- package/src/tasks/create/templates/Constellation/Field/Date/FormattedText.jsx.mustache +41 -0
- package/src/tasks/create/templates/Constellation/Field/Date/config.json.mustache +196 -0
- package/src/tasks/create/templates/Constellation/Field/Date/date.js.mustache +439 -0
- package/src/tasks/create/templates/Constellation/Field/Date/demo.stories.jsx.mustache +73 -0
- package/src/tasks/create/templates/Constellation/Field/Date/index.jsx.mustache +256 -0
- package/src/tasks/create/templates/Constellation/Field/Date/mock.stories.js.mustache +23 -0
- package/src/tasks/create/templates/Constellation/Field/Date/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Date/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/config.json.mustache +257 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/date-time.js.mustache +92 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/date-utils.js.mustache +287 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/date.js.mustache +328 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/demo.stories.jsx.mustache +73 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/index.jsx.mustache +254 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/mock.stories.js.mustache +23 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/config.json.mustache +279 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/demo.stories.jsx.mustache +49 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/index.jsx.mustache +273 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/config.json.mustache +292 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/demo.stories.jsx.mustache +53 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/index.jsx.mustache +299 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/mock.stories.js.mustache +23 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/config.json.mustache +94 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/demo.stories.jsx.mustache +49 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/index.jsx.mustache +281 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/config.json.mustache +348 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/demo.stories.jsx.mustache +49 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/index.jsx.mustache +336 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/config.json.mustache +115 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/demo.stories.jsx.mustache +78 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/index.jsx.mustache +351 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/mock.stories.js.mustache +67 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/suggestions-handler.js +10 -0
- package/src/tasks/create/{template → templates/Constellation/Field/Text}/config.json.mustache +15 -5
- package/src/tasks/create/templates/Constellation/Field/Text/demo.stories.jsx.mustache +51 -0
- package/src/tasks/create/{template → templates/Constellation/Field/Text}/index.jsx.mustache +5 -0
- package/src/tasks/create/templates/Constellation/Field/Text/mock.stories.js.mustache +13 -0
- package/src/tasks/create/templates/Constellation/Field/Text/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/config.json.mustache +112 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/demo.stories.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/index.jsx.mustache +231 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/mock.stories.js.mustache +22 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/StatusWork.jsx +26 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/config.json.mustache +112 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/demo.stories.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/index.jsx.mustache +239 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/config.json.mustache +112 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/demo.stories.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/index.jsx.mustache +231 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/mock.stories.js.mustache +20 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/config.json.mustache +124 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/demo.stories.jsx.mustache +46 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/index.jsx.mustache +267 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/mock.stories.js.mustache +37 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/config.json.mustache +238 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/demo.stories.jsx.mustache +46 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/index.jsx.mustache +232 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/mock.stories.js.mustache +22 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/text-url.jsx.mustache +173 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/config.json.mustache +186 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/demo.stories.jsx.mustache +57 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/index.jsx.mustache +213 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/mock.stories.js.mustache +20 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/time-of-day.js.mustache +287 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/OneColumnDetails.svg +22 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/StatusWork.jsx.mustache +26 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/config.json.mustache +36 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/demo.stories.jsx.mustache +132 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/index.jsx.mustache +86 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/mock.stories.js.mustache +189 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/utils.js.mustache +152 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/StatusWork.jsx.mustache +26 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/TwoColumnDetails.svg +28 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/config.json.mustache +43 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/demo.stories.jsx.mustache +136 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/index.jsx.mustache +86 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/mock.stories.js.mustache +230 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/utils.js.mustache +155 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/DefaultForm.svg +29 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/config.json.mustache +46 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/demo.stories.jsx.mustache +169 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/index.jsx.mustache +45 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/mock.stories.js.mustache +137 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/TwoColumn.svg +38 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/config.json.mustache +28 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/demo.stories.jsx.mustache +178 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/index.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/mock.stories.js.mustache +143 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/GetNextWork.jsx.mustache +35 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/OneColumnPage.svg +36 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/config.json.mustache +33 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/demo.stories.jsx.mustache +102 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/index.jsx.mustache +70 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/localizations.json.mustache +4 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/mock.stories.js.mustache +94 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/utils.js.mustache +229 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/OneColumnPage.svg +36 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/config.json.mustache +24 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/demo.stories.jsx.mustache +78 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/index.jsx.mustache +76 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/mock.stories.js.mustache +390 -0
- package/src/tasks/create/{template → templates/Constellation/Widget/CASE}/styles.js.mustache +1 -1
- package/src/tasks/create/templates/Constellation/Widget/PAGE/OneColumnPage.svg +36 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE/config.json.mustache +60 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE/demo.stories.jsx.mustache +30 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE/index.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE/mock.stories.js.mustache +23 -0
- package/src/tasks/{init/template/src/components/Organization_Library_VideoPlayer/styles.js → create/templates/Constellation/Widget/PAGE/styles.js.mustache} +3 -1
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Avatar.jsx.mustache +75 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/OneColumnPage.svg +36 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Operator.jsx.mustache +240 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/config.json.mustache +67 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/demo.stories.jsx.mustache +68 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/index.jsx.mustache +110 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/mock.stories.js.mustache +51 -0
- package/src/tasks/{init/template/src/components/Organization_Library_MediaURL/MediaURL.styles.ts → create/templates/Constellation/Widget/PAGE-CASE/styles.js.mustache} +3 -1
- package/src/tasks/create-all/index.js +398 -0
- package/src/tasks/delete/helper.js +6 -4
- package/src/tasks/delete/index.js +4 -0
- package/src/tasks/delete-all/helper.js +153 -0
- package/src/tasks/delete-all/index.js +49 -0
- package/src/tasks/generate-ai/aiPrompt.txt.mustache +23 -0
- package/src/tasks/generate-ai/aiPromptDavinci.txt.mustache +14 -0
- package/src/tasks/generate-ai/helper.js +357 -0
- package/src/tasks/generate-ai/index.js +34 -0
- package/src/tasks/index.js +7 -0
- package/src/tasks/init/index.js +9 -3
- package/src/tasks/init/template/.eslintignore +8 -0
- package/src/tasks/init/template/.eslintrc.json +186 -5
- package/src/tasks/init/template/.vscode/extensions.json +1 -1
- package/src/tasks/init/template/README.md +80 -61
- package/src/tasks/init/template/keys/DX-ComponentDev.zip +0 -0
- package/src/tasks/init/template/keys/dxcb.crt +32 -0
- package/src/tasks/init/template/keys/dxcb.key +51 -0
- package/src/tasks/init/template/package.json.mustache +44 -21
- package/src/tasks/init/template/src/components/_components.md +1 -0
- package/src/tasks/init/template/tasks.config.json +19 -5
- package/src/tasks/init/template/templateNPMRC.txt +8 -0
- package/src/tasks/linter/index.js +46 -0
- package/src/tasks/list/helper.js +19 -6
- package/src/tasks/list/index.js +4 -0
- package/src/tasks/publish/helper.js +13 -4
- package/src/tasks/publish/index.js +14 -1
- package/src/tasks/publish-all/helper.js +154 -0
- package/src/tasks/publish-all/index.js +95 -0
- package/src/tasks/rename/index.js +314 -0
- package/src/tasks/validator/index.js +291 -18
- package/src/util.js +372 -6
- package/src/tasks/create/template/demo.stories.jsx.mustache +0 -44
- package/src/tasks/init/template/src/components/MBTAList/MBTAList.stories.tsx +0 -10
- package/src/tasks/init/template/src/components/MBTAList/MBTAList.tsx +0 -122
- package/src/tasks/init/template/src/components/MBTAList/icons/accessible.icon.tsx +0 -14
- package/src/tasks/init/template/src/components/MBTAList/icons/bus.icon.tsx +0 -13
- package/src/tasks/init/template/src/components/MBTAList/icons/mbta.icon.tsx +0 -10
- package/src/tasks/init/template/src/components/MBTAList/icons/subway.icon.tsx +0 -14
- package/src/tasks/init/template/src/components/MBTAList/index.ts +0 -2
- package/src/tasks/init/template/src/components/Organization_Library_MediaURL/MediaURL.stories.tsx +0 -19
- package/src/tasks/init/template/src/components/Organization_Library_MediaURL/MediaURL.types.ts +0 -10
- package/src/tasks/init/template/src/components/Organization_Library_MediaURL/MediaURLDisplay.tsx +0 -25
- package/src/tasks/init/template/src/components/Organization_Library_MediaURL/MediaURLInput.tsx +0 -24
- package/src/tasks/init/template/src/components/Organization_Library_MediaURL/config.json +0 -13
- package/src/tasks/init/template/src/components/Organization_Library_MediaURL/index.ts +0 -2
- package/src/tasks/init/template/src/components/Organization_Library_VideoPlayer/config.json +0 -44
- package/src/tasks/init/template/src/components/Organization_Library_VideoPlayer/demo.stories.jsx +0 -40
- package/src/tasks/init/template/src/components/Organization_Library_VideoPlayer/index.jsx +0 -42
- /package/src/tasks/{publish/bundle → bundle}/builder/modules.js +0 -0
- /package/src/tasks/{publish/bundle → bundle}/builder/paths.js +0 -0
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import inquirer from 'inquirer';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { URL, fileURLToPath } from 'url';
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
import fs from 'fs';
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
AI_PROMPT_FILENAME,
|
|
11
|
+
AI_DAVINCI_PROMPT_FILENAME
|
|
12
|
+
} from '../../constants.js';
|
|
13
|
+
|
|
14
|
+
import _ from 'lodash';
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
import {
|
|
18
|
+
getComponents,
|
|
19
|
+
getComponentsOfType,
|
|
20
|
+
getPegaConfig,
|
|
21
|
+
getAIPromptData,
|
|
22
|
+
getDirectoryFiles,
|
|
23
|
+
getAIComponent,
|
|
24
|
+
getInfinityAIComponent,
|
|
25
|
+
getComponentDirectoryPath,
|
|
26
|
+
compileMustacheTemplate,
|
|
27
|
+
getComponentConfigJson,
|
|
28
|
+
getComponentConfigType
|
|
29
|
+
} from '../../util.js';
|
|
30
|
+
import { str } from 'ajv';
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
export const getSelectAComponent = async() => {
|
|
34
|
+
//let localComponents = await getComponents();
|
|
35
|
+
const localComponents = await getComponentsOfType("Widget,Template");
|
|
36
|
+
|
|
37
|
+
let answers;
|
|
38
|
+
|
|
39
|
+
if (localComponents.length > 0) {
|
|
40
|
+
answers = await inquirer.prompt([
|
|
41
|
+
{
|
|
42
|
+
name: 'componentKey',
|
|
43
|
+
type: 'rawlist',
|
|
44
|
+
message: 'Select component to generateAI',
|
|
45
|
+
choices: localComponents
|
|
46
|
+
}]);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return answers;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export const determineAndGenerateAI = async (enteredKey) => {
|
|
53
|
+
|
|
54
|
+
if (!enteredKey) {
|
|
55
|
+
let answer = await getSelectAComponent();
|
|
56
|
+
if (answer) {
|
|
57
|
+
enteredKey = answer.componentKey;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
console.log(chalk.bold.redBright(`No custom components to generate AI. Please create a Widget or Template component first.`));
|
|
61
|
+
process.exit(1);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const targetDirectory = await getComponentDirectoryPath(enteredKey);
|
|
67
|
+
const configType = await getComponentConfigType(targetDirectory);
|
|
68
|
+
|
|
69
|
+
switch (configType.toLowerCase()) {
|
|
70
|
+
case "widget":
|
|
71
|
+
case "template":
|
|
72
|
+
await getWidgetTemplateAndGenerateAI(enteredKey);
|
|
73
|
+
break;
|
|
74
|
+
case "field":
|
|
75
|
+
await getFieldAndGenerateAI(enteredKey);
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export const getWidgetTemplateAndGenerateAI = async (enteredKey) => {
|
|
83
|
+
const localComponents = await getComponents();
|
|
84
|
+
|
|
85
|
+
let answers;
|
|
86
|
+
|
|
87
|
+
if (localComponents.length > 0) {
|
|
88
|
+
|
|
89
|
+
answers = await inquirer.prompt([
|
|
90
|
+
|
|
91
|
+
{
|
|
92
|
+
name: 'additionalPromptInfo',
|
|
93
|
+
message: 'Enter what you would like this component to do? ',
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
]);
|
|
98
|
+
|
|
99
|
+
console.log("Generating component...");
|
|
100
|
+
|
|
101
|
+
await generateInfinityAIComponent(enteredKey, answers.additionalPromptInfo);
|
|
102
|
+
|
|
103
|
+
} else {
|
|
104
|
+
console.log(chalk.bold.redBright(`No custom components in ${sourceOfComponents}`));
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
export const getFieldAndGenerateAI = async (enteredKey) => {
|
|
110
|
+
const localComponents = await getComponents();
|
|
111
|
+
|
|
112
|
+
let answers;
|
|
113
|
+
|
|
114
|
+
if (localComponents.length > 0) {
|
|
115
|
+
|
|
116
|
+
answers = await inquirer.prompt([
|
|
117
|
+
{
|
|
118
|
+
name: 'designSystemComponents',
|
|
119
|
+
message: 'Enter comma delimited string of Design system components (ie. Input, TextArea, etc.)'
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: 'additionalPromptInfo',
|
|
123
|
+
message: 'Enter any additional generation information',
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
]);
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
console.log("Generating component...");
|
|
130
|
+
|
|
131
|
+
await generateAIComponent(enteredKey || answers.componentKey, answers.designSystemComponents, answers.additionalPropmtInfo);
|
|
132
|
+
|
|
133
|
+
} else {
|
|
134
|
+
console.log(chalk.bold.redBright(`No custom components in ${sourceOfComponents}`));
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
export const renameFile = (oldFileName, newFileName) => {
|
|
139
|
+
try {
|
|
140
|
+
fs.renameSync(oldFileName, newFileName);
|
|
141
|
+
|
|
142
|
+
} catch(err) {
|
|
143
|
+
console.log(err)
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export const generateAIComponent = async (componentKey, designSystemComponents, additionalPromptInfo) => {
|
|
148
|
+
|
|
149
|
+
const fileName = "." + path.sep + AI_PROMPT_FILENAME;
|
|
150
|
+
|
|
151
|
+
// get config file
|
|
152
|
+
//
|
|
153
|
+
const targetDirectory = await getComponentDirectoryPath(componentKey);
|
|
154
|
+
let configFileData = await getComponentConfigJson(targetDirectory);
|
|
155
|
+
|
|
156
|
+
// let data = JSON.parse(configFileData);
|
|
157
|
+
// data.properties = [];
|
|
158
|
+
// configFileData = JSON.stringify(data);
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
let strPrompt = compileMustacheTemplate(fileURLToPath(new URL(fileName, import.meta.url)), {
|
|
162
|
+
COMPONENT_CONFIG: configFileData,
|
|
163
|
+
COMPONENT_DSC: designSystemComponents,
|
|
164
|
+
COMPONENT_ADDITIONAL: additionalPromptInfo
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
strPrompt = strPrompt.replaceAll("$", "//$");
|
|
168
|
+
|
|
169
|
+
strPrompt = _.unescape(strPrompt);
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
//let strPrompt = await getAIPromptData(fileURLToPath(new URL(fileName, import.meta.url)));
|
|
173
|
+
//let aiComponent = await getAIComponent(strPrompt);
|
|
174
|
+
let aiComponent = await getInfinityAIComponent(strPrompt);
|
|
175
|
+
|
|
176
|
+
if (aiComponent) {
|
|
177
|
+
//console.log(aiData);
|
|
178
|
+
const indexFile = join(targetDirectory, "index.jsx");
|
|
179
|
+
|
|
180
|
+
// remove enclosed ``` and "Answer:"
|
|
181
|
+
aiComponent = aiComponent.substring(aiComponent.indexOf("import"));
|
|
182
|
+
aiComponent = aiComponent.substring(0, aiComponent.lastIndexOf("```"));
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
// get directory list
|
|
187
|
+
// check for index-template.jsx.old
|
|
188
|
+
// if not there, copy index.jsx to index-template.jsx.old and then copy aiComponent to index.jsx
|
|
189
|
+
// if there, check if have index-genai-1.jsx.old, if not, then copy index.jsx, to index-genai-1.jsx.old
|
|
190
|
+
// otherwise, find all index-genai-X and find biggest number and add one, and save index.jsx to that and then create index.jsx
|
|
191
|
+
|
|
192
|
+
const dirList = await getDirectoryFiles(targetDirectory);
|
|
193
|
+
|
|
194
|
+
if (dirList.includes("index-template.jsx.old")) {
|
|
195
|
+
|
|
196
|
+
const genList = dirList.map( (el) => {
|
|
197
|
+
if (el.indexOf("index-genai") >= 0) {
|
|
198
|
+
return el;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
return "";
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
if (genList.length > 0) {
|
|
206
|
+
let lastIndex = 0;
|
|
207
|
+
|
|
208
|
+
genList.forEach((el) => {
|
|
209
|
+
const theName = el.split(".")[0];
|
|
210
|
+
const theIndex = theName.split("-")[2];
|
|
211
|
+
|
|
212
|
+
if (parseInt(theIndex) > lastIndex) {
|
|
213
|
+
lastIndex = parseInt(theIndex);
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
lastIndex++;
|
|
218
|
+
|
|
219
|
+
const oldGenFileName = join(targetDirectory, "index.jsx");
|
|
220
|
+
const newGenFileName = join(targetDirectory, "index-genai-" + lastIndex + ".jsx.old");
|
|
221
|
+
|
|
222
|
+
renameFile(oldGenFileName, newGenFileName);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
const oldGenFileName = join(targetDirectory, "index.jsx");
|
|
226
|
+
const newGenFileName = join(targetDirectory, "index-genai-1.jsx.old");
|
|
227
|
+
|
|
228
|
+
renameFile(oldGenFileName, newGenFileName);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
// so only index.jsx, so rename index.jsx to index-template.jsx.old
|
|
233
|
+
// and create a new index.jsx
|
|
234
|
+
const oldFileName = join(targetDirectory, "index.jsx");
|
|
235
|
+
const newFileName = join(targetDirectory, "index-template.jsx.old");
|
|
236
|
+
|
|
237
|
+
renameFile(oldFileName, newFileName);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// creae new index.jsx
|
|
241
|
+
fs.writeFileSync(indexFile, aiComponent, err => {
|
|
242
|
+
if (err) {
|
|
243
|
+
Promise.reject(`${chalk.bold.red(err)}`);
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
|
|
247
|
+
console.log(`Updated file ${chalk.green('index.jsx')} in directory ${chalk.green(componentKey)} with AI generated code.`);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export const generateInfinityAIComponent = async (componentKey, additionalPromptInfo) => {
|
|
256
|
+
|
|
257
|
+
const fileName = "." + path.sep + AI_DAVINCI_PROMPT_FILENAME;
|
|
258
|
+
|
|
259
|
+
// get config file
|
|
260
|
+
//
|
|
261
|
+
const targetDirectory = await getComponentDirectoryPath(componentKey);
|
|
262
|
+
let configFileData = await getComponentConfigJson(targetDirectory);
|
|
263
|
+
|
|
264
|
+
// need to escape $
|
|
265
|
+
configFileData = configFileData.replaceAll("$", "\\$");
|
|
266
|
+
|
|
267
|
+
let strPrompt = compileMustacheTemplate(fileURLToPath(new URL(fileName, import.meta.url)), {
|
|
268
|
+
COMPONENT_CONFIG: configFileData,
|
|
269
|
+
COMPONENT_ADDITIONAL: additionalPromptInfo
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
strPrompt = _.unescape(strPrompt);
|
|
273
|
+
|
|
274
|
+
//let strPrompt = await getAIPromptData(fileURLToPath(new URL(fileName, import.meta.url)));
|
|
275
|
+
let aiComponent = await getInfinityAIComponent(strPrompt);
|
|
276
|
+
|
|
277
|
+
//console.log(aiData);
|
|
278
|
+
|
|
279
|
+
if (aiComponent) {
|
|
280
|
+
const indexFile = join(targetDirectory, "index-genai.jsx.tmp");
|
|
281
|
+
|
|
282
|
+
// remove enclosed ``` and "Answer:"
|
|
283
|
+
if (aiComponent.indexOf("```") >= 0) {
|
|
284
|
+
aiComponent = aiComponent.substring(aiComponent.indexOf("```"));
|
|
285
|
+
aiComponent = aiComponent.substring(0, aiComponent.lastIndexOf("```"));
|
|
286
|
+
}
|
|
287
|
+
else if (aiComponent.indexOf("'") == 0) {
|
|
288
|
+
aiComponent = aiComponent.substring(aiComponent.indexOf("'"));
|
|
289
|
+
aiComponent = aiComponent.substring(0, aiComponent.lastIndexOf("'"));
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
// get directory list
|
|
296
|
+
// check for index-template.jsx.old
|
|
297
|
+
// if not there, copy index.jsx to index-template.jsx.old and then copy aiComponent to index.jsx
|
|
298
|
+
// if there, check if have index-genai-1.jsx.old, if not, then copy index.jsx, to index-genai-1.jsx.old
|
|
299
|
+
// otherwise, find all index-genai-X and find biggest number and add one, and save index.jsx to that and then create index.jsx
|
|
300
|
+
|
|
301
|
+
const dirList = await getDirectoryFiles(targetDirectory);
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
const genList = dirList.map( (el) => {
|
|
306
|
+
if (el.indexOf("index-genai") >= 0) {
|
|
307
|
+
return el;
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
return "";
|
|
311
|
+
}
|
|
312
|
+
});
|
|
313
|
+
|
|
314
|
+
if (genList.length > 0) {
|
|
315
|
+
let lastIndex = -1;
|
|
316
|
+
|
|
317
|
+
genList.forEach((el) => {
|
|
318
|
+
const theName = el.split(".")[0];
|
|
319
|
+
|
|
320
|
+
if (theName.indexOf("index-genai") >=0) {
|
|
321
|
+
if (lastIndex === -1) {
|
|
322
|
+
lastIndex = 0;
|
|
323
|
+
}
|
|
324
|
+
const theIndex = theName.split("-")[2];
|
|
325
|
+
|
|
326
|
+
if (parseInt(theIndex) > lastIndex) {
|
|
327
|
+
lastIndex = parseInt(theIndex);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
});
|
|
332
|
+
|
|
333
|
+
lastIndex++;
|
|
334
|
+
|
|
335
|
+
if (lastIndex > 0) {
|
|
336
|
+
const oldGenFileName = join(targetDirectory, "index-genai.jsx.tmp");
|
|
337
|
+
const newGenFileName = join(targetDirectory, "index-genai-" + lastIndex + ".jsx.tmp");
|
|
338
|
+
|
|
339
|
+
renameFile(oldGenFileName, newGenFileName);
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
// creae new index.jsx
|
|
346
|
+
fs.writeFileSync(indexFile, aiComponent, err => {
|
|
347
|
+
if (err) {
|
|
348
|
+
Promise.reject(`${chalk.bold.red(err)}`);
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
|
|
352
|
+
console.log(`Updated file ${chalk.green('index-genai.jsx.tmp')} in directory ${chalk.green(componentKey)} with AI generated code.`);
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import inquirer from 'inquirer';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
determineAndGenerateAI
|
|
7
|
+
} from './helper.js';
|
|
8
|
+
|
|
9
|
+
import { showVersion } from '../../util.js';
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
export default async options => {
|
|
15
|
+
showVersion();
|
|
16
|
+
|
|
17
|
+
if (options.params.length > 3 && options.params[3] != "") {
|
|
18
|
+
const sourceOfComponents = options.params[3];
|
|
19
|
+
|
|
20
|
+
//await generateAIComponent(sourceOfComponents);
|
|
21
|
+
//await getComponentAndGenerateAI(sourceOfComponents);
|
|
22
|
+
await determineAndGenerateAI(sourceOfComponents);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
|
|
26
|
+
//await getComponentAndGenerateAI();
|
|
27
|
+
await determineAndGenerateAI();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
};
|
package/src/tasks/index.js
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
export { default as createComponent } from './create/index.js';
|
|
2
|
+
export { default as createAllComponents } from './create-all/index.js';
|
|
2
3
|
export { default as deleteComponent } from './delete/index.js';
|
|
4
|
+
export { default as deleteAllComponents } from './delete-all/index.js';
|
|
3
5
|
export { default as initProject } from './init/index.js';
|
|
4
6
|
export { default as publishComponent } from './publish/index.js';
|
|
7
|
+
export { default as publishAllComponents } from './publish-all/index.js';
|
|
8
|
+
export { default as renameComponent } from './rename/index.js';
|
|
5
9
|
export { default as listComponents } from './list/index.js';
|
|
6
10
|
export { default as updateComponent } from './update/index.js';
|
|
7
11
|
export { default as validate } from './validator/index.js';
|
|
8
12
|
export { default as authenticate } from './authenticate/index.js';
|
|
9
13
|
export { default as upgrade } from './upgrade/index.js';
|
|
14
|
+
export { default as buildComponent } from './build/index.js';
|
|
15
|
+
export { default as buildAllComponents } from './build-all/index.js';
|
|
16
|
+
export { default as generateWithAI } from './generate-ai/index.js';
|
package/src/tasks/init/index.js
CHANGED
|
@@ -47,6 +47,7 @@ const copyProjectTemplate = async options => {
|
|
|
47
47
|
clobber: false
|
|
48
48
|
});
|
|
49
49
|
const packageJsonPath = path.join(options.targetDirectory, 'package.json.mustache');
|
|
50
|
+
const templateNPMRCPath = path.join(options.targetDirectory, 'templateNPMRC.txt');
|
|
50
51
|
|
|
51
52
|
let { organization, projectName } = options;
|
|
52
53
|
|
|
@@ -65,6 +66,10 @@ const copyProjectTemplate = async options => {
|
|
|
65
66
|
const output = compileMustacheTemplate(packageJsonPath, options);
|
|
66
67
|
fs.writeFileSync(packageJsonPath, output);
|
|
67
68
|
fs.renameSync(packageJsonPath, packageJsonPath.replace('.mustache', ''));
|
|
69
|
+
|
|
70
|
+
// rename template NPMRC to .npmrc, need to do this because npmjs won't publish an .npmrc file
|
|
71
|
+
fs.renameSync(templateNPMRCPath, templateNPMRCPath.replace('templateNPMRC.txt', '.npmrc'));
|
|
72
|
+
|
|
68
73
|
await createLicense(options);
|
|
69
74
|
};
|
|
70
75
|
|
|
@@ -123,7 +128,8 @@ export default async options => {
|
|
|
123
128
|
},
|
|
124
129
|
{
|
|
125
130
|
title: installDependenciesText,
|
|
126
|
-
task: () =>
|
|
131
|
+
task: () =>
|
|
132
|
+
execPromise('npm i --force --production=false', { cwd: options.targetDirectory })
|
|
127
133
|
}
|
|
128
134
|
],
|
|
129
135
|
{
|
|
@@ -140,7 +146,7 @@ export default async options => {
|
|
|
140
146
|
'\n',
|
|
141
147
|
`Inside that directory, you can run several commands:`,
|
|
142
148
|
'\n\n',
|
|
143
|
-
`${chalk.blueBright('npm
|
|
149
|
+
`${chalk.blueBright('npm run startStorybook')}`,
|
|
144
150
|
`\n Start Storybook in development mode`,
|
|
145
151
|
'\n\n',
|
|
146
152
|
`${chalk.blueBright('npm run create')}`,
|
|
@@ -158,7 +164,7 @@ export default async options => {
|
|
|
158
164
|
'\n\n',
|
|
159
165
|
`${chalk.blueBright('cd')} ${chalk.bold(projectName)}`,
|
|
160
166
|
'\n',
|
|
161
|
-
`${chalk.blueBright('npm
|
|
167
|
+
`${chalk.blueBright('npm run startStorybook')}`,
|
|
162
168
|
'\n'
|
|
163
169
|
);
|
|
164
170
|
return true;
|
|
@@ -1,10 +1,191 @@
|
|
|
1
1
|
{
|
|
2
|
-
"extends": ["@pega"],
|
|
3
|
-
"parserOptions": { "project": "tsconfig.json" },
|
|
4
2
|
"root": true,
|
|
5
|
-
"
|
|
3
|
+
"extends": ["@pega"],
|
|
4
|
+
"parserOptions": {
|
|
5
|
+
"project": "tsconfig.json",
|
|
6
|
+
"ecmaVersion": 13
|
|
7
|
+
},
|
|
8
|
+
"settings": {
|
|
9
|
+
"import/resolver": {
|
|
10
|
+
"typescript": {},
|
|
11
|
+
"node": {
|
|
12
|
+
"extensions": [".js", ".jsx"]
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"react": {
|
|
16
|
+
"version": "detect"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"ignorePatterns": ["node_modules", "packages/*/lib", "!.storybook", ".storybook/public"],
|
|
6
20
|
"rules": {
|
|
21
|
+
// Prettier recommends running separately from a linter.
|
|
22
|
+
// https://prettier.io/docs/en/integrating-with-linters.html#notes
|
|
7
23
|
"prettier/prettier": "off",
|
|
8
|
-
|
|
9
|
-
|
|
24
|
+
|
|
25
|
+
// Disable rules from shared configs we're not ready for yet.
|
|
26
|
+
"sonarjs/cognitive-complexity": "off",
|
|
27
|
+
"sonarjs/no-identical-functions": "off",
|
|
28
|
+
"sonarjs/no-duplicate-string": "off",
|
|
29
|
+
"sonarjs/no-nested-template-literals": "off",
|
|
30
|
+
|
|
31
|
+
//
|
|
32
|
+
// JA - Override some default lint handling here
|
|
33
|
+
"@typescript-eslint/array-type": ["error", { "default": "generic" }],
|
|
34
|
+
// "import/extensions": ["warn", "never"], // Turning off for now (see below)
|
|
35
|
+
|
|
36
|
+
//
|
|
37
|
+
// Initial release: turning these off; phase in to "warn" or "error" over time
|
|
38
|
+
// For "quotes" and "@typescript-eslint/quotes", see override below for .ts/.tsx files
|
|
39
|
+
"import/extensions": ["off", "never"],
|
|
40
|
+
"import/named": "off",
|
|
41
|
+
"import/no-cycle": "off",
|
|
42
|
+
"import/no-duplicates": "off",
|
|
43
|
+
"import/no-extraneous-dependencies": "off",
|
|
44
|
+
"import/no-named-as-default": "off",
|
|
45
|
+
"import/no-named-as-default-member": "off",
|
|
46
|
+
"import/no-self-import": "off",
|
|
47
|
+
"import/no-unresolved": "off",
|
|
48
|
+
"import/no-useless-path-segments": "off",
|
|
49
|
+
"import/order": "off",
|
|
50
|
+
|
|
51
|
+
"no-else-return": "off",
|
|
52
|
+
"no-restricted-syntax": "off",
|
|
53
|
+
"no-underscore-dangle": "off",
|
|
54
|
+
|
|
55
|
+
"jsx-a11y/alt-text": "off",
|
|
56
|
+
"jsx-a11y/anchor-is-valid": "off",
|
|
57
|
+
"jsx-a11y/click-events-have-key-events": "off",
|
|
58
|
+
"jsx-a11y/label-has-associated-control": "off",
|
|
59
|
+
"jsx-a11y/no-static-element-interactions": "off",
|
|
60
|
+
|
|
61
|
+
"react/jsx-fragments": "off",
|
|
62
|
+
"react/jsx-no-bind": "off",
|
|
63
|
+
"react/self-closing-comp": "off",
|
|
64
|
+
|
|
65
|
+
"sonarjs/prefer-immediate-return": "off",
|
|
66
|
+
|
|
67
|
+
"@typescript-eslint/dot-notation": "off", // prefer warn but needs different parserOptions
|
|
68
|
+
"@typescript-eslint/naming-convention": "off", // prefer warn but needs different parserOptions
|
|
69
|
+
"@typescript-eslint/ban-types": "off", // also, see override below
|
|
70
|
+
|
|
71
|
+
//
|
|
72
|
+
// Initial release: set to error
|
|
73
|
+
"@typescript-eslint/no-inferrable-types": "error",
|
|
74
|
+
"eqeqeq": "error",
|
|
75
|
+
"no-alert": "error",
|
|
76
|
+
"no-console": "error",
|
|
77
|
+
"no-fallthrough": "error",
|
|
78
|
+
"no-undef": "error",
|
|
79
|
+
"no-unused-vars": "error",
|
|
80
|
+
"no-var": "error",
|
|
81
|
+
"prefer-const": "error",
|
|
82
|
+
"yoda": "error",
|
|
83
|
+
|
|
84
|
+
"import/no-mutable-exports": "error",
|
|
85
|
+
"sonarjs/max-switch-cases": "error",
|
|
86
|
+
"sonarjs/no-collapsible-if": "error",
|
|
87
|
+
"sonarjs/no-all-duplicated-branches": "error",
|
|
88
|
+
"sonarjs/no-duplicated-branches": "error",
|
|
89
|
+
"sonarjs/no-gratuitous-expressions": "error",
|
|
90
|
+
"sonarjs/no-ignored-return": "error",
|
|
91
|
+
"sonarjs/no-small-switch": "error",
|
|
92
|
+
"sonarjs/prefer-object-literal": "error",
|
|
93
|
+
"sonarjs/prefer-single-boolean-return": "error",
|
|
94
|
+
"@typescript-eslint/no-shadow": "error",
|
|
95
|
+
"react/default-props-match-prop-types": "error",
|
|
96
|
+
"react/no-unescaped-entities": "error",
|
|
97
|
+
"react/no-unused-prop-types": "error",
|
|
98
|
+
"react/static-property-placement": "error",
|
|
99
|
+
"array-callback-return": "error",
|
|
100
|
+
"camelcase": "error",
|
|
101
|
+
"default-case": "error",
|
|
102
|
+
"func-names": "error",
|
|
103
|
+
"no-case-declarations": "error",
|
|
104
|
+
"no-lonely-if": "error",
|
|
105
|
+
"no-nested-ternary": "error",
|
|
106
|
+
"no-plusplus": "error",
|
|
107
|
+
"no-restricted-globals": "error",
|
|
108
|
+
"no-restricted-properties": "error",
|
|
109
|
+
"no-shadow": "error",
|
|
110
|
+
"radix": "error",
|
|
111
|
+
"spaced-comment": "error",
|
|
112
|
+
|
|
113
|
+
"import/newline-after-import": "error",
|
|
114
|
+
"sonarjs/no-nested-switch": "error",
|
|
115
|
+
"@typescript-eslint/no-array-constructor": "error",
|
|
116
|
+
"@typescript-eslint/no-empty-function": "error",
|
|
117
|
+
"@typescript-eslint/no-unused-vars": "error",
|
|
118
|
+
"@typescript-eslint/no-useless-constructor": "error",
|
|
119
|
+
"react/button-has-type": "error",
|
|
120
|
+
"react/jsx-curly-brace-presence": "error",
|
|
121
|
+
"react/jsx-boolean-value": "error",
|
|
122
|
+
"react/no-array-index-key": "error",
|
|
123
|
+
"class-methods-use-this": "error",
|
|
124
|
+
"guard-for-in": "error",
|
|
125
|
+
"no-unneeded-ternary": "error",
|
|
126
|
+
"no-unused-expressions": "error",
|
|
127
|
+
"operator-assignment": "error",
|
|
128
|
+
"prefer-template": "error",
|
|
129
|
+
"vars-on-top": "error",
|
|
130
|
+
|
|
131
|
+
"no-use-before-define": "off", // doc for @typescript-eslint/no-use-before-define says to turn off the base implementation
|
|
132
|
+
"@typescript-eslint/no-use-before-define": "error"
|
|
133
|
+
},
|
|
134
|
+
"overrides": [
|
|
135
|
+
{
|
|
136
|
+
"files": "*.@(ts|tsx)",
|
|
137
|
+
"rules": {
|
|
138
|
+
"@typescript-eslint/method-signature-style": ["error", "property"],
|
|
139
|
+
// "@typescript-eslint/ban-types": [
|
|
140
|
+
// "warn",
|
|
141
|
+
// {
|
|
142
|
+
// "types": {
|
|
143
|
+
// "Omit": "Please use the 'OmitStrict' type from 'src/types/' instead.",
|
|
144
|
+
// "object": false,
|
|
145
|
+
// "Function": false
|
|
146
|
+
// },
|
|
147
|
+
// "extendDefaults": true
|
|
148
|
+
// }
|
|
149
|
+
// ],
|
|
150
|
+
|
|
151
|
+
"quotes": "off",
|
|
152
|
+
"@typescript-eslint/quotes": "off"
|
|
153
|
+
// [
|
|
154
|
+
// "error",
|
|
155
|
+
// "single",
|
|
156
|
+
// {
|
|
157
|
+
// "avoidEscape": true,
|
|
158
|
+
// "allowTemplateLiterals": false
|
|
159
|
+
// }
|
|
160
|
+
// ]
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"files": "*.@(jsx|tsx|mdx)",
|
|
165
|
+
"rules": {
|
|
166
|
+
"react/react-in-jsx-scope": "off",
|
|
167
|
+
// Set up configuration for future sweep
|
|
168
|
+
"react-hooks/exhaustive-deps": [
|
|
169
|
+
"off",
|
|
170
|
+
{
|
|
171
|
+
"additionalHooks": "useAfterInitialEffect"
|
|
172
|
+
}
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"files": "*.@(js|jsx|ts|tsx|mdx)",
|
|
178
|
+
"rules": {}
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"files": ".storybook/*.js",
|
|
182
|
+
"extends": ["@pega/eslint-config/script"]
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"files": "*/**/mocks/**.@(mocks|styles).@(tsx|ts)",
|
|
186
|
+
"rules": {
|
|
187
|
+
"import/prefer-default-export": ["off"]
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
]
|
|
10
191
|
}
|