@elliemae/pui-cli 9.0.0-alpha.5 → 9.0.0-alpha.7

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.
@@ -1,11 +1,9 @@
1
1
  import eslint from '@eslint/js';
2
2
  import { defineConfig } from 'eslint/config';
3
3
  import eslintConfigPrettier from 'eslint-config-prettier';
4
- import eslintComments from 'eslint-plugin-eslint-comments';
5
4
  import importX from 'eslint-plugin-import-x';
6
5
  import jest from 'eslint-plugin-jest';
7
6
  import testingLibrary from 'eslint-plugin-testing-library';
8
- import wdio from 'eslint-plugin-wdio';
9
7
  import globals from 'globals';
10
8
  import tseslint from 'typescript-eslint';
11
9
  import {
@@ -17,6 +15,7 @@ import {
17
15
  testingLibraryDomRules,
18
16
  testingLibraryReactRules,
19
17
  wdioGlobals,
18
+ wdioPlugin,
20
19
  wdioRecommendedRules,
21
20
  wdioSpecFiles,
22
21
  } from './presets.mjs';
@@ -51,7 +50,6 @@ export function createBaseFlatConfigs(tsRules) {
51
50
  eslintConfigPrettier,
52
51
  {
53
52
  plugins: {
54
- 'eslint-comments': eslintComments,
55
53
  'import-x': importX,
56
54
  },
57
55
  languageOptions: {
@@ -121,10 +119,13 @@ export function createBaseFlatConfigs(tsRules) {
121
119
  },
122
120
  {
123
121
  files: wdioSpecFiles,
124
- plugins: { wdio, jest },
122
+ plugins: { wdio: wdioPlugin, jest },
125
123
  languageOptions: { globals: wdioGlobals },
126
124
  rules: {
127
125
  ...wdioRecommendedRules,
126
+ // JS e2e specs are not type-checked; use await-expect instead of no-floating-promise.
127
+ 'wdio/await-expect': 'error',
128
+ 'wdio/no-floating-promise': 'off',
128
129
  'jest/valid-expect': 'off',
129
130
  },
130
131
  },
@@ -0,0 +1,20 @@
1
+ /**
2
+ * ESLint 10 removed deprecated context APIs (e.g. getSourceCode).
3
+ * Wrap legacy plugins until their maintainers publish compatible releases.
4
+ */
5
+ import { fixupConfigRules, fixupPluginRules } from '@eslint/compat';
6
+ import reduxSaga from 'eslint-plugin-redux-saga';
7
+ import storybook from 'eslint-plugin-storybook';
8
+
9
+ const storybookFlat =
10
+ storybook.configs['flat/recommended'] ??
11
+ storybook.configs.recommended ??
12
+ [];
13
+
14
+ /** @type {import('eslint').ESLint.Plugin} */
15
+ export const reduxSagaPlugin = fixupPluginRules(reduxSaga);
16
+
17
+ /** Storybook flat presets with ESLint 10 compatibility shims applied. */
18
+ export const storybookFlatConfigs = fixupConfigRules(
19
+ Array.isArray(storybookFlat) ? storybookFlat : [storybookFlat],
20
+ );
@@ -1,16 +1,15 @@
1
1
  /**
2
2
  * Preset rule bundles and file globs computed once at module load (not per config factory call).
3
3
  */
4
- import eslintComments from 'eslint-plugin-eslint-comments';
5
4
  import importX from 'eslint-plugin-import-x';
6
5
  import jest from 'eslint-plugin-jest';
7
6
  import jsxA11y from 'eslint-plugin-jsx-a11y';
8
7
  import react from 'eslint-plugin-react';
9
8
  import reactHooks from 'eslint-plugin-react-hooks';
10
9
  import reduxSaga from 'eslint-plugin-redux-saga';
11
- import storybook from 'eslint-plugin-storybook';
12
10
  import testingLibrary from 'eslint-plugin-testing-library';
13
11
  import wdio from 'eslint-plugin-wdio';
12
+ import { storybookFlatConfigs } from './compat.mjs';
14
13
 
15
14
  /** Application and integration tests (Jest + relaxed type-checked rules). */
16
15
  export const testFiles = [
@@ -50,7 +49,6 @@ export const storybookFiles = [
50
49
 
51
50
  /** @type {import('eslint').Linter.RulesRecord} */
52
51
  export const sharedCoreRules = {
53
- ...eslintComments.configs.recommended.rules,
54
52
  ...importX.configs.recommended.rules,
55
53
  'import-x/named': 'off',
56
54
  };
@@ -77,18 +75,22 @@ export const reactPresetRules = {
77
75
  ...reduxSaga.configs.recommended.rules,
78
76
  };
79
77
 
78
+ /**
79
+ * eslint-plugin-wdio v9 default export exposes config severities as `rules` when
80
+ * typescript-eslint is installed. Use flat/recommended's nested plugin instead.
81
+ */
82
+ const wdioFlatRecommended =
83
+ wdio.configs['flat/recommended'] ?? wdio.configs.recommended;
84
+
85
+ export const wdioPlugin = wdioFlatRecommended.plugins?.wdio ?? wdio;
86
+
80
87
  /** @type {import('eslint').Linter.RulesRecord} */
81
- export const wdioRecommendedRules = wdio.configs.recommended.rules ?? {};
88
+ export const wdioRecommendedRules = wdioFlatRecommended.rules ?? {};
82
89
 
83
90
  /** @type {Record<string, boolean>} */
84
- export const wdioGlobals = wdio.configs.recommended.globals ?? {};
85
-
86
- const storybookFlat =
87
- storybook.configs['flat/recommended'] ??
88
- storybook.configs.recommended ??
89
- [];
91
+ export const wdioGlobals =
92
+ wdioFlatRecommended.languageOptions?.globals ??
93
+ wdio.configs.recommended.globals ??
94
+ {};
90
95
 
91
- /** Normalized once — Storybook flat config may be array or single object. */
92
- export const storybookFlatConfigs = Array.isArray(storybookFlat)
93
- ? storybookFlat
94
- : [storybookFlat];
96
+ export { storybookFlatConfigs };
@@ -2,8 +2,8 @@ import { defineConfig } from 'eslint/config';
2
2
  import jsxA11y from 'eslint-plugin-jsx-a11y';
3
3
  import react from 'eslint-plugin-react';
4
4
  import reactHooks from 'eslint-plugin-react-hooks';
5
- import reduxSaga from 'eslint-plugin-redux-saga';
6
5
  import { baseFlatConfigs, baseFlatConfigsStrict } from './common.mjs';
6
+ import { reduxSagaPlugin } from './compat.mjs';
7
7
  import {
8
8
  reactPresetRules,
9
9
  storybookFiles,
@@ -16,7 +16,7 @@ const reactPluginBlock = {
16
16
  react,
17
17
  'react-hooks': reactHooks,
18
18
  'jsx-a11y': jsxA11y,
19
- 'redux-saga': reduxSaga,
19
+ 'redux-saga': reduxSagaPlugin,
20
20
  },
21
21
  settings: {
22
22
  react: { version: 'detect' },
@@ -38,7 +38,6 @@ export const baseRules = {
38
38
  'no-param-reassign': ['error', { props: false }],
39
39
  'prefer-template': 'error',
40
40
  'require-yield': 'off',
41
- 'eslint-comments/disable-enable-pair': 'off',
42
41
  };
43
42
 
44
43
  /** Relaxed type-checked rules for test files (shared by default and strict configs). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elliemae/pui-cli",
3
- "version": "9.0.0-alpha.5",
3
+ "version": "9.0.0-alpha.7",
4
4
  "description": "ICE MT UI Platform CLI",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/cjs/index.cjs",
@@ -78,10 +78,11 @@
78
78
  "@babel/preset-react": "~7.28.5",
79
79
  "@babel/preset-typescript": "~7.28.5",
80
80
  "@babel/runtime": "~7.29.2",
81
- "@commitlint/cli": "~17.8.1",
82
- "@commitlint/config-conventional": "~17.8.1",
81
+ "@commitlint/cli": "~21.0.1",
82
+ "@commitlint/config-conventional": "~21.0.1",
83
83
  "@elliemae/browserslist-config-elliemae-latest-browsers": "~1.14.4",
84
- "@eslint/js": "~9.39.1",
84
+ "@eslint/compat": "~1.4.1",
85
+ "@eslint/js": "~10.0.1",
85
86
  "@faker-js/faker": "~7.6.0",
86
87
  "@nrwl/cli": "~15.9.7",
87
88
  "@nrwl/tao": "~15.9.7",
@@ -171,21 +172,19 @@
171
172
  "esbuild": "~0.28.0",
172
173
  "esbuild-loader": "~3.2.0",
173
174
  "esbuild-plugin-svgr": "~1.1.0",
174
- "eslint": "~9.39.1",
175
+ "eslint": "~10.4.0",
175
176
  "eslint-config-prettier": "~10.1.8",
176
177
  "eslint-import-resolver-typescript": "~4.4.4",
177
- "eslint-plugin-eslint-comments": "~3.2.0",
178
178
  "eslint-plugin-import-x": "~4.16.1",
179
- "eslint-plugin-jest": "~29.0.1",
180
- "eslint-plugin-jsdoc": "~50.8.0",
179
+ "eslint-plugin-jest": "~29.15.2",
181
180
  "eslint-plugin-jsx-a11y": "~6.10.2",
182
- "eslint-plugin-mdx": "~3.6.2",
181
+ "eslint-plugin-mdx": "~3.7.0",
183
182
  "eslint-plugin-react": "~7.37.5",
184
- "eslint-plugin-react-hooks": "~5.2.0",
183
+ "eslint-plugin-react-hooks": "~7.1.1",
185
184
  "eslint-plugin-redux-saga": "~1.3.2",
186
185
  "eslint-plugin-storybook": "~0.12.0",
187
- "eslint-plugin-testing-library": "~7.4.0",
188
- "eslint-plugin-wdio": "~8.37.0",
186
+ "eslint-plugin-testing-library": "~7.16.2",
187
+ "eslint-plugin-wdio": "~9.27.1",
189
188
  "execa": "~7.2.0",
190
189
  "express": "~4.22.1",
191
190
  "express-static-gzip": "~2.2.0",
@@ -195,7 +194,7 @@
195
194
  "find-up": "~6.3.0",
196
195
  "find-up-cli": "~5.0.0",
197
196
  "glob": "~11.1.0",
198
- "globals": "~16.5.0",
197
+ "globals": "~17.6.0",
199
198
  "happy-dom": "~12.10.3",
200
199
  "helmet": "~8.1.0",
201
200
  "html-loader": "~4.2.0",
@@ -214,7 +213,7 @@
214
213
  "jscodeshift": "~0.16.1",
215
214
  "jsdoc": "~4.0.5",
216
215
  "lerna": "~6.6.2",
217
- "lint-staged": "~13.3.0",
216
+ "lint-staged": "~17.0.5",
218
217
  "lodash": "~4.18.1",
219
218
  "mini-css-extract-plugin": "~2.10.2",
220
219
  "minimist": "~1.2.8",
@@ -236,7 +235,7 @@
236
235
  "postcss-loader": "~7.3.4",
237
236
  "postcss-preset-env": "9.6.0",
238
237
  "postcss-styled-syntax": "~0.7.1",
239
- "prettier": "~2.8.8",
238
+ "prettier": "~3.8.3",
240
239
  "prisma": "~4.16.2",
241
240
  "pug": "~3.0.4",
242
241
  "pug-loader": "~2.4.0",
@@ -254,8 +253,8 @@
254
253
  "storybook-addon-turbo-build": "~1.1.0",
255
254
  "storybook-react-router": "~1.0.8",
256
255
  "style-loader": "~3.3.4",
257
- "stylelint": "~15.11.0",
258
- "stylelint-config-recommended": "~12.0.0",
256
+ "stylelint": "~17.12.0",
257
+ "stylelint-config-recommended": "~18.0.0",
259
258
  "stylelint-config-styled-components": "~0.1.1",
260
259
  "supertest": "~6.3.4",
261
260
  "swc-loader": "~0.2.7",
@@ -265,7 +264,7 @@
265
264
  "tsx": "~4.21.0",
266
265
  "typedoc": "~0.28.19",
267
266
  "typescript": "5.9.3",
268
- "typescript-eslint": "~8.46.2",
267
+ "typescript-eslint": "~8.59.4",
269
268
  "update-notifier": "~6.0.2",
270
269
  "url-loader": "~4.1.1",
271
270
  "uuid": "~9.0.1",