@elliemae/pui-cli 9.0.0-alpha.10 → 9.0.0-alpha.12
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/README.md +2 -1
- package/build/docs/404.html +2 -2
- package/build/docs/api/functions/loadRoutes/index.html +2 -2
- package/build/docs/api/index.html +2 -2
- package/build/docs/api/type-aliases/LIB_NAME/index.html +2 -2
- package/build/docs/api/variables/babelConfig/index.html +2 -2
- package/build/docs/api/variables/commitlintConfig/index.html +2 -2
- package/build/docs/api/variables/eslintBaseConfig/index.html +2 -2
- package/build/docs/api/variables/eslintConfig/index.html +2 -2
- package/build/docs/api/variables/eslintFlatBaseConfig/index.html +2 -2
- package/build/docs/api/variables/eslintFlatBaseConfigStrict/index.html +2 -2
- package/build/docs/api/variables/eslintFlatConfig/index.html +2 -2
- package/build/docs/api/variables/eslintFlatConfigStrict/index.html +2 -2
- package/build/docs/api/variables/jestConfig/index.html +2 -2
- package/build/docs/api/variables/jestNodeConfig/index.html +2 -2
- package/build/docs/api/variables/lintStagedConfig/index.html +2 -2
- package/build/docs/api/variables/prettierConfig/index.html +2 -2
- package/build/docs/api/variables/stylelintConfig/index.html +2 -2
- package/build/docs/api/variables/vitestConfig/index.html +2 -2
- package/build/docs/assets/js/04ee7372.2852111b.js +1 -0
- package/build/docs/assets/js/13097d8d.7877421c.js +1 -0
- package/build/docs/assets/js/4fb6949f.69e375e4.js +1 -0
- package/build/docs/assets/js/{main.00e13c37.js → main.d5acb4ca.js} +2 -2
- package/build/docs/assets/js/{runtime~main.cb214d1a.js → runtime~main.4f7cd700.js} +1 -1
- package/build/docs/eslint-rules-migration/index.html +6 -6
- package/build/docs/index.html +2 -2
- package/build/docs/pui-cli-9-migration/index.html +93 -6
- package/build/docs/ssl-certificate-setup/index.html +2 -2
- package/build/docs/stylelint-migration/index.html +2 -2
- package/build/docs/usage-guide/index.html +4 -4
- package/dist/cjs/commands/storybook.js +33 -4
- package/dist/cjs/lint-config/eslint/flat/compat.mjs +5 -5
- package/dist/cjs/skills/migrate-storybook-out-of-cjs/SKILL.md +188 -0
- package/dist/cjs/skills/migrate-to-pui-cli-9/SKILL.md +131 -18
- package/dist/cjs/testing/jest.config.cjs +5 -1
- package/dist/cjs/testing/setup-textencoder.cjs +4 -0
- package/dist/cjs/webpack/webpack.storybook.js +62 -0
- package/dist/esm/commands/storybook.js +22 -4
- package/dist/esm/lint-config/eslint/flat/compat.mjs +5 -5
- package/dist/esm/skills/migrate-storybook-out-of-cjs/SKILL.md +188 -0
- package/dist/esm/skills/migrate-to-pui-cli-9/SKILL.md +131 -18
- package/dist/esm/testing/jest.config.cjs +5 -1
- package/dist/esm/testing/setup-textencoder.cjs +4 -0
- package/dist/esm/webpack/webpack.storybook.js +61 -0
- package/dist/types/lib/commands/storybook.d.ts +1 -0
- package/dist/types/lib/lint-config/eslint/flat/compat.d.mts +1 -1
- package/dist/types/lib/testing/setup-textencoder.d.cts +1 -0
- package/dist/types/lib/webpack/webpack.storybook.d.ts +2 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/lib/lint-config/eslint/flat/compat.mjs +5 -5
- package/lib/skills/migrate-storybook-out-of-cjs/SKILL.md +188 -0
- package/lib/skills/migrate-to-pui-cli-9/SKILL.md +131 -18
- package/package.json +18 -25
- package/build/docs/assets/js/04ee7372.eaa386ed.js +0 -1
- package/build/docs/assets/js/13097d8d.c1821d28.js +0 -1
- package/build/docs/assets/js/4fb6949f.369cc1b9.js +0 -1
- /package/build/docs/assets/js/{main.00e13c37.js.LICENSE.txt → main.d5acb4ca.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{"use strict";var e,a,d,r,t,b={},f={};function c(e){var a=f[e];if(void 0!==a)return a.exports;var d=f[e]={id:e,loaded:!1,exports:{}};return b[e].call(d.exports,d,d.exports,c),d.loaded=!0,d.exports}c.m=b,c.c=f,e=[],c.O=(a,d,r,t)=>{if(!d){var b=1/0;for(i=0;i<e.length;i++){for(var[d,r,t]=e[i],f=!0,o=0;o<d.length;o++)(!1&t||b>=t)&&Object.keys(c.O).every(e=>c.O[e](d[o]))?d.splice(o--,1):(f=!1,t<b&&(b=t));if(f){e.splice(i--,1);var n=r();void 0!==n&&(a=n)}}return a}t=t||0;for(var i=e.length;i>0&&e[i-1][2]>t;i--)e[i]=e[i-1];e[i]=[d,r,t]},c.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return c.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var t=Object.create(null);c.r(t);var b={};a=a||[null,d({}),d([]),d(d)];for(var f=2&r&&e;("object"==typeof f||"function"==typeof f)&&!~a.indexOf(f);f=d(f))Object.getOwnPropertyNames(f).forEach(a=>b[a]=()=>e[a]);return b.default=()=>e,c.d(t,b),t},c.d=(e,a)=>{for(var d in a)c.o(a,d)&&!c.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((a,d)=>(c.f[d](e,a),a),[])),c.u=e=>"assets/js/"+({594:"5e8c322a",1019:"4fb6949f",1091:"5fb3c522",1380:"5befad71",1572:"0a1d0315",1712:"0551d4dd",1724:"e5f79924",2113:"6bd11e52",2577:"f736c962",2960:"5d5f1db0",3361:"c377a04b",3891:"71f6d02b",4676:"80e87108",5455:"13097d8d",5742:"aba21aa0",5908:"04ee7372",5983:"dfd75424",6130:"16b7bc88",6264:"b7b585d8",6688:"6e96545e",7098:"a7bd4aaa",7581:"37d86055",7589:"232a0286",7613:"b8ac1d98",8155:"bde5209a",8401:"17896441",9048:"a94703ab",9577:"1b9df811",9647:"5e95c892"}[e]||e)+"."+{97:"70eddfb5",213:"e69351b3",242:"73516ab6",247:"e1522e52",594:"ef3b894b",821:"8d4e2a80",936:"c151b43f",1019:"
|
|
1
|
+
(()=>{"use strict";var e,a,d,r,t,b={},f={};function c(e){var a=f[e];if(void 0!==a)return a.exports;var d=f[e]={id:e,loaded:!1,exports:{}};return b[e].call(d.exports,d,d.exports,c),d.loaded=!0,d.exports}c.m=b,c.c=f,e=[],c.O=(a,d,r,t)=>{if(!d){var b=1/0;for(i=0;i<e.length;i++){for(var[d,r,t]=e[i],f=!0,o=0;o<d.length;o++)(!1&t||b>=t)&&Object.keys(c.O).every(e=>c.O[e](d[o]))?d.splice(o--,1):(f=!1,t<b&&(b=t));if(f){e.splice(i--,1);var n=r();void 0!==n&&(a=n)}}return a}t=t||0;for(var i=e.length;i>0&&e[i-1][2]>t;i--)e[i]=e[i-1];e[i]=[d,r,t]},c.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return c.d(a,{a:a}),a},d=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,c.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var t=Object.create(null);c.r(t);var b={};a=a||[null,d({}),d([]),d(d)];for(var f=2&r&&e;("object"==typeof f||"function"==typeof f)&&!~a.indexOf(f);f=d(f))Object.getOwnPropertyNames(f).forEach(a=>b[a]=()=>e[a]);return b.default=()=>e,c.d(t,b),t},c.d=(e,a)=>{for(var d in a)c.o(a,d)&&!c.o(e,d)&&Object.defineProperty(e,d,{enumerable:!0,get:a[d]})},c.f={},c.e=e=>Promise.all(Object.keys(c.f).reduce((a,d)=>(c.f[d](e,a),a),[])),c.u=e=>"assets/js/"+({594:"5e8c322a",1019:"4fb6949f",1091:"5fb3c522",1380:"5befad71",1572:"0a1d0315",1712:"0551d4dd",1724:"e5f79924",2113:"6bd11e52",2577:"f736c962",2960:"5d5f1db0",3361:"c377a04b",3891:"71f6d02b",4676:"80e87108",5455:"13097d8d",5742:"aba21aa0",5908:"04ee7372",5983:"dfd75424",6130:"16b7bc88",6264:"b7b585d8",6688:"6e96545e",7098:"a7bd4aaa",7581:"37d86055",7589:"232a0286",7613:"b8ac1d98",8155:"bde5209a",8401:"17896441",9048:"a94703ab",9577:"1b9df811",9647:"5e95c892"}[e]||e)+"."+{97:"70eddfb5",213:"e69351b3",242:"73516ab6",247:"e1522e52",594:"ef3b894b",821:"8d4e2a80",936:"c151b43f",1019:"69e375e4",1091:"da5628e8",1126:"fa547e9c",1127:"f28430e6",1298:"fb0939c9",1380:"5f19afb5",1572:"fc8f91a7",1617:"b2623271",1700:"4f7a9007",1712:"ebb18f4f",1724:"c793a74d",2113:"08b95209",2297:"e63290f4",2399:"cc5803e0",2577:"dbd0d004",2673:"da75a556",2805:"f0505f8c",2960:"c5aa5afa",3361:"0f8625c6",3395:"eb3dad5b",3499:"2d5c6821",3552:"9272c0d9",3720:"8e7f36d4",3891:"cfd98385",3992:"0ac29b2f",4069:"301f1115",4134:"553b3645",4257:"9afce6ac",4676:"f9507b95",4772:"6294b364",4884:"9dbe23e5",5196:"98f7e06a",5248:"ee436cea",5428:"71752e9a",5455:"7877421c",5742:"3bbcf0cc",5908:"2852111b",5964:"0728ed91",5968:"5f4ccba7",5983:"51c4e2cb",6130:"c3779e27",6264:"6d53e73f",6486:"68ae0007",6688:"30c1b801",6704:"2615a5c6",7080:"efd5ba6c",7098:"30ffad02",7201:"e90ba636",7344:"95656e38",7516:"b6668d60",7525:"a8d0db87",7540:"7a4353cf",7581:"47211796",7589:"33b2782b",7613:"62684003",7985:"8c6943d6",8049:"8ba75278",8152:"f2bebb2f",8155:"f5bca8b2",8290:"a4f7a2ca",8355:"864847a1",8389:"26a9caca",8401:"84339068",8585:"3cb09ff7",8788:"03856709",9048:"f1796514",9178:"50ac2954",9210:"1ac21da8",9354:"37ad86f9",9574:"b172d607",9577:"aaa95da1",9647:"f550b901",9852:"f77caf52",9953:"f6278635"}[e]+".js",c.miniCssF=e=>{},c.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),r={},t="@elliemae/pui-cli:",c.l=(e,a,d,b)=>{if(r[e])r[e].push(a);else{var f,o;if(void 0!==d)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var l=n[i];if(l.getAttribute("src")==e||l.getAttribute("data-webpack")==t+d){f=l;break}}f||(o=!0,(f=document.createElement("script")).charset="utf-8",c.nc&&f.setAttribute("nonce",c.nc),f.setAttribute("data-webpack",t+d),f.src=e),r[e]=[a];var u=(a,d)=>{f.onerror=f.onload=null,clearTimeout(s);var t=r[e];if(delete r[e],f.parentNode&&f.parentNode.removeChild(f),t&&t.forEach(e=>e(d)),a)return a(d)},s=setTimeout(u.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=u.bind(null,f.onerror),f.onload=u.bind(null,f.onload),o&&document.head.appendChild(f)}},c.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},c.dn=e=>{(Object.getOwnPropertyDescriptor(e,"name")||{}).writable||Object.defineProperty(e,"name",{value:"default",configurable:!0})},c.p="/cli/",c.gca=function(e){return e={17896441:"8401","5e8c322a":"594","4fb6949f":"1019","5fb3c522":"1091","5befad71":"1380","0a1d0315":"1572","0551d4dd":"1712",e5f79924:"1724","6bd11e52":"2113",f736c962:"2577","5d5f1db0":"2960",c377a04b:"3361","71f6d02b":"3891","80e87108":"4676","13097d8d":"5455",aba21aa0:"5742","04ee7372":"5908",dfd75424:"5983","16b7bc88":"6130",b7b585d8:"6264","6e96545e":"6688",a7bd4aaa:"7098","37d86055":"7581","232a0286":"7589",b8ac1d98:"7613",bde5209a:"8155",a94703ab:"9048","1b9df811":"9577","5e95c892":"9647"}[e]||e,c.p+c.u(e)},(()=>{var e={5354:0,1869:0};c.f.j=(a,d)=>{var r=c.o(e,a)?e[a]:void 0;if(0!==r)if(r)d.push(r[2]);else if(/^(1869|5354)$/.test(a))e[a]=0;else{var t=new Promise((d,t)=>r=e[a]=[d,t]);d.push(r[2]=t);var b=c.p+c.u(a),f=new Error;c.l(b,d=>{if(c.o(e,a)&&(0!==(r=e[a])&&(e[a]=void 0),r)){var t=d&&("load"===d.type?"missing":d.type),b=d&&d.target&&d.target.src;f.message="Loading chunk "+a+" failed.\n("+t+": "+b+")",f.name="ChunkLoadError",f.type=t,f.request=b,r[1](f)}},"chunk-"+a,a)}},c.O.j=a=>0===e[a];var a=(a,d)=>{var r,t,[b,f,o]=d,n=0;if(b.some(a=>0!==e[a])){for(r in f)c.o(f,r)&&(c.m[r]=f[r]);if(o)var i=o(c)}for(a&&a(d);n<b.length;n++)t=b[n],c.o(e,t)&&e[t]&&e[t][0](),e[t]=0;return c.O(i)},d=globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[];d.forEach(a.bind(null,0)),d.push=a.bind(null,d.push.bind(d))})()})();
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.10.1">
|
|
6
6
|
<title data-rh="true">ESLint rules migration guide (legacy → ESLint 10 flat config) | Cli</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/cli/eslint-rules-migration"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="ESLint rules migration guide (legacy → ESLint 10 flat config) | Cli"><meta data-rh="true" name="description" content="This document compares the previous @elliemae/pui-cli ESLint setup (ESLint 8 + .eslintrc.cjs + Airbnb) with the current setup (ESLint 10 + eslint.config.mjs + typescript-eslint v8 flat config)."><meta data-rh="true" property="og:description" content="This document compares the previous @elliemae/pui-cli ESLint setup (ESLint 8 + .eslintrc.cjs + Airbnb) with the current setup (ESLint 10 + eslint.config.mjs + typescript-eslint v8 flat config)."><link data-rh="true" rel="icon" href="/cli/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/cli/eslint-rules-migration"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/eslint-rules-migration" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/eslint-rules-migration" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"ESLint rules migration guide (legacy → ESLint 10 flat config)","item":"https://pui.ice.com/cli/eslint-rules-migration"}]}</script><link rel="stylesheet" href="/cli/assets/css/styles.74603f39.css">
|
|
7
|
-
<script src="/cli/assets/js/runtime~main.
|
|
8
|
-
<script src="/cli/assets/js/main.
|
|
7
|
+
<script src="/cli/assets/js/runtime~main.4f7cd700.js" defer="defer"></script>
|
|
8
|
+
<script src="/cli/assets/js/main.d5acb4ca.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<svg style="display: none;"><defs>
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
<h3 class="anchor anchorTargetStickyNavbar_jFbF" id="removed-no-longer-extended">Removed (no longer extended)<a href="#removed-no-longer-extended" class="hash-link" aria-label="Direct link to Removed (no longer extended)" title="Direct link to Removed (no longer extended)" translate="no"></a></h3>
|
|
34
34
|
<table><thead><tr><th>Legacy extend</th><th>Impact</th></tr></thead><tbody><tr><td><code>airbnb</code> / <code>airbnb/hooks</code></td><td>React style rules from Airbnb (e.g. <code>react/jsx-props-no-spreading</code>, <code>react/no-array-index-key</code>, stricter JSX patterns) are <strong>gone</strong> unless we set them explicitly in PUI config.</td></tr><tr><td><code>airbnb-base</code></td><td>Same for non-React JS.</td></tr><tr><td><code>airbnb-typescript</code> / <code>airbnb-typescript/base</code></td><td>Airbnb + TypeScript combo rules removed.</td></tr><tr><td><code>plugin:prettier/recommended</code></td><td><code>prettier/prettier</code> is no longer an ESLint error.</td></tr><tr><td><code>plugin:import/recommended</code></td><td>Replaced by <code>eslint-plugin-import-x</code> flat recommended.</td></tr><tr><td><code>plugin:mdx/recommended</code></td><td>MDX-specific ESLint block removed from shared React config (Storybook flat config remains).</td></tr></tbody></table>
|
|
35
35
|
<h3 class="anchor anchorTargetStickyNavbar_jFbF" id="still-included-equivalent-or-better">Still included (equivalent or better)<a href="#still-included-equivalent-or-better" class="hash-link" aria-label="Direct link to Still included (equivalent or better)" title="Direct link to Still included (equivalent or better)" translate="no"></a></h3>
|
|
36
|
-
<table><thead><tr><th>Area</th><th>Legacy</th><th>Flat config</th></tr></thead><tbody><tr><td>Core JS</td><td>ESLint recommended (via Airbnb + plugins)</td><td><code>@eslint/js</code> <strong>recommended</strong></td></tr><tr><td>TypeScript</td><td><code>@typescript-eslint/recommended</code> + <strong>recommended-requiring-type-checking</strong></td><td><code>typescript-eslint</code> <strong>recommendedTypeChecked</strong></td></tr><tr><td>React</td><td><code>plugin:react/recommended</code> (via Airbnb)</td><td><code>eslint-plugin-react</code> <strong>recommended</strong></td></tr><tr><td>Hooks</td><td><code>react-hooks/rules-of-hooks</code> (explicit); <strong>no</strong> <code>exhaustive-deps</code> in old pui-cli</td><td><code>rules-of-hooks</code> <strong>error</strong> + <strong><code>exhaustive-deps</code> warn</strong> (new)</td></tr><tr><td>a11y</td><td><code>plugin:jsx-a11y/recommended</code></td><td><code>eslint-plugin-jsx-a11y</code> flat <strong>recommended</strong></td></tr><tr><td>Jest</td><td><code>plugin:jest/recommended</code></td><td><code>eslint-plugin-jest</code> <strong>recommended</strong></td></tr><tr><td>Testing Library</td><td><code>plugin:testing-library/dom</code></td><td>Same (<strong>dom</strong> rules only)</td></tr><tr><td>WDIO</td><td><code>plugin:wdio/recommended</code></td><td>Same</td></tr><tr><td>Redux Saga</td><td><code>plugin:redux-saga/recommended</code></td><td>Same</td></tr><tr><td>Storybook</td><td><code>plugin:storybook/recommended</code></td><td><code>eslint-plugin-storybook</code> flat <strong>recommended</strong> (
|
|
36
|
+
<table><thead><tr><th>Area</th><th>Legacy</th><th>Flat config</th></tr></thead><tbody><tr><td>Core JS</td><td>ESLint recommended (via Airbnb + plugins)</td><td><code>@eslint/js</code> <strong>recommended</strong></td></tr><tr><td>TypeScript</td><td><code>@typescript-eslint/recommended</code> + <strong>recommended-requiring-type-checking</strong></td><td><code>typescript-eslint</code> <strong>recommendedTypeChecked</strong></td></tr><tr><td>React</td><td><code>plugin:react/recommended</code> (via Airbnb)</td><td><code>eslint-plugin-react</code> <strong>recommended</strong></td></tr><tr><td>Hooks</td><td><code>react-hooks/rules-of-hooks</code> (explicit); <strong>no</strong> <code>exhaustive-deps</code> in old pui-cli</td><td><code>rules-of-hooks</code> <strong>error</strong> + <strong><code>exhaustive-deps</code> warn</strong> (new)</td></tr><tr><td>a11y</td><td><code>plugin:jsx-a11y/recommended</code></td><td><code>eslint-plugin-jsx-a11y</code> flat <strong>recommended</strong></td></tr><tr><td>Jest</td><td><code>plugin:jest/recommended</code></td><td><code>eslint-plugin-jest</code> <strong>recommended</strong></td></tr><tr><td>Testing Library</td><td><code>plugin:testing-library/dom</code></td><td>Same (<strong>dom</strong> rules only)</td></tr><tr><td>WDIO</td><td><code>plugin:wdio/recommended</code></td><td>Same</td></tr><tr><td>Redux Saga</td><td><code>plugin:redux-saga/recommended</code></td><td>Same</td></tr><tr><td>Storybook</td><td><code>plugin:storybook/recommended</code></td><td><code>eslint-plugin-storybook</code> flat <strong>recommended</strong> (v10, Storybook 10–compatible)</td></tr><tr><td>Prettier conflict</td><td><code>eslint-config-prettier</code> via <code>plugin:prettier/recommended</code></td><td><code>eslint-config-prettier</code> only (disables conflicting ESLint style rules)</td></tr></tbody></table>
|
|
37
37
|
<h3 class="anchor anchorTargetStickyNavbar_jFbF" id="optional-not-enabled-by-default">Optional (not enabled by default)<a href="#optional-not-enabled-by-default" class="hash-link" aria-label="Direct link to Optional (not enabled by default)" title="Direct link to Optional (not enabled by default)" translate="no"></a></h3>
|
|
38
38
|
<table><thead><tr><th>Preset</th><th>Status</th></tr></thead><tbody><tr><td><code>typescript-eslint/strictTypeChecked</code></td><td><strong>Not</strong> enabled — optional stricter tier for a later rollout</td></tr><tr><td><code>typescript-eslint/stylistic*</code></td><td><strong>Not</strong> enabled — Prettier is the source of truth for formatting</td></tr></tbody></table>
|
|
39
39
|
<hr>
|
|
@@ -100,10 +100,10 @@
|
|
|
100
100
|
<hr>
|
|
101
101
|
<h2 class="anchor anchorTargetStickyNavbar_jFbF" id="post-migration-tune-ups-alpha-flat-config">Post-migration tune-ups (alpha flat config)<a href="#post-migration-tune-ups-alpha-flat-config" class="hash-link" aria-label="Direct link to Post-migration tune-ups (alpha flat config)" title="Direct link to Post-migration tune-ups (alpha flat config)" translate="no"></a></h2>
|
|
102
102
|
<p>The shared flat config includes pragmatic defaults to reduce migration noise while keeping high-value checks.</p>
|
|
103
|
-
<table><thead><tr><th>Change</th><th>Behavior</th></tr></thead><tbody><tr><td><code>@typescript-eslint/no-misused-promises</code></td><td><code>checksVoidReturn.attributes: false</code> — async <code>onClick</code> / JSX handlers allowed</td></tr><tr><td><code>@typescript-eslint/no-unsafe-*</code></td><td><strong>warn</strong> in app code (not error); <strong>off</strong> in test globs (<code>*.{test,spec}.*</code>, <code>lib/**/tests/**</code>, etc.)</td></tr><tr><td><code>import-x/no-extraneous-dependencies</code></td><td><strong>off</strong> (legacy parity; apps use <code>@elliemae/app-react-dependencies</code>)</td></tr><tr><td>JSDoc</td><td>Full <code>jsdoc/recommended</code> <strong>removed</strong>; only legacy <code>require-jsdoc: off</code> + noisy rules explicitly off</td></tr><tr><td>Testing Library</td><td><code>dom</code> rules on test files; <strong>react</strong> rules on <code>*.{test,spec}.{tsx,jsx}</code></td></tr><tr><td>WDIO</td><td>Globals + rules on <code>*.func.spec.js</code>, <code>*.visual.spec.js</code>, <code>*e2e*</code>, and <code>**/e2e/**</code> (page-objects, etc.)</td></tr><tr><td>Storybook</td><td><code>react/jsx-props-no-spreading</code> off (React config); <code>eslint-plugin-storybook@
|
|
103
|
+
<table><thead><tr><th>Change</th><th>Behavior</th></tr></thead><tbody><tr><td><code>@typescript-eslint/no-misused-promises</code></td><td><code>checksVoidReturn.attributes: false</code> — async <code>onClick</code> / JSX handlers allowed</td></tr><tr><td><code>@typescript-eslint/no-unsafe-*</code></td><td><strong>warn</strong> in app code (not error); <strong>off</strong> in test globs (<code>*.{test,spec}.*</code>, <code>lib/**/tests/**</code>, etc.)</td></tr><tr><td><code>import-x/no-extraneous-dependencies</code></td><td><strong>off</strong> (legacy parity; apps use <code>@elliemae/app-react-dependencies</code>)</td></tr><tr><td>JSDoc</td><td>Full <code>jsdoc/recommended</code> <strong>removed</strong>; only legacy <code>require-jsdoc: off</code> + noisy rules explicitly off</td></tr><tr><td>Testing Library</td><td><code>dom</code> rules on test files; <strong>react</strong> rules on <code>*.{test,spec}.{tsx,jsx}</code></td></tr><tr><td>WDIO</td><td>Globals + rules on <code>*.func.spec.js</code>, <code>*.visual.spec.js</code>, <code>*e2e*</code>, and <code>**/e2e/**</code> (page-objects, etc.)</td></tr><tr><td>Storybook</td><td><code>react/jsx-props-no-spreading</code> off (React config); <code>eslint-plugin-storybook@10</code> flat preset (no compat shim)</td></tr><tr><td><code>eslint.config.*</code></td><td><code>import-x/no-unresolved</code> off</td></tr><tr><td><code>scripts/**</code>, <code>ci_cd/**</code></td><td><code>no-console</code>, <code>max-lines</code>, <code>complexity</code> off</td></tr><tr><td><code>react-hooks/exhaustive-deps</code></td><td><strong>warn</strong> (not error) until repos are clean</td></tr></tbody></table>
|
|
104
104
|
<h3 class="anchor anchorTargetStickyNavbar_jFbF" id="eslint-10-plugin-compatibility">ESLint 10 plugin compatibility<a href="#eslint-10-plugin-compatibility" class="hash-link" aria-label="Direct link to ESLint 10 plugin compatibility" title="Direct link to ESLint 10 plugin compatibility" translate="no"></a></h3>
|
|
105
|
-
<p>Only plugins that still call removed <code>context.getFilename()</code> / <code>getScope()</code> APIs are wrapped via <code>@eslint/compat</code> v2 <code>fixupPluginRules</code>
|
|
106
|
-
<table><thead><tr><th>Plugin</th><th>Wrapped?</th><th>Reason</th></tr></thead><tbody><tr><td><code>eslint-plugin-react</code></td><td>Yes</td><td>Uses legacy context APIs (<code>display-name</code>, etc.)</td></tr><tr><td><code>eslint-plugin-redux-saga</code></td><td>Yes</td><td><code>no-yield-in-race</code> uses <code>getScope()</code></td></tr><tr><td><code>eslint-plugin-storybook</code></td><td>
|
|
105
|
+
<p>Only plugins that still call removed <code>context.getFilename()</code> / <code>getScope()</code> APIs are wrapped via <code>@eslint/compat</code> v2 <code>fixupPluginRules</code> in <code>lib/lint-config/eslint/flat/compat.mjs</code>:</p>
|
|
106
|
+
<table><thead><tr><th>Plugin</th><th>Wrapped?</th><th>Reason</th></tr></thead><tbody><tr><td><code>eslint-plugin-react</code></td><td>Yes</td><td>Uses legacy context APIs (<code>display-name</code>, etc.)</td></tr><tr><td><code>eslint-plugin-redux-saga</code></td><td>Yes</td><td><code>no-yield-in-race</code> uses <code>getScope()</code></td></tr><tr><td><code>eslint-plugin-storybook</code></td><td>No</td><td>v10 flat preset is ESLint 10–compatible</td></tr><tr><td><code>eslint-plugin-wdio</code></td><td>No</td><td>Use nested plugin from <code>flat/recommended</code> (see <code>presets.mjs</code>)</td></tr><tr><td><code>typescript-eslint</code>, <code>import-x</code>, <code>jest</code>, <code>react-hooks</code>, <code>jsx-a11y</code>, <code>testing-library</code></td><td>No</td><td>ESLint 10–compatible; no shim overhead</td></tr></tbody></table>
|
|
107
107
|
<p>Use <code>@eslint/compat</code> <strong>v2+</strong> with ESLint 10. v1 <code>fixupPluginRules</code> lacks ESLint 10 context patches.</p>
|
|
108
108
|
<h3 class="anchor anchorTargetStickyNavbar_jFbF" id="config-performance-notes">Config performance notes<a href="#config-performance-notes" class="hash-link" aria-label="Direct link to Config performance notes" title="Direct link to Config performance notes" translate="no"></a></h3>
|
|
109
109
|
<p>The shared flat config is structured for faster lint runs:</p>
|
package/build/docs/index.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="generator" content="Docusaurus v3.10.1">
|
|
6
6
|
<title data-rh="true">PUI CLI Documentation | Cli</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/cli/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="PUI CLI Documentation | Cli"><meta data-rh="true" name="description" content="Welcome to the ICE MT UI Platform CLI documentation. This CLI tool provides a comprehensive set of commands for building, testing, and maintaining UI applications and libraries."><meta data-rh="true" property="og:description" content="Welcome to the ICE MT UI Platform CLI documentation. This CLI tool provides a comprehensive set of commands for building, testing, and maintaining UI applications and libraries."><link data-rh="true" rel="icon" href="/cli/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/cli/"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/" hreflang="x-default"><script data-rh="true">function insertBanner(){var n=document.createElement("div");n.id="__docusaurus-base-url-issue-banner-container";n.innerHTML='\n<div id="__docusaurus-base-url-issue-banner" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">/cli/</span> </p>\n <p>We suggest trying baseUrl = <span id="__docusaurus-base-url-issue-banner-suggestion-container" style="font-weight: bold; color: green;"></span></p>\n</div>\n',document.body.prepend(n);var e=document.getElementById("__docusaurus-base-url-issue-banner-suggestion-container"),s=window.location.pathname,o="/"===s.substr(-1)?s:s+"/";e.innerHTML=o}document.addEventListener("DOMContentLoaded",function(){void 0===window.docusaurus&&insertBanner()})</script><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"PUI CLI Documentation","item":"https://pui.ice.com/cli/"}]}</script><link rel="stylesheet" href="/cli/assets/css/styles.74603f39.css">
|
|
7
|
-
<script src="/cli/assets/js/runtime~main.
|
|
8
|
-
<script src="/cli/assets/js/main.
|
|
7
|
+
<script src="/cli/assets/js/runtime~main.4f7cd700.js" defer="defer"></script>
|
|
8
|
+
<script src="/cli/assets/js/main.d5acb4ca.js" defer="defer"></script>
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<svg style="display: none;"><defs>
|