@elliemae/pui-cli 7.27.0-beta.1 → 8.0.0-next.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cli.js +14 -12
- package/dist/cjs/commands/build.js +8 -7
- package/dist/cjs/commands/codemod.js +6 -8
- package/dist/cjs/commands/gendoc.js +1 -1
- package/dist/cjs/commands/lint.js +20 -22
- package/dist/cjs/commands/pack.js +24 -19
- package/dist/cjs/commands/start.js +10 -9
- package/dist/cjs/commands/storybook.js +18 -17
- package/dist/cjs/commands/test.js +36 -30
- package/dist/cjs/commands/tscheck.js +8 -7
- package/dist/cjs/commands/utils.js +12 -7
- package/dist/cjs/commands/version.js +20 -18
- package/dist/cjs/commands/vitest.js +31 -27
- package/dist/cjs/index.cjs +0 -2
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/lint-config/eslint/common.cjs +88 -85
- package/dist/cjs/monorepo/delete-merged-tags.js +1 -1
- package/dist/cjs/monorepo/set-registry-version.js +2 -2
- package/dist/cjs/monorepo/set-workspace-version.js +2 -2
- package/dist/cjs/monorepo/utils.js +54 -0
- package/dist/cjs/release.config.cjs +0 -7
- package/dist/cjs/server/appRoutes.js +74 -0
- package/dist/cjs/server/csp.js +3 -4
- package/dist/cjs/server/index.js +13 -11
- package/dist/cjs/server/middlewares.js +7 -4
- package/dist/cjs/server/utils.js +1 -1
- package/dist/cjs/utils.js +50 -0
- package/dist/cjs/webpack/helpers.js +3 -3
- package/dist/cjs/webpack/webpack.base.babel.js +3 -10
- package/dist/cjs/webpack/webpack.dev.babel.js +12 -9
- package/dist/cjs/webpack/webpack.lib.base.babel.js +4 -5
- package/dist/cjs/webpack/webpack.lib.dev.babel.js +1 -0
- package/dist/cjs/webpack/webpack.prod.babel.js +7 -15
- package/dist/cjs/webpack/webpack.storybook.js +27 -20
- package/dist/esm/cli.js +14 -12
- package/dist/esm/commands/build.js +8 -7
- package/dist/esm/commands/codemod.js +6 -8
- package/dist/esm/commands/gendoc.js +1 -1
- package/dist/esm/commands/lint.js +26 -22
- package/dist/esm/commands/pack.js +31 -19
- package/dist/esm/commands/start.js +10 -9
- package/dist/esm/commands/storybook.js +18 -17
- package/dist/esm/commands/test.js +36 -30
- package/dist/esm/commands/tscheck.js +8 -7
- package/dist/esm/commands/utils.js +11 -6
- package/dist/esm/commands/version.js +20 -18
- package/dist/esm/commands/vitest.js +31 -27
- package/dist/esm/index.cjs +0 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/lint-config/eslint/common.cjs +88 -85
- package/dist/esm/monorepo/delete-merged-tags.js +1 -1
- package/dist/esm/monorepo/set-registry-version.js +2 -2
- package/dist/esm/monorepo/set-workspace-version.js +2 -2
- package/dist/esm/monorepo/utils.js +24 -0
- package/dist/esm/release.config.cjs +0 -7
- package/dist/{cjs/server/app-routes.cjs → esm/server/appRoutes.js} +25 -23
- package/dist/esm/server/csp.js +3 -4
- package/dist/esm/server/index.js +13 -11
- package/dist/esm/server/middlewares.js +7 -4
- package/dist/esm/server/utils.js +1 -1
- package/dist/esm/utils.js +20 -0
- package/dist/esm/webpack/helpers.js +3 -3
- package/dist/esm/webpack/webpack.base.babel.js +3 -10
- package/dist/esm/webpack/webpack.dev.babel.js +16 -10
- package/dist/esm/webpack/webpack.lib.base.babel.js +4 -5
- package/dist/esm/webpack/webpack.lib.dev.babel.js +1 -0
- package/dist/esm/webpack/webpack.prod.babel.js +7 -15
- package/dist/esm/webpack/webpack.storybook.js +27 -20
- package/dist/types/commands/build.d.ts +6 -14
- package/dist/types/commands/codemod.d.ts +6 -6
- package/dist/types/commands/gendoc.d.ts +2 -6
- package/dist/types/commands/lint.d.ts +8 -29
- package/dist/types/commands/pack.d.ts +8 -26
- package/dist/types/commands/start.d.ts +6 -13
- package/dist/types/commands/storybook.d.ts +8 -27
- package/dist/types/commands/test.d.ts +11 -39
- package/dist/types/commands/tscheck.d.ts +5 -14
- package/dist/types/commands/utils.d.ts +11 -11
- package/dist/types/commands/version.d.ts +9 -28
- package/dist/types/commands/vitest.d.ts +10 -35
- package/dist/types/index.d.cts +1 -2
- package/dist/types/index.d.ts +11 -11
- package/dist/types/lint-config/eslint/common.d.cts +58 -55
- package/dist/types/lint-config/eslint/non-react.d.cts +34 -31
- package/dist/types/lint-config/eslint/react.d.cts +58 -55
- package/dist/types/lint-config/eslint/typescript/non-react.d.cts +28 -28
- package/dist/types/lint-config/eslint/typescript/react.d.cts +52 -52
- package/dist/types/monorepo/delete-merged-tags.d.ts +1 -1
- package/dist/types/monorepo/set-registry-version.d.ts +1 -1
- package/dist/types/monorepo/set-workspace-version.d.ts +1 -1
- package/dist/types/monorepo/utils.d.ts +1 -0
- package/dist/types/release.config.d.cts +0 -2
- package/dist/types/server/appRoutes.d.ts +2 -0
- package/dist/types/server/csp.d.ts +12 -9
- package/dist/types/server/logger.d.ts +7 -4
- package/dist/types/server/middlewares.d.ts +6 -2
- package/dist/types/server/utils.d.ts +3 -3
- package/dist/types/testing/jest.config.d.cts +10 -10
- package/dist/types/testing/jest.node.config.d.cts +10 -10
- package/dist/types/utils.d.ts +4 -0
- package/dist/types/webpack/helpers.d.ts +19 -18
- package/dist/types/webpack/webpack.base.babel.d.ts +3 -106
- package/dist/types/webpack/webpack.dev.babel.d.ts +2 -1
- package/dist/types/webpack/webpack.lib.base.babel.d.ts +3 -102
- package/dist/types/webpack/webpack.lib.dev.babel.d.ts +3 -101
- package/dist/types/webpack/webpack.lib.prod.babel.d.ts +2 -101
- package/dist/types/webpack/webpack.prod.babel.d.ts +3 -2
- package/dist/types/webpack/webpack.storybook.d.ts +5 -4
- package/package.json +45 -30
- package/dist/cjs/typescript/app.tsconfig.json +0 -23
- package/dist/cjs/typescript/library.tsconfig.json +0 -23
- package/dist/esm/server/app-routes.cjs +0 -42
- package/dist/esm/typescript/app.tsconfig.json +0 -23
- package/dist/esm/typescript/library.tsconfig.json +0 -23
- package/dist/types/server/app-routes.d.cts +0 -1
|
@@ -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.
|
|
53
|
+
if (argv.passWithNoTests)
|
|
22
54
|
commandOptions += " --passWithNoTests";
|
|
23
|
-
if (argv.
|
|
55
|
+
if (argv.findReleatedTests)
|
|
24
56
|
commandOptions += " --bail --findRelatedTests";
|
|
25
|
-
if (argv.
|
|
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
|
|
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("-");
|
|
@@ -72,7 +72,7 @@ const getModulesInfo = async () => {
|
|
|
72
72
|
};
|
|
73
73
|
const writeAppInfo = async () => {
|
|
74
74
|
const appInfo = {
|
|
75
|
-
timestamp: new Date().toISOString(),
|
|
75
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
76
76
|
modules: await getModulesInfo(),
|
|
77
77
|
browserSupport: await getSupportedBrowsers(),
|
|
78
78
|
screenReaderSupport: [
|
|
@@ -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(
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
41
|
+
if (argv.passWithNoTests)
|
|
15
42
|
commandOptions += " --passWithNoTests";
|
|
16
|
-
if (argv.
|
|
43
|
+
if (argv.findReleatedTests)
|
|
17
44
|
commandOptions += " --related";
|
|
18
|
-
if (argv.
|
|
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
|
package/dist/esm/index.cjs
CHANGED
|
@@ -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/
|
|
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(
|
|
2
|
+
const prettierOptions = require("../prettier.config.cjs");
|
|
3
3
|
// const webpackConfig = require('../../webpack/webpack.prod.babel');
|
|
4
4
|
|
|
5
5
|
exports.baseExtends = [
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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 = [
|
|
16
|
+
const basePlugins = ["testing-library", "jest", "jsdoc", "wdio", "import"];
|
|
17
17
|
exports.basePlugins = basePlugins;
|
|
18
18
|
|
|
19
19
|
exports.baseOverrides = [
|
|
20
20
|
{
|
|
21
|
-
files: [
|
|
21
|
+
files: ["*.func.spec.js", "*.visual.spec.js"],
|
|
22
22
|
rules: {
|
|
23
|
-
|
|
23
|
+
"jest/valid-expect": "off",
|
|
24
24
|
},
|
|
25
25
|
},
|
|
26
26
|
];
|
|
27
27
|
|
|
28
28
|
const baseRules = {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
"import/no-webpack-loader-syntax": 0,
|
|
42
|
+
"import/prefer-default-export": 0,
|
|
43
|
+
"import/extensions": [
|
|
44
44
|
2,
|
|
45
|
-
|
|
45
|
+
"never",
|
|
46
46
|
{
|
|
47
|
-
json:
|
|
48
|
-
js:
|
|
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
|
-
|
|
59
|
-
complexity: [
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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: [
|
|
89
|
+
controlComponents: ["Input"],
|
|
90
90
|
},
|
|
91
91
|
],
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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: [
|
|
111
|
+
{ extensions: [".js", ".jsx", ".tsx", ".mdx"] },
|
|
112
112
|
],
|
|
113
|
-
|
|
113
|
+
"react/function-component-definition": [
|
|
114
114
|
2,
|
|
115
|
-
{ namedComponents:
|
|
115
|
+
{ namedComponents: "arrow-function" },
|
|
116
116
|
],
|
|
117
|
-
|
|
118
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
142
|
+
version: "detect",
|
|
140
143
|
},
|
|
141
144
|
jest: {
|
|
142
145
|
version: 28,
|
|
143
146
|
},
|
|
144
|
-
|
|
147
|
+
"import/resolver": {
|
|
145
148
|
node: {
|
|
146
|
-
extensions: [
|
|
149
|
+
extensions: [".js", ".jsx", ".ts", ".tsx"],
|
|
147
150
|
},
|
|
148
151
|
},
|
|
149
152
|
},
|
|
150
153
|
ignorePatterns: [
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
154
|
+
"/build/**/*",
|
|
155
|
+
"/dist/**/*",
|
|
156
|
+
"/reports/**/*",
|
|
157
|
+
"/coverage/**/*",
|
|
158
|
+
"/demo/**/*",
|
|
159
|
+
"/docs/**/*",
|
|
160
|
+
"/temp/**/*",
|
|
161
|
+
"**/vendor/*.js",
|
|
159
162
|
],
|
|
160
163
|
};
|
|
@@ -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
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readFile, writeFile } from "node:fs/promises";
|
|
2
2
|
import fg from "fast-glob";
|
|
3
3
|
import normalizePath from "normalize-path";
|
|
4
|
-
import { findMonoRepoRoot } from "./utils.
|
|
4
|
+
import { findMonoRepoRoot } from "./utils.js";
|
|
5
5
|
const monorepoRoot = normalizePath(findMonoRepoRoot() || "");
|
|
6
6
|
const setRegistryVersion = async () => {
|
|
7
7
|
const files = await fg([
|
|
@@ -9,7 +9,7 @@ const setRegistryVersion = async () => {
|
|
|
9
9
|
`${monorepoRoot}/apps/*/package.json`,
|
|
10
10
|
`${monorepoRoot}/package.json`
|
|
11
11
|
]);
|
|
12
|
-
Promise.all(
|
|
12
|
+
await Promise.all(
|
|
13
13
|
files.map(async (file) => {
|
|
14
14
|
let pkgJSONData = await readFile(file, "utf8");
|
|
15
15
|
const pkgVersion = JSON.parse(pkgJSONData).version;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { readFile, writeFile } from "node:fs/promises";
|
|
2
2
|
import fg from "fast-glob";
|
|
3
3
|
import normalizePath from "normalize-path";
|
|
4
|
-
import { findMonoRepoRoot } from "./utils.
|
|
4
|
+
import { findMonoRepoRoot } from "./utils.js";
|
|
5
5
|
const monorepoRoot = normalizePath(findMonoRepoRoot() || "");
|
|
6
6
|
const setWorkspaceVersion = async () => {
|
|
7
7
|
const files = await fg([
|
|
@@ -9,7 +9,7 @@ const setWorkspaceVersion = async () => {
|
|
|
9
9
|
`${monorepoRoot}/apps/*/package.json`,
|
|
10
10
|
`${monorepoRoot}/package.json`
|
|
11
11
|
]);
|
|
12
|
-
Promise.all(
|
|
12
|
+
await Promise.all(
|
|
13
13
|
files.map(async (file) => {
|
|
14
14
|
let pkgJSONData = await readFile(file, "utf8");
|
|
15
15
|
const pkgVersion = JSON.parse(pkgJSONData).version;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { execSync } from "child_process";
|
|
3
|
+
const WORKSPACE_DIR_ENV_VAR = "NPM_CONFIG_WORKSPACE_DIR";
|
|
4
|
+
const WORKSPACE_MANIFEST_FILENAME = "pnpm-workspace.yaml";
|
|
5
|
+
const getPNPMWorkspaceLocation = (cwd) => {
|
|
6
|
+
let location = null;
|
|
7
|
+
for (const fileName of [WORKSPACE_MANIFEST_FILENAME, "pnpm-workspace.yml"]) {
|
|
8
|
+
try {
|
|
9
|
+
const result = execSync(`npx find-up ${fileName}`, { cwd });
|
|
10
|
+
location = result.toString().trim();
|
|
11
|
+
break;
|
|
12
|
+
} catch (err) {
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return location;
|
|
16
|
+
};
|
|
17
|
+
const findMonoRepoRoot = (cwd = process.cwd()) => {
|
|
18
|
+
const workspaceManifestDirEnvVar = process.env[WORKSPACE_DIR_ENV_VAR] ?? process.env[WORKSPACE_DIR_ENV_VAR.toLowerCase()];
|
|
19
|
+
const workspaceManifestLocation = workspaceManifestDirEnvVar ? path.join(workspaceManifestDirEnvVar, "pnpm-workspace.yaml") : getPNPMWorkspaceLocation(cwd);
|
|
20
|
+
return workspaceManifestLocation && path.dirname(workspaceManifestLocation);
|
|
21
|
+
};
|
|
22
|
+
export {
|
|
23
|
+
findMonoRepoRoot
|
|
24
|
+
};
|