@elliemae/pui-cli 7.27.1 → 8.0.0-next.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +0 -1
  2. package/{dist/esm/typescript/app.tsconfig.json → app.tsconfig.json} +2 -2
  3. package/dist/cjs/cli.js +14 -12
  4. package/dist/cjs/commands/build.js +8 -7
  5. package/dist/cjs/commands/codemod.js +6 -8
  6. package/dist/cjs/commands/gendoc.js +1 -1
  7. package/dist/cjs/commands/lint.js +20 -22
  8. package/dist/cjs/commands/pack.js +24 -19
  9. package/dist/cjs/commands/start.js +10 -9
  10. package/dist/cjs/commands/storybook.js +18 -17
  11. package/dist/cjs/commands/test.js +36 -30
  12. package/dist/cjs/commands/tscheck.js +8 -7
  13. package/dist/cjs/commands/utils.js +11 -6
  14. package/dist/cjs/commands/version.js +20 -18
  15. package/dist/cjs/commands/vitest.js +31 -27
  16. package/dist/cjs/index.cjs +0 -2
  17. package/dist/cjs/index.js +2 -2
  18. package/dist/cjs/lint-config/eslint/common.cjs +88 -85
  19. package/dist/cjs/lint-config/stylelint.config.cjs +1 -1
  20. package/dist/cjs/monorepo/delete-merged-tags.js +1 -1
  21. package/dist/cjs/monorepo/set-registry-version.js +2 -2
  22. package/dist/cjs/monorepo/set-workspace-version.js +2 -2
  23. package/dist/cjs/monorepo/utils.js +54 -0
  24. package/dist/cjs/release.config.cjs +0 -7
  25. package/dist/cjs/server/appRoutes.js +75 -0
  26. package/dist/cjs/server/csp.js +3 -4
  27. package/dist/cjs/server/index.js +13 -11
  28. package/dist/cjs/server/middlewares.js +7 -4
  29. package/dist/cjs/server/utils.js +1 -1
  30. package/dist/cjs/testing/setup-test-env.js +5 -24
  31. package/dist/cjs/testing/vitest.config.js +1 -1
  32. package/dist/cjs/transpile/esbuild.js +1 -1
  33. package/dist/cjs/utils.js +50 -0
  34. package/dist/cjs/webpack/helpers.js +3 -3
  35. package/dist/cjs/webpack/webpack.base.babel.js +3 -12
  36. package/dist/cjs/webpack/webpack.dev.babel.js +10 -7
  37. package/dist/cjs/webpack/webpack.lib.base.babel.js +4 -7
  38. package/dist/cjs/webpack/webpack.lib.dev.babel.js +1 -0
  39. package/dist/cjs/webpack/webpack.lib.prod.babel.js +1 -1
  40. package/dist/cjs/webpack/webpack.prod.babel.js +8 -16
  41. package/dist/cjs/webpack/webpack.storybook.js +27 -20
  42. package/dist/esm/cli.js +14 -12
  43. package/dist/esm/commands/build.js +8 -7
  44. package/dist/esm/commands/codemod.js +6 -8
  45. package/dist/esm/commands/gendoc.js +1 -1
  46. package/dist/esm/commands/lint.js +26 -22
  47. package/dist/esm/commands/pack.js +31 -19
  48. package/dist/esm/commands/start.js +10 -9
  49. package/dist/esm/commands/storybook.js +18 -17
  50. package/dist/esm/commands/test.js +36 -30
  51. package/dist/esm/commands/tscheck.js +8 -7
  52. package/dist/esm/commands/utils.js +10 -5
  53. package/dist/esm/commands/version.js +20 -18
  54. package/dist/esm/commands/vitest.js +31 -27
  55. package/dist/esm/index.cjs +0 -2
  56. package/dist/esm/index.js +1 -1
  57. package/dist/esm/lint-config/eslint/common.cjs +88 -85
  58. package/dist/esm/lint-config/stylelint.config.cjs +1 -1
  59. package/dist/esm/monorepo/delete-merged-tags.js +1 -1
  60. package/dist/esm/monorepo/set-registry-version.js +2 -2
  61. package/dist/esm/monorepo/set-workspace-version.js +2 -2
  62. package/dist/esm/monorepo/utils.js +24 -0
  63. package/dist/esm/release.config.cjs +0 -7
  64. package/dist/{cjs/server/app-routes.cjs → esm/server/appRoutes.js} +26 -23
  65. package/dist/esm/server/csp.js +3 -4
  66. package/dist/esm/server/index.js +13 -11
  67. package/dist/esm/server/middlewares.js +7 -4
  68. package/dist/esm/server/utils.js +1 -1
  69. package/dist/esm/testing/setup-test-env.js +5 -2
  70. package/dist/esm/testing/vitest.config.js +1 -1
  71. package/dist/esm/transpile/esbuild.js +1 -1
  72. package/dist/esm/utils.js +20 -0
  73. package/dist/esm/webpack/helpers.js +3 -3
  74. package/dist/esm/webpack/webpack.base.babel.js +3 -12
  75. package/dist/esm/webpack/webpack.dev.babel.js +10 -7
  76. package/dist/esm/webpack/webpack.lib.base.babel.js +4 -7
  77. package/dist/esm/webpack/webpack.lib.dev.babel.js +1 -0
  78. package/dist/esm/webpack/webpack.lib.prod.babel.js +2 -2
  79. package/dist/esm/webpack/webpack.prod.babel.js +9 -17
  80. package/dist/esm/webpack/webpack.storybook.js +27 -20
  81. package/dist/types/commands/build.d.ts +6 -14
  82. package/dist/types/commands/codemod.d.ts +6 -6
  83. package/dist/types/commands/gendoc.d.ts +2 -6
  84. package/dist/types/commands/lint.d.ts +8 -29
  85. package/dist/types/commands/pack.d.ts +8 -26
  86. package/dist/types/commands/start.d.ts +6 -13
  87. package/dist/types/commands/storybook.d.ts +8 -27
  88. package/dist/types/commands/test.d.ts +11 -39
  89. package/dist/types/commands/tscheck.d.ts +5 -14
  90. package/dist/types/commands/utils.d.ts +11 -11
  91. package/dist/types/commands/version.d.ts +9 -28
  92. package/dist/types/commands/vitest.d.ts +10 -35
  93. package/dist/types/index.d.cts +1 -2
  94. package/dist/types/index.d.ts +11 -11
  95. package/dist/types/lint-config/eslint/common.d.cts +58 -55
  96. package/dist/types/lint-config/eslint/non-react.d.cts +34 -31
  97. package/dist/types/lint-config/eslint/react.d.cts +58 -55
  98. package/dist/types/lint-config/eslint/typescript/non-react.d.cts +28 -28
  99. package/dist/types/lint-config/eslint/typescript/react.d.cts +52 -52
  100. package/dist/types/lint-config/stylelint.config.d.cts +0 -1
  101. package/dist/types/monorepo/delete-merged-tags.d.ts +1 -1
  102. package/dist/types/monorepo/set-registry-version.d.ts +1 -1
  103. package/dist/types/monorepo/set-workspace-version.d.ts +1 -1
  104. package/dist/types/monorepo/utils.d.ts +1 -0
  105. package/dist/types/release.config.d.cts +0 -2
  106. package/dist/types/server/appRoutes.d.ts +2 -0
  107. package/dist/types/server/csp.d.ts +12 -9
  108. package/dist/types/server/logger.d.ts +7 -4
  109. package/dist/types/server/middlewares.d.ts +6 -2
  110. package/dist/types/server/utils.d.ts +3 -3
  111. package/dist/types/testing/jest.config.d.cts +10 -10
  112. package/dist/types/testing/jest.node.config.d.cts +10 -10
  113. package/dist/types/testing/vitest.config.d.ts +1 -1
  114. package/dist/types/utils.d.ts +4 -0
  115. package/dist/types/webpack/helpers.d.ts +19 -18
  116. package/dist/types/webpack/webpack.base.babel.d.ts +3 -106
  117. package/dist/types/webpack/webpack.dev.babel.d.ts +2 -1
  118. package/dist/types/webpack/webpack.lib.base.babel.d.ts +3 -102
  119. package/dist/types/webpack/webpack.lib.dev.babel.d.ts +3 -101
  120. package/dist/types/webpack/webpack.lib.prod.babel.d.ts +2 -101
  121. package/dist/types/webpack/webpack.prod.babel.d.ts +3 -2
  122. package/dist/types/webpack/webpack.storybook.d.ts +5 -4
  123. package/{dist/cjs/typescript/library.tsconfig.json → library.tsconfig.json} +3 -3
  124. package/package.json +74 -51
  125. package/dist/cjs/typescript/app.tsconfig.json +0 -23
  126. package/dist/esm/server/app-routes.cjs +0 -42
  127. package/dist/esm/typescript/library.tsconfig.json +0 -23
  128. package/dist/types/server/app-routes.d.cts +0 -1
@@ -8,9 +8,25 @@ const buildStoryBook = async (outputDir = "demo", isDoc = false) => {
8
8
  };
9
9
  const startStoryBook = async (isDoc = false) => {
10
10
  await exec(
11
- `cross-env NODE_ENV=development STORYBOOK_BUILD=true start-storybook ${isDoc && "--docs"} -p 11000 --quiet`
11
+ `cross-env NODE_ENV=development STORYBOOK_BUILD=true start-storybook ${isDoc ? "--docs" : ""} -p 11000 --quiet`
12
12
  );
13
13
  };
14
+ const cmdArgs = {
15
+ build: {
16
+ boolean: true,
17
+ alias: "b",
18
+ default: false
19
+ },
20
+ docs: {
21
+ boolean: true,
22
+ default: false
23
+ },
24
+ output: {
25
+ string: true,
26
+ alias: "o",
27
+ default: "demo"
28
+ }
29
+ };
14
30
  const storybookCmd = {
15
31
  handler: async (argv) => {
16
32
  try {
@@ -28,22 +44,7 @@ const storybookCmd = {
28
44
  },
29
45
  command: "storybook [options]",
30
46
  describe: "story book application code",
31
- builder: {
32
- build: {
33
- alias: "b",
34
- type: "boolean",
35
- default: false
36
- },
37
- docs: {
38
- type: "boolean",
39
- default: false
40
- },
41
- output: {
42
- alias: "o",
43
- type: "string",
44
- default: "demo"
45
- }
46
- }
47
+ builder: (yargsRef) => yargsRef.options(cmdArgs).help()
47
48
  };
48
49
  export {
49
50
  storybookCmd
@@ -8,6 +8,38 @@ const debugTest = async () => {
8
8
  `node --inspect-brk ./node_modules/jest-cli/bin/jest.js --runInBand --watch`
9
9
  );
10
10
  };
11
+ const cmdArgs = {
12
+ fix: {
13
+ boolean: true,
14
+ alias: "f",
15
+ default: false
16
+ },
17
+ watch: {
18
+ boolean: true,
19
+ alias: "w",
20
+ default: false
21
+ },
22
+ debug: {
23
+ boolean: true,
24
+ alias: "d",
25
+ default: false
26
+ },
27
+ passWithNoTests: {
28
+ boolean: true,
29
+ alias: "p",
30
+ default: false
31
+ },
32
+ findReleatedTests: {
33
+ boolean: true,
34
+ alias: "r",
35
+ default: false
36
+ },
37
+ silent: {
38
+ boolean: true,
39
+ alias: "s",
40
+ default: false
41
+ }
42
+ };
11
43
  const testCmd = {
12
44
  // eslint-disable-next-line max-statements
13
45
  handler: async (argv) => {
@@ -18,11 +50,11 @@ const testCmd = {
18
50
  commandOptions = "--watchAll";
19
51
  if (getCIEnv())
20
52
  commandOptions += " --ci --no-colors";
21
- if (argv.p)
53
+ if (argv.passWithNoTests)
22
54
  commandOptions += " --passWithNoTests";
23
- if (argv.r)
55
+ if (argv.findReleatedTests)
24
56
  commandOptions += " --bail --findRelatedTests";
25
- if (argv.s)
57
+ if (argv.silent)
26
58
  commandOptions += " --silent";
27
59
  try {
28
60
  if (getCIEnv()) {
@@ -37,37 +69,11 @@ const testCmd = {
37
69
  } catch (err) {
38
70
  logError("Unit test execution failed", err);
39
71
  yargs().exit(-1, err);
40
- return -1;
41
72
  }
42
- return 0;
43
73
  },
44
74
  command: "test [options]",
45
75
  describe: "unit tests application code",
46
- builder: {
47
- fix: {
48
- alias: "f",
49
- type: "boolean"
50
- },
51
- watch: {
52
- alias: "w",
53
- type: "boolean"
54
- },
55
- debug: {
56
- type: "boolean"
57
- },
58
- passWithNoTests: {
59
- alias: "p",
60
- type: "boolean"
61
- },
62
- findReleatedTests: {
63
- alias: "r",
64
- type: "boolean"
65
- },
66
- silent: {
67
- alias: "s",
68
- type: "boolean"
69
- }
70
- }
76
+ builder: (yargsRef) => yargsRef.options(cmdArgs).help()
71
77
  };
72
78
  export {
73
79
  testCmd
@@ -5,7 +5,7 @@ import { exec, logInfo, logError } from "./utils.js";
5
5
  const randomChars = () => Math.random().toString(36).slice(2);
6
6
  const validateTypescript = async (files = []) => {
7
7
  const tsconfigPath = path.join(process.cwd(), "tsconfig.json");
8
- const tsconfig = JSON.parse(fs.readFileSync(tsconfigPath));
8
+ const tsconfig = JSON.parse(fs.readFileSync(tsconfigPath).toString());
9
9
  const tmpTsconfigPath = path.join(
10
10
  process.cwd(),
11
11
  `tsconfig.${randomChars()}.json`
@@ -32,6 +32,12 @@ const validateTypescript = async (files = []) => {
32
32
  fs.unlinkSync(tmpTsconfigPath);
33
33
  }
34
34
  };
35
+ const cmdArgs = {
36
+ files: {
37
+ array: true,
38
+ default: []
39
+ }
40
+ };
35
41
  const tscheckCmd = {
36
42
  handler: async ({ files }) => {
37
43
  try {
@@ -44,12 +50,7 @@ const tscheckCmd = {
44
50
  },
45
51
  command: "tscheck [options]",
46
52
  describe: "validate typescript file(s)",
47
- builder: {
48
- files: {
49
- type: "array",
50
- default: []
51
- }
52
- }
53
+ builder: (yargsRef) => yargsRef.options(cmdArgs).help()
53
54
  };
54
55
  export {
55
56
  tscheckCmd
@@ -1,5 +1,5 @@
1
1
  import path from "node:path";
2
- import { constants } from "fs";
2
+ import fs, { constants } from "node:fs";
3
3
  import {
4
4
  readFile,
5
5
  writeFile,
@@ -44,7 +44,7 @@ const getSupportedBrowsers = async () => {
44
44
  const { stdout } = await exec("npx --no-install browserslist", {
45
45
  stdout: "pipe"
46
46
  });
47
- const browserVersions = stdout && stdout.split("\n") || [];
47
+ const browserVersions = stdout?.toString()?.split("\n") || [];
48
48
  return browserVersions.reduce((acc, nameVersion) => {
49
49
  const [name, version] = nameVersion.split(" ");
50
50
  const versionRange = version.split("-");
@@ -88,15 +88,18 @@ const writeAppInfo = async () => {
88
88
  [
89
89
  path.join(versionedPath, "info.json"),
90
90
  path.join(process.cwd(), "build", "public", "info.json")
91
- ].forEach(async (infoPath) => writeFile(infoPath, infoJSON));
91
+ ].forEach((infoPath) => {
92
+ writeFile(infoPath, infoJSON).then(() => {
93
+ }).catch((err) => console.error(err));
94
+ });
92
95
  };
93
96
  const copyDir = async (src, dest) => {
94
97
  const entries = await readdir(src, {
95
98
  withFileTypes: true
96
99
  });
97
100
  await mkdir(dest);
98
- return Promise.all(
99
- entries.map((entry) => {
101
+ await Promise.all(
102
+ entries.map(async (entry) => {
100
103
  const srcPath = path.join(src, entry.name);
101
104
  const destPath = path.join(dest, entry.name);
102
105
  if (entry.isDirectory()) {
@@ -132,12 +135,14 @@ const isPathExist = async (pathToCheck) => {
132
135
  };
133
136
  const isApp = async () => isPathExist(path.join(process.cwd(), "app"));
134
137
  const getCIEnv = () => process.env.CI === "true";
138
+ const isTypeScriptEnabled = () => fs.existsSync(path.join(process.cwd(), "tsconfig.json"));
135
139
  export {
136
140
  copyBuildAssetsToVersionedFolder,
137
141
  exec,
138
142
  getCIEnv,
139
143
  isApp,
140
144
  isPathExist,
145
+ isTypeScriptEnabled,
141
146
  logError,
142
147
  logInfo,
143
148
  logSuccess,
@@ -8,11 +8,29 @@ const version = async (lernaOptions = "") => {
8
8
  `cross-env NODE_ENV=production lerna version --conventional-commits --exact --create-release github --force-publish --yes ${lernaOptions}`
9
9
  );
10
10
  };
11
+ const cmdArgs = {
12
+ deleteTags: {
13
+ boolean: true,
14
+ default: false
15
+ },
16
+ useRegistry: {
17
+ boolean: true,
18
+ default: false
19
+ },
20
+ useWorkspace: {
21
+ boolean: true,
22
+ default: false
23
+ },
24
+ lernaOptions: {
25
+ string: true,
26
+ default: ""
27
+ }
28
+ };
11
29
  const versionCmd = {
12
30
  handler: async (argv) => {
13
31
  try {
14
32
  if (argv.deleteTags) {
15
- await deleteMergedTags();
33
+ deleteMergedTags();
16
34
  } else if (argv.useRegistry) {
17
35
  await setRegistryVersion();
18
36
  } else if (argv.useWorkspace) {
@@ -27,23 +45,7 @@ const versionCmd = {
27
45
  },
28
46
  command: "version [options]",
29
47
  describe: "version monorepo",
30
- builder: {
31
- deleteTags: {
32
- type: "boolean",
33
- default: false
34
- },
35
- useRegistry: {
36
- type: "boolean",
37
- default: false
38
- },
39
- useWorkspace: {
40
- type: "boolean",
41
- default: false
42
- },
43
- lernaOptions: {
44
- type: "string"
45
- }
46
- }
48
+ builder: (yargsRef) => yargsRef.options(cmdArgs).help()
47
49
  };
48
50
  export {
49
51
  versionCmd
@@ -3,6 +3,33 @@ import { exec, logError, logSuccess, getCIEnv } from "./utils.js";
3
3
  const test = async (commandOptions) => {
4
4
  await exec(`vitest ${commandOptions}`);
5
5
  };
6
+ const cmdArgs = {
7
+ fix: {
8
+ boolean: true,
9
+ alias: "f",
10
+ default: false
11
+ },
12
+ watch: {
13
+ boolean: true,
14
+ alias: "w",
15
+ default: false
16
+ },
17
+ passWithNoTests: {
18
+ boolean: true,
19
+ alias: "p",
20
+ default: false
21
+ },
22
+ findReleatedTests: {
23
+ boolean: true,
24
+ alias: "r",
25
+ default: false
26
+ },
27
+ silent: {
28
+ boolean: true,
29
+ alias: "s",
30
+ default: false
31
+ }
32
+ };
6
33
  const vitestCmd = {
7
34
  // eslint-disable-next-line max-statements
8
35
  handler: async (argv) => {
@@ -11,11 +38,11 @@ const vitestCmd = {
11
38
  commandOptions = "-u";
12
39
  else if (argv.watch)
13
40
  commandOptions = "--watch";
14
- if (argv.p)
41
+ if (argv.passWithNoTests)
15
42
  commandOptions += " --passWithNoTests";
16
- if (argv.r)
43
+ if (argv.findReleatedTests)
17
44
  commandOptions += " --related";
18
- if (argv.s)
45
+ if (argv.silent)
19
46
  commandOptions += " --silent";
20
47
  try {
21
48
  if (getCIEnv()) {
@@ -26,34 +53,11 @@ const vitestCmd = {
26
53
  } catch (err) {
27
54
  logError("Unit test execution failed", err);
28
55
  yargs().exit(-1, err);
29
- return -1;
30
56
  }
31
- return 0;
32
57
  },
33
58
  command: "vitest [options]",
34
59
  describe: "unit tests application code using vitest",
35
- builder: {
36
- fix: {
37
- alias: "f",
38
- type: "boolean"
39
- },
40
- watch: {
41
- alias: "w",
42
- type: "boolean"
43
- },
44
- passWithNoTests: {
45
- alias: "p",
46
- type: "boolean"
47
- },
48
- related: {
49
- alias: "r",
50
- type: "boolean"
51
- },
52
- silent: {
53
- alias: "s",
54
- type: "boolean"
55
- }
56
- }
60
+ builder: (yargsRef) => yargsRef.options(cmdArgs).help()
57
61
  };
58
62
  export {
59
63
  vitestCmd
@@ -10,7 +10,6 @@ const { prettierConfig } = require('./lint-config/prettier.config.cjs');
10
10
  const { commitlintConfig } = require('./lint-config/commitlint.config.cjs');
11
11
  const { jestConfig } = require('./testing/jest.config.cjs');
12
12
  const { jestNodeConfig } = require('./testing/jest.node.config.cjs');
13
- const { loadRoutes } = require('./server/app-routes.cjs');
14
13
 
15
14
  module.exports = {
16
15
  babelConfig,
@@ -21,5 +20,4 @@ module.exports = {
21
20
  commitlintConfig,
22
21
  jestConfig,
23
22
  jestNodeConfig,
24
- loadRoutes,
25
23
  };
package/dist/esm/index.js CHANGED
@@ -8,7 +8,7 @@ import { jestConfig } from "./testing/jest.config.cjs";
8
8
  import { vitestConfig } from "./testing/vitest.config.js";
9
9
  import { jestNodeConfig } from "./testing/jest.node.config.cjs";
10
10
  import { lintStagedConfig } from "./lint-config/lint-staged.config.js";
11
- import { loadRoutes } from "./server/app-routes.cjs";
11
+ import { loadRoutes } from "./server/appRoutes.js";
12
12
  export {
13
13
  babelConfig,
14
14
  commitlintConfig,
@@ -1,51 +1,51 @@
1
1
  /* eslint-disable max-lines */
2
- const prettierOptions = require('../prettier.config.cjs');
2
+ const prettierOptions = require("../prettier.config.cjs");
3
3
  // const webpackConfig = require('../../webpack/webpack.prod.babel');
4
4
 
5
5
  exports.baseExtends = [
6
- 'plugin:eslint-comments/recommended',
7
- 'plugin:import/recommended',
8
- 'plugin:prettier/recommended',
9
- 'plugin:jest/recommended',
10
- 'plugin:jsdoc/recommended',
11
- 'plugin:wdio/recommended',
12
- 'plugin:testing-library/dom',
13
- 'plugin:storybook/recommended',
6
+ "plugin:eslint-comments/recommended",
7
+ "plugin:import/recommended",
8
+ "plugin:prettier/recommended",
9
+ "plugin:jest/recommended",
10
+ "plugin:jsdoc/recommended",
11
+ "plugin:wdio/recommended",
12
+ "plugin:testing-library/dom",
13
+ "plugin:storybook/recommended",
14
14
  ];
15
15
 
16
- const basePlugins = ['testing-library', 'jest', 'jsdoc', 'wdio', 'import'];
16
+ const basePlugins = ["testing-library", "jest", "jsdoc", "wdio", "import"];
17
17
  exports.basePlugins = basePlugins;
18
18
 
19
19
  exports.baseOverrides = [
20
20
  {
21
- files: ['*.func.spec.js', '*.visual.spec.js'],
21
+ files: ["*.func.spec.js", "*.visual.spec.js"],
22
22
  rules: {
23
- 'jest/valid-expect': 'off',
23
+ "jest/valid-expect": "off",
24
24
  },
25
25
  },
26
26
  ];
27
27
 
28
28
  const baseRules = {
29
- 'prettier/prettier': ['error', prettierOptions],
30
- 'arrow-body-style': [2, 'as-needed'],
31
- 'class-methods-use-this': 0,
32
- 'import/imports-first': 0,
33
- 'import/newline-after-import': 0,
34
- 'import/no-dynamic-require': 0,
35
- 'import/no-extraneous-dependencies': 0,
36
- 'import/no-named-as-default': 0,
37
- 'import/no-unresolved': [
29
+ "prettier/prettier": ["error", prettierOptions],
30
+ "arrow-body-style": [2, "as-needed"],
31
+ "class-methods-use-this": 0,
32
+ "import/imports-first": 0,
33
+ "import/newline-after-import": 0,
34
+ "import/no-dynamic-require": 0,
35
+ "import/no-extraneous-dependencies": 0,
36
+ "import/no-named-as-default": 0,
37
+ "import/no-unresolved": [
38
38
  2,
39
39
  { caseSensitive: true, caseSensitiveStrict: true },
40
40
  ], // Tip: https://github.com/import-js/eslint-plugin-import/issues/1868
41
- 'import/no-webpack-loader-syntax': 0,
42
- 'import/prefer-default-export': 0,
43
- 'import/extensions': [
41
+ "import/no-webpack-loader-syntax": 0,
42
+ "import/prefer-default-export": 0,
43
+ "import/extensions": [
44
44
  2,
45
- 'never',
45
+ "never",
46
46
  {
47
- json: 'ignorePackages',
48
- js: 'ignorePackages',
47
+ json: "ignorePackages",
48
+ js: "ignorePackages",
49
49
  },
50
50
  ],
51
51
  indent: [
@@ -55,72 +55,72 @@ const baseRules = {
55
55
  SwitchCase: 1,
56
56
  },
57
57
  ],
58
- 'max-lines': ['error', { max: 120, skipComments: true }],
59
- complexity: ['error', { max: 10 }],
60
- 'max-depth': ['error', { max: 4 }],
61
- 'max-lines-per-function': 0,
62
- 'max-nested-callbacks': ['error', { max: 3 }],
63
- 'max-params': ['error', { max: 3 }],
64
- 'max-statements': ['error', { max: 20 }],
65
- 'max-len': 0,
66
- 'newline-per-chained-call': 0,
67
- 'no-confusing-arrow': 0,
68
- 'no-console': 1,
69
- 'no-param-reassign': ['error', { props: false }],
70
- 'no-unused-vars': 2,
71
- 'no-use-before-define': 0,
72
- 'prefer-template': 2,
73
- 'require-yield': 0,
74
- 'jsdoc/require-jsdoc': 0,
75
- 'eslint-comments/disable-enable-pair': 0,
58
+ "max-lines": ["error", { max: 120, skipComments: true }],
59
+ complexity: ["error", { max: 10 }],
60
+ "max-depth": ["error", { max: 4 }],
61
+ "max-lines-per-function": 0,
62
+ "max-nested-callbacks": ["error", { max: 3 }],
63
+ "max-params": ["error", { max: 3 }],
64
+ "max-statements": ["error", { max: 20 }],
65
+ "max-len": 0,
66
+ "newline-per-chained-call": 0,
67
+ "no-confusing-arrow": 0,
68
+ "no-console": 1,
69
+ "no-param-reassign": ["error", { props: false }],
70
+ "no-unused-vars": 2,
71
+ "no-use-before-define": 0,
72
+ "prefer-template": 2,
73
+ "require-yield": 0,
74
+ "jsdoc/require-jsdoc": 0,
75
+ "eslint-comments/disable-enable-pair": 0,
76
76
  };
77
77
 
78
78
  exports.baseRules = baseRules;
79
79
 
80
80
  const reactRules = {
81
- 'jsx-a11y/aria-props': 2,
82
- 'jsx-a11y/heading-has-content': 0,
83
- 'jsx-a11y/label-has-associated-control': [
81
+ "jsx-a11y/aria-props": 2,
82
+ "jsx-a11y/heading-has-content": 0,
83
+ "jsx-a11y/label-has-associated-control": [
84
84
  2,
85
85
  {
86
86
  // NOTE: If this error triggers, either disable it or add
87
87
  // your custom components, labels and attributes via these options
88
88
  // See https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/label-has-associated-control.md
89
- controlComponents: ['Input'],
89
+ controlComponents: ["Input"],
90
90
  },
91
91
  ],
92
- 'jsx-a11y/label-has-for': 0,
93
- 'jsx-a11y/mouse-events-have-key-events': 2,
94
- 'jsx-a11y/role-has-required-aria-props': 2,
95
- 'jsx-a11y/role-supports-aria-props': 2,
96
- 'react/destructuring-assignment': 0,
97
- 'react-hooks/rules-of-hooks': 'error',
98
- 'react/jsx-closing-tag-location': 0,
99
- 'react/forbid-prop-types': 0,
100
- 'react/jsx-first-prop-new-line': [2, 'multiline'],
101
- 'react/jsx-no-target-blank': 0,
102
- 'react/jsx-props-no-spreading': 0,
103
- 'react/jsx-uses-vars': 2,
104
- 'react/require-default-props': 0,
105
- 'react/require-extension': 0,
106
- 'react/self-closing-comp': 0,
107
- 'react/sort-comp': 0,
108
- 'react/react-in-jsx-scope': 0,
109
- 'react/jsx-filename-extension': [
92
+ "jsx-a11y/label-has-for": 0,
93
+ "jsx-a11y/mouse-events-have-key-events": 2,
94
+ "jsx-a11y/role-has-required-aria-props": 2,
95
+ "jsx-a11y/role-supports-aria-props": 2,
96
+ "react/destructuring-assignment": 0,
97
+ "react-hooks/rules-of-hooks": "error",
98
+ "react/jsx-closing-tag-location": 0,
99
+ "react/forbid-prop-types": 0,
100
+ "react/jsx-first-prop-new-line": [2, "multiline"],
101
+ "react/jsx-no-target-blank": 0,
102
+ "react/jsx-props-no-spreading": 0,
103
+ "react/jsx-uses-vars": 2,
104
+ "react/require-default-props": 0,
105
+ "react/require-extension": 0,
106
+ "react/self-closing-comp": 0,
107
+ "react/sort-comp": 0,
108
+ "react/react-in-jsx-scope": 0,
109
+ "react/jsx-filename-extension": [
110
110
  1,
111
- { extensions: ['.js', '.jsx', '.tsx', '.mdx'] },
111
+ { extensions: [".js", ".jsx", ".tsx", ".mdx"] },
112
112
  ],
113
- 'react/function-component-definition': [
113
+ "react/function-component-definition": [
114
114
  2,
115
- { namedComponents: 'arrow-function' },
115
+ { namedComponents: "arrow-function" },
116
116
  ],
117
- 'redux-saga/no-yield-in-race': 2,
118
- 'redux-saga/yield-effects': 2,
117
+ "redux-saga/no-yield-in-race": 2,
118
+ "redux-saga/yield-effects": 2,
119
119
  };
120
120
  exports.reactRules = reactRules;
121
121
 
122
122
  exports.baseConfig = {
123
- parser: '@babel/eslint-parser',
123
+ parser: "@babel/eslint-parser",
124
124
  plugins: basePlugins,
125
125
  env: {
126
126
  jest: true,
@@ -129,32 +129,35 @@ exports.baseConfig = {
129
129
  es2021: true,
130
130
  },
131
131
  parserOptions: {
132
- sourceType: 'module',
132
+ sourceType: "module",
133
133
  ecmaFeatures: {
134
134
  jsx: true,
135
135
  },
136
+ babelOptions: {
137
+ plugins: ["@babel/plugin-syntax-import-assertions"],
138
+ },
136
139
  },
137
140
  settings: {
138
141
  react: {
139
- version: 'detect',
142
+ version: "detect",
140
143
  },
141
144
  jest: {
142
145
  version: 28,
143
146
  },
144
- 'import/resolver': {
147
+ "import/resolver": {
145
148
  node: {
146
- extensions: ['.js', '.jsx', '.ts', '.tsx']
149
+ extensions: [".js", ".jsx", ".ts", ".tsx"],
147
150
  },
148
151
  },
149
152
  },
150
153
  ignorePatterns: [
151
- '/build/**/*',
152
- '/dist/**/*',
153
- '/reports/**/*',
154
- '/coverage/**/*',
155
- '/demo/**/*',
156
- '/docs/**/*',
157
- '/temp/**/*',
158
- '**/vendor/*.js',
154
+ "/build/**/*",
155
+ "/dist/**/*",
156
+ "/reports/**/*",
157
+ "/coverage/**/*",
158
+ "/demo/**/*",
159
+ "/docs/**/*",
160
+ "/temp/**/*",
161
+ "**/vendor/*.js",
159
162
  ],
160
163
  };
@@ -15,5 +15,5 @@ exports.stylelintConfig = {
15
15
  'stylelint-config-recommended',
16
16
  'stylelint-config-styled-components',
17
17
  ],
18
- rules: { 'selector-type-no-unknown': null, 'no-extra-semicolons': null, 'function-no-unknown': null },
18
+ rules: { 'selector-type-no-unknown': null, 'function-no-unknown': null },
19
19
  };
@@ -17,7 +17,7 @@ const deleteTags = (cmd, filter) => {
17
17
  const tags = result.toString().split("\n").join(" ");
18
18
  execSync(`git tag -d ${filter ? filter(tags) : tags}`, { cwd });
19
19
  };
20
- const tagsFromOtherBranches = (tags = []) => {
20
+ const tagsFromOtherBranches = (tags) => {
21
21
  const regex = branchTags[branchName] || branchTags.master;
22
22
  return tags.split(" ").filter((tagName) => isSemVersion(tagName) && !regex.test(tagName)).join(" ");
23
23
  };