@elliemae/pui-cli 9.0.0-alpha.12 → 9.0.0-alpha.13
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 +4 -3
- package/build/docs/404.html +4 -4
- package/build/docs/api/functions/loadRoutes/index.html +9 -9
- package/build/docs/api/index.html +8 -8
- package/build/docs/api/type-aliases/LIB_NAME/index.html +5 -5
- package/build/docs/api/variables/babelConfig/index.html +5 -28
- package/build/docs/api/variables/commitlintConfig/index.html +5 -8
- package/build/docs/api/variables/eslintFlatBaseConfig/index.html +6 -6
- package/build/docs/api/variables/eslintFlatBaseConfigStrict/index.html +6 -6
- package/build/docs/api/variables/eslintFlatConfig/index.html +6 -6
- package/build/docs/api/variables/eslintFlatConfigStrict/index.html +6 -6
- package/build/docs/api/variables/jestConfig/index.html +86 -86
- package/build/docs/api/variables/jestNodeConfig/index.html +86 -86
- package/build/docs/api/variables/lintStagedConfig/index.html +22 -12
- package/build/docs/api/variables/prettierConfig/index.html +5 -18
- package/build/docs/api/variables/stylelintConfig/index.html +5 -5
- package/build/docs/api/variables/vitestConfig/index.html +5 -5
- package/build/docs/assets/css/{styles.74603f39.css → styles.3cba4e67.css} +1 -1
- package/build/docs/assets/js/04ee7372.c6c3d513.js +1 -0
- package/build/docs/assets/js/0551d4dd.a6b1d9fa.js +1 -0
- package/build/docs/assets/js/0a1d0315.43980061.js +1 -0
- package/build/docs/assets/js/13097d8d.4ac8ef79.js +1 -0
- package/build/docs/assets/js/{16b7bc88.c3779e27.js → 16b7bc88.2ac57556.js} +1 -1
- package/build/docs/assets/js/{17896441.84339068.js → 17896441.705d85a0.js} +1 -1
- package/build/docs/assets/js/{1b9df811.aaa95da1.js → 1b9df811.ec75cfdc.js} +1 -1
- package/build/docs/assets/js/{232a0286.33b2782b.js → 232a0286.6f749ae5.js} +1 -1
- package/build/docs/assets/js/{2399.cc5803e0.js → 2399.5d123cba.js} +1 -1
- package/build/docs/assets/js/{37d86055.47211796.js → 37d86055.1e73f036.js} +1 -1
- package/build/docs/assets/js/3992.b9b54f94.js +2 -0
- package/build/docs/assets/js/{4fb6949f.69e375e4.js → 4fb6949f.13bde4a8.js} +1 -1
- package/build/docs/assets/js/5befad71.96f04f67.js +1 -0
- package/build/docs/assets/js/5d5f1db0.e7607cd2.js +1 -0
- package/build/docs/assets/js/5e8c322a.0b86bf5a.js +1 -0
- package/build/docs/assets/js/5e95c892.de377e27.js +1 -0
- package/build/docs/assets/js/{5fb3c522.da5628e8.js → 5fb3c522.3ec831ee.js} +1 -1
- package/build/docs/assets/js/6bd11e52.c61bfcd5.js +1 -0
- package/build/docs/assets/js/6e96545e.1b545333.js +1 -0
- package/build/docs/assets/js/{71f6d02b.cfd98385.js → 71f6d02b.4b381360.js} +1 -1
- package/build/docs/assets/js/{6704.2615a5c6.js → 7843.f4b19776.js} +1 -1
- package/build/docs/assets/js/80e87108.8c451f49.js +1 -0
- package/build/docs/assets/js/{8585.3cb09ff7.js → 8585.e2298db3.js} +1 -1
- package/build/docs/assets/js/{a7bd4aaa.30ffad02.js → a7bd4aaa.aceac89c.js} +1 -1
- package/build/docs/assets/js/a94703ab.248144c2.js +1 -0
- package/build/docs/assets/js/b7b585d8.7d50f3f6.js +1 -0
- package/build/docs/assets/js/{bde5209a.f5bca8b2.js → bde5209a.480cc8d8.js} +1 -1
- package/build/docs/assets/js/c377a04b.c6b6b394.js +1 -0
- package/build/docs/assets/js/{dfd75424.51c4e2cb.js → dfd75424.459da76b.js} +1 -1
- package/build/docs/assets/js/f736c962.ab424879.js +1 -0
- package/build/docs/assets/js/main.3ae939d4.js +2 -0
- package/build/docs/assets/js/runtime~main.9ecf1839.js +1 -0
- package/build/docs/eslint-rules-migration/index.html +39 -39
- package/build/docs/index.html +70 -71
- package/build/docs/pui-cli-9-migration/index.html +163 -99
- package/build/docs/sitemap.xml +1 -1
- package/build/docs/ssl-certificate-setup/index.html +23 -23
- package/build/docs/stylelint-migration/index.html +19 -21
- package/build/docs/usage-guide/index.html +90 -90
- package/dist/cjs/babel.config.js +124 -0
- package/dist/cjs/index.js +5 -9
- package/dist/cjs/lint-config/commitlint/export.mjs +1 -0
- package/dist/cjs/lint-config/commitlint.config.mjs +6 -0
- package/dist/cjs/lint-config/eslint/common.cjs +8 -1
- package/dist/cjs/lint-config/eslint/flat/rules.mjs +1 -0
- package/dist/cjs/lint-config/lint-staged.config.js +17 -5
- package/dist/cjs/lint-config/prettier/export.mjs +1 -0
- package/dist/cjs/lint-config/{prettier.config.cjs → prettier.config.mjs} +4 -1
- package/dist/cjs/skills/migrate-storybook-out-of-cjs/SKILL.md +89 -35
- package/dist/cjs/skills/migrate-to-pui-cli-9/SKILL.md +126 -38
- package/dist/cjs/testing/{jest.config.cjs → jest.config.mjs} +9 -5
- package/dist/{esm/testing/jest.node.config.cjs → cjs/testing/jest.node.config.mjs} +3 -2
- package/dist/esm/babel.config.js +94 -0
- package/dist/esm/index.js +5 -9
- package/dist/esm/lint-config/commitlint/export.mjs +1 -0
- package/dist/esm/lint-config/commitlint.config.mjs +6 -0
- package/dist/esm/lint-config/eslint/common.cjs +8 -1
- package/dist/esm/lint-config/eslint/flat/rules.mjs +1 -0
- package/dist/esm/lint-config/lint-staged.config.js +17 -5
- package/dist/esm/lint-config/prettier/export.mjs +1 -0
- package/{lib/lint-config/prettier.config.cjs → dist/esm/lint-config/prettier.config.mjs} +4 -1
- package/dist/esm/skills/migrate-storybook-out-of-cjs/SKILL.md +89 -35
- package/dist/esm/skills/migrate-to-pui-cli-9/SKILL.md +126 -38
- package/dist/esm/testing/{jest.config.cjs → jest.config.mjs} +9 -5
- package/dist/{cjs/testing/jest.node.config.cjs → esm/testing/jest.node.config.mjs} +3 -2
- package/dist/types/lib/babel.config.d.ts +3 -0
- package/dist/types/lib/index.d.ts +5 -9
- package/dist/types/lib/lint-config/commitlint/export.d.mts +1 -0
- package/dist/types/lib/lint-config/commitlint.config.d.mts +3 -0
- package/dist/types/lib/lint-config/eslint/common.d.cts +8 -2
- package/dist/types/lib/lint-config/eslint/non-react.d.cts +8 -1
- package/dist/types/lib/lint-config/eslint/react.d.cts +8 -1
- package/dist/types/lib/lint-config/eslint/typescript/non-react.d.cts +8 -1
- package/dist/types/lib/lint-config/eslint/typescript/react.d.cts +8 -1
- package/dist/types/lib/lint-config/lint-staged.config.d.ts +2 -2
- package/dist/types/lib/lint-config/prettier/export.d.mts +1 -0
- package/dist/types/lib/lint-config/prettier.config.d.mts +3 -0
- package/dist/types/lib/utils.d.cts +1 -1
- package/dist/types/lib/utils.d.ts +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/lib/lint-config/commitlint/export.mjs +1 -0
- package/lib/lint-config/commitlint.config.mjs +6 -0
- package/lib/lint-config/eslint/common.cjs +8 -1
- package/lib/lint-config/eslint/flat/rules.mjs +1 -0
- package/lib/lint-config/lint-staged.config.js +20 -5
- package/lib/lint-config/prettier/export.mjs +1 -0
- package/{dist/esm/lint-config/prettier.config.cjs → lib/lint-config/prettier.config.mjs} +4 -1
- package/lib/skills/migrate-storybook-out-of-cjs/SKILL.md +89 -35
- package/lib/skills/migrate-to-pui-cli-9/SKILL.md +126 -38
- package/lib/testing/jest.config.mjs +124 -0
- package/lib/testing/jest.node.config.mjs +9 -0
- package/package.json +38 -22
- package/build/docs/api/variables/eslintBaseConfig/index.html +0 -132
- package/build/docs/api/variables/eslintConfig/index.html +0 -180
- package/build/docs/assets/js/04ee7372.2852111b.js +0 -1
- package/build/docs/assets/js/0551d4dd.ebb18f4f.js +0 -1
- package/build/docs/assets/js/0a1d0315.fc8f91a7.js +0 -1
- package/build/docs/assets/js/13097d8d.7877421c.js +0 -1
- package/build/docs/assets/js/3992.0ac29b2f.js +0 -2
- package/build/docs/assets/js/5befad71.5f19afb5.js +0 -1
- package/build/docs/assets/js/5d5f1db0.c5aa5afa.js +0 -1
- package/build/docs/assets/js/5e8c322a.ef3b894b.js +0 -1
- package/build/docs/assets/js/5e95c892.f550b901.js +0 -1
- package/build/docs/assets/js/6bd11e52.08b95209.js +0 -1
- package/build/docs/assets/js/6e96545e.30c1b801.js +0 -1
- package/build/docs/assets/js/80e87108.f9507b95.js +0 -1
- package/build/docs/assets/js/a94703ab.f1796514.js +0 -1
- package/build/docs/assets/js/b7b585d8.6d53e73f.js +0 -1
- package/build/docs/assets/js/b8ac1d98.62684003.js +0 -1
- package/build/docs/assets/js/c377a04b.0f8625c6.js +0 -1
- package/build/docs/assets/js/e5f79924.c793a74d.js +0 -1
- package/build/docs/assets/js/f736c962.dbd0d004.js +0 -1
- package/build/docs/assets/js/main.d5acb4ca.js +0 -2
- package/build/docs/assets/js/runtime~main.4f7cd700.js +0 -1
- package/dist/cjs/babel.config.cjs +0 -97
- package/dist/cjs/index.cjs +0 -35
- package/dist/cjs/lint-config/commitlint.config.cjs +0 -1
- package/dist/cjs/lint-config/stylelint.config.cjs +0 -3
- package/dist/esm/babel.config.cjs +0 -97
- package/dist/esm/index.cjs +0 -35
- package/dist/esm/lint-config/commitlint.config.cjs +0 -1
- package/dist/esm/lint-config/stylelint.config.cjs +0 -3
- package/dist/types/lib/babel.config.d.cts +0 -59
- package/dist/types/lib/index.d.cts +0 -13
- package/dist/types/lib/lint-config/commitlint.config.d.cts +0 -4
- package/dist/types/lib/lint-config/prettier.config.d.cts +0 -8
- package/dist/types/lib/lint-config/stylelint.config.d.cts +0 -2
- package/lib/lint-config/commitlint.config.cjs +0 -1
- package/lib/lint-config/stylelint.config.cjs +0 -3
- /package/build/docs/assets/js/{3992.0ac29b2f.js.LICENSE.txt → 3992.b9b54f94.js.LICENSE.txt} +0 -0
- /package/build/docs/assets/js/{main.d5acb4ca.js.LICENSE.txt → main.3ae939d4.js.LICENSE.txt} +0 -0
- /package/dist/types/lib/testing/{jest.config.d.cts → jest.config.d.mts} +0 -0
- /package/dist/types/lib/testing/{jest.node.config.d.cts → jest.node.config.d.mts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[]).push([[1712],{797(i){i.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docsSidebar":[{"type":"category","label":"Cli API","collapsible":true,"collapsed":true,"items":[{"type":"category","label":"functions","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/cli/api/functions/loadRoutes","label":"loadRoutes()","docId":"api/functions/loadRoutes","unlisted":false}]},{"type":"category","label":"type-aliases","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/cli/api/type-aliases/LIB_NAME","label":"LIB\\\\_NAME","docId":"api/type-aliases/LIB_NAME","unlisted":false}]},{"type":"category","label":"variables","collapsible":true,"collapsed":true,"items":[{"type":"link","href":"/cli/api/variables/babelConfig","label":"babelConfig","docId":"api/variables/babelConfig","unlisted":false},{"type":"link","href":"/cli/api/variables/commitlintConfig","label":"commitlintConfig","docId":"api/variables/commitlintConfig","unlisted":false},{"type":"link","href":"/cli/api/variables/eslintFlatBaseConfig","label":"eslintFlatBaseConfig","docId":"api/variables/eslintFlatBaseConfig","unlisted":false},{"type":"link","href":"/cli/api/variables/eslintFlatBaseConfigStrict","label":"eslintFlatBaseConfigStrict","docId":"api/variables/eslintFlatBaseConfigStrict","unlisted":false},{"type":"link","href":"/cli/api/variables/eslintFlatConfig","label":"eslintFlatConfig","docId":"api/variables/eslintFlatConfig","unlisted":false},{"type":"link","href":"/cli/api/variables/eslintFlatConfigStrict","label":"eslintFlatConfigStrict","docId":"api/variables/eslintFlatConfigStrict","unlisted":false},{"type":"link","href":"/cli/api/variables/jestConfig","label":"jestConfig","docId":"api/variables/jestConfig","unlisted":false},{"type":"link","href":"/cli/api/variables/jestNodeConfig","label":"jestNodeConfig","docId":"api/variables/jestNodeConfig","unlisted":false},{"type":"link","href":"/cli/api/variables/lintStagedConfig","label":"lintStagedConfig","docId":"api/variables/lintStagedConfig","unlisted":false},{"type":"link","href":"/cli/api/variables/prettierConfig","label":"prettierConfig","docId":"api/variables/prettierConfig","unlisted":false},{"type":"link","href":"/cli/api/variables/stylelintConfig","label":"stylelintConfig","docId":"api/variables/stylelintConfig","unlisted":false},{"type":"link","href":"/cli/api/variables/vitestConfig","label":"vitestConfig","docId":"api/variables/vitestConfig","unlisted":false}]}],"href":"/cli/api/"},{"type":"link","href":"/cli/eslint-rules-migration","label":"ESLint rules migration guide (legacy \u2192 ESLint 10 flat config)","docId":"eslint-rules-migration","unlisted":false},{"type":"link","href":"/cli/","label":"PUI CLI Documentation","docId":"index","unlisted":false},{"type":"link","href":"/cli/pui-cli-9-migration","label":"pui-cli 9 migration guide","docId":"pui-cli-9-migration","unlisted":false},{"type":"link","href":"/cli/ssl-certificate-setup","label":"Trust SSL Certificate Guide","docId":"ssl-certificate-setup","unlisted":false},{"type":"link","href":"/cli/stylelint-migration","label":"Stylelint migration guide (pui-cli 8 \u2192 9 / Stylelint 17)","docId":"stylelint-migration","unlisted":false},{"type":"link","href":"/cli/usage-guide","label":"Usage Guide","docId":"usage-guide","unlisted":false}]},"docs":{"api/functions/loadRoutes":{"id":"api/functions/loadRoutes","title":"loadRoutes()","description":"Parameters","sidebar":"docsSidebar"},"api/index":{"id":"api/index","title":"Cli API","description":"Functions","sidebar":"docsSidebar"},"api/type-aliases/LIB_NAME":{"id":"api/type-aliases/LIB_NAME","title":"LIB\\\\_NAME","description":"","sidebar":"docsSidebar"},"api/variables/babelConfig":{"id":"api/variables/babelConfig","title":"babelConfig","description":"","sidebar":"docsSidebar"},"api/variables/commitlintConfig":{"id":"api/variables/commitlintConfig","title":"commitlintConfig","description":"","sidebar":"docsSidebar"},"api/variables/eslintFlatBaseConfig":{"id":"api/variables/eslintFlatBaseConfig","title":"eslintFlatBaseConfig","description":"Flat ESLint config for non-React TypeScript libraries and services.","sidebar":"docsSidebar"},"api/variables/eslintFlatBaseConfigStrict":{"id":"api/variables/eslintFlatBaseConfigStrict","title":"eslintFlatBaseConfigStrict","description":"Strict flat ESLint config for non-React TypeScript (no-unsafe-* as error).","sidebar":"docsSidebar"},"api/variables/eslintFlatConfig":{"id":"api/variables/eslintFlatConfig","title":"eslintFlatConfig","description":"Flat ESLint config for React + TypeScript PUI apps.","sidebar":"docsSidebar"},"api/variables/eslintFlatConfigStrict":{"id":"api/variables/eslintFlatConfigStrict","title":"eslintFlatConfigStrict","description":"Strict flat ESLint config for React + TypeScript (errors on no-unsafe-* and exhaustive-deps).","sidebar":"docsSidebar"},"api/variables/jestConfig":{"id":"api/variables/jestConfig","title":"jestConfig","description":"Type Declaration","sidebar":"docsSidebar"},"api/variables/jestNodeConfig":{"id":"api/variables/jestNodeConfig","title":"jestNodeConfig","description":"Type Declaration","sidebar":"docsSidebar"},"api/variables/lintStagedConfig":{"id":"api/variables/lintStagedConfig","title":"lintStagedConfig","description":"Type Declaration","sidebar":"docsSidebar"},"api/variables/prettierConfig":{"id":"api/variables/prettierConfig","title":"prettierConfig","description":"","sidebar":"docsSidebar"},"api/variables/stylelintConfig":{"id":"api/variables/stylelintConfig","title":"stylelintConfig","description":"","sidebar":"docsSidebar"},"api/variables/vitestConfig":{"id":"api/variables/vitestConfig","title":"vitestConfig","description":"","sidebar":"docsSidebar"},"eslint-rules-migration":{"id":"eslint-rules-migration","title":"ESLint rules migration guide (legacy \u2192 ESLint 10 flat config)","description":"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).","sidebar":"docsSidebar"},"index":{"id":"index","title":"PUI CLI Documentation","description":"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.","sidebar":"docsSidebar"},"pui-cli-9-migration":{"id":"pui-cli-9-migration","title":"pui-cli 9 migration guide","description":"This guide helps PUI consumers upgrade apps and libraries from pui-cli 8 to pui-cli 9.","sidebar":"docsSidebar"},"ssl-certificate-setup":{"id":"ssl-certificate-setup","title":"Trust SSL Certificate Guide","description":"This guide explains how to trust the self-signed CA certificate on different operating systems and browsers so your HTTPS connection works without warnings.","sidebar":"docsSidebar"},"stylelint-migration":{"id":"stylelint-migration","title":"Stylelint migration guide (pui-cli 8 \u2192 9 / Stylelint 17)","description":"This document covers Stylelint changes shipped with pui-cli 9 (Stylelint 17.x).","sidebar":"docsSidebar"},"usage-guide":{"id":"usage-guide","title":"Usage Guide","description":"This guide provides detailed documentation for all available commands in @elliemae/pui-cli.","sidebar":"docsSidebar"}}}}')}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[]).push([[1572],{520(e,t,i){i.r(t),i.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>f,frontMatter:()=>r,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"api/variables/eslintFlatBaseConfigStrict","title":"eslintFlatBaseConfigStrict","description":"Strict flat ESLint config for non-React TypeScript (no-unsafe-* as error).","source":"@site/docs/api/variables/eslintFlatBaseConfigStrict.md","sourceDirName":"api/variables","slug":"/api/variables/eslintFlatBaseConfigStrict","permalink":"/cli/api/variables/eslintFlatBaseConfigStrict","draft":false,"unlisted":false,"editUrl":"https://git.elliemae.io/platform-ui/pui-cli.git/docs/api/variables/eslintFlatBaseConfigStrict.md","tags":[],"version":"current","frontMatter":{},"sidebar":"docsSidebar","previous":{"title":"eslintFlatBaseConfig","permalink":"/cli/api/variables/eslintFlatBaseConfig"},"next":{"title":"eslintFlatConfig","permalink":"/cli/api/variables/eslintFlatConfig"}}');var a=i(6070),s=i(6607);const r={},l="eslintFlatBaseConfigStrict",o={},c=[];function p(e){const t={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,s.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.header,{children:(0,a.jsx)(t.h1,{id:"eslintflatbaseconfigstrict",children:"eslintFlatBaseConfigStrict"})}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-ts",children:"const eslintFlatBaseConfigStrict: any = nonReactFlatConfigsStrict;\n"})}),"\n",(0,a.jsxs)(t.p,{children:["Strict flat ESLint config for non-React TypeScript (",(0,a.jsx)(t.code,{children:"no-unsafe-*"})," as error)."]})]})}function f(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(p,{...e})}):p(e)}},6607(e,t,i){i.d(t,{R:()=>r,x:()=>l});var n=i(758);const a={},s=n.createContext(a);function r(e){const t=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[]).push([[5455],{8220(e,n,s){s.r(n),s.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>c,metadata:()=>i,toc:()=>t});const i=JSON.parse('{"id":"pui-cli-9-migration","title":"pui-cli 9 migration guide","description":"This guide helps PUI consumers upgrade apps and libraries from pui-cli 8 to pui-cli 9.","source":"@site/docs/pui-cli-9-migration.md","sourceDirName":".","slug":"/pui-cli-9-migration","permalink":"/cli/pui-cli-9-migration","draft":false,"unlisted":false,"editUrl":"https://git.elliemae.io/platform-ui/pui-cli.git/docs/pui-cli-9-migration.md","tags":[],"version":"current","frontMatter":{},"sidebar":"docsSidebar","previous":{"title":"PUI CLI Documentation","permalink":"/cli/"},"next":{"title":"Trust SSL Certificate Guide","permalink":"/cli/ssl-certificate-setup"}}');var l=s(6070),r=s(6607);const c={},d="pui-cli 9 migration guide",o={},t=[{value:"At a glance",id:"at-a-glance",level:2},{value:"Recommended rollout",id:"recommended-rollout",level:2},{value:"Step-by-step",id:"step-by-step",level:2},{value:"1. Upgrade toolchain",id:"1-upgrade-toolchain",level:3},{value:"1b. Migrate pnpm hoisting to <code>pnpm-workspace.yaml</code> (pnpm 11)",id:"1b-migrate-pnpm-hoisting-to-pnpm-workspaceyaml-pnpm-11",level:3},{value:"Why",id:"why",level:4},{value:"Settings to move",id:"settings-to-move",level:4},{value:"Single-package app or library",id:"single-package-app-or-library",level:4},{value:"Monorepo (<code>libs/*</code>, <code>apps/*</code>)",id:"monorepo-libs-apps",level:4},{value:"Reinstall and verify",id:"reinstall-and-verify",level:4},{value:"Common failures",id:"common-failures",level:4},{value:"2. Upgrade pui-cli",id:"2-upgrade-pui-cli",level:3},{value:"2b. Migrate Babel config to TypeScript",id:"2b-migrate-babel-config-to-typescript",level:3},{value:"2c. Migrate Prettier and Commitlint configs to ESM",id:"2c-migrate-prettier-and-commitlint-configs-to-esm",level:3},{value:"3. Add flat ESLint config",id:"3-add-flat-eslint-config",level:3},{value:"4. Update Stylelint config",id:"4-update-stylelint-config",level:3},{value:"5. Fix lint",id:"5-fix-lint",level:3},{value:"6. Install the migration skill (optional)",id:"6-install-the-migration-skill-optional",level:3},{value:"Temporary overrides",id:"temporary-overrides",level:2},{value:"Strict config (after cleanup)",id:"strict-config-after-cleanup",level:2},{value:"Husky 9",id:"husky-9",level:2},{value:"Jest 30 (<code>pui-cli test</code>)",id:"jest-30-pui-cli-test",level:2},{value:"Consumer migration",id:"consumer-migration",level:3},{value:"Shared setup",id:"shared-setup",level:3},{value:"Vitest 4",id:"vitest-4",level:2},{value:"semantic-release 25",id:"semantic-release-25",level:2},{value:"1. Upgrade semantic-release (if pinned locally)",id:"1-upgrade-semantic-release-if-pinned-locally",level:3},{value:"2. Migrate release config to ESM",id:"2-migrate-release-config-to-esm",level:3},{value:"3. Custom plugins or overrides",id:"3-custom-plugins-or-overrides",level:3},{value:"4. Verify locally",id:"4-verify-locally",level:3},{value:"Agent-assisted migration",id:"agent-assisted-migration",level:3},{value:"Lerna 9 and Nx 22 (monorepos only)",id:"lerna-9-and-nx-22-monorepos-only",level:2},{value:"1. Remove legacy Nx package pins",id:"1-remove-legacy-nx-package-pins",level:3},{value:"2. Migrate <code>nx.json</code>",id:"2-migrate-nxjson",level:3},{value:"3. Lerna 9 notes",id:"3-lerna-9-notes",level:3},{value:"4. Verify monorepo workflows",id:"4-verify-monorepo-workflows",level:3},{value:"Storybook 10 (pui-cli 9 + pui-app-sdk)",id:"storybook-10-pui-cli-9--pui-app-sdk",level:2},{value:"What changed in pui-app-sdk",id:"what-changed-in-pui-app-sdk",level:3},{value:"What changed in pui-cli / Storybook",id:"what-changed-in-pui-cli--storybook",level:3},{value:"Consumer migration",id:"consumer-migration-1",level:3},{value:"Verify",id:"verify",level:3},{value:"Troubleshooting",id:"troubleshooting",level:3},{value:"CI checklist",id:"ci-checklist",level:2},{value:"Getting help",id:"getting-help",level:2}];function a(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",header:"header",hr:"hr",input:"input",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,r.R)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.header,{children:(0,l.jsx)(n.h1,{id:"pui-cli-9-migration-guide",children:"pui-cli 9 migration guide"})}),"\n",(0,l.jsxs)(n.p,{children:["This guide helps PUI consumers upgrade apps and libraries from ",(0,l.jsx)(n.strong,{children:"pui-cli 8"})," to ",(0,l.jsx)(n.strong,{children:"pui-cli 9"}),".\nFor ESLint rule-level detail, see ",(0,l.jsx)(n.a,{href:"/cli/eslint-rules-migration",children:"ESLint rules migration guide"}),"."]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"at-a-glance",children:"At a glance"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Topic"}),(0,l.jsx)(n.th,{children:"pui-cli 8"}),(0,l.jsx)(n.th,{children:"pui-cli 9"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Node.js"}),(0,l.jsx)(n.td,{children:"20"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"24"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"pnpm"}),(0,l.jsx)(n.td,{children:"8\u201310"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:"11"})," (hoist settings in ",(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:"pnpm-workspace.yaml"})}),", not ",(0,l.jsx)(n.code,{children:".npmrc"}),")"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"App/library bundler"}),(0,l.jsx)(n.td,{children:"Webpack"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:"Webpack"})," (unchanged)"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"ESLint"}),(0,l.jsxs)(n.td,{children:["8.x + ",(0,l.jsx)(n.code,{children:".eslintrc.cjs"})]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:"10.x"})," + ",(0,l.jsx)(n.code,{children:"eslint.config.mjs"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Stylelint"}),(0,l.jsxs)(n.td,{children:["15.x + ",(0,l.jsx)(n.code,{children:"stylelint-config-styled-components"})]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:"17.x"})," + ",(0,l.jsx)(n.code,{children:"postcss-styled-syntax"})," (styled-components rules inlined)"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:["Vitest (via ",(0,l.jsx)(n.code,{children:"pui-cli vitest"}),")"]}),(0,l.jsx)(n.td,{children:"1.x"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:"4.x"})," (uses Vite internally; not the app bundler)"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"TypeScript lint"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"@typescript-eslint"})," v5"]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"typescript-eslint"})," v8"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Exported tsconfig"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:'moduleResolution: "node"'})}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:'moduleResolution: "bundler"'})})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Shared config import"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"require('@elliemae/pui-cli').eslintConfig"})}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"import { eslintFlatConfig } from '@elliemae/pui-cli/eslint'"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Package exports"}),(0,l.jsxs)(n.td,{children:["Dual CJS + ESM (",(0,l.jsx)(n.code,{children:"require('@elliemae/pui-cli')"}),")"]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:"ESM only"})," \u2014 no ",(0,l.jsx)(n.code,{children:"require()"})," entry; use subpath imports"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Stylelint import"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"require('@elliemae/pui-cli').stylelintConfig"})}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"import { stylelintConfig } from '@elliemae/pui-cli/stylelint'"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Babel config"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"babel.config.cjs"})}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:"babel.config.ts"})})," (re-export ",(0,l.jsx)(n.code,{children:"@elliemae/pui-cli"})," ",(0,l.jsx)(n.code,{children:"babelConfig"}),"; Node 24 + Babel 7.28+)"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Prettier config"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"prettier.config.cjs"})}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:"prettier.config.mjs"})})," (import ",(0,l.jsx)(n.code,{children:"@elliemae/pui-cli/prettier"}),")"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Commitlint config"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"commitlint.config.cjs"})}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:"commitlint.config.mjs"})})," (import ",(0,l.jsx)(n.code,{children:"@elliemae/pui-cli/commitlint"}),")"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"semantic-release"}),(0,l.jsxs)(n.td,{children:["21.x + ",(0,l.jsx)(n.code,{children:"release.config.cjs"})]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:"25.x"})," + ",(0,l.jsx)(n.code,{children:"release.config.mjs"})," (ESM ",(0,l.jsx)(n.code,{children:"extends"})," for shareable config)"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Husky"}),(0,l.jsx)(n.td,{children:"8.x"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.strong,{children:"9.x"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Lerna (monorepos)"}),(0,l.jsx)(n.td,{children:"6.x"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:"9.x"})," (via pui-cli; ",(0,l.jsx)(n.code,{children:"bootstrap"}),"/",(0,l.jsx)(n.code,{children:"add"}),"/",(0,l.jsx)(n.code,{children:"link"})," removed)"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Nx (monorepos)"}),(0,l.jsxs)(n.td,{children:["15.x (",(0,l.jsx)(n.code,{children:"@nrwl/*"}),")"]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:"22.x"})," (",(0,l.jsx)(n.code,{children:"nx"})," + ",(0,l.jsx)(n.code,{children:"@nx/workspace"}),"; modern ",(0,l.jsx)(n.code,{children:"nx.json"}),")"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Cursor skill"}),(0,l.jsx)(n.td,{children:"\u2014"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"pui-cli skills install migrate-to-pui-cli-9 --target all"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Storybook CJS \u2192 ESM skill"}),(0,l.jsx)(n.td,{children:"\u2014"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"pui-cli skills install migrate-storybook-out-of-cjs --target all"})})]})]})]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"recommended-rollout",children:"Recommended rollout"}),"\n",(0,l.jsxs)(n.p,{children:["Ship in ",(0,l.jsx)(n.strong,{children:"small PRs"})," to reduce regression risk:"]}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Toolchain"})," \u2014 Node 24 + pnpm 11 + CI image updates + ",(0,l.jsxs)(n.strong,{children:["hoisting in ",(0,l.jsx)(n.code,{children:"pnpm-workspace.yaml"})]})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Dependency bump"})," \u2014 ",(0,l.jsx)(n.code,{children:"@elliemae/pui-cli@9"})," without ESLint config change"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Babel config"})," \u2014 migrate ",(0,l.jsx)(n.code,{children:"babel.config.cjs"})," \u2192 ",(0,l.jsx)(n.code,{children:"babel.config.ts"})," (re-export shared config)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Prettier / Commitlint"})," \u2014 migrate ",(0,l.jsx)(n.code,{children:"prettier.config.cjs"})," / ",(0,l.jsx)(n.code,{children:"commitlint.config.cjs"})," \u2192 ",(0,l.jsx)(n.code,{children:".mjs"})," (import subpath exports)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"ESLint flat config"})," \u2014 add ",(0,l.jsx)(n.code,{children:"eslint.config.mjs"}),", delete legacy ESLint files, fix lint"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Stylelint 17"})," \u2014 migrate to ",(0,l.jsx)(n.code,{children:"stylelint.config.mjs"})," (remove ",(0,l.jsx)(n.code,{children:"stylelint-config-styled-components"})," overrides)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Husky 9"})," \u2014 update ",(0,l.jsx)(n.code,{children:"prepare"})," script and hook files (if ",(0,l.jsx)(n.code,{children:".husky/"})," exists)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Vitest 4"})," \u2014 only if the repo uses ",(0,l.jsx)(n.code,{children:"pui-cli vitest"})," (see below)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"semantic-release 25"})," \u2014 migrate ",(0,l.jsx)(n.code,{children:"release.config.cjs"})," \u2192 ",(0,l.jsx)(n.code,{children:"release.config.mjs"})," (libraries that publish to npm)"]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Lerna 9 + Nx 22"})," \u2014 monorepos only: update ",(0,l.jsx)(n.code,{children:"nx.json"}),", remove ",(0,l.jsx)(n.code,{children:"@nrwl/*"})," pins, verify ",(0,l.jsx)(n.code,{children:"pui-cli version"})," / ",(0,l.jsx)(n.code,{children:"nx run-many"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Debt (optional)"})," \u2014 remove temporary rule overrides, adopt strict config"]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["Each PR should pass: ",(0,l.jsx)(n.code,{children:"lint"}),", ",(0,l.jsx)(n.code,{children:"tscheck"}),", ",(0,l.jsx)(n.code,{children:"test"}),", ",(0,l.jsx)(n.code,{children:"build"}),"."]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"step-by-step",children:"Step-by-step"}),"\n",(0,l.jsx)(n.h3,{id:"1-upgrade-toolchain",children:"1. Upgrade toolchain"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"# .node-version\n24\n"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-json",children:'// package.json (root)\n"engines": {\n "pnpm": ">=11",\n "node": ">=24"\n}\n'})}),"\n",(0,l.jsxs)(n.p,{children:["Do ",(0,l.jsx)(n.strong,{children:"not"})," pin an exact pnpm version in ",(0,l.jsx)(n.code,{children:"packageManager"})," \u2014 Corepack requires an exact semver there, which forces every customer onto the same patch. Use ",(0,l.jsx)(n.code,{children:"engines.pnpm"})," so teams can run any pnpm 11 minor or patch. Omit ",(0,l.jsx)(n.code,{children:"packageManager"})," unless you intentionally want Corepack to lock one version for your own CI."]}),"\n",(0,l.jsx)(n.p,{children:"Update Jenkins/docker Node images before merging."}),"\n",(0,l.jsxs)(n.h3,{id:"1b-migrate-pnpm-hoisting-to-pnpm-workspaceyaml-pnpm-11",children:["1b. Migrate pnpm hoisting to ",(0,l.jsx)(n.code,{children:"pnpm-workspace.yaml"})," (pnpm 11)"]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Do this in every repo"})," that upgrades to pnpm 11 \u2014 single-package apps, libraries, and monorepos."]}),"\n",(0,l.jsx)(n.h4,{id:"why",children:"Why"}),"\n",(0,l.jsxs)(n.p,{children:["pnpm 11 only reads ",(0,l.jsx)(n.strong,{children:"auth and registry"})," from ",(0,l.jsx)(n.code,{children:".npmrc"}),". Every other pnpm setting \u2014 including hoisting \u2014 must live in ",(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:"pnpm-workspace.yaml"})})," (camelCase keys). See ",(0,l.jsx)(n.a,{href:"https://pnpm.io/next/migration",children:"pnpm v11 migration"}),"."]}),"\n",(0,l.jsxs)(n.p,{children:["If hoisting stays only in ",(0,l.jsx)(n.code,{children:".npmrc"}),", pnpm ",(0,l.jsx)(n.strong,{children:"silently ignores it"}),". Symptom: ",(0,l.jsx)(n.code,{children:"node_modules/.modules.yaml"})," shows ",(0,l.jsx)(n.code,{children:'"publicHoistPattern": []'})," even when ",(0,l.jsx)(n.code,{children:".npmrc"})," has ",(0,l.jsx)(n.code,{children:"shamefully-hoist=true"}),". Webpack builds then fail with ",(0,l.jsx)(n.code,{children:"Can't resolve 'esbuild-loader'"}),", ",(0,l.jsx)(n.code,{children:"styled-components"}),", or ",(0,l.jsx)(n.code,{children:"@elliemae/pui-theme"})," because ",(0,l.jsx)(n.strong,{children:"pui-cli webpack aliases"})," resolve packages from the ",(0,l.jsx)(n.strong,{children:"repo root"})," ",(0,l.jsx)(n.code,{children:"node_modules/"}),"."]}),"\n",(0,l.jsxs)(n.p,{children:["PUI org policy keeps ",(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:"shamefullyHoist: true"})})," (same as pnpm 8 ",(0,l.jsx)(n.code,{children:"shamefully-hoist=true"}),") for compatibility with ",(0,l.jsx)(n.code,{children:"@elliemae/app-react-dependencies"})," and pui-cli tooling. ",(0,l.jsx)(n.strong,{children:"Do not remove hoisting"})," during the cli 9 migration."]}),"\n",(0,l.jsx)(n.h4,{id:"settings-to-move",children:"Settings to move"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.th,{children:["pnpm 8\u201310 (",(0,l.jsx)(n.code,{children:".npmrc"})," or ",(0,l.jsx)(n.code,{children:"package.json#pnpm"}),")"]}),(0,l.jsxs)(n.th,{children:["pnpm 11 (",(0,l.jsx)(n.code,{children:"pnpm-workspace.yaml"}),")"]})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"shamefully-hoist=true"})}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"shamefullyHoist: true"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"public-hoist-pattern[]=\u2026"})}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:'publicHoistPattern: [ "\u2026" ]'})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"strict-peer-dependencies=false"})}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"strictPeerDependencies: false"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"auto-install-peers=false"})}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"autoInstallPeers: false"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"git-checks=false"})}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"gitChecks: false"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"enable-pre-post-scripts=true"})}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"enablePrePostScripts: true"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"package.json"})," \u2192 ",(0,l.jsx)(n.code,{children:'"pnpm": { "overrides": \u2026 }'})]}),(0,l.jsxs)(n.td,{children:["top-level ",(0,l.jsx)(n.code,{children:"overrides:"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"onlyBuiltDependencies"})," / ",(0,l.jsx)(n.code,{children:"neverBuiltDependencies"})]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"allowBuilds:"})," (",(0,l.jsx)(n.code,{children:"true"})," / ",(0,l.jsx)(n.code,{children:"false"})," per package)"]})]})]})]}),"\n",(0,l.jsxs)(n.p,{children:["Leave ",(0,l.jsx)(n.strong,{children:"only"})," auth/registry lines in ",(0,l.jsx)(n.code,{children:".npmrc"})," (for example ",(0,l.jsx)(n.code,{children:"legacy-peer-deps=true"})," if your registry workflow needs it)."]}),"\n",(0,l.jsx)(n.h4,{id:"single-package-app-or-library",children:"Single-package app or library"}),"\n",(0,l.jsxs)(n.p,{children:["Create or update ",(0,l.jsx)(n.code,{children:"pnpm-workspace.yaml"})," at the repo root:"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-yaml",children:"packages:\n - '.'\n\nshamefullyHoist: true\nstrictPeerDependencies: false\nautoInstallPeers: false\n\nallowBuilds:\n '@swc/core': true\n esbuild: true\n nx: true\n # \u2026approve other packages that run install scripts (see pnpm approve-builds)\n"})}),"\n",(0,l.jsxs)(n.p,{children:["Reference: ",(0,l.jsx)(n.code,{children:"pui-react-boilerplate/pnpm-workspace.yaml"}),", ",(0,l.jsx)(n.code,{children:"pui-lib-boilerplate/pnpm-workspace.yaml"}),"."]}),"\n",(0,l.jsxs)(n.h4,{id:"monorepo-libs-apps",children:["Monorepo (",(0,l.jsx)(n.code,{children:"libs/*"}),", ",(0,l.jsx)(n.code,{children:"apps/*"}),")"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-yaml",children:'packages:\n - "libs/*"\n - "apps/*"\n\nshamefullyHoist: true\n# Optional explicit patterns (shamefullyHoist already hoists all deps to root)\npublicHoistPattern:\n - "esbuild-loader"\n - "@elliemae/*"\n - "styled-components"\n - "history"\n - "lodash"\nstrictPeerDependencies: false\nautoInstallPeers: false\ngitChecks: false\nenablePrePostScripts: true\n\noverrides:\n esbuild-loader: "4.4.3" # if webpack hits esbuild-loader@3.x useSourceMap crash\n\nallowBuilds:\n \'@swc/core\': true\n esbuild: true\n nx: true\n # \u2026set true for each package that must run postinstall scripts\n'})}),"\n",(0,l.jsxs)(n.p,{children:["Reference: ",(0,l.jsx)(n.code,{children:"pui-microfe/pnpm-workspace.yaml"}),", ",(0,l.jsx)(n.code,{children:"pui-mono-repo-boilerplate/pnpm-workspace.yaml"}),"."]}),"\n",(0,l.jsxs)(n.p,{children:["Move any ",(0,l.jsx)(n.code,{children:"package.json"})," ",(0,l.jsx)(n.code,{children:'"pnpm": { "overrides": \u2026 }'})," block into this file and delete the ",(0,l.jsx)(n.code,{children:"pnpm"})," key from ",(0,l.jsx)(n.code,{children:"package.json"}),"."]}),"\n",(0,l.jsx)(n.h4,{id:"reinstall-and-verify",children:"Reinstall and verify"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"rm -rf node_modules libs/*/node_modules # monorepos; apps/libs only if present\nSKIP_POST_INSTALL_BUILD=1 pnpm install --no-frozen-lockfile\n"})}),"\n",(0,l.jsx)(n.p,{children:"Check hoisting took effect:"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:'# Should list patterns (shamefullyHoist => ["*"]) \u2014 not []\ngrep publicHoistPattern node_modules/.modules.yaml\n\n# Webpack / pui-cli alias targets should exist at repo root\nls node_modules/esbuild-loader node_modules/styled-components 2>/dev/null\npnpm run build\n'})}),"\n",(0,l.jsx)(n.h4,{id:"common-failures",children:"Common failures"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Symptom"}),(0,l.jsx)(n.th,{children:"Fix"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"Can't resolve 'esbuild-loader'"})," during ",(0,l.jsx)(n.code,{children:"pui-cli pack"})," / webpack"]}),(0,l.jsxs)(n.td,{children:["Add ",(0,l.jsx)(n.code,{children:"shamefullyHoist: true"})," to ",(0,l.jsx)(n.code,{children:"pnpm-workspace.yaml"}),"; clean reinstall"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"Can't resolve '@elliemae/pui-theme'"})," or ",(0,l.jsx)(n.code,{children:"styled-components"})]}),(0,l.jsxs)(n.td,{children:["Same \u2014 hoisting must be in workspace yaml, not ",(0,l.jsx)(n.code,{children:".npmrc"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"husky: command not found"})," on ",(0,l.jsx)(n.code,{children:"pnpm prepare"})]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"shamefullyHoist"})," + optional ",(0,l.jsx)(n.code,{children:"publicHoistPattern: [husky]"}),"; or keep ",(0,l.jsx)(n.code,{children:"husky"})," as a direct root ",(0,l.jsx)(n.code,{children:"devDependency"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"ERR_PNPM_IGNORED_BUILDS"})}),(0,l.jsxs)(n.td,{children:["Replace placeholder ",(0,l.jsx)(n.code,{children:"allowBuilds"})," values with ",(0,l.jsx)(n.code,{children:"true"})," or run ",(0,l.jsx)(n.code,{children:"pnpm approve-builds"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"publicHoistPattern: []"})," in ",(0,l.jsx)(n.code,{children:".modules.yaml"})]}),(0,l.jsxs)(n.td,{children:["Hoist settings still in ",(0,l.jsx)(n.code,{children:".npmrc"})," only \u2014 migrate to ",(0,l.jsx)(n.code,{children:"pnpm-workspace.yaml"})]})]})]})]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Long-term platform fix:"})," pui-cli should resolve webpack loaders from its own install path and make ",(0,l.jsx)(n.code,{children:"getAlias()"})," fall back beyond root ",(0,l.jsx)(n.code,{children:"node_modules"}),". Until then, hoisting in ",(0,l.jsx)(n.code,{children:"pnpm-workspace.yaml"})," is required for pnpm 11 consumers."]}),"\n",(0,l.jsx)(n.h3,{id:"2-upgrade-pui-cli",children:"2. Upgrade pui-cli"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm add -D @elliemae/pui-cli@9\n"})}),"\n",(0,l.jsx)(n.h3,{id:"2b-migrate-babel-config-to-typescript",children:"2b. Migrate Babel config to TypeScript"}),"\n",(0,l.jsxs)(n.p,{children:["pui-cli 9 requires ",(0,l.jsx)(n.strong,{children:"Node 24"}),", which natively loads TypeScript config files. Babel ",(0,l.jsx)(n.strong,{children:"7.28+"})," (bundled with pui-cli 9) supports ",(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:"babel.config.ts"})})," without ",(0,l.jsx)(n.code,{children:"ts-node"})," or ",(0,l.jsx)(n.code,{children:"tsx"}),"."]}),"\n",(0,l.jsxs)(n.p,{children:["Replace root ",(0,l.jsx)(n.code,{children:"babel.config.cjs"})," with ",(0,l.jsx)(n.code,{children:"babel.config.ts"}),":"]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Before:"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-javascript",children:"// babel.config.cjs\nconst { babelConfig } = require('@elliemae/pui-cli');\nmodule.exports = babelConfig;\n"})}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"After:"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-typescript",children:"// babel.config.ts\nimport { babelConfig } from '@elliemae/pui-cli';\n\nexport default babelConfig;\n"})}),"\n",(0,l.jsxs)(n.p,{children:["Delete ",(0,l.jsx)(n.code,{children:"babel.config.cjs"})," after adding ",(0,l.jsx)(n.code,{children:"babel.config.ts"}),"."]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Custom overrides"})," (rare \u2014 prefer env-specific config in pui-cli if possible):"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-typescript",children:"import { babelConfig } from '@elliemae/pui-cli';\nimport type { TransformOptions } from '@babel/core';\n\nconst config: TransformOptions = {\n ...babelConfig,\n // plugins: [...(babelConfig.plugins ?? []), 'my-plugin'],\n};\n\nexport default config;\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Do not"})," add ",(0,l.jsx)(n.code,{children:"@babel/plugin-transform-private-methods"})," or ",(0,l.jsx)(n.code,{children:"@babel/plugin-transform-private-property-in-object"})," in consumer Babel config \u2014 pui-cli 9 includes them in shared ",(0,l.jsx)(n.code,{children:"babelConfig"})," (required for Storybook and app-sdk private class syntax)."]}),"\n",(0,l.jsxs)(n.p,{children:["Monorepo packages with their own Babel file (for example ",(0,l.jsx)(n.code,{children:"libs/foo/babel.config.cjs"}),") follow the same pattern."]}),"\n",(0,l.jsxs)(n.p,{children:["Verify: ",(0,l.jsx)(n.code,{children:"pnpm run build"})," and, if applicable, ",(0,l.jsx)(n.code,{children:"pnpm exec pui-cli storybook -b"}),"."]}),"\n",(0,l.jsx)(n.h3,{id:"2c-migrate-prettier-and-commitlint-configs-to-esm",children:"2c. Migrate Prettier and Commitlint configs to ESM"}),"\n",(0,l.jsxs)(n.p,{children:["pui-cli 9 ships shared Prettier and Commitlint configs as ESM. Prefer ",(0,l.jsx)(n.code,{children:".mjs"})," root configs that import subpath exports (same pattern as Stylelint and Jest)."]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Prettier \u2014 before:"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-javascript",children:"// prettier.config.cjs\nconst { prettierConfig } = require('@elliemae/pui-cli');\nmodule.exports = prettierConfig;\n"})}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Prettier \u2014 after:"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-javascript",children:"// prettier.config.mjs\nimport { prettierConfig } from '@elliemae/pui-cli/prettier';\n\nexport default prettierConfig;\n"})}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Commitlint \u2014 before:"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-javascript",children:"// commitlint.config.cjs\nconst { commitlintConfig } = require('@elliemae/pui-cli');\nmodule.exports = commitlintConfig;\n"})}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Commitlint \u2014 after:"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-javascript",children:"// commitlint.config.mjs\nimport { commitlintConfig } from '@elliemae/pui-cli/commitlint';\n\nexport default commitlintConfig;\n"})}),"\n",(0,l.jsxs)(n.p,{children:["Delete the matching ",(0,l.jsx)(n.code,{children:".cjs"})," files after adding ",(0,l.jsx)(n.code,{children:".mjs"}),". ",(0,l.jsxs)(n.strong,{children:[(0,l.jsx)(n.code,{children:"require('@elliemae/pui-cli')"})," is removed in pui-cli 9"]})," \u2014 consumer configs must use ESM imports (subpath exports or main ESM entry)."]}),"\n",(0,l.jsxs)(n.p,{children:["Verify: ",(0,l.jsx)(n.code,{children:"pnpm exec prettier --check ."})," and a test commit through Husky (if commitlint is enabled)."]}),"\n",(0,l.jsx)(n.h3,{id:"3-add-flat-eslint-config",children:"3. Add flat ESLint config"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"React app or library:"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-js",children:"// eslint.config.mjs\nimport { eslintFlatConfig } from '@elliemae/pui-cli/eslint';\n\nexport default eslintFlatConfig;\n"})}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Node / TS service:"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-js",children:"// eslint.config.mjs\nimport { eslintFlatBaseConfig } from '@elliemae/pui-cli/eslint';\n\nexport default eslintFlatBaseConfig;\n"})}),"\n",(0,l.jsx)(n.p,{children:"Remove:"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.code,{children:".eslintrc.cjs"})}),"\n",(0,l.jsx)(n.li,{children:(0,l.jsx)(n.code,{children:".eslintignore"})}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"4-update-stylelint-config",children:"4. Update Stylelint config"}),"\n",(0,l.jsxs)(n.p,{children:["pui-cli 9 ships ",(0,l.jsx)(n.strong,{children:"Stylelint 17"})," with ",(0,l.jsx)(n.code,{children:"stylelint-config-recommended@18"})," and ",(0,l.jsx)(n.code,{children:"postcss-styled-syntax"}),". The unmaintained ",(0,l.jsx)(n.code,{children:"stylelint-config-styled-components"})," package is removed; its rules are inlined in the shared config."]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-javascript",children:"// stylelint.config.mjs\nimport { stylelintConfig } from '@elliemae/pui-cli/stylelint';\n\nexport default stylelintConfig;\n"})}),"\n",(0,l.jsxs)(n.p,{children:["If your repo previously filtered out ",(0,l.jsx)(n.code,{children:"stylelint-config-styled-components"})," from ",(0,l.jsx)(n.code,{children:"extends"}),", delete that workaround \u2014 the base config no longer extends it."]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.code,{children:"pui-cli lint"})," prefers ",(0,l.jsx)(n.code,{children:"stylelint.config.mjs"})," when present, otherwise falls back to ",(0,l.jsx)(n.code,{children:"stylelint.config.cjs"})," in the consumer repo (local file only \u2014 not via ",(0,l.jsx)(n.code,{children:"require('@elliemae/pui-cli')"}),")."]}),"\n",(0,l.jsxs)(n.p,{children:["See ",(0,l.jsx)(n.a,{href:"/cli/stylelint-migration",children:"Stylelint migration guide"})," for version and rule changes."]}),"\n",(0,l.jsx)(n.h3,{id:"5-fix-lint",children:"5. Fix lint"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm exec pui-cli lint --fix\npnpm exec pui-cli lint\npnpm exec pui-cli tscheck --files\npnpm test\npnpm run build\n"})}),"\n",(0,l.jsx)(n.h3,{id:"6-install-the-migration-skill-optional",children:"6. Install the migration skill (optional)"}),"\n",(0,l.jsx)(n.p,{children:"Gives Cursor, Claude Code, and GitHub Copilot agents a step-by-step playbook in the repo:"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm exec pui-cli skills list\npnpm exec pui-cli skills install migrate-to-pui-cli-9 --target all\n"})}),"\n",(0,l.jsxs)(n.p,{children:["Skills are copied to ",(0,l.jsx)(n.code,{children:".cursor/skills/"}),", ",(0,l.jsx)(n.code,{children:".claude/skills/"}),", and ",(0,l.jsx)(n.code,{children:".github/skills/"})," (commit them if you want the whole team to share the same agent guidance)."]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"temporary-overrides",children:"Temporary overrides"}),"\n",(0,l.jsxs)(n.p,{children:["Large repos may have pre-existing ",(0,l.jsx)(n.code,{children:"any"})," usage. Legacy ESLint reported these as ",(0,l.jsx)(n.strong,{children:"warnings"}),"; flat config defaults them to ",(0,l.jsx)(n.strong,{children:"error"}),"."]}),"\n",(0,l.jsx)(n.p,{children:"Short-term override (remove in a follow-up):"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-js",children:"import { eslintFlatConfig } from '@elliemae/pui-cli/eslint';\n\nexport default [\n ...eslintFlatConfig,\n {\n rules: {\n '@typescript-eslint/no-explicit-any': 'warn',\n },\n },\n];\n"})}),"\n",(0,l.jsx)(n.p,{children:"Libraries with heavy decorator/micro-frontend typings may need additional one-off overrides \u2014 keep them minimal and tracked."}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"strict-config-after-cleanup",children:"Strict config (after cleanup)"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-js",children:"import { eslintFlatConfigStrict } from '@elliemae/pui-cli/eslint';\n\nexport default eslintFlatConfigStrict;\n"})}),"\n",(0,l.jsxs)(n.p,{children:["Strict mode elevates ",(0,l.jsx)(n.code,{children:"no-unsafe-*"})," and ",(0,l.jsx)(n.code,{children:"exhaustive-deps"})," to error."]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"husky-9",children:"Husky 9"}),"\n",(0,l.jsx)(n.p,{children:"If your repo uses Husky 8 hooks from pui-cli boilerplate:"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Upgrade: ",(0,l.jsx)(n.code,{children:"pnpm add -D husky@9"})]}),"\n",(0,l.jsxs)(n.li,{children:["Update ",(0,l.jsx)(n.code,{children:"package.json"}),":","\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-diff",children:'- "prepare": "[ -n \\"$CI\\" ] || husky install"\n+ "prepare": "[ -n \\"$CI\\" ] || husky"\n'})}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["Remove the shebang and ",(0,l.jsx)(n.code,{children:"husky.sh"})," source from each hook in ",(0,l.jsx)(n.code,{children:".husky/"}),":","\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-diff",children:'- #!/bin/sh\n- . "$(dirname "$0")/_/husky.sh"\n\npnpm -s dlx lint-staged\n'})}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["Delete ",(0,l.jsx)(n.code,{children:".husky/.gitignore"})," if present (v9 regenerates ",(0,l.jsx)(n.code,{children:".husky/_"})," on install)."]}),"\n",(0,l.jsxs)(n.li,{children:["Remove ",(0,l.jsx)(n.code,{children:"husky-init"})," from devDependencies (use ",(0,l.jsx)(n.code,{children:"pnpm exec husky init"})," for new projects)."]}),"\n",(0,l.jsxs)(n.li,{children:["Run ",(0,l.jsx)(n.code,{children:"pnpm prepare"})," and verify with a test commit."]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Environment variable changes:"})," ",(0,l.jsx)(n.code,{children:"HUSKY_SKIP_HOOKS"})," / ",(0,l.jsx)(n.code,{children:"HUSKY_SKIP_INSTALL"})," \u2192 ",(0,l.jsx)(n.code,{children:"HUSKY=0"}),"; ",(0,l.jsx)(n.code,{children:"HUSKY_GIT_PARAMS"})," \u2192 use ",(0,l.jsx)(n.code,{children:"$1"})," in hook scripts."]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsxs)(n.h2,{id:"jest-30-pui-cli-test",children:["Jest 30 (",(0,l.jsx)(n.code,{children:"pui-cli test"}),")"]}),"\n",(0,l.jsxs)(n.p,{children:["pui-cli 9 ships ",(0,l.jsx)(n.strong,{children:"Jest 30"})," with shared configuration in ",(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:".mjs"})})," format. Jest 30 upgrades jsdom, improves performance, and drops deprecated matcher aliases (for example ",(0,l.jsx)(n.code,{children:"toBeCalled"})," \u2192 ",(0,l.jsx)(n.code,{children:"toHaveBeenCalled"}),")."]}),"\n",(0,l.jsx)(n.h3,{id:"consumer-migration",children:"Consumer migration"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Replace ",(0,l.jsx)(n.code,{children:"jest.config.cjs"})," with ",(0,l.jsx)(n.code,{children:"jest.config.mjs"}),":"]}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-javascript",children:"import { jestConfig } from '@elliemae/pui-cli';\n\ndelete jestConfig.moduleNameMapper['@elliemae/pui-diagnostics'];\n\nexport default jestConfig;\n"})}),"\n",(0,l.jsxs)(n.ol,{start:"2",children:["\n",(0,l.jsx)(n.li,{children:"Align local Jest devDependencies with pui-cli 9:"}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm add -D jest-cli@30 jest-environment-jsdom@30 @types/jest@30 jest-watch-typeahead@3\n"})}),"\n",(0,l.jsxs)(n.ol,{start:"3",children:["\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:["Search for deprecated matcher aliases and update (or run ",(0,l.jsx)(n.code,{children:"eslint-plugin-jest"})," ",(0,l.jsx)(n.code,{children:"no-alias-methods"})," autofix)."]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:["Regenerate snapshots if tests fail after the upgrade (",(0,l.jsx)(n.code,{children:"pui-cli test --fix"})," or ",(0,l.jsx)(n.code,{children:"jest -u"}),")."]}),"\n"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"shared-setup",children:"Shared setup"}),"\n",(0,l.jsxs)(n.p,{children:["pui-cli's default ",(0,l.jsx)(n.code,{children:"jestConfig"})," runs ",(0,l.jsx)(n.code,{children:"lib/testing/setup-textencoder.cjs"})," before other ",(0,l.jsx)(n.code,{children:"setupFiles"}),". It polyfills ",(0,l.jsx)(n.code,{children:"TextEncoder"})," / ",(0,l.jsx)(n.code,{children:"TextDecoder"})," on ",(0,l.jsx)(n.code,{children:"globalThis"})," from ",(0,l.jsx)(n.code,{children:"node:util"})," so ",(0,l.jsx)(n.strong,{children:"jsdom"})," tests can import packages (for example ",(0,l.jsx)(n.code,{children:"@elliemae/pui-diagnostics"})," HTTP transport) that expect those APIs at module load time."]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsxs)(n.strong,{children:["Repos do not need a local ",(0,l.jsx)(n.code,{children:"jest-textencoder-setup.cjs"}),"."]})," Delete it if you added one during migration."]}),"\n",(0,l.jsxs)(n.p,{children:["Do ",(0,l.jsx)(n.strong,{children:"not"})," replace ",(0,l.jsx)(n.code,{children:"setupFiles"})," unless you must prepend repo-specific setup; spread the defaults instead:"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-javascript",children:"import path from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { jestConfig } from '@elliemae/pui-cli';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\njestConfig.setupFiles = [\n path.resolve(__dirname, './my-extra-setup.cjs'),\n ...(jestConfig.setupFiles || []),\n];\n\nexport default jestConfig;\n"})}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"vitest-4",children:"Vitest 4"}),"\n",(0,l.jsxs)(n.p,{children:["Skip this section if the repo uses Jest (",(0,l.jsx)(n.code,{children:"pui-cli test"}),") only. ",(0,l.jsx)(n.strong,{children:"pui-cli 9 still builds apps and libraries with Webpack"}),"; Vite is used by Vitest (and optional ",(0,l.jsx)(n.code,{children:"pui-cli buildCDN"}),"), not for production bundling."]}),"\n",(0,l.jsxs)(n.p,{children:["After bumping ",(0,l.jsx)(n.code,{children:"@elliemae/pui-cli@9"}),", align local test dependencies with the versions pui-cli ships:"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm add -D vitest@4 @vitest/coverage-v8@4 vite@8 @vitejs/plugin-react@6 vite-tsconfig-paths@6\npnpm remove @vitest/coverage-c8 @types/uuid # if present; uuid 14+ includes types\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Extend the shared config"})," (recommended):"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-typescript",children:"// vitest.config.ts\nimport { defineConfig, mergeConfig } from 'vitest/config';\nimport { vitestConfig } from '@elliemae/pui-cli/vitest';\n\nexport default mergeConfig(vitestConfig, defineConfig({\n test: {\n // repo-specific overrides\n },\n}));\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsxs)(n.strong,{children:["If you spread ",(0,l.jsx)(n.code,{children:"vitestConfig"})," manually"]}),", update any Vitest 1.x options:"]}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"pui-cli 8 / Vitest 1"}),(0,l.jsx)(n.th,{children:"pui-cli 9 / Vitest 4"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"test.deps.optimizer.web"})}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"test.deps.optimizer.client"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"@vitest/coverage-c8"})}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"@vitest/coverage-v8"})," (coverage provider ",(0,l.jsx)(n.code,{children:"v8"}),")"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"import { PluginOption } from 'vite'"})}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"import type { PluginOption } from 'vite'"})," (Vite 8)"]})]})]})]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"TypeScript:"})," exported ",(0,l.jsx)(n.code,{children:"@elliemae/pui-cli/app.tsconfig.json"})," and ",(0,l.jsx)(n.code,{children:"library.tsconfig.json"})," use ",(0,l.jsx)(n.code,{children:'moduleResolution: "bundler"'}),". If your ",(0,l.jsx)(n.code,{children:"tsconfig.json"})," extends them, reinstall pui-cli and re-run ",(0,l.jsx)(n.code,{children:"tscheck"}),". Custom tsconfigs that import ",(0,l.jsx)(n.code,{children:"vitest/config"})," or ",(0,l.jsx)(n.code,{children:"vite"})," may need the same setting."]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Vitest config import:"})," use ",(0,l.jsx)(n.code,{children:"@elliemae/pui-cli/vitest"})," (not the package root). pui-cli 9 publishes ",(0,l.jsx)(n.code,{children:"types"})," on each ",(0,l.jsx)(n.code,{children:"package.json"})," ",(0,l.jsx)(n.code,{children:"exports"})," entry so ",(0,l.jsx)(n.code,{children:"tsc"})," resolves declarations under ",(0,l.jsx)(n.code,{children:'moduleResolution: "bundler"'})," \u2014 no ",(0,l.jsx)(n.code,{children:"tsconfig"})," ",(0,l.jsx)(n.code,{children:"paths"})," workaround."]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm exec pui-cli vitest --passWithNoTests\npnpm exec pui-cli tscheck --files\n"})}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"semantic-release-25",children:"semantic-release 25"}),"\n",(0,l.jsxs)(n.p,{children:["pui-cli 9 ships ",(0,l.jsx)(n.strong,{children:"semantic-release 25"})," with an ESM shareable config at ",(0,l.jsx)(n.code,{children:"@elliemae/pui-cli/releaseConfig"}),". semantic-release 22+ loads ESM ",(0,l.jsx)(n.code,{children:"extends"})," targets via dynamic ",(0,l.jsx)(n.code,{children:"import()"})," \u2014 the old ",(0,l.jsx)(n.code,{children:"release.config.cjs"})," + ",(0,l.jsx)(n.code,{children:"require()"})," path no longer works for the shared config."]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsxs)(n.strong,{children:["Libraries that run ",(0,l.jsx)(n.code,{children:"semantic-release"})," in CI"]})," should migrate in the same PR as the pui-cli 9 bump (or immediately after)."]}),"\n",(0,l.jsx)(n.h3,{id:"1-upgrade-semantic-release-if-pinned-locally",children:"1. Upgrade semantic-release (if pinned locally)"}),"\n",(0,l.jsxs)(n.p,{children:["Most PUI libraries inherit semantic-release from ",(0,l.jsx)(n.code,{children:"@elliemae/pui-cli"}),". If your ",(0,l.jsx)(n.code,{children:"package.json"})," pins ",(0,l.jsx)(n.code,{children:"semantic-release"})," or ",(0,l.jsx)(n.code,{children:"@semantic-release/*"})," plugins directly, align with pui-cli 9:"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm add -D semantic-release@25 @semantic-release/changelog@6 @semantic-release/exec@7 @semantic-release/git@10\n"})}),"\n",(0,l.jsxs)(n.p,{children:["Remove explicit pins if the repo only uses ",(0,l.jsx)(n.code,{children:"pnpm release"})," and relies on pui-cli's dependency tree."]}),"\n",(0,l.jsx)(n.h3,{id:"2-migrate-release-config-to-esm",children:"2. Migrate release config to ESM"}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Before:"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-javascript",children:"// release.config.cjs\nmodule.exports = {\n extends: '@elliemae/pui-cli/releaseConfig',\n};\n"})}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"After:"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-javascript",children:"// release.config.mjs\n/** @type {import('semantic-release').GlobalConfig} */\nexport default {\n extends: '@elliemae/pui-cli/releaseConfig',\n};\n"})}),"\n",(0,l.jsxs)(n.p,{children:["Delete ",(0,l.jsx)(n.code,{children:"release.config.cjs"})," after adding ",(0,l.jsx)(n.code,{children:"release.config.mjs"}),"."]}),"\n",(0,l.jsx)(n.h3,{id:"3-custom-plugins-or-overrides",children:"3. Custom plugins or overrides"}),"\n",(0,l.jsxs)(n.p,{children:["Keep repo-specific plugins as relative paths from the config file. ESM plugins use ",(0,l.jsx)(n.code,{children:"export default"}),":"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-javascript",children:"// release.config.mjs\nexport default {\n extends: '@elliemae/pui-cli/releaseConfig',\n plugins: [\n '@semantic-release/commit-analyzer',\n // ...other plugins from the shared config if replacing extends entirely\n './my-custom-plugin.mjs',\n ],\n};\n"})}),"\n",(0,l.jsxs)(n.p,{children:["CJS plugins (",(0,l.jsx)(n.code,{children:".cjs"}),") still work when referenced by path."]}),"\n",(0,l.jsx)(n.h3,{id:"4-verify-locally",children:"4. Verify locally"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm exec semantic-release --dry-run\n"})}),"\n",(0,l.jsx)(n.h3,{id:"agent-assisted-migration",children:"Agent-assisted migration"}),"\n",(0,l.jsx)(n.p,{children:"Install the pui-cli 9 skill so Cursor / Copilot agents follow the full config migration playbook (ESLint, Stylelint, Vitest, Husky, and semantic-release):"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm exec pui-cli skills install migrate-to-pui-cli-9 --target all\n"})}),"\n",(0,l.jsx)(n.p,{children:"Then ask the agent to migrate configuration files for pui-cli 9."}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"lerna-9-and-nx-22-monorepos-only",children:"Lerna 9 and Nx 22 (monorepos only)"}),"\n",(0,l.jsxs)(n.p,{children:["Skip this section for single-package apps and libraries. PUI monorepos (for example ",(0,l.jsx)(n.code,{children:"pui-microfe"}),", ",(0,l.jsx)(n.code,{children:"pui-websocket"}),", ",(0,l.jsx)(n.code,{children:"pui-mono-repo-boilerplate"}),") use ",(0,l.jsx)(n.strong,{children:"Nx"})," for task orchestration and ",(0,l.jsx)(n.strong,{children:"Lerna"})," (via ",(0,l.jsx)(n.code,{children:"pui-cli version"}),") for independent package versioning."]}),"\n",(0,l.jsxs)(n.p,{children:["pui-cli 9 ships ",(0,l.jsx)(n.strong,{children:"lerna 9"})," and ",(0,l.jsx)(n.strong,{children:"nx 22"})," (",(0,l.jsx)(n.code,{children:"nx"})," + ",(0,l.jsx)(n.code,{children:"@nx/workspace"}),"). After bumping ",(0,l.jsx)(n.code,{children:"@elliemae/pui-cli@9"}),", reinstall so the workspace picks up the new CLIs:"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm install\npnpm exec nx --version # expect 22.x\npnpm exec lerna --version # expect 9.x\n"})}),"\n",(0,l.jsx)(n.h3,{id:"1-remove-legacy-nx-package-pins",children:"1. Remove legacy Nx package pins"}),"\n",(0,l.jsxs)(n.p,{children:["Most monorepos inherit Nx and Lerna from pui-cli and do ",(0,l.jsx)(n.strong,{children:"not"})," pin them locally. If your root ",(0,l.jsx)(n.code,{children:"package.json"})," still lists ",(0,l.jsx)(n.code,{children:"@nrwl/cli"}),", ",(0,l.jsx)(n.code,{children:"@nrwl/tao"}),", or ",(0,l.jsx)(n.code,{children:"@nrwl/workspace"}),", remove those entries and any direct ",(0,l.jsx)(n.code,{children:"lerna"})," / ",(0,l.jsx)(n.code,{children:"nx"})," pins \u2014 pui-cli 9 provides them."]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm remove @nrwl/cli @nrwl/tao @nrwl/workspace lerna nx # only if explicitly pinned\npnpm install\n"})}),"\n",(0,l.jsxs)(n.h3,{id:"2-migrate-nxjson",children:["2. Migrate ",(0,l.jsx)(n.code,{children:"nx.json"})]}),"\n",(0,l.jsxs)(n.p,{children:["Nx 15 configs use deprecated ",(0,l.jsx)(n.code,{children:"@nrwl/workspace"})," presets, ",(0,l.jsx)(n.code,{children:"tasksRunnerOptions"}),", and ",(0,l.jsx)(n.code,{children:"targetDependencies"}),". Nx 22 uses ",(0,l.jsx)(n.code,{children:"nx/presets/npm.json"})," (or ",(0,l.jsx)(n.code,{children:"@nx/workspace/presets/npm.json"}),") and ",(0,l.jsx)(n.code,{children:"targetDefaults.dependsOn"}),"."]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Before (pui-cli 8 / Nx 15):"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-json",children:'{\n "extends": "@nrwl/workspace/presets/npm.json",\n "tasksRunnerOptions": {\n "default": {\n "runner": "@nrwl/workspace/tasks-runners/default",\n "options": {\n "cacheableOperations": ["build", "test", "lint"]\n }\n }\n },\n "targetDependencies": {\n "build": [{ "target": "build", "projects": "dependencies" }],\n "test": [{ "target": "build", "projects": "dependencies" }]\n }\n}\n'})}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"After (pui-cli 9 / Nx 22):"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-json",children:'{\n "$schema": "./node_modules/nx/schemas/nx-schema.json",\n "extends": "nx/presets/npm.json",\n "targetDefaults": {\n "build": {\n "dependsOn": ["^build"],\n "cache": true\n },\n "test": {\n "dependsOn": ["^build"],\n "cache": true\n },\n "dts": {\n "dependsOn": ["^dts"],\n "cache": true\n },\n "lint": {\n "dependsOn": ["^dts"],\n "cache": true\n },\n "dev": {\n "dependsOn": ["^dev"],\n "cache": true\n },\n "storybook:start": {\n "dependsOn": ["^build"],\n "cache": true\n },\n "storybook:build": {\n "dependsOn": ["^build"],\n "cache": true\n },\n "prepare": {\n "dependsOn": ["^prepare"],\n "cache": true\n },\n "package": {\n "dependsOn": ["^package"],\n "cache": true\n },\n "postinstall": {\n "cache": true\n },\n "compile:scss": {\n "cache": true\n }\n }\n}\n'})}),"\n",(0,l.jsxs)(n.p,{children:["Map each legacy ",(0,l.jsx)(n.code,{children:"targetDependencies"})," entry to ",(0,l.jsx)(n.code,{children:'"dependsOn": ["^<target>"]'})," on the same target name. Targets that were only listed under ",(0,l.jsx)(n.code,{children:"cacheableOperations"})," get ",(0,l.jsx)(n.code,{children:'"cache": true'})," in ",(0,l.jsx)(n.code,{children:"targetDefaults"}),"."]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Automated migration (optional):"})," from the monorepo root after installing pui-cli 9:"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm exec nx migrate latest\npnpm exec nx migrate --run-migrations\n"})}),"\n",(0,l.jsxs)(n.p,{children:["Review the generated migrations; they may simplify ",(0,l.jsx)(n.code,{children:"nx.json"})," further. Commit the result with your pui-cli 9 bump."]}),"\n",(0,l.jsx)(n.h3,{id:"3-lerna-9-notes",children:"3. Lerna 9 notes"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Removed commands:"})," ",(0,l.jsx)(n.code,{children:"lerna bootstrap"}),", ",(0,l.jsx)(n.code,{children:"lerna add"}),", and ",(0,l.jsx)(n.code,{children:"lerna link"})," are gone. Use pnpm workspaces (",(0,l.jsx)(n.code,{children:"pnpm add <pkg> --filter <lib>"}),") for linking and dependency management."]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsxs)(n.strong,{children:[(0,l.jsx)(n.code,{children:"lerna.json"})," \u2014 remove ",(0,l.jsx)(n.code,{children:"useWorkspaces"}),":"]})," Lerna 7+ dropped this option; Lerna 9 fails with ",(0,l.jsx)(n.code,{children:"ECONFIGWORKSPACES"})," if it is still present. Delete ",(0,l.jsx)(n.code,{children:'"useWorkspaces": true'})," from ",(0,l.jsx)(n.code,{children:"lerna.json"}),". Keep ",(0,l.jsx)(n.code,{children:'"npmClient": "pnpm"'})," so Lerna reads ",(0,l.jsx)(n.code,{children:"pnpm-workspace.yaml"})," for package discovery. You do not need a ",(0,l.jsx)(n.code,{children:"packages"})," array unless you want to override the workspace globs."]}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"Before:"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-json",children:'{\n "npmClient": "pnpm",\n "useWorkspaces": true,\n "version": "2.0.0-alpha.0"\n}\n'})}),"\n",(0,l.jsx)(n.p,{children:(0,l.jsx)(n.strong,{children:"After:"})}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-json",children:'{\n "npmClient": "pnpm",\n "version": "2.0.0-alpha.0"\n}\n'})}),"\n",(0,l.jsxs)(n.p,{children:["Optional cleanup: ",(0,l.jsx)(n.code,{children:"pnpm exec lerna repair"})," removes other deprecated keys. Verify package resolution: ",(0,l.jsx)(n.code,{children:"pnpm exec lerna list"}),"."]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsxs)(n.strong,{children:[(0,l.jsx)(n.code,{children:"pui-cli version"}),":"]})," unchanged \u2014 still wraps ",(0,l.jsx)(n.code,{children:"lerna version --conventional-commits --exact --create-release github --force-publish --yes"}),"."]}),"\n"]}),"\n",(0,l.jsxs)(n.li,{children:["\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Dry-run override:"})," ",(0,l.jsx)(n.code,{children:"semantic-version:dryrun:override"})," scripts that call ",(0,l.jsx)(n.code,{children:"lerna version"})," directly continue to work with lerna 9."]}),"\n"]}),"\n"]}),"\n",(0,l.jsx)(n.h3,{id:"4-verify-monorepo-workflows",children:"4. Verify monorepo workflows"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm exec lerna list # confirms lerna.json + pnpm-workspace.yaml resolve packages\npnpm exec nx run-many --target=build --all --parallel\npnpm exec nx affected --target=test --uncommitted\npnpm exec pui-cli lint\npnpm exec pui-cli version --help # confirms pui-cli can invoke lerna 9\n"})}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"storybook-10-pui-cli-9--pui-app-sdk",children:"Storybook 10 (pui-cli 9 + pui-app-sdk)"}),"\n",(0,l.jsxs)(n.p,{children:["Applies to repos that run ",(0,l.jsx)(n.code,{children:"pui-cli storybook"}),". Upgrade ",(0,l.jsx)(n.strong,{children:"pui-cli 9"})," and ",(0,l.jsx)(n.strong,{children:"pui-app-sdk"})," on the ",(0,l.jsx)(n.strong,{children:"same release train"})," \u2014 shared Storybook config is published from pui-app-sdk (",(0,l.jsx)(n.code,{children:"lib/utils/storybook/*.ts"})," \u2192 ",(0,l.jsx)(n.code,{children:"dist/"}),")."]}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Agent skill:"})," install the bundled playbook for CJS \u2192 ESM migration:"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm exec pui-cli skills install migrate-storybook-out-of-cjs --target all\n"})}),"\n",(0,l.jsx)(n.h3,{id:"what-changed-in-pui-app-sdk",children:"What changed in pui-app-sdk"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Topic"}),(0,l.jsx)(n.th,{children:"Before"}),(0,l.jsx)(n.th,{children:"After (Storybook 10 train)"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Package paths"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"@elliemae/pui-app-sdk/storybook/cjs/*"})}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:"@elliemae/pui-app-sdk/storybook/*"})})," (compiled ",(0,l.jsx)(n.code,{children:"dist/esm|cjs/utils/storybook/*"}),")"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Config source"}),(0,l.jsxs)(n.td,{children:["CJS ",(0,l.jsx)(n.code,{children:"cjs/main.js"}),", ",(0,l.jsx)(n.code,{children:"cjs/webpack.js"}),", \u2026"]}),(0,l.jsxs)(n.td,{children:["TypeScript ",(0,l.jsx)(n.code,{children:"lib/utils/storybook/*.ts"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Export API"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"getConfig()"})," (CJS default)"]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:"getStorybookConfig(viteBuilder?)"})})," (named export)"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Shared modules"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"cjs/main"}),", ",(0,l.jsx)(n.code,{children:"cjs/middleware"}),", \u2026"]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"main"}),", ",(0,l.jsx)(n.code,{children:"preview"}),", ",(0,l.jsx)(n.code,{children:"manager"}),", ",(0,l.jsx)(n.code,{children:"theme"}),", ",(0,l.jsx)(n.code,{children:"webpack"}),", ",(0,l.jsx)(n.code,{children:"vite"}),", ",(0,l.jsx)(n.code,{children:"middleware"})," (deprecated)"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:".storybook"})," in app-sdk"]}),(0,l.jsx)(n.td,{children:"CJS wrappers + SB6 webpack hacks"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:".storybook/*.ts"})})," importing source via ",(0,l.jsx)(n.code,{children:"../lib/utils/storybook/*"})," (dogfood only)"]})]})]})]}),"\n",(0,l.jsxs)(n.p,{children:["Consumers import ",(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:"@elliemae/pui-app-sdk/storybook/main"})})," \u2014 that resolves to ",(0,l.jsx)(n.strong,{children:"built dist"}),". Run ",(0,l.jsx)(n.code,{children:"pnpm run build"})," in app-sdk (or install a published alpha) before Storybook in repos that link app-sdk locally."]}),"\n",(0,l.jsx)(n.h3,{id:"what-changed-in-pui-cli--storybook",children:"What changed in pui-cli / Storybook"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Topic"}),(0,l.jsx)(n.th,{children:"Before (Storybook 6)"}),(0,l.jsx)(n.th,{children:"After (Storybook 10)"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"CLI"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"start-storybook"})," / ",(0,l.jsx)(n.code,{children:"build-storybook"})]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"storybook dev"})," / ",(0,l.jsx)(n.code,{children:"storybook build"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:["Consumer ",(0,l.jsx)(n.code,{children:".storybook"})]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"main.js"})," (CJS)"]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:"main.mjs"})})," (ESM)"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Framework"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"@storybook/react"})," + ",(0,l.jsx)(n.code,{children:"core.builder: webpack5"})]}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"@storybook/react-webpack5"})})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Default port"}),(0,l.jsx)(n.td,{children:"11000 (pui-cli)"}),(0,l.jsx)(n.td,{children:"11000 (unchanged)"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Story globs"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"../lib"})," only (webpack)"]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"../lib"})," and ",(0,l.jsx)(n.code,{children:"../app"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"API middleware"}),(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:".storybook/middleware.js"})}),(0,l.jsxs)(n.td,{children:["Built into pui-cli ",(0,l.jsx)(n.code,{children:"webpackFinal"})," dev server"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Removed addons"}),(0,l.jsx)(n.td,{children:"\u2014"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"addon-essentials"}),", ",(0,l.jsx)(n.code,{children:"addon-interactions"}),", ",(0,l.jsx)(n.code,{children:"addon-links"})," (moved into Storybook core in v9+), ",(0,l.jsx)(n.code,{children:"addon-events"}),", ",(0,l.jsx)(n.code,{children:"addon-storysource"}),", ",(0,l.jsx)(n.code,{children:"storybook-addon-turbo-build"}),", ",(0,l.jsx)(n.code,{children:"storybook-react-router"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"JS compiler"}),(0,l.jsx)(n.td,{children:"SWC (default in some setups)"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"@storybook/addon-webpack5-compiler-babel"})," (uses project ",(0,l.jsx)(n.code,{children:"babel.config.ts"})," \u2192 pui-cli ",(0,l.jsx)(n.code,{children:"babelConfig"}),", including ",(0,l.jsx)(n.strong,{children:"private class fields/methods"}),")"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"Lib-only packages"}),(0,l.jsx)(n.td,{children:"N/A"}),(0,l.jsxs)(n.td,{children:["Story globs skip ",(0,l.jsx)(n.code,{children:"../app/**"})," when no ",(0,l.jsx)(n.code,{children:"app/"})," directory exists"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"MDX docs pages"}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:".stories.mdx"})," with SB6 blocks"]}),(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:".mdx"})})," for docs-only pages; ",(0,l.jsx)(n.code,{children:"<Meta>"})," from ",(0,l.jsx)(n.code,{children:"@storybook/addon-docs/blocks"})," (MDX3)"]})]})]})]}),"\n",(0,l.jsx)(n.h3,{id:"consumer-migration-1",children:"Consumer migration"}),"\n",(0,l.jsxs)(n.ol,{children:["\n",(0,l.jsxs)(n.li,{children:["Bump ",(0,l.jsx)(n.code,{children:"@elliemae/pui-cli@9"})," and ",(0,l.jsx)(n.code,{children:"@elliemae/pui-app-sdk@*"})," (same release train). Reinstall after bumping a local ",(0,l.jsx)(n.code,{children:"file:"})," app-sdk link."]}),"\n",(0,l.jsxs)(n.li,{children:["Rename ",(0,l.jsx)(n.code,{children:".storybook/main.js"})," \u2192 ",(0,l.jsx)(n.code,{children:".storybook/main.mjs"}),":"]}),"\n"]}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-javascript",children:"import { getStorybookConfig } from '@elliemae/pui-app-sdk/storybook/main';\n\nexport default getStorybookConfig();\n"})}),"\n",(0,l.jsxs)(n.p,{children:[(0,l.jsx)(n.strong,{children:"Do not"})," use ",(0,l.jsx)(n.code,{children:"getConfig"}),", ",(0,l.jsx)(n.code,{children:"require('\u2026/storybook/cjs/main')"}),", or import app-sdk storybook paths before app-sdk is built."]}),"\n",(0,l.jsxs)(n.ol,{start:"3",children:["\n",(0,l.jsxs)(n.li,{children:["Convert other ",(0,l.jsx)(n.code,{children:".storybook/*.js"})," wrappers to ",(0,l.jsx)(n.code,{children:".mjs"})," when they use ",(0,l.jsx)(n.code,{children:"import"}),"/",(0,l.jsx)(n.code,{children:"export"})," (",(0,l.jsx)(n.code,{children:"preview.mjs"}),", ",(0,l.jsx)(n.code,{children:"manager.mjs"}),", ",(0,l.jsx)(n.code,{children:"theme.mjs"}),"). See ",(0,l.jsx)(n.code,{children:"migrate-storybook-out-of-cjs"})," for preview/manager/theme patterns."]}),"\n",(0,l.jsxs)(n.li,{children:["Delete ",(0,l.jsx)(n.code,{children:".storybook/middleware.js"})," \u2014 mock API routes are registered by pui-cli during ",(0,l.jsx)(n.code,{children:"storybook dev"}),". ",(0,l.jsx)(n.code,{children:"@elliemae/pui-app-sdk/storybook/middleware"})," remains as a ",(0,l.jsx)(n.strong,{children:"deprecated"})," export only for legacy repos."]}),"\n",(0,l.jsxs)(n.li,{children:["Update stories to CSF3 / ",(0,l.jsx)(n.code,{children:"@storybook/react-webpack5"})," types where needed."]}),"\n",(0,l.jsxs)(n.li,{children:["Rename docs-only ",(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:"*.stories.mdx"})})," \u2192 ",(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:"*.mdx"})})," if Storybook fails to index with \u201cInvariant failed\u201d."]}),"\n",(0,l.jsx)(n.li,{children:"Remove Storybook 6 webpack alias workarounds (MDX pinning, react-select hacks) unless a specific story still fails after upgrade."}),"\n",(0,l.jsxs)(n.li,{children:["Migrate consumer ",(0,l.jsxs)(n.strong,{children:[(0,l.jsx)(n.code,{children:"babel.config.cjs"})," \u2192 ",(0,l.jsx)(n.code,{children:"babel.config.ts"})]})," (see ",(0,l.jsx)(n.a,{href:"#2b-migrate-babel-config-to-typescript",children:"\xa72b"}),"). ",(0,l.jsx)(n.strong,{children:"Do not"})," add Babel private-method plugins locally \u2014 pui-cli 9 includes ",(0,l.jsx)(n.code,{children:"@babel/plugin-transform-private-methods"})," and ",(0,l.jsx)(n.code,{children:"@babel/plugin-transform-private-property-in-object"})," in shared ",(0,l.jsx)(n.code,{children:"babelConfig"})," (required for app-sdk private class syntax under the Storybook Babel compiler)."]}),"\n"]}),"\n",(0,l.jsxs)(n.p,{children:["Monorepo lib packages without ",(0,l.jsx)(n.code,{children:"app/"})," may filter story globs in ",(0,l.jsx)(n.code,{children:"main.mjs"})," \u2014 see ",(0,l.jsx)(n.code,{children:"pui-mono-repo-boilerplate/libs/foo"}),"."]}),"\n",(0,l.jsx)(n.h3,{id:"verify",children:"Verify"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-bash",children:"pnpm exec pui-cli storybook # dev on port 11000\npnpm exec pui-cli storybook -b # static build to demo/\npnpm exec pui-cli storybook -b --docs # docs build\npnpm exec pui-cli lint # stories + .storybook/\n"})}),"\n",(0,l.jsx)(n.h3,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{children:"Symptom"}),(0,l.jsx)(n.th,{children:"Fix"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"Cannot find module '\u2026/dist/esm/utils/storybook/main.js'"})}),(0,l.jsxs)(n.td,{children:["Build app-sdk (",(0,l.jsx)(n.code,{children:"pnpm run build"}),") or use a published app-sdk version; consumers must not import storybook from unpublished source"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"getConfig is not a function"})}),(0,l.jsxs)(n.td,{children:["Use ",(0,l.jsx)(n.strong,{children:(0,l.jsx)(n.code,{children:"getStorybookConfig"})})," named import"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"Cannot find module '\u2026/storybook/cjs/main'"})}),(0,l.jsxs)(n.td,{children:["Migrate to ",(0,l.jsx)(n.code,{children:"@elliemae/pui-app-sdk/storybook/main"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:(0,l.jsx)(n.code,{children:"Class private methods are not enabled"})}),(0,l.jsx)(n.td,{children:"Upgrade to pui-cli 9 with private-method Babel plugins; remove duplicate plugins from consumer Babel config"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:["Babel cannot load ",(0,l.jsx)(n.code,{children:"babel.config.ts"})]}),(0,l.jsxs)(n.td,{children:["Confirm Node ",(0,l.jsx)(n.strong,{children:"24"})," (",(0,l.jsx)(n.code,{children:".node-version"}),", CI image); pui-cli 9 requires Node 24 for native TS config loading"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsxs)(n.td,{children:[(0,l.jsx)(n.code,{children:"Unable to index \u2026stories.mdx"})," / Invariant failed"]}),(0,l.jsxs)(n.td,{children:["Rename docs-only file to ",(0,l.jsx)(n.code,{children:".mdx"}),"; use ",(0,l.jsx)(n.code,{children:"@storybook/addon-docs/blocks"})," for ",(0,l.jsx)(n.code,{children:"<Meta>"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"SWC / native binding errors"}),(0,l.jsx)(n.td,{children:"pui-cli removes SWC from Storybook webpack; ensure Babel compiler addon loads via NODE_PATH"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{children:"API mocks missing"}),(0,l.jsxs)(n.td,{children:["Delete ",(0,l.jsx)(n.code,{children:"middleware.js"}),"; use ",(0,l.jsx)(n.code,{children:"pui-cli storybook"})," (not legacy CLI)"]})]})]})]}),"\n",(0,l.jsxs)(n.p,{children:["Pilot reference: ",(0,l.jsx)(n.code,{children:"pui-mono-repo-boilerplate/libs/foo"}),", ",(0,l.jsx)(n.code,{children:"pui-react-boilerplate"}),", ",(0,l.jsx)(n.code,{children:"pui-app-sdk"})," (dogfood ",(0,l.jsx)(n.code,{children:".storybook/*.ts"}),")."]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"ci-checklist",children:"CI checklist"}),"\n",(0,l.jsxs)(n.ul,{className:"contains-task-list",children:["\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Node 24 in pipeline"]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",disabled:!0})," ","pnpm 11 in pipeline"]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",disabled:!0})," ",(0,l.jsx)(n.code,{children:"babel.config.ts"})," re-exports pui-cli ",(0,l.jsx)(n.code,{children:"babelConfig"})," (no root ",(0,l.jsx)(n.code,{children:"babel.config.cjs"}),")"]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",disabled:!0})," ",(0,l.jsx)(n.code,{children:"shamefullyHoist"})," (and related settings) in ",(0,l.jsx)(n.code,{children:"pnpm-workspace.yaml"}),", not ",(0,l.jsx)(n.code,{children:".npmrc"})]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",disabled:!0})," ",(0,l.jsx)(n.code,{children:"pnpm run build"})," after clean install (webpack resolves hoisted deps)"]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",disabled:!0})," ",(0,l.jsx)(n.code,{children:"pui-cli lint"})," (0 errors)"]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",disabled:!0})," ",(0,l.jsx)(n.code,{children:"pui-cli tscheck --files"})]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Unit tests"]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",disabled:!0})," ","Production build"]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",disabled:!0})," ","lint-staged / husky hooks pass locally"]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",disabled:!0})," ",(0,l.jsx)(n.code,{children:"semantic-release --dry-run"})," (libraries that publish to npm)"]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",disabled:!0})," ",(0,l.jsx)(n.code,{children:"nx run-many --target=build --all"})," (monorepos)"]}),"\n",(0,l.jsxs)(n.li,{className:"task-list-item",children:[(0,l.jsx)(n.input,{type:"checkbox",disabled:!0})," ",(0,l.jsx)(n.code,{children:"pui-cli version --help"})," or dry-run versioning (monorepos that publish packages)"]}),"\n"]}),"\n",(0,l.jsx)(n.hr,{}),"\n",(0,l.jsx)(n.h2,{id:"getting-help",children:"Getting help"}),"\n",(0,l.jsxs)(n.ul,{children:["\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Rule changes:"})," ",(0,l.jsx)(n.a,{href:"/cli/eslint-rules-migration",children:"eslint-rules-migration.md"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Stylelint changes:"})," ",(0,l.jsx)(n.a,{href:"/cli/stylelint-migration",children:"stylelint-migration.md"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Commands:"})," ",(0,l.jsx)(n.a,{href:"/cli/usage-guide",children:"usage guide"})]}),"\n",(0,l.jsxs)(n.li,{children:[(0,l.jsx)(n.strong,{children:"Platform team:"})," ",(0,l.jsx)(n.code,{children:"#pui-platform"})," or your team's platform-ui channel"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,r.R)(),...e.components};return n?(0,l.jsx)(n,{...e,children:(0,l.jsx)(a,{...e})}):a(e)}},6607(e,n,s){s.d(n,{R:()=>c,x:()=>d});var i=s(758);const l={},r=i.createContext(l);function c(e){const n=i.useContext(r);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(l):e.components||l:c(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[]).push([[6130],{
|
|
1
|
+
"use strict";(globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[]).push([[6130],{1001(e,t,i){i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"api/type-aliases/LIB_NAME","title":"LIB\\\\_NAME","description":"","source":"@site/docs/api/type-aliases/LIB_NAME.md","sourceDirName":"api/type-aliases","slug":"/api/type-aliases/LIB_NAME","permalink":"/cli/api/type-aliases/LIB_NAME","draft":false,"unlisted":false,"editUrl":"https://git.elliemae.io/platform-ui/pui-cli.git/docs/api/type-aliases/LIB_NAME.md","tags":[],"version":"current","frontMatter":{},"sidebar":"docsSidebar","previous":{"title":"loadRoutes()","permalink":"/cli/api/functions/loadRoutes"},"next":{"title":"babelConfig","permalink":"/cli/api/variables/babelConfig"}}');var a=i(6070),s=i(6607);const o={},r="LIB_NAME",l={},c=[];function p(e){const t={code:"code",h1:"h1",header:"header",pre:"pre",...(0,s.R)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.header,{children:(0,a.jsx)(t.h1,{id:"lib_name",children:"LIB_NAME"})}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-ts",children:'type LIB_NAME = "pui-cli";\n'})})]})}function u(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(p,{...e})}):p(e)}},6607(e,t,i){i.d(t,{R:()=>o,x:()=>r});var n=i(758);const a={},s=n.createContext(a);function o(e){const t=n.useContext(s);return n.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[]).push([[8401],{3040(e,n,t){"use strict";t.r(n),t.d(n,{default:()=>Wt});var s=t(758),a=t(4485),i=t(8243),r=t(6070);const o=s.createContext(null);function c({children:e,content:n}){const t=function(e){return(0,s.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc}),[e])}(n);return(0,r.jsx)(o.Provider,{value:t,children:e})}function l(){const e=(0,s.useContext)(o);if(null===e)throw new i.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:n,assets:t}=l();return(0,r.jsx)(a.be,{title:e.title,description:e.description,keywords:n.keywords,image:t.image??n.image})}var u=t(3526),m=t(5284),h=t(2984),f=t(6258);function x(e){const{permalink:n,title:t,subLabel:s,isNext:a}=e;return(0,r.jsxs)(f.A,{className:(0,u.A)("pagination-nav__link",a?"pagination-nav__link--next":"pagination-nav__link--prev"),to:n,children:[s&&(0,r.jsx)("div",{className:"pagination-nav__sublabel",children:s}),(0,r.jsx)("div",{className:"pagination-nav__label",children:t})]})}function p(e){const{className:n,previous:t,next:s}=e;return(0,r.jsxs)("nav",{className:(0,u.A)(n,"pagination-nav"),"aria-label":(0,h.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,r.jsx)(x,{...t,subLabel:(0,r.jsx)(h.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),s&&(0,r.jsx)(x,{...s,subLabel:(0,r.jsx)(h.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function g(){const{metadata:e}=l();return(0,r.jsx)(p,{className:"docusaurus-mt-lg",previous:e.previous,next:e.next})}var b=t(7958),j=t(7215),v=t(3386),N=t(4823),A=t(5754);const y={unreleased:function({siteTitle:e,versionMetadata:n}){return(0,r.jsx)(h.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:e,versionLabel:(0,r.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function({siteTitle:e,versionMetadata:n}){return(0,r.jsx)(h.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:e,versionLabel:(0,r.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function L(e){const n=y[e.versionMetadata.banner];return(0,r.jsx)(n,{...e})}function C({versionLabel:e,to:n,onClick:t}){return(0,r.jsx)(h.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:e,latestVersionLink:(0,r.jsx)("b",{children:(0,r.jsx)(f.A,{to:n,onClick:t,children:(0,r.jsx)(h.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function k({className:e,versionMetadata:n}){const{siteConfig:{title:t}}=(0,b.A)(),{pluginId:s}=(0,j.vT)({failfast:!0}),{savePreferredVersionName:a}=(0,N.g1)(s),{latestDocSuggestion:i,latestVersionSuggestion:o}=(0,j.HW)(s),c=i??(l=o).docs.find(e=>e.id===l.mainDocId);var l;return(0,r.jsxs)("div",{className:(0,u.A)(e,v.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,r.jsx)("div",{children:(0,r.jsx)(L,{siteTitle:t,versionMetadata:n})}),(0,r.jsx)("div",{className:"margin-top--md",children:(0,r.jsx)(C,{versionLabel:o.label,to:c.path,onClick:()=>a(o.name)})})]})}function w({className:e}){const n=(0,A.r)();return n.banner?(0,r.jsx)(k,{className:e,versionMetadata:n}):null}function _({className:e}){const n=(0,A.r)();return n.badge?(0,r.jsx)("span",{className:(0,u.A)(e,v.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,r.jsx)(h.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}const T="tag_LIAx",B="tagRegular_RRkA",H="tagWithCount_kEc0";function M({permalink:e,label:n,count:t,description:s}){return(0,r.jsxs)(f.A,{rel:"tag",href:e,title:s,className:(0,u.A)(T,t?H:B),children:[n,t&&(0,r.jsx)("span",{children:t})]})}const E="tags_Cnsq",I="tag_n9xH";function S({tags:e}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("b",{children:(0,r.jsx)(h.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,r.jsx)("ul",{className:(0,u.A)(E,"padding--none","margin-left--sm"),children:e.map(e=>(0,r.jsx)("li",{className:I,children:(0,r.jsx)(M,{...e})},e.permalink))})]})}const R="iconEdit_sbI6";function U({className:e,...n}){return(0,r.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.A)(R,e),"aria-hidden":"true",...n,children:(0,r.jsx)("g",{children:(0,r.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function V({editUrl:e}){return(0,r.jsxs)(f.A,{to:e,className:v.G.common.editThisPage,children:[(0,r.jsx)(U,{}),(0,r.jsx)(h.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}function z(e={}){const{i18n:{currentLocale:n}}=(0,b.A)(),t=function(){const{i18n:{currentLocale:e,localeConfigs:n}}=(0,b.A)();return n[e].calendar}();return new Intl.DateTimeFormat(n,{calendar:t,...e})}function O({lastUpdatedAt:e}){const n=new Date(e),t=z({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(n);return(0,r.jsx)(h.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,r.jsx)("b",{children:(0,r.jsx)("time",{dateTime:n.toISOString(),itemProp:"dateModified",children:t})})},children:" on {date}"})}function D({lastUpdatedBy:e}){return(0,r.jsx)(h.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,r.jsx)("b",{children:e})},children:" by {user}"})}function $({lastUpdatedAt:e,lastUpdatedBy:n}){return(0,r.jsxs)("span",{className:v.G.common.lastUpdated,children:[(0,r.jsx)(h.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,r.jsx)(O,{lastUpdatedAt:e}):"",byUser:n?(0,r.jsx)(D,{lastUpdatedBy:n}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const F="lastUpdated_n07i",G="noPrint_sn50";function W({className:e,editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s}){return(0,r.jsxs)("div",{className:(0,u.A)("row",e),children:[(0,r.jsx)("div",{className:(0,u.A)("col",G),children:n&&(0,r.jsx)(V,{editUrl:n})}),(0,r.jsx)("div",{className:(0,u.A)("col",F),children:(t||s)&&(0,r.jsx)($,{lastUpdatedAt:t,lastUpdatedBy:s})})]})}function P(){const{metadata:e}=l(),{editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s,tags:a}=e,i=a.length>0,o=!!(n||t||s);return i||o?(0,r.jsxs)("footer",{className:(0,u.A)(v.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,r.jsx)("div",{className:(0,u.A)("row margin-top--sm",v.G.docs.docFooterTagsRow),children:(0,r.jsx)("div",{className:"col",children:(0,r.jsx)(S,{tags:a})})}),o&&(0,r.jsx)(W,{className:(0,u.A)("margin-top--sm",v.G.docs.docFooterEditMetaRow),editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s})]}):null}var q=t(6153),Z=t(2041);function J(e){const n=e.map(e=>({...e,parentIndex:-1,children:[]})),t=Array(7).fill(-1);n.forEach((e,n)=>{const s=t.slice(2,e.level);e.parentIndex=Math.max(...s),t[e.level]=n});const s=[];return n.forEach(e=>{const{parentIndex:t,...a}=e;t>=0?n[t].children.push(a):s.push(a)}),s}function Q({toc:e,minHeadingLevel:n,maxHeadingLevel:t}){return e.flatMap(e=>{const s=Q({toc:e.children,minHeadingLevel:n,maxHeadingLevel:t});return function(e){return e.level>=n&&e.level<=t}(e)?[{...e,children:s}]:s})}function X(e){const n=e.getBoundingClientRect();return n.top===n.bottom?X(e.parentNode):n}function K(e,{anchorTopOffset:n}){const t=e.find(e=>X(e).top>=n);if(t){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(X(t))?t:e[e.indexOf(t)-1]??null}return e[e.length-1]??null}function Y(){const e=(0,s.useRef)(0),{navbar:{hideOnScroll:n}}=(0,Z.p)();return(0,s.useEffect)(()=>{e.current=n?0:document.querySelector(".navbar").clientHeight},[n]),e}function ee(e){const n=(0,s.useRef)(void 0),t=Y();(0,s.useEffect)(()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:r}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),o=function({minHeadingLevel:e,maxHeadingLevel:n}){const t=[];for(let s=e;s<=n;s+=1)t.push(`h${s}.anchor`);return Array.from(document.querySelectorAll(t.join()))}({minHeadingLevel:i,maxHeadingLevel:r}),c=K(o,{anchorTopOffset:t.current}),l=e.find(e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e));e.forEach(e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(a),e.classList.add(a),n.current=e):e.classList.remove(a)}(e,e===l)})}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}},[e,t])}function ne({toc:e,className:n,linkClassName:t,isChild:s}){return e.length?(0,r.jsx)("ul",{className:s?void 0:n,children:e.map(e=>(0,r.jsxs)("li",{children:[(0,r.jsx)(f.A,{to:`#${e.id}`,className:t??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,r.jsx)(ne,{isChild:!0,toc:e.children,className:n,linkClassName:t})]},e.id))}):null}const te=s.memo(ne);function se({toc:e,className:n="table-of-contents table-of-contents__left-border",linkClassName:t="table-of-contents__link",linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:o,...c}){const l=(0,Z.p)(),d=i??l.tableOfContents.minHeadingLevel,u=o??l.tableOfContents.maxHeadingLevel,m=function({toc:e,minHeadingLevel:n,maxHeadingLevel:t}){return(0,s.useMemo)(()=>Q({toc:J(e),minHeadingLevel:n,maxHeadingLevel:t}),[e,n,t])}({toc:e,minHeadingLevel:d,maxHeadingLevel:u});return ee((0,s.useMemo)(()=>{if(t&&a)return{linkClassName:t,linkActiveClassName:a,minHeadingLevel:d,maxHeadingLevel:u}},[t,a,d,u])),(0,r.jsx)(te,{toc:m,className:n,linkClassName:t,...c})}const ae="tocCollapsibleButton_wt2y",ie="tocCollapsibleButtonExpanded_j0fa";function re({collapsed:e,...n}){return(0,r.jsx)("button",{type:"button",...n,className:(0,u.A)("clean-btn",ae,!e&&ie,n.className),children:(0,r.jsx)(h.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const oe="tocCollapsible_XRgF",ce="tocCollapsibleContent_RyaZ",le="tocCollapsibleExpanded_L0tF";function de({toc:e,className:n,minHeadingLevel:t,maxHeadingLevel:s}){const{collapsed:a,toggleCollapsed:i}=(0,q.u)({initialState:!0});return(0,r.jsxs)("div",{className:(0,u.A)(oe,!a&&le,n),children:[(0,r.jsx)(re,{collapsed:a,onClick:i}),(0,r.jsx)(q.N,{lazy:!0,className:ce,collapsed:a,children:(0,r.jsx)(se,{toc:e,minHeadingLevel:t,maxHeadingLevel:s})})]})}const ue="tocMobile_QmTN";function me(){const{toc:e,frontMatter:n}=l();return(0,r.jsx)(de,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:(0,u.A)(v.G.docs.docTocMobile,ue)})}const he="tableOfContents_gGRX";function fe({className:e,...n}){return(0,r.jsx)("div",{className:(0,u.A)(he,"thin-scrollbar",e),children:(0,r.jsx)(se,{...n,linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})})}function xe(){const{toc:e,frontMatter:n}=l();return(0,r.jsx)(fe,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:v.G.docs.docTocDesktop})}var pe=t(7699),ge=t(6607),be=t(6376),je=t(899),ve=t(4802);function Ne(){const{prism:e}=(0,Z.p)(),{colorMode:n}=(0,ve.G)(),t=e.theme,s=e.darkTheme||t;return"dark"===n?s:t}var Ae=t(4809),ye=t.n(Ae);const Le=/title=(?<quote>["'])(?<title>.*?)\1/,Ce=/\{(?<range>[\d,-]+)\}/,ke={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},we={...ke,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},_e=Object.keys(ke);function Te(e,n){const t=e.map(e=>{const{start:t,end:s}=we[e];return`(?:${t}\\s*(${n.flatMap(e=>[e.line,e.block?.start,e.block?.end].filter(Boolean)).join("|")})\\s*${s})`}).join("|");return new RegExp(`^\\s*(?:${t})\\s*$`)}function Be({showLineNumbers:e,metastring:n}){return"boolean"==typeof e?e?1:void 0:"number"==typeof e?e:function(e){const n=e?.split(" ").find(e=>e.startsWith("showLineNumbers"));if(n){if(n.startsWith("showLineNumbers=")){const e=n.replace("showLineNumbers=","");return parseInt(e,10)}return 1}}(n)}function He(e,n){const{language:t,magicComments:s}=n;if(void 0===t)return{lineClassNames:{},code:e};const a=function(e,n){switch(e){case"js":case"javascript":case"ts":case"typescript":return Te(["js","jsBlock"],n);case"jsx":case"tsx":return Te(["js","jsBlock","jsx"],n);case"html":return Te(["js","jsBlock","html"],n);case"python":case"py":case"bash":return Te(["bash"],n);case"markdown":case"md":return Te(["html","jsx","bash"],n);case"tex":case"latex":case"matlab":return Te(["tex"],n);case"lua":case"haskell":return Te(["lua"],n);case"sql":return Te(["lua","jsBlock"],n);case"wasm":return Te(["wasm"],n);case"vb":case"vba":case"visual-basic":return Te(["vb","rem"],n);case"vbnet":return Te(["vbnet","rem"],n);case"batch":return Te(["rem"],n);case"basic":return Te(["rem","f90"],n);case"fsharp":return Te(["js","ml"],n);case"ocaml":case"sml":return Te(["ml"],n);case"fortran":return Te(["f90"],n);case"cobol":return Te(["cobol"],n);default:return Te(_e,n)}}(t,s),i=e.split(/\r?\n/),r=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),o=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:n})=>[n,e])),c=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.start,e])),l=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.end,e]));for(let u=0;u<i.length;){const e=i[u].match(a);if(!e){u+=1;continue}const n=e.slice(1).find(e=>void 0!==e);o[n]?r[o[n]].range+=`${u},`:c[n]?r[c[n]].start=u:l[n]&&(r[l[n]].range+=`${r[l[n]].start}-${u-1},`),i.splice(u,1)}const d={};return Object.entries(r).forEach(([e,{range:n}])=>{ye()(n).forEach(n=>{d[n]??=[],d[n].push(e)})}),{code:i.join("\n"),lineClassNames:d}}function Me(e,n){const t=e.replace(/\r?\n$/,"");return function(e,{metastring:n,magicComments:t}){if(n&&Ce.test(n)){const s=n.match(Ce).groups.range;if(0===t.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${n}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const a=t[0].className,i=ye()(s).filter(e=>e>0).map(e=>[e-1,[a]]);return{lineClassNames:Object.fromEntries(i),code:e}}return null}(t,{...n})??He(t,{...n})}function Ee(e){const n=function(e){return n=e.language??function(e){if(!e)return;const n=e.split(" ").find(e=>e.startsWith("language-"));return n?.replace(/language-/,"")}(e.className)??e.defaultLanguage,n?.toLowerCase()??"text";var n}({language:e.language,defaultLanguage:e.defaultLanguage,className:e.className}),{lineClassNames:t,code:s}=Me(e.code,{metastring:e.metastring,magicComments:e.magicComments,language:n}),a=function({className:e,language:n}){return(0,u.A)(e,n&&!e?.includes(`language-${n}`)&&`language-${n}`)}({className:e.className,language:n}),i=(r=e.metastring,(r?.match(Le)?.groups.title??"")||e.title);var r;const o=Be({showLineNumbers:e.showLineNumbers,metastring:e.metastring});return{codeInput:e.code,code:s,className:a,language:n,title:i,lineNumbersStart:o,lineClassNames:t}}const Ie=(0,s.createContext)(null);function Se({metadata:e,wordWrap:n,children:t}){const a=(0,s.useMemo)(()=>({metadata:e,wordWrap:n}),[e,n]);return(0,r.jsx)(Ie.Provider,{value:a,children:t})}function Re(){const e=(0,s.useContext)(Ie);if(null===e)throw new i.dV("CodeBlockContextProvider");return e}const Ue="codeBlockContainer_uLrG";function Ve({as:e,...n}){const t=function(e){const n={color:"--prism-color",backgroundColor:"--prism-background-color"},t={};return Object.entries(e.plain).forEach(([e,s])=>{const a=n[e];a&&"string"==typeof s&&(t[a]=s)}),t}(Ne());return(0,r.jsx)(e,{...n,style:t,className:(0,u.A)(n.className,Ue,v.G.common.codeBlock)})}const ze="codeBlock_whMN",Oe="codeBlockStandalone_ult9",De="codeBlockLines_r5mI",$e="codeBlockLinesWithNumbering_kaK3";function Fe({children:e,className:n}){return(0,r.jsx)(Ve,{as:"pre",tabIndex:0,className:(0,u.A)(Oe,"thin-scrollbar",n),children:(0,r.jsx)("code",{className:De,children:e})})}const Ge={attributes:!0,characterData:!0,childList:!0,subtree:!0};function We(e,n){const[t,a]=(0,s.useState)(),r=(0,s.useCallback)(()=>{a(e.current?.closest("[role=tabpanel][hidden]"))},[e,a]);(0,s.useEffect)(()=>{r()},[r]),function(e,n,t=Ge){const a=(0,i._q)(n),r=(0,i.Be)(t);(0,s.useEffect)(()=>{const n=new MutationObserver(a);return e&&n.observe(e,r),()=>n.disconnect()},[e,a,r])}(t,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(n(),r())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}function Pe({children:e}){return e}var qe=t(6194);function Ze({line:e,token:n,...t}){return(0,r.jsx)("span",{...t})}const Je="codeLine_Qx8J",Qe="codeLineNumber_R7jq",Xe="codeLineContent_mCQs";function Ke(){return(0,r.jsx)("br",{})}function Ye({line:e,classNames:n,showLineNumbers:t,getLineProps:s,getTokenProps:a}){const i=function(e){const n=1===e.length&&"\n"===e[0].content?e[0]:void 0;return n?[{...n,content:""}]:e}(e),o=s({line:i,className:(0,u.A)(n,t&&Je)}),c=i.map((e,n)=>{const t=a({token:e});return(0,r.jsx)(Ze,{...t,line:i,token:e,children:t.children},n)});return(0,r.jsxs)("div",{...o,children:[t?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:Qe}),(0,r.jsx)("span",{className:Xe,children:c})]}):c,(0,r.jsx)(Ke,{})]})}const en=s.forwardRef((e,n)=>(0,r.jsx)("pre",{ref:n,tabIndex:0,...e,className:(0,u.A)(e.className,ze,"thin-scrollbar")}));function nn(e){const{metadata:n}=Re();return(0,r.jsx)("code",{...e,className:(0,u.A)(e.className,De,void 0!==n.lineNumbersStart&&$e),style:{...e.style,counterReset:void 0===n.lineNumbersStart?void 0:"line-count "+(n.lineNumbersStart-1)}})}function tn({className:e}){const{metadata:n,wordWrap:t}=Re(),s=Ne(),{code:a,language:i,lineNumbersStart:o,lineClassNames:c}=n;return(0,r.jsx)(qe.f4,{theme:s,code:a,language:i,children:({className:n,style:s,tokens:a,getLineProps:i,getTokenProps:l})=>(0,r.jsx)(en,{ref:t.codeBlockRef,className:(0,u.A)(e,n),style:s,children:(0,r.jsx)(nn,{children:a.map((e,n)=>(0,r.jsx)(Ye,{line:e,getLineProps:i,getTokenProps:l,classNames:c[n],showLineNumbers:void 0!==o},n))})})})}function sn({children:e,fallback:n}){return(0,je.A)()?(0,r.jsx)(r.Fragment,{children:e?.()}):n??null}function an({className:e,...n}){return(0,r.jsx)("button",{type:"button",...n,className:(0,u.A)("clean-btn",e)})}function rn(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function on(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const cn={copyButtonCopied:"copyButtonCopied_F2ph",copyButtonIcons:"copyButtonIcons_Vbtl",copyButtonIcon:"copyButtonIcon_M27n",copyButtonSuccessIcon:"copyButtonSuccessIcon_mSpV"};function ln(e){return e?(0,h.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,h.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"})}function dn(){const{metadata:{code:e}}=Re(),[n,a]=(0,s.useState)(!1),i=(0,s.useRef)(void 0),r=(0,s.useCallback)(()=>{(async function(e){if(navigator.clipboard)return navigator.clipboard.writeText(e);const{default:n}=await t.e(821).then(t.bind(t,821));return n(e)})(e).then(()=>{a(!0),i.current=window.setTimeout(()=>{a(!1)},1e3)})},[e]);return(0,s.useEffect)(()=>()=>window.clearTimeout(i.current),[]),{copyCode:r,isCopied:n}}function un({className:e}){const{copyCode:n,isCopied:t}=dn();return(0,r.jsx)(an,{"aria-label":ln(t),title:(0,h.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.A)(e,cn.copyButton,t&&cn.copyButtonCopied),onClick:n,children:(0,r.jsxs)("span",{className:cn.copyButtonIcons,"aria-hidden":"true",children:[(0,r.jsx)(rn,{className:cn.copyButtonIcon}),(0,r.jsx)(on,{className:cn.copyButtonSuccessIcon})]})})}function mn(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const hn="wordWrapButtonIcon_rau9",fn="wordWrapButtonEnabled_onh2";function xn({className:e}){const{wordWrap:n}=Re();if(!(n.isEnabled||n.isCodeScrollable))return!1;const t=(0,h.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,r.jsx)(an,{onClick:()=>n.toggle(),className:(0,u.A)(e,n.isEnabled&&fn),"aria-label":t,title:t,children:(0,r.jsx)(mn,{className:hn,"aria-hidden":"true"})})}const pn="buttonGroup_uW_2";function gn({className:e}){return(0,r.jsx)(sn,{children:()=>(0,r.jsxs)("div",{className:(0,u.A)(e,pn),children:[(0,r.jsx)(xn,{}),(0,r.jsx)(un,{})]})})}const bn="codeBlockContent_yDoo",jn="codeBlockTitle_Dgpo";function vn({className:e}){const{metadata:n}=Re();return(0,r.jsxs)(Ve,{as:"div",className:(0,u.A)(e,n.className),children:[n.title&&(0,r.jsx)("div",{className:jn,children:(0,r.jsx)(Pe,{children:n.title})}),(0,r.jsxs)("div",{className:bn,children:[(0,r.jsx)(tn,{}),(0,r.jsx)(gn,{})]})]})}function Nn(e){const n=function(e){const{prism:n}=(0,Z.p)();return Ee({code:e.children,className:e.className,metastring:e.metastring,magicComments:n.magicComments,defaultLanguage:n.defaultLanguage,language:e.language,title:e.title,showLineNumbers:e.showLineNumbers})}(e),t=function(){const[e,n]=(0,s.useState)(!1),[t,a]=(0,s.useState)(!1),i=(0,s.useRef)(null),r=(0,s.useCallback)(()=>{const t=i.current.querySelector("code");e?t.removeAttribute("style"):(t.style.whiteSpace="pre-wrap",t.style.overflowWrap="anywhere"),n(e=>!e)},[i,e]),o=(0,s.useCallback)(()=>{const{scrollWidth:e,clientWidth:n}=i.current,t=e>n||i.current.querySelector("code").hasAttribute("style");a(t)},[i]);return We(i,o),(0,s.useEffect)(()=>{o()},[e,o]),(0,s.useEffect)(()=>(window.addEventListener("resize",o,{passive:!0}),()=>{window.removeEventListener("resize",o)}),[o]),{codeBlockRef:i,isEnabled:e,isCodeScrollable:t,toggle:r}}();return(0,r.jsx)(Se,{metadata:n,wordWrap:t,children:(0,r.jsx)(vn,{})})}function An({children:e,...n}){const t=(0,je.A)(),a=function(e){return s.Children.toArray(e).some(e=>(0,s.isValidElement)(e))?e:Array.isArray(e)?e.join(""):e}(e),i="string"==typeof a?Nn:Fe;return(0,r.jsx)(i,{...n,children:a},String(t))}function yn(e){return(0,r.jsx)("code",{...e})}var Ln=t(4782);var Cn=t(4013);const kn="details_Pzvs",wn="isBrowser_n_Jc",_n="collapsibleContent_FiJ2";function Tn(e){return!!e&&("SUMMARY"===e.tagName||Tn(e.parentElement))}function Bn(e,n){return!!e&&(e===n||Bn(e.parentElement,n))}function Hn({summary:e,children:n,...t}){(0,Cn.A)().collectAnchor(t.id);const a=(0,je.A)(),i=(0,s.useRef)(null),{collapsed:o,setCollapsed:c}=(0,q.u)({initialState:!t.open}),[l,d]=(0,s.useState)(t.open),m=s.isValidElement(e)?e:(0,r.jsx)("summary",{children:e??"Details"});return(0,r.jsxs)("details",{...t,ref:i,open:l,"data-collapsed":o,className:(0,u.A)(kn,a&&wn,t.className),onMouseDown:e=>{Tn(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const n=e.target;Tn(n)&&Bn(n,i.current)&&(e.preventDefault(),o?(c(!1),d(!0)):c(!0))},children:[m,(0,r.jsx)(q.N,{lazy:!1,collapsed:o,onCollapseTransitionEnd:e=>{c(e),d(!e)},children:(0,r.jsx)("div",{className:_n,children:n})})]})}const Mn="details_aC2W";function En({...e}){return(0,r.jsx)(Hn,{...e,className:(0,u.A)("alert alert--info",Mn,e.className)})}function In(e){const n=s.Children.toArray(e.children),t=n.find(e=>s.isValidElement(e)&&"summary"===e.type),a=(0,r.jsx)(r.Fragment,{children:n.filter(e=>e!==t)});return(0,r.jsx)(En,{...e,summary:t,children:a})}function Sn(e){return(0,r.jsx)(pe.A,{...e})}const Rn="containsTaskList_nAax";function Un(e){if(void 0!==e)return(0,u.A)(e,e?.includes("contains-task-list")&&Rn)}const Vn="img_pebZ";function zn(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=s.Children.toArray(e),t=n.find(e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),a=n.filter(e=>e!==t),i=t?.props.children;return{mdxAdmonitionTitle:i,rest:a.length>0?(0,r.jsx)(r.Fragment,{children:a}):null}}(e.children),a=e.title??n;return{...e,...a&&{title:a},children:t}}const On="admonition_Vkul",Dn="admonitionHeading_ekH3",$n="admonitionIcon_guwV",Fn="admonitionContent_sZjU";function Gn({type:e,className:n,children:t,id:s}){return(0,r.jsx)("div",{className:(0,u.A)(v.G.common.admonition,v.G.common.admonitionType(e),On,n),id:s,children:t})}function Wn({icon:e,title:n}){return(0,r.jsxs)("div",{className:Dn,children:[(0,r.jsx)("span",{className:$n,children:e}),n]})}function Pn({children:e}){return e?(0,r.jsx)("div",{className:Fn,children:e}):null}function qn(e){const{type:n,icon:t,title:s,children:a,className:i,id:o}=e;return(0,r.jsxs)(Gn,{type:n,className:i,id:o,children:[s||t?(0,r.jsx)(Wn,{title:s,icon:t}):null,(0,r.jsx)(Pn,{children:a})]})}function Zn(e){return(0,r.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const Jn={icon:(0,r.jsx)(Zn,{}),title:(0,r.jsx)(h.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function Qn(e){return(0,r.jsx)(qn,{...Jn,...e,className:(0,u.A)("alert alert--secondary",e.className),children:e.children})}function Xn(e){return(0,r.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const Kn={icon:(0,r.jsx)(Xn,{}),title:(0,r.jsx)(h.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function Yn(e){return(0,r.jsx)(qn,{...Kn,...e,className:(0,u.A)("alert alert--success",e.className),children:e.children})}function et(e){return(0,r.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const nt={icon:(0,r.jsx)(et,{}),title:(0,r.jsx)(h.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function tt(e){return(0,r.jsx)(qn,{...nt,...e,className:(0,u.A)("alert alert--info",e.className),children:e.children})}function st(e){return(0,r.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const at={icon:(0,r.jsx)(st,{}),title:(0,r.jsx)(h.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function it(e){return(0,r.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const rt={icon:(0,r.jsx)(it,{}),title:(0,r.jsx)(h.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const ot={icon:(0,r.jsx)(st,{}),title:(0,r.jsx)(h.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const ct={...{note:Qn,tip:Yn,info:tt,warning:function(e){return(0,r.jsx)(qn,{...at,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,r.jsx)(qn,{...rt,...e,className:(0,u.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,r.jsx)(Qn,{title:"secondary",...e}),important:e=>(0,r.jsx)(tt,{title:"important",...e}),success:e=>(0,r.jsx)(Yn,{title:"success",...e}),caution:function(e){return(0,r.jsx)(qn,{...ot,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})}}};function lt(e){const n=zn(e),t=(s=n.type,ct[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),ct.info));var s;return(0,r.jsx)(t,{...n})}var dt=t(2128),ut=t(8530);let mt=null;async function ht(){return mt||(mt=async function(){return(await t.e(3992).then(t.bind(t,3992))).default}()),mt}function ft(){const{colorMode:e}=(0,ve.G)(),n=(0,Z.p)().mermaid,t=n.theme[e],{options:a}=n;return(0,s.useMemo)(()=>({startOnLoad:!1,...a,theme:t}),[t,a])}function xt({text:e,config:n}){const[t,a]=(0,s.useState)(null),i=(0,s.useState)(`mermaid-svg-${Math.round(1e7*Math.random())}`)[0],r=ft(),o=n??r;return(0,s.useEffect)(()=>{(async function({id:e,text:n,config:t}){const s=await ht();s.initialize(t);try{return await s.render(e,n)}catch(a){throw document.querySelector(`#d${e}`)?.remove(),a}})({id:i,text:e,config:o}).then(a).catch(e=>{a(()=>{throw e})})},[i,e,o]),t}const pt="container_IEyZ";function gt({renderResult:e}){const n=(0,s.useRef)(null);return(0,s.useEffect)(()=>{const t=n.current;e.bindFunctions?.(t)},[e]),(0,r.jsx)("div",{ref:n,className:`docusaurus-mermaid-container ${pt}`,dangerouslySetInnerHTML:{__html:e.svg}})}function bt({value:e}){const n=xt({text:e});return null===n?null:(0,r.jsx)(gt,{renderResult:n})}const jt={Head:be.A,details:In,Details:In,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))}(e)?(0,r.jsx)(yn,{...e}):(0,r.jsx)(An,{...e})},a:function(e){const n=(0,Ln.v)(e.id);return(0,r.jsx)(f.A,{...e,className:(0,u.A)(n,e.className)})},pre:function(e){return(0,r.jsx)(r.Fragment,{children:e.children})},ul:function(e){return(0,r.jsx)("ul",{...e,className:Un(e.className)})},li:function(e){(0,Cn.A)().collectAnchor(e.id);const n=(0,Ln.v)(e.id);return(0,r.jsx)("li",{className:(0,u.A)(n,e.className),...e})},img:function(e){return(0,r.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(n=e.className,(0,u.A)(n,Vn))});var n},h1:e=>(0,r.jsx)(Sn,{as:"h1",...e}),h2:e=>(0,r.jsx)(Sn,{as:"h2",...e}),h3:e=>(0,r.jsx)(Sn,{as:"h3",...e}),h4:e=>(0,r.jsx)(Sn,{as:"h4",...e}),h5:e=>(0,r.jsx)(Sn,{as:"h5",...e}),h6:e=>(0,r.jsx)(Sn,{as:"h6",...e}),admonition:lt,mermaid:function(e){return(0,r.jsx)(dt.A,{fallback:e=>(0,r.jsx)(ut.MN,{...e}),children:(0,r.jsx)(bt,{...e})})}};function vt({children:e}){return(0,r.jsx)(ge.x,{components:jt,children:e})}function Nt({children:e}){const n=function(){const{metadata:e,frontMatter:n,contentTitle:t}=l();return n.hide_title||void 0!==t?null:e.title}();return(0,r.jsxs)("div",{className:(0,u.A)(v.G.docs.docMarkdown,"markdown"),children:[n&&(0,r.jsx)("header",{children:(0,r.jsx)(pe.A,{as:"h1",children:n})}),(0,r.jsx)(vt,{children:e})]})}var At=t(7272),yt=t(4640),Lt=t(2877);function Ct(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,r.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const kt="breadcrumbHomeIcon_eRUI";function wt(){const e=(0,Lt.Ay)("/");return(0,r.jsx)("li",{className:"breadcrumbs__item",children:(0,r.jsx)(f.A,{"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,r.jsx)(Ct,{className:kt})})})}function _t(e){const n=function({breadcrumbs:e}){const{siteConfig:n}=(0,b.A)();return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.filter(e=>e.href).map((e,t)=>({"@type":"ListItem",position:t+1,name:e.label,item:`${n.url}${e.href}`}))}}({breadcrumbs:e.breadcrumbs});return(0,r.jsx)(be.A,{children:(0,r.jsx)("script",{type:"application/ld+json",children:JSON.stringify(n)})})}const Tt="breadcrumbsContainer_WbZx";function Bt({children:e,href:n,isLast:t}){const s="breadcrumbs__link";return t?(0,r.jsx)("span",{className:s,children:e}):n?(0,r.jsx)(f.A,{className:s,href:n,children:(0,r.jsx)("span",{children:e})}):(0,r.jsx)("span",{className:s,children:e})}function Ht({children:e,active:n}){return(0,r.jsx)("li",{className:(0,u.A)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:e})}function Mt(){const e=(0,At.OF)(),n=(0,yt.Dt)();return e?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(_t,{breadcrumbs:e}),(0,r.jsx)("nav",{className:(0,u.A)(v.G.docs.docBreadcrumbs,Tt),"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,r.jsxs)("ul",{className:"breadcrumbs",children:[n&&(0,r.jsx)(wt,{}),e.map((n,t)=>{const s=t===e.length-1,a="category"===n.type&&n.linkUnlisted?void 0:n.href;return(0,r.jsx)(Ht,{active:s,children:(0,r.jsx)(Bt,{href:a,isLast:s,children:n.label})},t)})]})})]}):null}function Et(){return(0,r.jsx)(h.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function It(){return(0,r.jsx)(h.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function St(){return(0,r.jsx)(be.A,{children:(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function Rt(){return(0,r.jsx)(h.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function Ut(){return(0,r.jsx)(h.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}function Vt({className:e}){return(0,r.jsx)(lt,{type:"caution",title:(0,r.jsx)(Rt,{}),className:(0,u.A)(e,v.G.common.draftBanner),children:(0,r.jsx)(Ut,{})})}function zt({className:e}){return(0,r.jsx)(lt,{type:"caution",title:(0,r.jsx)(Et,{}),className:(0,u.A)(e,v.G.common.unlistedBanner),children:(0,r.jsx)(It,{})})}function Ot(e){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(St,{}),(0,r.jsx)(zt,{...e})]})}function Dt({metadata:e}){const{unlisted:n,frontMatter:t}=e;return(0,r.jsxs)(r.Fragment,{children:[(n||t.unlisted)&&(0,r.jsx)(Ot,{}),t.draft&&(0,r.jsx)(Vt,{})]})}const $t="docItemContainer_gTAZ",Ft="docItemCol_zFNv";function Gt({children:e}){const n=function(){const{frontMatter:e,toc:n}=l(),t=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&n.length>0;return{hidden:s,mobile:a?(0,r.jsx)(me,{}):void 0,desktop:!a||"desktop"!==t&&"ssr"!==t?void 0:(0,r.jsx)(xe,{})}}(),{metadata:t}=l();return(0,r.jsxs)("div",{className:"row",children:[(0,r.jsxs)("div",{className:(0,u.A)("col",!n.hidden&&Ft),children:[(0,r.jsx)(Dt,{metadata:t}),(0,r.jsx)(w,{}),(0,r.jsxs)("div",{className:$t,children:[(0,r.jsxs)("article",{children:[(0,r.jsx)(Mt,{}),(0,r.jsx)(_,{}),n.mobile,(0,r.jsx)(Nt,{children:e}),(0,r.jsx)(P,{})]}),(0,r.jsx)(g,{})]})]}),n.desktop&&(0,r.jsx)("div",{className:"col col--3",children:n.desktop})]})}function Wt(e){const n=`docs-doc-id-${e.content.metadata.id}`,t=e.content;return(0,r.jsx)(c,{content:e.content,children:(0,r.jsxs)(a.e3,{className:n,children:[(0,r.jsx)(d,{}),(0,r.jsx)(Gt,{children:(0,r.jsx)(t,{})})]})})}},4809(e,n){function t(e){let n,t=[];for(let s of e.split(",").map(e=>e.trim()))if(/^-?\d+$/.test(s))t.push(parseInt(s,10));else if(n=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,i]=n;if(s&&i){s=parseInt(s),i=parseInt(i);const e=s<i?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(i+=e);for(let n=s;n!==i;n+=e)t.push(n)}}return t}n.default=t,e.exports=t},6607(e,n,t){"use strict";t.d(n,{R:()=>r,x:()=>o});var s=t(758);const a={},i=s.createContext(a);function r(e){const n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]);
|
|
1
|
+
(globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[]).push([[8401],{2496(e,n,t){"use strict";t.r(n),t.d(n,{default:()=>$t});var s=t(758),a=t(3787),i=t(2237),r=t(6070);const o=s.createContext(null);function c({children:e,content:n}){const t=function(e){return(0,s.useMemo)(()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc}),[e])}(n);return(0,r.jsx)(o.Provider,{value:t,children:e})}function l(){const e=(0,s.useContext)(o);if(null===e)throw new i.dV("DocProvider");return e}function d(){const{metadata:e,frontMatter:n,assets:t}=l();return(0,r.jsx)(a.be,{title:e.title,description:e.description,keywords:n.keywords,image:t.image??n.image})}var u=t(3526),m=t(1598),h=t(7252),f=t(7630);function p(e){const{permalink:n,title:t,subLabel:s,isNext:a}=e;return(0,r.jsxs)(f.A,{className:(0,u.A)("pagination-nav__link",a?"pagination-nav__link--next":"pagination-nav__link--prev"),to:n,children:[s&&(0,r.jsx)("div",{className:"pagination-nav__sublabel",children:s}),(0,r.jsx)("div",{className:"pagination-nav__label",children:t})]})}function x(e){const{className:n,previous:t,next:s}=e;return(0,r.jsxs)("nav",{className:(0,u.A)(n,"pagination-nav"),"aria-label":(0,h.T)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,r.jsx)(p,{...t,subLabel:(0,r.jsx)(h.A,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),s&&(0,r.jsx)(p,{...s,subLabel:(0,r.jsx)(h.A,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function g(){const{metadata:e}=l();return(0,r.jsx)(x,{className:"docusaurus-mt-lg",previous:e.previous,next:e.next})}var b=t(4850),j=t(8331),v=t(4152),N=t(5416),A=t(1687);const y={unreleased:function({siteTitle:e,versionMetadata:n}){return(0,r.jsx)(h.A,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:e,versionLabel:(0,r.jsx)("b",{children:n.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function({siteTitle:e,versionMetadata:n}){return(0,r.jsx)(h.A,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:e,versionLabel:(0,r.jsx)("b",{children:n.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function C(e){const n=y[e.versionMetadata.banner];return(0,r.jsx)(n,{...e})}function L({versionLabel:e,to:n,onClick:t}){return(0,r.jsx)(h.A,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:e,latestVersionLink:(0,r.jsx)("b",{children:(0,r.jsx)(f.A,{to:n,onClick:t,children:(0,r.jsx)(h.A,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function k({className:e,versionMetadata:n}){const{siteConfig:{title:t}}=(0,b.A)(),{pluginId:s}=(0,j.vT)({failfast:!0}),{savePreferredVersionName:a}=(0,N.g1)(s),{latestDocSuggestion:i,latestVersionSuggestion:o}=(0,j.HW)(s),c=i??(l=o).docs.find(e=>e.id===l.mainDocId);var l;return(0,r.jsxs)("div",{className:(0,u.A)(e,v.G.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,r.jsx)("div",{children:(0,r.jsx)(C,{siteTitle:t,versionMetadata:n})}),(0,r.jsx)("div",{className:"margin-top--md",children:(0,r.jsx)(L,{versionLabel:o.label,to:c.path,onClick:()=>a(o.name)})})]})}function w({className:e}){const n=(0,A.r)();return n.banner?(0,r.jsx)(k,{className:e,versionMetadata:n}):null}function _({className:e}){const n=(0,A.r)();return n.badge?(0,r.jsx)("span",{className:(0,u.A)(e,v.G.docs.docVersionBadge,"badge badge--secondary"),children:(0,r.jsx)(h.A,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label},children:"Version: {versionLabel}"})}):null}const T="tag_bGQi",B="tagRegular_YG23",H="tagWithCount__bHC";function M({permalink:e,label:n,count:t,description:s}){return(0,r.jsxs)(f.A,{rel:"tag",href:e,title:s,className:(0,u.A)(T,t?H:B),children:[n,t&&(0,r.jsx)("span",{children:t})]})}const E="tags_QbQ5",S="tag_vyvp";function I({tags:e}){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("b",{children:(0,r.jsx)(h.A,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,r.jsx)("ul",{className:(0,u.A)(E,"padding--none","margin-left--sm"),children:e.map(e=>(0,r.jsx)("li",{className:S,children:(0,r.jsx)(M,{...e})},e.permalink))})]})}const U="iconEdit_HJtS";function z({className:e,...n}){return(0,r.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.A)(U,e),"aria-hidden":"true",...n,children:(0,r.jsx)("g",{children:(0,r.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function V({editUrl:e}){return(0,r.jsxs)(f.A,{to:e,className:v.G.common.editThisPage,children:[(0,r.jsx)(z,{}),(0,r.jsx)(h.A,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}function R(e={}){const{i18n:{currentLocale:n}}=(0,b.A)(),t=function(){const{i18n:{currentLocale:e,localeConfigs:n}}=(0,b.A)();return n[e].calendar}();return new Intl.DateTimeFormat(n,{calendar:t,...e})}function O({lastUpdatedAt:e}){const n=new Date(e),t=R({day:"numeric",month:"short",year:"numeric",timeZone:"UTC"}).format(n);return(0,r.jsx)(h.A,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,r.jsx)("b",{children:(0,r.jsx)("time",{dateTime:n.toISOString(),itemProp:"dateModified",children:t})})},children:" on {date}"})}function G({lastUpdatedBy:e}){return(0,r.jsx)(h.A,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,r.jsx)("b",{children:e})},children:" by {user}"})}function D({lastUpdatedAt:e,lastUpdatedBy:n}){return(0,r.jsxs)("span",{className:v.G.common.lastUpdated,children:[(0,r.jsx)(h.A,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:e?(0,r.jsx)(O,{lastUpdatedAt:e}):"",byUser:n?(0,r.jsx)(G,{lastUpdatedBy:n}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const W="lastUpdated_rV1z",P="noPrint_wx0h";function $({className:e,editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s}){return(0,r.jsxs)("div",{className:(0,u.A)("row",e),children:[(0,r.jsx)("div",{className:(0,u.A)("col",P),children:n&&(0,r.jsx)(V,{editUrl:n})}),(0,r.jsx)("div",{className:(0,u.A)("col",W),children:(t||s)&&(0,r.jsx)(D,{lastUpdatedAt:t,lastUpdatedBy:s})})]})}function F(){const{metadata:e}=l(),{editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s,tags:a}=e,i=a.length>0,o=!!(n||t||s);return i||o?(0,r.jsxs)("footer",{className:(0,u.A)(v.G.docs.docFooter,"docusaurus-mt-lg"),children:[i&&(0,r.jsx)("div",{className:(0,u.A)("row margin-top--sm",v.G.docs.docFooterTagsRow),children:(0,r.jsx)("div",{className:"col",children:(0,r.jsx)(I,{tags:a})})}),o&&(0,r.jsx)($,{className:(0,u.A)("margin-top--sm",v.G.docs.docFooterEditMetaRow),editUrl:n,lastUpdatedAt:t,lastUpdatedBy:s})]}):null}var q=t(9083),Q=t(943);function J(e){const n=e.map(e=>({...e,parentIndex:-1,children:[]})),t=Array(7).fill(-1);n.forEach((e,n)=>{const s=t.slice(2,e.level);e.parentIndex=Math.max(...s),t[e.level]=n});const s=[];return n.forEach(e=>{const{parentIndex:t,...a}=e;t>=0?n[t].children.push(a):s.push(a)}),s}function K({toc:e,minHeadingLevel:n,maxHeadingLevel:t}){return e.flatMap(e=>{const s=K({toc:e.children,minHeadingLevel:n,maxHeadingLevel:t});return function(e){return e.level>=n&&e.level<=t}(e)?[{...e,children:s}]:s})}function Y(e){const n=e.getBoundingClientRect();return n.top===n.bottom?Y(e.parentNode):n}function Z(e,{anchorTopOffset:n}){const t=e.find(e=>Y(e).top>=n);if(t){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(Y(t))?t:e[e.indexOf(t)-1]??null}return e[e.length-1]??null}function X(){const e=(0,s.useRef)(0),{navbar:{hideOnScroll:n}}=(0,Q.p)();return(0,s.useEffect)(()=>{e.current=n?0:document.querySelector(".navbar").clientHeight},[n]),e}function ee(e){const n=(0,s.useRef)(void 0),t=X();(0,s.useEffect)(()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:r}=e;function o(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),o=function({minHeadingLevel:e,maxHeadingLevel:n}){const t=[];for(let s=e;s<=n;s+=1)t.push(`h${s}.anchor`);return Array.from(document.querySelectorAll(t.join()))}({minHeadingLevel:i,maxHeadingLevel:r}),c=Z(o,{anchorTopOffset:t.current}),l=e.find(e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e));e.forEach(e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(a),e.classList.add(a),n.current=e):e.classList.remove(a)}(e,e===l)})}return document.addEventListener("scroll",o),document.addEventListener("resize",o),o(),()=>{document.removeEventListener("scroll",o),document.removeEventListener("resize",o)}},[e,t])}function ne({toc:e,className:n,linkClassName:t,isChild:s}){return e.length?(0,r.jsx)("ul",{className:s?void 0:n,children:e.map(e=>(0,r.jsxs)("li",{children:[(0,r.jsx)(f.A,{to:`#${e.id}`,className:t??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,r.jsx)(ne,{isChild:!0,toc:e.children,className:n,linkClassName:t})]},e.id))}):null}const te=s.memo(ne);function se({toc:e,className:n="table-of-contents table-of-contents__left-border",linkClassName:t="table-of-contents__link",linkActiveClassName:a,minHeadingLevel:i,maxHeadingLevel:o,...c}){const l=(0,Q.p)(),d=i??l.tableOfContents.minHeadingLevel,u=o??l.tableOfContents.maxHeadingLevel,m=function({toc:e,minHeadingLevel:n,maxHeadingLevel:t}){return(0,s.useMemo)(()=>K({toc:J(e),minHeadingLevel:n,maxHeadingLevel:t}),[e,n,t])}({toc:e,minHeadingLevel:d,maxHeadingLevel:u});return ee((0,s.useMemo)(()=>{if(t&&a)return{linkClassName:t,linkActiveClassName:a,minHeadingLevel:d,maxHeadingLevel:u}},[t,a,d,u])),(0,r.jsx)(te,{toc:m,className:n,linkClassName:t,...c})}const ae="tocCollapsibleButton_wJia",ie="tocCollapsibleButtonExpanded_rMPn";function re({collapsed:e,...n}){return(0,r.jsx)("button",{type:"button",...n,className:(0,u.A)("clean-btn",ae,!e&&ie,n.className),children:(0,r.jsx)(h.A,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const oe="tocCollapsible_SEmd",ce="tocCollapsibleContent_maYD",le="tocCollapsibleExpanded_PX04";function de({toc:e,className:n,minHeadingLevel:t,maxHeadingLevel:s}){const{collapsed:a,toggleCollapsed:i}=(0,q.u)({initialState:!0});return(0,r.jsxs)("div",{className:(0,u.A)(oe,!a&&le,n),children:[(0,r.jsx)(re,{collapsed:a,onClick:i}),(0,r.jsx)(q.N,{lazy:!0,className:ce,collapsed:a,children:(0,r.jsx)(se,{toc:e,minHeadingLevel:t,maxHeadingLevel:s})})]})}const ue="tocMobile_GImu";function me(){const{toc:e,frontMatter:n}=l();return(0,r.jsx)(de,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:(0,u.A)(v.G.docs.docTocMobile,ue)})}const he="tableOfContents_Vnv3";function fe({className:e,...n}){return(0,r.jsx)("div",{className:(0,u.A)(he,"thin-scrollbar",e),children:(0,r.jsx)(se,{...n,linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})})}function pe(){const{toc:e,frontMatter:n}=l();return(0,r.jsx)(fe,{toc:e,minHeadingLevel:n.toc_min_heading_level,maxHeadingLevel:n.toc_max_heading_level,className:v.G.docs.docTocDesktop})}var xe=t(8782),ge=t(6607),be=t(7780),je=t(3031),ve=t(6416);function Ne(){const{prism:e}=(0,Q.p)(),{colorMode:n}=(0,ve.G)(),t=e.theme,s=e.darkTheme||t;return"dark"===n?s:t}var Ae=t(4809),ye=t.n(Ae);const Ce=/title=(?<quote>["'])(?<title>.*?)\1/,Le=/\{(?<range>[\d,-]+)\}/,ke={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},we={...ke,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},vbnet:{start:"(?:_\\s*)?['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},_e=Object.keys(ke);function Te(e,n){const t=e.map(e=>{const{start:t,end:s}=we[e];return`(?:${t}\\s*(${n.flatMap(e=>[e.line,e.block?.start,e.block?.end].filter(Boolean)).join("|")})\\s*${s})`}).join("|");return new RegExp(`^\\s*(?:${t})\\s*$`)}function Be({showLineNumbers:e,metastring:n}){return"boolean"==typeof e?e?1:void 0:"number"==typeof e?e:function(e){const n=e?.split(" ").find(e=>e.startsWith("showLineNumbers"));if(n){if(n.startsWith("showLineNumbers=")){const e=n.replace("showLineNumbers=","");return parseInt(e,10)}return 1}}(n)}function He(e,n){const{language:t,magicComments:s}=n;if(void 0===t)return{lineClassNames:{},code:e};const a=function(e,n){switch(e){case"js":case"javascript":case"ts":case"typescript":return Te(["js","jsBlock"],n);case"jsx":case"tsx":return Te(["js","jsBlock","jsx"],n);case"html":return Te(["js","jsBlock","html"],n);case"python":case"py":case"bash":return Te(["bash"],n);case"markdown":case"md":return Te(["html","jsx","bash"],n);case"tex":case"latex":case"matlab":return Te(["tex"],n);case"lua":case"haskell":return Te(["lua"],n);case"sql":return Te(["lua","jsBlock"],n);case"wasm":return Te(["wasm"],n);case"vb":case"vba":case"visual-basic":return Te(["vb","rem"],n);case"vbnet":return Te(["vbnet","rem"],n);case"batch":return Te(["rem"],n);case"basic":return Te(["rem","f90"],n);case"fsharp":return Te(["js","ml"],n);case"ocaml":case"sml":return Te(["ml"],n);case"fortran":return Te(["f90"],n);case"cobol":return Te(["cobol"],n);default:return Te(_e,n)}}(t,s),i=e.split(/\r?\n/),r=Object.fromEntries(s.map(e=>[e.className,{start:0,range:""}])),o=Object.fromEntries(s.filter(e=>e.line).map(({className:e,line:n})=>[n,e])),c=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.start,e])),l=Object.fromEntries(s.filter(e=>e.block).map(({className:e,block:n})=>[n.end,e]));for(let u=0;u<i.length;){const e=i[u].match(a);if(!e){u+=1;continue}const n=e.slice(1).find(e=>void 0!==e);o[n]?r[o[n]].range+=`${u},`:c[n]?r[c[n]].start=u:l[n]&&(r[l[n]].range+=`${r[l[n]].start}-${u-1},`),i.splice(u,1)}const d={};return Object.entries(r).forEach(([e,{range:n}])=>{ye()(n).forEach(n=>{d[n]??=[],d[n].push(e)})}),{code:i.join("\n"),lineClassNames:d}}function Me(e,n){const t=e.replace(/\r?\n$/,"");return function(e,{metastring:n,magicComments:t}){if(n&&Le.test(n)){const s=n.match(Le).groups.range;if(0===t.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${n}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const a=t[0].className,i=ye()(s).filter(e=>e>0).map(e=>[e-1,[a]]);return{lineClassNames:Object.fromEntries(i),code:e}}return null}(t,{...n})??He(t,{...n})}function Ee(e){const n=function(e){return n=e.language??function(e){if(!e)return;const n=e.split(" ").find(e=>e.startsWith("language-"));return n?.replace(/language-/,"")}(e.className)??e.defaultLanguage,n?.toLowerCase()??"text";var n}({language:e.language,defaultLanguage:e.defaultLanguage,className:e.className}),{lineClassNames:t,code:s}=Me(e.code,{metastring:e.metastring,magicComments:e.magicComments,language:n}),a=function({className:e,language:n}){return(0,u.A)(e,n&&!e?.includes(`language-${n}`)&&`language-${n}`)}({className:e.className,language:n}),i=(r=e.metastring,(r?.match(Ce)?.groups.title??"")||e.title);var r;const o=Be({showLineNumbers:e.showLineNumbers,metastring:e.metastring});return{codeInput:e.code,code:s,className:a,language:n,title:i,lineNumbersStart:o,lineClassNames:t}}const Se=(0,s.createContext)(null);function Ie({metadata:e,wordWrap:n,children:t}){const a=(0,s.useMemo)(()=>({metadata:e,wordWrap:n}),[e,n]);return(0,r.jsx)(Se.Provider,{value:a,children:t})}function Ue(){const e=(0,s.useContext)(Se);if(null===e)throw new i.dV("CodeBlockContextProvider");return e}const ze="codeBlockContainer_xJos";function Ve({as:e,...n}){const t=function(e){const n={color:"--prism-color",backgroundColor:"--prism-background-color"},t={};return Object.entries(e.plain).forEach(([e,s])=>{const a=n[e];a&&"string"==typeof s&&(t[a]=s)}),t}(Ne());return(0,r.jsx)(e,{...n,style:t,className:(0,u.A)(n.className,ze,v.G.common.codeBlock)})}const Re="codeBlock_wqKj",Oe="codeBlockStandalone_zq9f",Ge="codeBlockLines_tOUB",De="codeBlockLinesWithNumbering_SOZ5";function We({children:e,className:n}){return(0,r.jsx)(Ve,{as:"pre",tabIndex:0,className:(0,u.A)(Oe,"thin-scrollbar",n),children:(0,r.jsx)("code",{className:Ge,children:e})})}const Pe={attributes:!0,characterData:!0,childList:!0,subtree:!0};function $e(e,n){const[t,a]=(0,s.useState)(),r=(0,s.useCallback)(()=>{a(e.current?.closest("[role=tabpanel][hidden]"))},[e,a]);(0,s.useEffect)(()=>{r()},[r]),function(e,n,t=Pe){const a=(0,i._q)(n),r=(0,i.Be)(t);(0,s.useEffect)(()=>{const n=new MutationObserver(a);return e&&n.observe(e,r),()=>n.disconnect()},[e,a,r])}(t,e=>{e.forEach(e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(n(),r())})},{attributes:!0,characterData:!1,childList:!1,subtree:!1})}function Fe({children:e}){return e}var qe=t(6194);function Qe({line:e,token:n,...t}){return(0,r.jsx)("span",{...t})}const Je="codeLine_pGuX",Ke="codeLineNumber_WPzS",Ye="codeLineContent_KQkt";function Ze(){return(0,r.jsx)("br",{})}function Xe({line:e,classNames:n,showLineNumbers:t,getLineProps:s,getTokenProps:a}){const i=function(e){const n=1===e.length&&"\n"===e[0].content?e[0]:void 0;return n?[{...n,content:""}]:e}(e),o=s({line:i,className:(0,u.A)(n,t&&Je)}),c=i.map((e,n)=>{const t=a({token:e});return(0,r.jsx)(Qe,{...t,line:i,token:e,children:t.children},n)});return(0,r.jsxs)("div",{...o,children:[t?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:Ke}),(0,r.jsx)("span",{className:Ye,children:c})]}):c,(0,r.jsx)(Ze,{})]})}const en=s.forwardRef((e,n)=>(0,r.jsx)("pre",{ref:n,tabIndex:0,...e,className:(0,u.A)(e.className,Re,"thin-scrollbar")}));function nn(e){const{metadata:n}=Ue();return(0,r.jsx)("code",{...e,className:(0,u.A)(e.className,Ge,void 0!==n.lineNumbersStart&&De),style:{...e.style,counterReset:void 0===n.lineNumbersStart?void 0:"line-count "+(n.lineNumbersStart-1)}})}function tn({className:e}){const{metadata:n,wordWrap:t}=Ue(),s=Ne(),{code:a,language:i,lineNumbersStart:o,lineClassNames:c}=n;return(0,r.jsx)(qe.f4,{theme:s,code:a,language:i,children:({className:n,style:s,tokens:a,getLineProps:i,getTokenProps:l})=>(0,r.jsx)(en,{ref:t.codeBlockRef,className:(0,u.A)(e,n),style:s,children:(0,r.jsx)(nn,{children:a.map((e,n)=>(0,r.jsx)(Xe,{line:e,getLineProps:i,getTokenProps:l,classNames:c[n],showLineNumbers:void 0!==o},n))})})})}function sn({children:e,fallback:n}){return(0,je.A)()?(0,r.jsx)(r.Fragment,{children:e?.()}):n??null}function an({className:e,...n}){return(0,r.jsx)("button",{type:"button",...n,className:(0,u.A)("clean-btn",e)})}function rn(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function on(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const cn={copyButtonCopied:"copyButtonCopied_nt68",copyButtonIcons:"copyButtonIcons_ZqjO",copyButtonIcon:"copyButtonIcon_s64Q",copyButtonSuccessIcon:"copyButtonSuccessIcon_v75k"};function ln(e){return e?(0,h.T)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,h.T)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"})}function dn(){const{metadata:{code:e}}=Ue(),[n,a]=(0,s.useState)(!1),i=(0,s.useRef)(void 0),r=(0,s.useCallback)(()=>{(async function(e){if(navigator.clipboard)return navigator.clipboard.writeText(e);const{default:n}=await t.e(821).then(t.bind(t,821));return n(e)})(e).then(()=>{a(!0),i.current=window.setTimeout(()=>{a(!1)},1e3)})},[e]);return(0,s.useEffect)(()=>()=>window.clearTimeout(i.current),[]),{copyCode:r,isCopied:n}}function un({className:e}){const{copyCode:n,isCopied:t}=dn();return(0,r.jsx)(an,{"aria-label":ln(t),title:(0,h.T)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.A)(e,cn.copyButton,t&&cn.copyButtonCopied),onClick:n,children:(0,r.jsxs)("span",{className:cn.copyButtonIcons,"aria-hidden":"true",children:[(0,r.jsx)(rn,{className:cn.copyButtonIcon}),(0,r.jsx)(on,{className:cn.copyButtonSuccessIcon})]})})}function mn(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,r.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const hn="wordWrapButtonIcon_ReXa",fn="wordWrapButtonEnabled_dWNS";function pn({className:e}){const{wordWrap:n}=Ue();if(!(n.isEnabled||n.isCodeScrollable))return!1;const t=(0,h.T)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,r.jsx)(an,{onClick:()=>n.toggle(),className:(0,u.A)(e,n.isEnabled&&fn),"aria-label":t,title:t,children:(0,r.jsx)(mn,{className:hn,"aria-hidden":"true"})})}const xn="buttonGroup_DvH6";function gn({className:e}){return(0,r.jsx)(sn,{children:()=>(0,r.jsxs)("div",{className:(0,u.A)(e,xn),children:[(0,r.jsx)(pn,{}),(0,r.jsx)(un,{})]})})}const bn="codeBlockContent_HrWh",jn="codeBlockTitle_OkYU";function vn({className:e}){const{metadata:n}=Ue();return(0,r.jsxs)(Ve,{as:"div",className:(0,u.A)(e,n.className),children:[n.title&&(0,r.jsx)("div",{className:jn,children:(0,r.jsx)(Fe,{children:n.title})}),(0,r.jsxs)("div",{className:bn,children:[(0,r.jsx)(tn,{}),(0,r.jsx)(gn,{})]})]})}function Nn(e){const n=function(e){const{prism:n}=(0,Q.p)();return Ee({code:e.children,className:e.className,metastring:e.metastring,magicComments:n.magicComments,defaultLanguage:n.defaultLanguage,language:e.language,title:e.title,showLineNumbers:e.showLineNumbers})}(e),t=function(){const[e,n]=(0,s.useState)(!1),[t,a]=(0,s.useState)(!1),i=(0,s.useRef)(null),r=(0,s.useCallback)(()=>{const t=i.current.querySelector("code");e?t.removeAttribute("style"):(t.style.whiteSpace="pre-wrap",t.style.overflowWrap="anywhere"),n(e=>!e)},[i,e]),o=(0,s.useCallback)(()=>{const{scrollWidth:e,clientWidth:n}=i.current,t=e>n||i.current.querySelector("code").hasAttribute("style");a(t)},[i]);return $e(i,o),(0,s.useEffect)(()=>{o()},[e,o]),(0,s.useEffect)(()=>(window.addEventListener("resize",o,{passive:!0}),()=>{window.removeEventListener("resize",o)}),[o]),{codeBlockRef:i,isEnabled:e,isCodeScrollable:t,toggle:r}}();return(0,r.jsx)(Ie,{metadata:n,wordWrap:t,children:(0,r.jsx)(vn,{})})}function An({children:e,...n}){const t=(0,je.A)(),a=function(e){return s.Children.toArray(e).some(e=>(0,s.isValidElement)(e))?e:Array.isArray(e)?e.join(""):e}(e),i="string"==typeof a?Nn:We;return(0,r.jsx)(i,{...n,children:a},String(t))}function yn(e){return(0,r.jsx)("code",{...e})}var Cn=t(7708);var Ln=t(9329);const kn="details_jJQc",wn="isBrowser_K5zs",_n="collapsibleContent_YGl0";function Tn(e){return!!e&&("SUMMARY"===e.tagName||Tn(e.parentElement))}function Bn(e,n){return!!e&&(e===n||Bn(e.parentElement,n))}function Hn({summary:e,children:n,...t}){(0,Ln.A)().collectAnchor(t.id);const a=(0,je.A)(),i=(0,s.useRef)(null),{collapsed:o,setCollapsed:c}=(0,q.u)({initialState:!t.open}),[l,d]=(0,s.useState)(t.open),m=s.isValidElement(e)?e:(0,r.jsx)("summary",{children:e??"Details"});return(0,r.jsxs)("details",{...t,ref:i,open:l,"data-collapsed":o,className:(0,u.A)(kn,a&&wn,t.className),onMouseDown:e=>{Tn(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const n=e.target;Tn(n)&&Bn(n,i.current)&&(e.preventDefault(),o?(c(!1),d(!0)):c(!0))},children:[m,(0,r.jsx)(q.N,{lazy:!1,collapsed:o,onCollapseTransitionEnd:e=>{c(e),d(!e)},children:(0,r.jsx)("div",{className:_n,children:n})})]})}const Mn="details_sUWd";function En({...e}){return(0,r.jsx)(Hn,{...e,className:(0,u.A)("alert alert--info",Mn,e.className)})}function Sn(e){const n=s.Children.toArray(e.children),t=n.find(e=>s.isValidElement(e)&&"summary"===e.type),a=(0,r.jsx)(r.Fragment,{children:n.filter(e=>e!==t)});return(0,r.jsx)(En,{...e,summary:t,children:a})}function In(e){return(0,r.jsx)(xe.A,{...e})}const Un="containsTaskList_WKF2";function zn(e){if(void 0!==e)return(0,u.A)(e,e?.includes("contains-task-list")&&Un)}const Vn="img_nUnl";function Rn(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=s.Children.toArray(e),t=n.find(e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type),a=n.filter(e=>e!==t),i=t?.props.children;return{mdxAdmonitionTitle:i,rest:a.length>0?(0,r.jsx)(r.Fragment,{children:a}):null}}(e.children),a=e.title??n;return{...e,...a&&{title:a},children:t}}const On="admonition_V_p0",Gn="admonitionHeading_tQNE",Dn="admonitionIcon_hvka",Wn="admonitionContent_F4WR";function Pn({type:e,className:n,children:t,id:s}){return(0,r.jsx)("div",{className:(0,u.A)(v.G.common.admonition,v.G.common.admonitionType(e),On,n),id:s,children:t})}function $n({icon:e,title:n}){return(0,r.jsxs)("div",{className:Gn,children:[(0,r.jsx)("span",{className:Dn,children:e}),n]})}function Fn({children:e}){return e?(0,r.jsx)("div",{className:Wn,children:e}):null}function qn(e){const{type:n,icon:t,title:s,children:a,className:i,id:o}=e;return(0,r.jsxs)(Pn,{type:n,className:i,id:o,children:[s||t?(0,r.jsx)($n,{title:s,icon:t}):null,(0,r.jsx)(Fn,{children:a})]})}function Qn(e){return(0,r.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const Jn={icon:(0,r.jsx)(Qn,{}),title:(0,r.jsx)(h.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function Kn(e){return(0,r.jsx)(qn,{...Jn,...e,className:(0,u.A)("alert alert--secondary",e.className),children:e.children})}function Yn(e){return(0,r.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const Zn={icon:(0,r.jsx)(Yn,{}),title:(0,r.jsx)(h.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function Xn(e){return(0,r.jsx)(qn,{...Zn,...e,className:(0,u.A)("alert alert--success",e.className),children:e.children})}function et(e){return(0,r.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const nt={icon:(0,r.jsx)(et,{}),title:(0,r.jsx)(h.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function tt(e){return(0,r.jsx)(qn,{...nt,...e,className:(0,u.A)("alert alert--info",e.className),children:e.children})}function st(e){return(0,r.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const at={icon:(0,r.jsx)(st,{}),title:(0,r.jsx)(h.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function it(e){return(0,r.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const rt={icon:(0,r.jsx)(it,{}),title:(0,r.jsx)(h.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const ot={icon:(0,r.jsx)(st,{}),title:(0,r.jsx)(h.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const ct={...{note:Kn,tip:Xn,info:tt,warning:function(e){return(0,r.jsx)(qn,{...at,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,r.jsx)(qn,{...rt,...e,className:(0,u.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,r.jsx)(Kn,{title:"secondary",...e}),important:e=>(0,r.jsx)(tt,{title:"important",...e}),success:e=>(0,r.jsx)(Xn,{title:"success",...e}),caution:function(e){return(0,r.jsx)(qn,{...ot,...e,className:(0,u.A)("alert alert--warning",e.className),children:e.children})}}};function lt(e){const n=Rn(e),t=(s=n.type,ct[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),ct.info));var s;return(0,r.jsx)(t,{...n})}var dt=t(5468),ut=t(7900);let mt=null;async function ht(){return mt||(mt=async function(){return(await t.e(3992).then(t.bind(t,3992))).default}()),mt}function ft(){const{colorMode:e}=(0,ve.G)(),n=(0,Q.p)().mermaid,t=n.theme[e],{options:a}=n;return(0,s.useMemo)(()=>({startOnLoad:!1,...a,theme:t}),[t,a])}function pt({text:e,config:n}){const[t,a]=(0,s.useState)(null),i=(0,s.useState)(`mermaid-svg-${Math.round(1e7*Math.random())}`)[0],r=ft(),o=n??r;return(0,s.useEffect)(()=>{(async function({id:e,text:n,config:t}){const s=await ht();s.initialize(t);try{return await s.render(e,n)}catch(a){throw document.querySelector(`#d${e}`)?.remove(),a}})({id:i,text:e,config:o}).then(a).catch(e=>{a(()=>{throw e})})},[i,e,o]),t}const xt="container_AkRK";function gt({renderResult:e}){const n=(0,s.useRef)(null);return(0,s.useEffect)(()=>{const t=n.current;e.bindFunctions?.(t)},[e]),(0,r.jsx)("div",{ref:n,className:`docusaurus-mermaid-container ${xt}`,dangerouslySetInnerHTML:{__html:e.svg}})}function bt({value:e}){const n=pt({text:e});return null===n?null:(0,r.jsx)(gt,{renderResult:n})}const jt={Head:be.A,details:Sn,Details:Sn,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every(e=>"string"==typeof e&&!e.includes("\n"))}(e)?(0,r.jsx)(yn,{...e}):(0,r.jsx)(An,{...e})},a:function(e){const n=(0,Cn.v)(e.id);return(0,r.jsx)(f.A,{...e,className:(0,u.A)(n,e.className)})},pre:function(e){return(0,r.jsx)(r.Fragment,{children:e.children})},ul:function(e){return(0,r.jsx)("ul",{...e,className:zn(e.className)})},li:function(e){(0,Ln.A)().collectAnchor(e.id);const n=(0,Cn.v)(e.id);return(0,r.jsx)("li",{className:(0,u.A)(n,e.className),...e})},img:function(e){return(0,r.jsx)("img",{decoding:"async",loading:"lazy",...e,className:(n=e.className,(0,u.A)(n,Vn))});var n},h1:e=>(0,r.jsx)(In,{as:"h1",...e}),h2:e=>(0,r.jsx)(In,{as:"h2",...e}),h3:e=>(0,r.jsx)(In,{as:"h3",...e}),h4:e=>(0,r.jsx)(In,{as:"h4",...e}),h5:e=>(0,r.jsx)(In,{as:"h5",...e}),h6:e=>(0,r.jsx)(In,{as:"h6",...e}),admonition:lt,mermaid:function(e){return(0,r.jsx)(dt.A,{fallback:e=>(0,r.jsx)(ut.MN,{...e}),children:(0,r.jsx)(bt,{...e})})}};function vt({children:e}){return(0,r.jsx)(ge.x,{components:jt,children:e})}function Nt({children:e}){const n=function(){const{metadata:e,frontMatter:n,contentTitle:t}=l();return n.hide_title||void 0!==t?null:e.title}();return(0,r.jsxs)("div",{className:(0,u.A)(v.G.docs.docMarkdown,"markdown"),children:[n&&(0,r.jsx)("header",{children:(0,r.jsx)(xe.A,{as:"h1",children:n})}),(0,r.jsx)(vt,{children:e})]})}var At=t(8556),yt=t(4906),Ct=t(5057);function Lt(e){return(0,r.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,r.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const kt="breadcrumbHomeIcon_h1OG";function wt(){const e=(0,Ct.Ay)("/");return(0,r.jsx)("li",{className:"breadcrumbs__item",children:(0,r.jsx)(f.A,{"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,r.jsx)(Lt,{className:kt})})})}function _t(e){const n=function({breadcrumbs:e}){const{siteConfig:n}=(0,b.A)();return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.filter(e=>e.href).map((e,t)=>({"@type":"ListItem",position:t+1,name:e.label,item:`${n.url}${e.href}`}))}}({breadcrumbs:e.breadcrumbs});return(0,r.jsx)(be.A,{children:(0,r.jsx)("script",{type:"application/ld+json",children:JSON.stringify(n)})})}const Tt="breadcrumbsContainer_BbJP";function Bt({children:e,href:n,isLast:t}){const s="breadcrumbs__link";return t?(0,r.jsx)("span",{className:s,children:e}):n?(0,r.jsx)(f.A,{className:s,href:n,children:(0,r.jsx)("span",{children:e})}):(0,r.jsx)("span",{className:s,children:e})}function Ht({children:e,active:n}){return(0,r.jsx)("li",{className:(0,u.A)("breadcrumbs__item",{"breadcrumbs__item--active":n}),children:e})}function Mt(){const e=(0,At.OF)(),n=(0,yt.Dt)();return e?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(_t,{breadcrumbs:e}),(0,r.jsx)("nav",{className:(0,u.A)(v.G.docs.docBreadcrumbs,Tt),"aria-label":(0,h.T)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,r.jsxs)("ul",{className:"breadcrumbs",children:[n&&(0,r.jsx)(wt,{}),e.map((n,t)=>{const s=t===e.length-1,a="category"===n.type&&n.linkUnlisted?void 0:n.href;return(0,r.jsx)(Ht,{active:s,children:(0,r.jsx)(Bt,{href:a,isLast:s,children:n.label})},t)})]})})]}):null}function Et(){return(0,r.jsx)(h.A,{id:"theme.contentVisibility.unlistedBanner.title",description:"The unlisted content banner title",children:"Unlisted page"})}function St(){return(0,r.jsx)(h.A,{id:"theme.contentVisibility.unlistedBanner.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function It(){return(0,r.jsx)(be.A,{children:(0,r.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}function Ut(){return(0,r.jsx)(h.A,{id:"theme.contentVisibility.draftBanner.title",description:"The draft content banner title",children:"Draft page"})}function zt(){return(0,r.jsx)(h.A,{id:"theme.contentVisibility.draftBanner.message",description:"The draft content banner message",children:"This page is a draft. It will only be visible in dev and be excluded from the production build."})}function Vt({className:e}){return(0,r.jsx)(lt,{type:"caution",title:(0,r.jsx)(Ut,{}),className:(0,u.A)(e,v.G.common.draftBanner),children:(0,r.jsx)(zt,{})})}function Rt({className:e}){return(0,r.jsx)(lt,{type:"caution",title:(0,r.jsx)(Et,{}),className:(0,u.A)(e,v.G.common.unlistedBanner),children:(0,r.jsx)(St,{})})}function Ot(e){return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(It,{}),(0,r.jsx)(Rt,{...e})]})}function Gt({metadata:e}){const{unlisted:n,frontMatter:t}=e;return(0,r.jsxs)(r.Fragment,{children:[(n||t.unlisted)&&(0,r.jsx)(Ot,{}),t.draft&&(0,r.jsx)(Vt,{})]})}const Dt="docItemContainer_Qzlb",Wt="docItemCol_Dj72";function Pt({children:e}){const n=function(){const{frontMatter:e,toc:n}=l(),t=(0,m.l)(),s=e.hide_table_of_contents,a=!s&&n.length>0;return{hidden:s,mobile:a?(0,r.jsx)(me,{}):void 0,desktop:!a||"desktop"!==t&&"ssr"!==t?void 0:(0,r.jsx)(pe,{})}}(),{metadata:t}=l();return(0,r.jsxs)("div",{className:"row",children:[(0,r.jsxs)("div",{className:(0,u.A)("col",!n.hidden&&Wt),children:[(0,r.jsx)(Gt,{metadata:t}),(0,r.jsx)(w,{}),(0,r.jsxs)("div",{className:Dt,children:[(0,r.jsxs)("article",{children:[(0,r.jsx)(Mt,{}),(0,r.jsx)(_,{}),n.mobile,(0,r.jsx)(Nt,{children:e}),(0,r.jsx)(F,{})]}),(0,r.jsx)(g,{})]})]}),n.desktop&&(0,r.jsx)("div",{className:"col col--3",children:n.desktop})]})}function $t(e){const n=`docs-doc-id-${e.content.metadata.id}`,t=e.content;return(0,r.jsx)(c,{content:e.content,children:(0,r.jsxs)(a.e3,{className:n,children:[(0,r.jsx)(d,{}),(0,r.jsx)(Pt,{children:(0,r.jsx)(t,{})})]})})}},4809(e,n){function t(e){let n,t=[];for(let s of e.split(",").map(e=>e.trim()))if(/^-?\d+$/.test(s))t.push(parseInt(s,10));else if(n=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,a,i]=n;if(s&&i){s=parseInt(s),i=parseInt(i);const e=s<i?1:-1;"-"!==a&&".."!==a&&"\u2025"!==a||(i+=e);for(let n=s;n!==i;n+=e)t.push(n)}}return t}n.default=t,e.exports=t},6607(e,n,t){"use strict";t.d(n,{R:()=>r,x:()=>o});var s=t(758);const a={},i=s.createContext(a);function r(e){const n=s.useContext(i);return s.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[]).push([[9577],{
|
|
1
|
+
"use strict";(globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[]).push([[9577],{4855(e,t,n){n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>i,toc:()=>c});const i=JSON.parse('{"id":"api/functions/loadRoutes","title":"loadRoutes()","description":"Parameters","source":"@site/docs/api/functions/loadRoutes.md","sourceDirName":"api/functions","slug":"/api/functions/loadRoutes","permalink":"/cli/api/functions/loadRoutes","draft":false,"unlisted":false,"editUrl":"https://git.elliemae.io/platform-ui/pui-cli.git/docs/api/functions/loadRoutes.md","tags":[],"version":"current","frontMatter":{},"sidebar":"docsSidebar","previous":{"title":"Cli API","permalink":"/cli/api/"},"next":{"title":"LIB\\\\_NAME","permalink":"/cli/api/type-aliases/LIB_NAME"}}');var s=n(6070),o=n(6607);const r={},a="loadRoutes()",l={},c=[{value:"Parameters",id:"parameters",level:2},{value:"app",id:"app",level:3},{value:"Returns",id:"returns",level:2}];function d(e){const t={code:"code",h1:"h1",h2:"h2",h3:"h3",header:"header",p:"p",pre:"pre",...(0,o.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.header,{children:(0,s.jsx)(t.h1,{id:"loadroutes",children:"loadRoutes()"})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-ts",children:"function loadRoutes(app: Application): Promise<void>;\n"})}),"\n",(0,s.jsx)(t.h2,{id:"parameters",children:"Parameters"}),"\n",(0,s.jsx)(t.h3,{id:"app",children:"app"}),"\n",(0,s.jsx)(t.p,{children:(0,s.jsx)(t.code,{children:"Application"})}),"\n",(0,s.jsx)(t.h2,{id:"returns",children:"Returns"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.code,{children:"Promise"}),"<",(0,s.jsx)(t.code,{children:"void"}),">"]})]})}function p(e={}){const{wrapper:t}={...(0,o.R)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},6607(e,t,n){n.d(t,{R:()=>r,x:()=>a});var i=n(758);const s={},o=i.createContext(s);function r(e){const t=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:t},e.children)}}}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[]).push([[7589],{
|
|
1
|
+
"use strict";(globalThis.webpackChunk_elliemae_pui_cli=globalThis.webpackChunk_elliemae_pui_cli||[]).push([[7589],{2433(t,e,i){i.r(e),i.d(e,{assets:()=>o,contentTitle:()=>l,default:()=>d,frontMatter:()=>s,metadata:()=>n,toc:()=>c});const n=JSON.parse('{"id":"api/variables/eslintFlatConfigStrict","title":"eslintFlatConfigStrict","description":"Strict flat ESLint config for React + TypeScript (errors on no-unsafe-* and exhaustive-deps).","source":"@site/docs/api/variables/eslintFlatConfigStrict.md","sourceDirName":"api/variables","slug":"/api/variables/eslintFlatConfigStrict","permalink":"/cli/api/variables/eslintFlatConfigStrict","draft":false,"unlisted":false,"editUrl":"https://git.elliemae.io/platform-ui/pui-cli.git/docs/api/variables/eslintFlatConfigStrict.md","tags":[],"version":"current","frontMatter":{},"sidebar":"docsSidebar","previous":{"title":"eslintFlatConfig","permalink":"/cli/api/variables/eslintFlatConfig"},"next":{"title":"jestConfig","permalink":"/cli/api/variables/jestConfig"}}');var r=i(6070),a=i(6607);const s={},l="eslintFlatConfigStrict",o={},c=[];function p(t){const e={code:"code",h1:"h1",header:"header",p:"p",pre:"pre",...(0,a.R)(),...t.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(e.header,{children:(0,r.jsx)(e.h1,{id:"eslintflatconfigstrict",children:"eslintFlatConfigStrict"})}),"\n",(0,r.jsx)(e.pre,{children:(0,r.jsx)(e.code,{className:"language-ts",children:"const eslintFlatConfigStrict: Config[] = reactFlatConfigsStrict;\n"})}),"\n",(0,r.jsxs)(e.p,{children:["Strict flat ESLint config for React + TypeScript (errors on ",(0,r.jsx)(e.code,{children:"no-unsafe-*"})," and ",(0,r.jsx)(e.code,{children:"exhaustive-deps"}),")."]})]})}function d(t={}){const{wrapper:e}={...(0,a.R)(),...t.components};return e?(0,r.jsx)(e,{...t,children:(0,r.jsx)(p,{...t})}):p(t)}},6607(t,e,i){i.d(e,{R:()=>s,x:()=>l});var n=i(758);const r={},a=n.createContext(r);function s(t){const e=n.useContext(a);return n.useMemo(function(){return"function"==typeof t?t(e):{...e,...t}},[e,t])}function l(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:s(t.components),n.createElement(a.Provider,{value:e},t.children)}}}]);
|