@elliemae/pui-cli 9.0.0-alpha.1 → 9.0.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/README.md +43 -0
  2. package/app.tsconfig.json +1 -1
  3. package/build/docs/404.html +16 -0
  4. package/build/docs/api/functions/loadRoutes/index.html +22 -0
  5. package/build/docs/api/index.html +22 -0
  6. package/build/docs/api/type-aliases/LIB_NAME/index.html +17 -0
  7. package/build/docs/api/variables/babelConfig/index.html +40 -0
  8. package/build/docs/api/variables/commitlintConfig/index.html +20 -0
  9. package/build/docs/api/variables/eslintBaseConfig/index.html +132 -0
  10. package/build/docs/api/variables/eslintConfig/index.html +180 -0
  11. package/build/docs/api/variables/eslintFlatBaseConfig/index.html +18 -0
  12. package/build/docs/api/variables/eslintFlatBaseConfigStrict/index.html +18 -0
  13. package/build/docs/api/variables/eslintFlatConfig/index.html +18 -0
  14. package/build/docs/api/variables/eslintFlatConfigStrict/index.html +18 -0
  15. package/build/docs/api/variables/jestConfig/index.html +98 -0
  16. package/build/docs/api/variables/jestNodeConfig/index.html +98 -0
  17. package/build/docs/api/variables/lintStagedConfig/index.html +24 -0
  18. package/build/docs/api/variables/prettierConfig/index.html +30 -0
  19. package/build/docs/api/variables/stylelintConfig/index.html +17 -0
  20. package/build/docs/api/variables/vitestConfig/index.html +17 -0
  21. package/build/docs/assets/css/styles.74603f39.css +1 -0
  22. package/build/docs/assets/js/04ee7372.eaa386ed.js +1 -0
  23. package/build/docs/assets/js/0551d4dd.ebb18f4f.js +1 -0
  24. package/build/docs/assets/js/0a1d0315.fc8f91a7.js +1 -0
  25. package/build/docs/assets/js/1126.fa547e9c.js +1 -0
  26. package/build/docs/assets/js/1127.f28430e6.js +1 -0
  27. package/build/docs/assets/js/1298.fb0939c9.js +1 -0
  28. package/build/docs/assets/js/13097d8d.af480dfd.js +1 -0
  29. package/build/docs/assets/js/1617.b2623271.js +1 -0
  30. package/build/docs/assets/js/16b7bc88.c3779e27.js +1 -0
  31. package/build/docs/assets/js/1700.4f7a9007.js +1 -0
  32. package/build/docs/assets/js/17896441.84339068.js +1 -0
  33. package/build/docs/assets/js/1b9df811.aaa95da1.js +1 -0
  34. package/build/docs/assets/js/213.e69351b3.js +1 -0
  35. package/build/docs/assets/js/2297.e63290f4.js +1 -0
  36. package/build/docs/assets/js/232a0286.33b2782b.js +1 -0
  37. package/build/docs/assets/js/2399.cc5803e0.js +1 -0
  38. package/build/docs/assets/js/242.73516ab6.js +1 -0
  39. package/build/docs/assets/js/247.e1522e52.js +1 -0
  40. package/build/docs/assets/js/2673.da75a556.js +1 -0
  41. package/build/docs/assets/js/2805.f0505f8c.js +1 -0
  42. package/build/docs/assets/js/3395.eb3dad5b.js +1 -0
  43. package/build/docs/assets/js/3499.2d5c6821.js +1 -0
  44. package/build/docs/assets/js/3552.9272c0d9.js +1 -0
  45. package/build/docs/assets/js/3720.8e7f36d4.js +2 -0
  46. package/build/docs/assets/js/3720.8e7f36d4.js.LICENSE.txt +9 -0
  47. package/build/docs/assets/js/37d86055.47211796.js +1 -0
  48. package/build/docs/assets/js/3992.0ac29b2f.js +2 -0
  49. package/build/docs/assets/js/3992.0ac29b2f.js.LICENSE.txt +1 -0
  50. package/build/docs/assets/js/4069.301f1115.js +1 -0
  51. package/build/docs/assets/js/4134.553b3645.js +1 -0
  52. package/build/docs/assets/js/4257.9afce6ac.js +1 -0
  53. package/build/docs/assets/js/4772.6294b364.js +1 -0
  54. package/build/docs/assets/js/4884.9dbe23e5.js +1 -0
  55. package/build/docs/assets/js/4fb6949f.369cc1b9.js +1 -0
  56. package/build/docs/assets/js/5196.98f7e06a.js +1 -0
  57. package/build/docs/assets/js/5248.ee436cea.js +1 -0
  58. package/build/docs/assets/js/5428.71752e9a.js +1 -0
  59. package/build/docs/assets/js/5964.0728ed91.js +1 -0
  60. package/build/docs/assets/js/5968.5f4ccba7.js +1 -0
  61. package/build/docs/assets/js/5befad71.5f19afb5.js +1 -0
  62. package/build/docs/assets/js/5d5f1db0.c5aa5afa.js +1 -0
  63. package/build/docs/assets/js/5e8c322a.ef3b894b.js +1 -0
  64. package/build/docs/assets/js/5e95c892.f550b901.js +1 -0
  65. package/build/docs/assets/js/5fb3c522.da5628e8.js +1 -0
  66. package/build/docs/assets/js/6486.68ae0007.js +1 -0
  67. package/build/docs/assets/js/6704.2615a5c6.js +1 -0
  68. package/build/docs/assets/js/6bd11e52.08b95209.js +1 -0
  69. package/build/docs/assets/js/6e96545e.30c1b801.js +1 -0
  70. package/build/docs/assets/js/7080.efd5ba6c.js +1 -0
  71. package/build/docs/assets/js/71f6d02b.cfd98385.js +1 -0
  72. package/build/docs/assets/js/7201.e90ba636.js +1 -0
  73. package/build/docs/assets/js/7344.95656e38.js +1 -0
  74. package/build/docs/assets/js/7516.b6668d60.js +1 -0
  75. package/build/docs/assets/js/7525.a8d0db87.js +1 -0
  76. package/build/docs/assets/js/7540.7a4353cf.js +1 -0
  77. package/build/docs/assets/js/7985.8c6943d6.js +1 -0
  78. package/build/docs/assets/js/8049.8ba75278.js +1 -0
  79. package/build/docs/assets/js/80e87108.f9507b95.js +1 -0
  80. package/build/docs/assets/js/8152.f2bebb2f.js +1 -0
  81. package/build/docs/assets/js/821.8d4e2a80.js +1 -0
  82. package/build/docs/assets/js/8290.a4f7a2ca.js +1 -0
  83. package/build/docs/assets/js/8355.864847a1.js +1 -0
  84. package/build/docs/assets/js/8389.26a9caca.js +1 -0
  85. package/build/docs/assets/js/8585.3cb09ff7.js +1 -0
  86. package/build/docs/assets/js/8788.03856709.js +1 -0
  87. package/build/docs/assets/js/9178.50ac2954.js +1 -0
  88. package/build/docs/assets/js/9210.1ac21da8.js +1 -0
  89. package/build/docs/assets/js/9354.37ad86f9.js +1 -0
  90. package/build/docs/assets/js/936.c151b43f.js +1 -0
  91. package/build/docs/assets/js/9574.b172d607.js +1 -0
  92. package/build/docs/assets/js/97.70eddfb5.js +1 -0
  93. package/build/docs/assets/js/9852.f77caf52.js +1 -0
  94. package/build/docs/assets/js/9953.f6278635.js +1 -0
  95. package/build/docs/assets/js/a7bd4aaa.30ffad02.js +1 -0
  96. package/build/docs/assets/js/a94703ab.f1796514.js +1 -0
  97. package/build/docs/assets/js/aba21aa0.3bbcf0cc.js +1 -0
  98. package/build/docs/assets/js/b7b585d8.6d53e73f.js +1 -0
  99. package/build/docs/assets/js/b8ac1d98.62684003.js +1 -0
  100. package/build/docs/assets/js/bde5209a.f5bca8b2.js +1 -0
  101. package/build/docs/assets/js/c377a04b.0f8625c6.js +1 -0
  102. package/build/docs/assets/js/dfd75424.51c4e2cb.js +1 -0
  103. package/build/docs/assets/js/e5f79924.c793a74d.js +1 -0
  104. package/build/docs/assets/js/f736c962.dbd0d004.js +1 -0
  105. package/build/docs/assets/js/main.7f815b7e.js +2 -0
  106. package/build/docs/assets/js/main.7f815b7e.js.LICENSE.txt +51 -0
  107. package/build/docs/assets/js/runtime~main.f7c5bef0.js +1 -0
  108. package/build/docs/eslint-rules-migration/index.html +135 -0
  109. package/build/docs/img/favicon.ico +0 -0
  110. package/build/docs/img/logo.jpeg +0 -0
  111. package/build/docs/img/logo.svg +22 -0
  112. package/build/docs/img/readme.md +1 -0
  113. package/build/docs/index.html +179 -0
  114. package/build/docs/pui-cli-9-migration/index.html +180 -0
  115. package/build/docs/readme.md +1 -0
  116. package/build/docs/sitemap.xml +1 -0
  117. package/build/docs/ssl-certificate-setup/index.html +284 -0
  118. package/build/docs/stylelint-migration/index.html +57 -0
  119. package/build/docs/usage-guide/index.html +439 -0
  120. package/dist/cjs/cli.js +3 -13
  121. package/dist/cjs/commands/build.js +1 -2
  122. package/dist/cjs/commands/buildcdn.js +1 -2
  123. package/dist/cjs/commands/codemod.js +1 -12
  124. package/dist/cjs/commands/gendoc.js +1 -2
  125. package/dist/cjs/commands/lint.js +11 -9
  126. package/dist/cjs/commands/pack.js +1 -2
  127. package/dist/cjs/commands/skills.js +206 -0
  128. package/dist/cjs/commands/start.js +1 -2
  129. package/dist/cjs/commands/storybook.js +1 -12
  130. package/dist/cjs/commands/test.js +1 -13
  131. package/dist/cjs/commands/tscheck.js +1 -2
  132. package/dist/cjs/commands/utils.js +16 -12
  133. package/dist/cjs/commands/version.js +1 -12
  134. package/dist/cjs/commands/vitest.js +1 -13
  135. package/dist/cjs/index.cjs +13 -1
  136. package/dist/cjs/index.js +8 -2
  137. package/dist/cjs/lint-config/eslint/common.cjs +1 -1
  138. package/dist/cjs/lint-config/eslint/flat/common.mjs +169 -0
  139. package/dist/cjs/lint-config/eslint/flat/compat.mjs +27 -0
  140. package/dist/cjs/lint-config/eslint/flat/index.mjs +21 -0
  141. package/dist/cjs/lint-config/eslint/flat/non-react-export.mjs +10 -0
  142. package/dist/cjs/lint-config/eslint/flat/non-react.mjs +6 -0
  143. package/dist/cjs/lint-config/eslint/flat/presets.mjs +96 -0
  144. package/dist/cjs/lint-config/eslint/flat/react-export.mjs +7 -0
  145. package/dist/cjs/lint-config/eslint/flat/react.mjs +59 -0
  146. package/dist/cjs/lint-config/eslint/flat/rules.mjs +185 -0
  147. package/dist/cjs/lint-config/eslint/typescript/non-react.cjs +1 -1
  148. package/dist/cjs/lint-config/eslint/typescript/react.cjs +1 -1
  149. package/dist/cjs/lint-config/stylelint/config.mjs +27 -0
  150. package/dist/cjs/lint-config/stylelint/export.mjs +1 -0
  151. package/dist/cjs/lint-config/stylelint.config.cjs +3 -19
  152. package/dist/cjs/monorepo/utils.cjs +16 -8
  153. package/dist/cjs/monorepo/utils.js +5 -8
  154. package/dist/cjs/{release.config.cjs → release.config.mjs} +3 -2
  155. package/dist/cjs/{semantic-release-plugin.cjs → semantic-release-plugin.mjs} +3 -3
  156. package/dist/cjs/skills/migrate-to-pui-cli-9/SKILL.md +309 -0
  157. package/dist/cjs/testing/jest.config.cjs +4 -4
  158. package/dist/cjs/testing/resolver.cjs +1 -1
  159. package/dist/cjs/testing/setup-react-env.js +1 -1
  160. package/dist/cjs/testing/vitest.config.js +2 -1
  161. package/dist/cjs/transpile/esbuild.js +1 -1
  162. package/dist/cjs/webpack/csp-plugin.js +2 -4
  163. package/dist/cjs/webpack/prop-types-shim.js +0 -1
  164. package/dist/cjs/webpack/webpack.lib.base.babel.js +0 -8
  165. package/dist/esm/cli.js +3 -13
  166. package/dist/esm/commands/build.js +1 -2
  167. package/dist/esm/commands/buildcdn.js +1 -2
  168. package/dist/esm/commands/codemod.js +1 -2
  169. package/dist/esm/commands/gendoc.js +1 -2
  170. package/dist/esm/commands/lint.js +11 -9
  171. package/dist/esm/commands/pack.js +1 -2
  172. package/dist/esm/commands/skills.js +175 -0
  173. package/dist/esm/commands/start.js +1 -2
  174. package/dist/esm/commands/storybook.js +1 -2
  175. package/dist/esm/commands/test.js +1 -3
  176. package/dist/esm/commands/tscheck.js +1 -2
  177. package/dist/esm/commands/utils.js +17 -13
  178. package/dist/esm/commands/version.js +1 -2
  179. package/dist/esm/commands/vitest.js +1 -3
  180. package/dist/esm/index.cjs +13 -1
  181. package/dist/esm/index.js +13 -1
  182. package/dist/esm/lint-config/eslint/common.cjs +1 -1
  183. package/dist/esm/lint-config/eslint/flat/common.mjs +169 -0
  184. package/dist/esm/lint-config/eslint/flat/compat.mjs +27 -0
  185. package/dist/esm/lint-config/eslint/flat/index.mjs +21 -0
  186. package/dist/esm/lint-config/eslint/flat/non-react-export.mjs +10 -0
  187. package/dist/esm/lint-config/eslint/flat/non-react.mjs +6 -0
  188. package/dist/esm/lint-config/eslint/flat/presets.mjs +96 -0
  189. package/dist/esm/lint-config/eslint/flat/react-export.mjs +7 -0
  190. package/dist/esm/lint-config/eslint/flat/react.mjs +59 -0
  191. package/dist/esm/lint-config/eslint/flat/rules.mjs +185 -0
  192. package/dist/esm/lint-config/eslint/typescript/non-react.cjs +1 -1
  193. package/dist/esm/lint-config/eslint/typescript/react.cjs +1 -1
  194. package/dist/esm/lint-config/stylelint/config.mjs +27 -0
  195. package/dist/esm/lint-config/stylelint/export.mjs +1 -0
  196. package/dist/esm/lint-config/stylelint.config.cjs +3 -19
  197. package/dist/esm/monorepo/utils.cjs +16 -8
  198. package/dist/esm/monorepo/utils.js +5 -8
  199. package/dist/esm/{release.config.cjs → release.config.mjs} +3 -2
  200. package/dist/esm/{semantic-release-plugin.cjs → semantic-release-plugin.mjs} +3 -3
  201. package/dist/esm/skills/migrate-to-pui-cli-9/SKILL.md +309 -0
  202. package/dist/esm/testing/jest.config.cjs +4 -4
  203. package/dist/esm/testing/resolver.cjs +1 -1
  204. package/dist/esm/testing/setup-react-env.js +1 -1
  205. package/dist/esm/testing/vitest.config.js +2 -1
  206. package/dist/esm/transpile/esbuild.js +1 -1
  207. package/dist/esm/webpack/csp-plugin.js +2 -4
  208. package/dist/esm/webpack/prop-types-shim.js +0 -1
  209. package/dist/esm/webpack/webpack.lib.base.babel.js +0 -8
  210. package/dist/types/lib/commands/build.d.ts +1 -1
  211. package/dist/types/lib/commands/buildcdn.d.ts +1 -1
  212. package/dist/types/lib/commands/codemod.d.ts +1 -1
  213. package/dist/types/lib/commands/gendoc.d.ts +1 -1
  214. package/dist/types/lib/commands/lint.d.ts +1 -1
  215. package/dist/types/lib/commands/pack.d.ts +1 -1
  216. package/dist/types/lib/commands/skills.d.ts +11 -0
  217. package/dist/types/lib/commands/start.d.ts +1 -1
  218. package/dist/types/lib/commands/storybook.d.ts +1 -1
  219. package/dist/types/lib/commands/test.d.ts +1 -1
  220. package/dist/types/lib/commands/tscheck.d.ts +1 -1
  221. package/dist/types/lib/commands/utils.d.ts +43 -2
  222. package/dist/types/lib/commands/version.d.ts +1 -1
  223. package/dist/types/lib/commands/vitest.d.ts +1 -1
  224. package/dist/types/lib/index.d.cts +6 -2
  225. package/dist/types/lib/index.d.ts +5 -1
  226. package/dist/types/lib/lint-config/eslint/flat/common.d.mts +6 -0
  227. package/dist/types/lib/lint-config/eslint/flat/compat.d.mts +9 -0
  228. package/dist/types/lib/lint-config/eslint/flat/index.d.mts +6 -0
  229. package/dist/types/lib/lint-config/eslint/flat/non-react-export.d.mts +4 -0
  230. package/dist/types/lib/lint-config/eslint/flat/non-react.d.mts +3 -0
  231. package/dist/types/lib/lint-config/eslint/flat/presets.d.mts +34 -0
  232. package/dist/types/lib/lint-config/eslint/flat/react-export.d.mts +4 -0
  233. package/dist/types/lib/lint-config/eslint/flat/react.d.mts +4 -0
  234. package/dist/types/lib/lint-config/eslint/flat/rules.d.mts +361 -0
  235. package/dist/types/lib/lint-config/stylelint/config.d.mts +3 -0
  236. package/dist/types/lib/lint-config/stylelint/export.d.mts +1 -0
  237. package/dist/types/lib/lint-config/stylelint.config.d.cts +2 -10
  238. package/dist/types/lib/release.config.d.mts +10 -0
  239. package/dist/types/lib/semantic-release-plugin.d.mts +4 -0
  240. package/dist/types/lib/server/appRoutes.d.ts +1 -1
  241. package/dist/types/lib/server/csp.d.ts +1 -1
  242. package/dist/types/lib/server/middlewares.d.ts +1 -1
  243. package/dist/types/lib/webpack/csp-plugin.d.ts +3 -3
  244. package/dist/types/lib/webpack/helpers.d.ts +1 -1
  245. package/dist/types/lib/webpack/interceptor-middleware.d.ts +2 -2
  246. package/dist/types/lib/webpack/webpack.base.babel.d.ts +1 -1
  247. package/dist/types/lib/webpack/webpack.lib.base.babel.d.ts +1 -1
  248. package/dist/types/lib/webpack/webpack.lib.prod.babel.d.ts +1 -1
  249. package/dist/types/lib/webpack/webpack.prod.babel.d.ts +1 -1
  250. package/dist/types/lib/webpack/webpack.storybook.d.ts +1 -1
  251. package/dist/types/tsconfig.tsbuildinfo +1 -1
  252. package/lib/lint-config/commitlint.config.cjs +1 -0
  253. package/lib/lint-config/eslint/common.cjs +164 -0
  254. package/lib/lint-config/eslint/flat/common.mjs +169 -0
  255. package/lib/lint-config/eslint/flat/compat.mjs +27 -0
  256. package/lib/lint-config/eslint/flat/index.mjs +21 -0
  257. package/lib/lint-config/eslint/flat/non-react-export.mjs +10 -0
  258. package/lib/lint-config/eslint/flat/non-react.mjs +6 -0
  259. package/lib/lint-config/eslint/flat/presets.mjs +96 -0
  260. package/lib/lint-config/eslint/flat/react-export.mjs +7 -0
  261. package/lib/lint-config/eslint/flat/react.mjs +59 -0
  262. package/lib/lint-config/eslint/flat/rules.mjs +185 -0
  263. package/lib/lint-config/eslint/non-react.cjs +14 -0
  264. package/lib/lint-config/eslint/react.cjs +26 -0
  265. package/lib/lint-config/eslint/typescript/common.cjs +49 -0
  266. package/lib/lint-config/eslint/typescript/non-react.cjs +12 -0
  267. package/lib/lint-config/eslint/typescript/react.cjs +19 -0
  268. package/lib/lint-config/lint-staged.config.js +15 -0
  269. package/lib/lint-config/prettier.config.cjs +8 -0
  270. package/lib/lint-config/stylelint/config.mjs +27 -0
  271. package/lib/lint-config/stylelint/export.mjs +1 -0
  272. package/lib/lint-config/stylelint.config.cjs +3 -0
  273. package/lib/release.config.mjs +28 -0
  274. package/lib/semantic-release-plugin.mjs +30 -0
  275. package/lib/skills/migrate-to-pui-cli-9/SKILL.md +309 -0
  276. package/library.tsconfig.json +1 -1
  277. package/package.json +95 -90
  278. package/dist/types/lib/release.config.d.cts +0 -7
  279. package/dist/types/lib/semantic-release-plugin.d.cts +0 -1
@@ -0,0 +1,284 @@
1
+ <!doctype html>
2
+ <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-ssl-certificate-setup" data-has-hydrated="false">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="generator" content="Docusaurus v3.10.1">
6
+ <title data-rh="true">Trust SSL Certificate Guide | Cli</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/cli/ssl-certificate-setup"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Trust SSL Certificate Guide | Cli"><meta data-rh="true" name="description" content="This guide explains how to trust the self-signed CA certificate on different operating systems and browsers so your HTTPS connection works without warnings."><meta data-rh="true" property="og:description" content="This guide explains how to trust the self-signed CA certificate on different operating systems and browsers so your HTTPS connection works without warnings."><link data-rh="true" rel="icon" href="/cli/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/cli/ssl-certificate-setup"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/ssl-certificate-setup" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/ssl-certificate-setup" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Trust SSL Certificate Guide","item":"https://pui.ice.com/cli/ssl-certificate-setup"}]}</script><link rel="stylesheet" href="/cli/assets/css/styles.74603f39.css">
7
+ <script src="/cli/assets/js/runtime~main.f7c5bef0.js" defer="defer"></script>
8
+ <script src="/cli/assets/js/main.7f815b7e.js" defer="defer"></script>
9
+ </head>
10
+ <body>
11
+ <svg style="display: none;"><defs>
12
+ <symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
13
+ </defs></svg>
14
+ <script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent__KB6" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/cli/"><div class="navbar__logo"><img src="/cli/img/logo.svg" alt="Cli" class="themedComponent__Gxr themedComponent--light_euW4"><img src="/cli/img/logo.svg" alt="Cli" class="themedComponent__Gxr themedComponent--dark_cG3D"></div><b class="navbar__title text--truncate">Cli</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/cli/">Getting Started</a><a class="navbar__item navbar__link" href="/cli/api">API</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://git.elliemae.io/platform-ui/pui-cli.git" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink__EWc"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_TGb8 colorModeToggle_zDjd"><button class="clean-btn toggleButton_pX7R toggleButtonDisabled_J9eq" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_aiXM lightToggleIcon_TXA8"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_aiXM darkToggleIcon_koy3"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_aiXM systemToggleIcon_nzkW"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer__iSk"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_KuT8"><div class="docsWrapper_VaWq"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_j5oK" type="button"></button><div class="docRoot_noFI"><aside class="theme-doc-sidebar-container docSidebarContainer_VgAC"><div class="sidebarViewport_KhCA"><div class="sidebar_kOfH"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_OmRr"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_jyam menu__link menu__link--sublist" href="/cli/api/"><span title="Cli API" class="categoryLinkLabel_sc1K">Cli API</span></a><button aria-label="Expand sidebar category &#x27;Cli API&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cli/eslint-rules-migration"><span title="ESLint rules migration guide (legacy → ESLint 10 flat config)" class="linkLabel_gjq0">ESLint rules migration guide (legacy → ESLint 10 flat config)</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cli/"><span title="PUI CLI Documentation" class="linkLabel_gjq0">PUI CLI Documentation</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cli/pui-cli-9-migration"><span title="pui-cli 9 migration guide" class="linkLabel_gjq0">pui-cli 9 migration guide</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/cli/ssl-certificate-setup"><span title="Trust SSL Certificate Guide" class="linkLabel_gjq0">Trust SSL Certificate Guide</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cli/stylelint-migration"><span title="Stylelint migration guide (pui-cli 8 → 9 / Stylelint 17)" class="linkLabel_gjq0">Stylelint migration guide (pui-cli 8 → 9 / Stylelint 17)</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cli/usage-guide"><span title="Usage Guide" class="linkLabel_gjq0">Usage Guide</span></a></li></ul></nav></div></div></aside><main class="docMainContainer_QTZx"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_zFNv"><div class="docItemContainer_gTAZ"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_WbZx" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/cli/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_eRUI"><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"></path></svg></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Trust SSL Certificate Guide</span></li></ul></nav><div class="tocCollapsible_XRgF theme-doc-toc-mobile tocMobile_QmTN"><button type="button" class="clean-btn tocCollapsibleButton_wt2y">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Trust SSL Certificate Guide</h1></header>
15
+ <p>This guide explains how to trust the self-signed CA certificate on different operating systems and browsers so your HTTPS connection works without warnings.</p>
16
+ <hr>
17
+ <h2 class="anchor anchorTargetStickyNavbar_jFbF" id="-table-of-contents">📋 Table of Contents<a href="#-table-of-contents" class="hash-link" aria-label="Direct link to 📋 Table of Contents" title="Direct link to 📋 Table of Contents" translate="no">​</a></h2>
18
+ <ul>
19
+ <li class=""><a href="#-macos" class="">macOS</a></li>
20
+ <li class=""><a href="#-windows" class="">Windows</a></li>
21
+ <li class=""><a href="#-firefox-all-platforms" class="">Firefox (All Platforms)</a></li>
22
+ </ul>
23
+ <hr>
24
+ <h2 class="anchor anchorTargetStickyNavbar_jFbF" id="-macos">🍎 macOS<a href="#-macos" class="hash-link" aria-label="Direct link to 🍎 macOS" title="Direct link to 🍎 macOS" translate="no">​</a></h2>
25
+ <h3 class="anchor anchorTargetStickyNavbar_jFbF" id="via-keychain-access">Via Keychain Access<a href="#via-keychain-access" class="hash-link" aria-label="Direct link to Via Keychain Access" title="Direct link to Via Keychain Access" translate="no">​</a></h3>
26
+ <ol>
27
+ <li class="">
28
+ <p><strong>Locate the certificate file:</strong></p>
29
+ <ul>
30
+ <li class="">Open Finder and navigate to the <code>certs</code> folder</li>
31
+ <li class="">Find the file <code>ca-cert.pem</code></li>
32
+ </ul>
33
+ </li>
34
+ <li class="">
35
+ <p><strong>Import the certificate:</strong></p>
36
+ <ul>
37
+ <li class=""><strong>Double-click</strong> <code>ca-cert.pem</code></li>
38
+ <li class="">In the popup dialog, select <strong>&quot;login&quot;</strong> keychain</li>
39
+ <li class="">Click <strong>&quot;Add&quot;</strong></li>
40
+ <li class="">Enter your macOS password if prompted</li>
41
+ </ul>
42
+ </li>
43
+ <li class="">
44
+ <p><strong>Trust the certificate:</strong></p>
45
+ <ul>
46
+ <li class="">Press <code>Cmd + Space</code> and type <strong>&quot;Keychain Access&quot;</strong> to open the app</li>
47
+ <li class="">In the left sidebar, click <strong>&quot;login&quot;</strong> keychain</li>
48
+ <li class="">In the bottom-left category selector, choose <strong>&quot;Certificates&quot;</strong></li>
49
+ <li class="">Search for <strong>&quot;localhost&quot;</strong> in the search box (top right)</li>
50
+ </ul>
51
+ </li>
52
+ <li class="">
53
+ <p><strong>Set trust level:</strong></p>
54
+ <ul>
55
+ <li class=""><strong>Double-click</strong> the &quot;localhost&quot; certificate</li>
56
+ <li class="">Click the <strong>▶ triangle</strong> next to <strong>&quot;Trust&quot;</strong> to expand the section</li>
57
+ <li class="">Change <strong>&quot;When using this certificate&quot;</strong> dropdown to <strong>&quot;Always Trust&quot;</strong></li>
58
+ <li class="">Optionally, set <strong>&quot;Secure Sockets Layer (SSL)&quot;</strong> to <strong>&quot;Always Trust&quot;</strong></li>
59
+ </ul>
60
+ </li>
61
+ <li class="">
62
+ <p><strong>Save changes:</strong></p>
63
+ <ul>
64
+ <li class="">Close the certificate window</li>
65
+ <li class="">Enter your macOS password when prompted</li>
66
+ </ul>
67
+ </li>
68
+ <li class="">
69
+ <p><strong>Restart your browser</strong> (important!)</p>
70
+ </li>
71
+ <li class="">
72
+ <p><strong>Test:</strong> Visit <code>https://localhost:8443</code> - should show secure! 🔒</p>
73
+ </li>
74
+ </ol>
75
+ <h3 class="anchor anchorTargetStickyNavbar_jFbF" id="remove-certificate-from-macos">Remove Certificate from macOS<a href="#remove-certificate-from-macos" class="hash-link" aria-label="Direct link to Remove Certificate from macOS" title="Direct link to Remove Certificate from macOS" translate="no">​</a></h3>
76
+ <p><strong>Via Keychain Access:</strong></p>
77
+ <ol>
78
+ <li class="">Open Keychain Access</li>
79
+ <li class="">Find &quot;localhost&quot; certificate</li>
80
+ <li class="">Right-click → <strong>Delete &quot;localhost&quot;</strong></li>
81
+ <li class="">Enter password</li>
82
+ </ol>
83
+ <p><strong>Via Command Line:</strong></p>
84
+ <div class="language-bash codeBlockContainer_uLrG theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_yDoo"><pre tabindex="0" class="prism-code language-bash codeBlock_whMN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_r5mI"><div class="token-line" style="color:#393A34"><span class="token plain"># From login keychain</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">security delete-certificate -c &quot;localhost&quot; ~/Library/Keychains/login.keychain-db</span><br></div></code></pre></div></div>
85
+ <hr>
86
+ <h2 class="anchor anchorTargetStickyNavbar_jFbF" id="-windows">🪟 Windows<a href="#-windows" class="hash-link" aria-label="Direct link to 🪟 Windows" title="Direct link to 🪟 Windows" translate="no">​</a></h2>
87
+ <h3 class="anchor anchorTargetStickyNavbar_jFbF" id="via-certificate-manager">Via Certificate Manager<a href="#via-certificate-manager" class="hash-link" aria-label="Direct link to Via Certificate Manager" title="Direct link to Via Certificate Manager" translate="no">​</a></h3>
88
+ <ol>
89
+ <li class="">
90
+ <p><strong>Open Certificate Manager:</strong></p>
91
+ <ul>
92
+ <li class="">Press <code>Win + R</code> to open Run dialog</li>
93
+ <li class="">Type <code>certmgr.msc</code> and press Enter</li>
94
+ <li class="">Or search for &quot;Manage user certificates&quot; in Start menu</li>
95
+ </ul>
96
+ </li>
97
+ <li class="">
98
+ <p><strong>Import the certificate:</strong></p>
99
+ <ul>
100
+ <li class="">In the left panel, expand <strong>&quot;Trusted Root Certification Authorities&quot;</strong></li>
101
+ <li class="">Right-click on <strong>&quot;Certificates&quot;</strong> folder</li>
102
+ <li class="">Select <strong>Action</strong> → <strong>All Tasks</strong> → <strong>Import...</strong></li>
103
+ </ul>
104
+ </li>
105
+ <li class="">
106
+ <p><strong>Certificate Import Wizard:</strong></p>
107
+ <ul>
108
+ <li class="">Click <strong>&quot;Next&quot;</strong></li>
109
+ <li class="">Click <strong>&quot;Browse...&quot;</strong> and navigate to your <code>certs</code> folder</li>
110
+ <li class="">Change file type filter to <strong>&quot;All Files (<em>.</em>)&quot;</strong></li>
111
+ <li class="">Select <strong><code>ca-cert.pem</code></strong></li>
112
+ <li class="">Click <strong>&quot;Open&quot;</strong> then <strong>&quot;Next&quot;</strong></li>
113
+ </ul>
114
+ </li>
115
+ <li class="">
116
+ <p><strong>Choose certificate store:</strong></p>
117
+ <ul>
118
+ <li class="">Select <strong>&quot;Place all certificates in the following store&quot;</strong></li>
119
+ <li class="">Ensure it says <strong>&quot;Trusted Root Certification Authorities&quot;</strong></li>
120
+ <li class="">Click <strong>&quot;Next&quot;</strong> then <strong>&quot;Finish&quot;</strong></li>
121
+ <li class="">Click <strong>&quot;OK&quot;</strong> on the success message</li>
122
+ </ul>
123
+ </li>
124
+ <li class="">
125
+ <p><strong>Verify installation:</strong></p>
126
+ <ul>
127
+ <li class="">In Certificate Manager, navigate to <strong>&quot;Trusted Root Certification Authorities&quot;</strong> → <strong>&quot;Certificates&quot;</strong></li>
128
+ <li class="">You should see &quot;localhost&quot; or &quot;Development&quot; in the list</li>
129
+ <li class="">Double-click to view details</li>
130
+ </ul>
131
+ </li>
132
+ <li class="">
133
+ <p><strong>Restart your browser</strong> (close all windows completely)</p>
134
+ </li>
135
+ <li class="">
136
+ <p><strong>Test:</strong> Visit <code>https://localhost:8443</code> - should show secure! 🔒</p>
137
+ </li>
138
+ </ol>
139
+ <h3 class="anchor anchorTargetStickyNavbar_jFbF" id="remove-certificate-from-windows">Remove Certificate from Windows<a href="#remove-certificate-from-windows" class="hash-link" aria-label="Direct link to Remove Certificate from Windows" title="Direct link to Remove Certificate from Windows" translate="no">​</a></h3>
140
+ <ol>
141
+ <li class="">Open Certificate Manager (<code>certmgr.msc</code>)</li>
142
+ <li class="">Navigate to <strong>&quot;Trusted Root Certification Authorities&quot;</strong> → <strong>&quot;Certificates&quot;</strong></li>
143
+ <li class="">Find &quot;localhost&quot; certificate</li>
144
+ <li class="">Right-click → <strong>Delete</strong></li>
145
+ <li class="">Confirm deletion</li>
146
+ </ol>
147
+ <hr>
148
+ <h2 class="anchor anchorTargetStickyNavbar_jFbF" id="-firefox-all-platforms">🦊 Firefox (All Platforms)<a href="#-firefox-all-platforms" class="hash-link" aria-label="Direct link to 🦊 Firefox (All Platforms)" title="Direct link to 🦊 Firefox (All Platforms)" translate="no">​</a></h2>
149
+ <p>Firefox uses its own certificate store, independent of the operating system.</p>
150
+ <h3 class="anchor anchorTargetStickyNavbar_jFbF" id="import-certificate-to-firefox">Import Certificate to Firefox<a href="#import-certificate-to-firefox" class="hash-link" aria-label="Direct link to Import Certificate to Firefox" title="Direct link to Import Certificate to Firefox" translate="no">​</a></h3>
151
+ <ol>
152
+ <li class="">
153
+ <p><strong>Open Firefox Settings:</strong></p>
154
+ <ul>
155
+ <li class="">Click menu (☰) → <strong>Settings</strong></li>
156
+ <li class="">Or type <code>about:preferences</code> in the address bar</li>
157
+ </ul>
158
+ </li>
159
+ <li class="">
160
+ <p><strong>Navigate to Privacy &amp; Security:</strong></p>
161
+ <ul>
162
+ <li class="">Click <strong>&quot;Privacy &amp; Security&quot;</strong> in the left sidebar</li>
163
+ <li class="">Or go directly to <code>about:preferences#privacy</code></li>
164
+ </ul>
165
+ </li>
166
+ <li class="">
167
+ <p><strong>Access Certificates:</strong></p>
168
+ <ul>
169
+ <li class="">Scroll down to the <strong>&quot;Security&quot;</strong> section</li>
170
+ <li class="">Find <strong>&quot;Certificates&quot;</strong> heading</li>
171
+ <li class="">Click <strong>&quot;View Certificates...&quot;</strong> button</li>
172
+ </ul>
173
+ </li>
174
+ <li class="">
175
+ <p><strong>Import CA Certificate:</strong></p>
176
+ <ul>
177
+ <li class="">In the Certificate Manager window, click the <strong>&quot;Authorities&quot;</strong> tab</li>
178
+ <li class="">Click <strong>&quot;Import...&quot;</strong> button</li>
179
+ <li class="">Navigate to your <code>certs</code> folder</li>
180
+ <li class="">Select <strong><code>ca-cert.pem</code></strong></li>
181
+ <li class="">Click <strong>&quot;Open&quot;</strong></li>
182
+ </ul>
183
+ </li>
184
+ <li class="">
185
+ <p><strong>Set trust options:</strong></p>
186
+ <ul>
187
+ <li class="">In the popup dialog, check:<!-- -->
188
+ <ul>
189
+ <li class="">✅ <strong>&quot;Trust this CA to identify websites&quot;</strong></li>
190
+ <li class="">✅ <strong>&quot;Trust this CA to identify email users&quot;</strong> (optional)</li>
191
+ </ul>
192
+ </li>
193
+ <li class="">Click <strong>&quot;OK&quot;</strong></li>
194
+ </ul>
195
+ </li>
196
+ <li class="">
197
+ <p><strong>Verify import:</strong></p>
198
+ <ul>
199
+ <li class="">In the Authorities tab, look for <strong>&quot;Development&quot;</strong> or organization name</li>
200
+ <li class="">Expand it to find &quot;localhost&quot;</li>
201
+ </ul>
202
+ </li>
203
+ <li class="">
204
+ <p><strong>Close and restart Firefox</strong></p>
205
+ </li>
206
+ <li class="">
207
+ <p><strong>Test:</strong> Visit <code>https://localhost:8443</code> - should show secure! 🔒</p>
208
+ </li>
209
+ </ol>
210
+ <h3 class="anchor anchorTargetStickyNavbar_jFbF" id="remove-certificate-from-firefox">Remove Certificate from Firefox<a href="#remove-certificate-from-firefox" class="hash-link" aria-label="Direct link to Remove Certificate from Firefox" title="Direct link to Remove Certificate from Firefox" translate="no">​</a></h3>
211
+ <ol>
212
+ <li class="">Go to <code>about:preferences#privacy</code></li>
213
+ <li class="">Click <strong>&quot;View Certificates&quot;</strong></li>
214
+ <li class="">Click <strong>&quot;Authorities&quot;</strong> tab</li>
215
+ <li class="">Find <strong>&quot;Development&quot;</strong> → <strong>&quot;localhost&quot;</strong></li>
216
+ <li class="">Select it and click <strong>&quot;Delete or Distrust...&quot;</strong></li>
217
+ <li class="">Confirm deletion</li>
218
+ </ol>
219
+ <hr>
220
+ <h2 class="anchor anchorTargetStickyNavbar_jFbF" id="troubleshooting">Troubleshooting<a href="#troubleshooting" class="hash-link" aria-label="Direct link to Troubleshooting" title="Direct link to Troubleshooting" translate="no">​</a></h2>
221
+ <h3 class="anchor anchorTargetStickyNavbar_jFbF" id="still-seeing-not-secure-warning">Still seeing &quot;Not Secure&quot; warning?<a href="#still-seeing-not-secure-warning" class="hash-link" aria-label="Direct link to Still seeing &quot;Not Secure&quot; warning?" title="Direct link to Still seeing &quot;Not Secure&quot; warning?" translate="no">​</a></h3>
222
+ <ol>
223
+ <li class=""><strong>Restart your browser</strong> - Browsers cache certificate trust settings</li>
224
+ <li class=""><strong>Check the certificate is in login keychain</strong> - Look in Keychain Access</li>
225
+ <li class=""><strong>Verify trust settings</strong> - Must be set to &quot;Always Trust&quot;</li>
226
+ <li class=""><strong>Clear browser cache</strong> - Especially SSL state</li>
227
+ <li class=""><strong>Check hostname</strong> - Must use <code>localhost</code>, not <code>127.0.0.1</code></li>
228
+ </ol>
229
+ <h3 class="anchor anchorTargetStickyNavbar_jFbF" id="browser-not-trusting-certificate">Browser not trusting certificate?<a href="#browser-not-trusting-certificate" class="hash-link" aria-label="Direct link to Browser not trusting certificate?" title="Direct link to Browser not trusting certificate?" translate="no">​</a></h3>
230
+ <p><strong>Chrome/Edge (Windows):</strong></p>
231
+ <ul>
232
+ <li class="">These browsers use the Windows certificate store</li>
233
+ <li class="">Make sure you imported to &quot;Trusted Root Certification Authorities&quot;</li>
234
+ <li class="">Restart the browser completely</li>
235
+ </ul>
236
+ <p><strong>Chrome/Safari (macOS):</strong></p>
237
+ <ul>
238
+ <li class="">These browsers use the macOS Keychain</li>
239
+ <li class="">Make sure certificate is in &quot;login&quot; keychain</li>
240
+ <li class="">Trust must be set to &quot;Always Trust&quot;</li>
241
+ <li class="">Restart the browser completely</li>
242
+ </ul>
243
+ <p><strong>Firefox (All Platforms):</strong></p>
244
+ <ul>
245
+ <li class="">Firefox has its own certificate store</li>
246
+ <li class="">See <a href="#firefox-all-platforms" class="">Firefox section</a> above</li>
247
+ <li class="">Must import the certificate directly into Firefox</li>
248
+ </ul>
249
+ <h2 class="anchor anchorTargetStickyNavbar_jFbF" id="certificate-details">Certificate Details<a href="#certificate-details" class="hash-link" aria-label="Direct link to Certificate Details" title="Direct link to Certificate Details" translate="no">​</a></h2>
250
+ <p><strong>CA Certificate (ca-cert.pem):</strong></p>
251
+ <ul>
252
+ <li class="">Type: Root CA Certificate</li>
253
+ <li class="">Validity: 5 years (1825 days)</li>
254
+ <li class="">Purpose: Sign server certificates</li>
255
+ <li class="">Trust: Add to system trust store</li>
256
+ </ul>
257
+ <p><strong>Server Certificate (cert.pem):</strong></p>
258
+ <ul>
259
+ <li class="">Type: Server Certificate</li>
260
+ <li class="">Validity: 2+ years (825 days)</li>
261
+ <li class="">Signed by: Our CA</li>
262
+ <li class="">Hostnames: localhost, *.localhost, 127.0.0.1</li>
263
+ <li class="">Purpose: HTTPS server</li>
264
+ </ul>
265
+ <p><strong>Private Keys:</strong></p>
266
+ <ul>
267
+ <li class=""><code>ca-key.pem</code>: CA private key (password protected)</li>
268
+ <li class=""><code>key.pem</code>: Server private key (no password for convenience)</li>
269
+ </ul>
270
+ <h2 class="anchor anchorTargetStickyNavbar_jFbF" id="security-notes">Security Notes<a href="#security-notes" class="hash-link" aria-label="Direct link to Security Notes" title="Direct link to Security Notes" translate="no">​</a></h2>
271
+ <p>⚠️ <strong>These certificates are for local development only!</strong></p>
272
+ <ul>
273
+ <li class="">Never use these certificates in production</li>
274
+ <li class="">Keep <code>ca-key.pem</code> secure (it can sign certificates)</li>
275
+ <li class="">The CA password is: <code>uiplatform</code> (change if needed)</li>
276
+ <li class="">Don&#x27;t commit private keys to version control</li>
277
+ <li class="">Add to <code>.gitignore</code>: <code>*.pem</code>, <code>*.key</code></li>
278
+ </ul>
279
+ <h2 class="anchor anchorTargetStickyNavbar_jFbF" id="regenerate-certificates">Regenerate Certificates<a href="#regenerate-certificates" class="hash-link" aria-label="Direct link to Regenerate Certificates" title="Direct link to Regenerate Certificates" translate="no">​</a></h2>
280
+ <p>If you need to regenerate the certificates:</p>
281
+ <div class="language-bash codeBlockContainer_uLrG theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_yDoo"><pre tabindex="0" class="prism-code language-bash codeBlock_whMN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_r5mI"><div class="token-line" style="color:#393A34"><span class="token plain">cd ssl</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">./generate-certs.sh</span><br></div></code></pre></div></div>
282
+ <p>Then re-trust the new CA certificate using the steps above.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_sn50"><a href="https://git.elliemae.io/platform-ui/pui-cli.git/docs/ssl-certificate-setup.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_sbI6" aria-hidden="true"><g><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"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_n07i"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/cli/pui-cli-9-migration"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">pui-cli 9 migration guide</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/cli/stylelint-migration"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Stylelint migration guide (pui-cli 8 → 9 / Stylelint 17)</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_gGRX thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#-table-of-contents" class="table-of-contents__link toc-highlight">📋 Table of Contents</a></li><li><a href="#-macos" class="table-of-contents__link toc-highlight">🍎 macOS</a><ul><li><a href="#via-keychain-access" class="table-of-contents__link toc-highlight">Via Keychain Access</a></li><li><a href="#remove-certificate-from-macos" class="table-of-contents__link toc-highlight">Remove Certificate from macOS</a></li></ul></li><li><a href="#-windows" class="table-of-contents__link toc-highlight">🪟 Windows</a><ul><li><a href="#via-certificate-manager" class="table-of-contents__link toc-highlight">Via Certificate Manager</a></li><li><a href="#remove-certificate-from-windows" class="table-of-contents__link toc-highlight">Remove Certificate from Windows</a></li></ul></li><li><a href="#-firefox-all-platforms" class="table-of-contents__link toc-highlight">🦊 Firefox (All Platforms)</a><ul><li><a href="#import-certificate-to-firefox" class="table-of-contents__link toc-highlight">Import Certificate to Firefox</a></li><li><a href="#remove-certificate-from-firefox" class="table-of-contents__link toc-highlight">Remove Certificate from Firefox</a></li></ul></li><li><a href="#troubleshooting" class="table-of-contents__link toc-highlight">Troubleshooting</a><ul><li><a href="#still-seeing-not-secure-warning" class="table-of-contents__link toc-highlight">Still seeing &quot;Not Secure&quot; warning?</a></li><li><a href="#browser-not-trusting-certificate" class="table-of-contents__link toc-highlight">Browser not trusting certificate?</a></li></ul></li><li><a href="#certificate-details" class="table-of-contents__link toc-highlight">Certificate Details</a></li><li><a href="#security-notes" class="table-of-contents__link toc-highlight">Security Notes</a></li><li><a href="#regenerate-certificates" class="table-of-contents__link toc-highlight">Regenerate Certificates</a></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/cli/">Getting Started</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://icemortgagetechnology.slack.com/archives/C01M49EGP6Z" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink__EWc"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://git.elliemae.io/platform-ui/pui-cli.git" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink__EWc"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2026 ICE.</div></div></div></footer></div>
283
+ </body>
284
+ </html>
@@ -0,0 +1,57 @@
1
+ <!doctype html>
2
+ <html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-stylelint-migration" data-has-hydrated="false">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="generator" content="Docusaurus v3.10.1">
6
+ <title data-rh="true">Stylelint migration guide (pui-cli 8 → 9 / Stylelint 17) | Cli</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://pui.ice.com/cli/stylelint-migration"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Stylelint migration guide (pui-cli 8 → 9 / Stylelint 17) | Cli"><meta data-rh="true" name="description" content="This document covers Stylelint changes shipped with pui-cli 9 (Stylelint 17.x)."><meta data-rh="true" property="og:description" content="This document covers Stylelint changes shipped with pui-cli 9 (Stylelint 17.x)."><link data-rh="true" rel="icon" href="/cli/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://pui.ice.com/cli/stylelint-migration"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/stylelint-migration" hreflang="en"><link data-rh="true" rel="alternate" href="https://pui.ice.com/cli/stylelint-migration" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Stylelint migration guide (pui-cli 8 → 9 / Stylelint 17)","item":"https://pui.ice.com/cli/stylelint-migration"}]}</script><link rel="stylesheet" href="/cli/assets/css/styles.74603f39.css">
7
+ <script src="/cli/assets/js/runtime~main.f7c5bef0.js" defer="defer"></script>
8
+ <script src="/cli/assets/js/main.7f815b7e.js" defer="defer"></script>
9
+ </head>
10
+ <body>
11
+ <svg style="display: none;"><defs>
12
+ <symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
13
+ </defs></svg>
14
+ <script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><div role="region" aria-label="Skip to main content"><a class="skipToContent__KB6" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/cli/"><div class="navbar__logo"><img src="/cli/img/logo.svg" alt="Cli" class="themedComponent__Gxr themedComponent--light_euW4"><img src="/cli/img/logo.svg" alt="Cli" class="themedComponent__Gxr themedComponent--dark_cG3D"></div><b class="navbar__title text--truncate">Cli</b></a><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/cli/">Getting Started</a><a class="navbar__item navbar__link" href="/cli/api">API</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><a href="https://git.elliemae.io/platform-ui/pui-cli.git" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink__EWc"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_TGb8 colorModeToggle_zDjd"><button class="clean-btn toggleButton_pX7R toggleButtonDisabled_J9eq" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_aiXM lightToggleIcon_TXA8"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_aiXM darkToggleIcon_koy3"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_aiXM systemToggleIcon_nzkW"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer__iSk"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_KuT8"><div class="docsWrapper_VaWq"><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_j5oK" type="button"></button><div class="docRoot_noFI"><aside class="theme-doc-sidebar-container docSidebarContainer_VgAC"><div class="sidebarViewport_KhCA"><div class="sidebar_kOfH"><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_OmRr"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="categoryLink_jyam menu__link menu__link--sublist" href="/cli/api/"><span title="Cli API" class="categoryLinkLabel_sc1K">Cli API</span></a><button aria-label="Expand sidebar category &#x27;Cli API&#x27;" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cli/eslint-rules-migration"><span title="ESLint rules migration guide (legacy → ESLint 10 flat config)" class="linkLabel_gjq0">ESLint rules migration guide (legacy → ESLint 10 flat config)</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cli/"><span title="PUI CLI Documentation" class="linkLabel_gjq0">PUI CLI Documentation</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cli/pui-cli-9-migration"><span title="pui-cli 9 migration guide" class="linkLabel_gjq0">pui-cli 9 migration guide</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cli/ssl-certificate-setup"><span title="Trust SSL Certificate Guide" class="linkLabel_gjq0">Trust SSL Certificate Guide</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/cli/stylelint-migration"><span title="Stylelint migration guide (pui-cli 8 → 9 / Stylelint 17)" class="linkLabel_gjq0">Stylelint migration guide (pui-cli 8 → 9 / Stylelint 17)</span></a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/cli/usage-guide"><span title="Usage Guide" class="linkLabel_gjq0">Usage Guide</span></a></li></ul></nav></div></div></aside><main class="docMainContainer_QTZx"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_zFNv"><div class="docItemContainer_gTAZ"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_WbZx" aria-label="Breadcrumbs"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="Home page" class="breadcrumbs__link" href="/cli/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_eRUI"><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"></path></svg></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Stylelint migration guide (pui-cli 8 → 9 / Stylelint 17)</span></li></ul></nav><div class="tocCollapsible_XRgF theme-doc-toc-mobile tocMobile_QmTN"><button type="button" class="clean-btn tocCollapsibleButton_wt2y">On this page</button></div><div class="theme-doc-markdown markdown"><header><h1>Stylelint migration guide (pui-cli 8 → 9 / Stylelint 17)</h1></header>
15
+ <p>This document covers Stylelint changes shipped with <strong>pui-cli 9</strong> (Stylelint <strong>17.x</strong>).</p>
16
+ <p>For the full pui-cli 9 upgrade path, see <a class="" href="/cli/pui-cli-9-migration">pui-cli 9 migration guide</a>.</p>
17
+ <hr>
18
+ <h2 class="anchor anchorTargetStickyNavbar_jFbF" id="at-a-glance">At a glance<a href="#at-a-glance" class="hash-link" aria-label="Direct link to At a glance" title="Direct link to At a glance" translate="no">​</a></h2>
19
+ <table><thead><tr><th>Topic</th><th>Before (pui-cli 8)</th><th>After (pui-cli 9)</th></tr></thead><tbody><tr><td>Stylelint</td><td>15.x</td><td><strong>17.x</strong></td></tr><tr><td>Recommended preset</td><td><code>stylelint-config-recommended@14</code></td><td><strong><code>stylelint-config-recommended@18</code></strong></td></tr><tr><td>Styled-components</td><td><code>stylelint-config-styled-components</code> in <code>extends</code></td><td><strong>Removed</strong> — rules inlined in shared config</td></tr><tr><td>CSS-in-JS syntax</td><td><code>stylelint-processor-styled-components</code> / processors</td><td><strong><code>postcss-styled-syntax</code></strong> via <code>customSyntax</code></td></tr><tr><td>Config format</td><td><code>stylelint.config.cjs</code> only</td><td><strong><code>stylelint.config.mjs</code></strong> preferred; CJS still supported</td></tr><tr><td>Consumer import</td><td><code>require(&#x27;@elliemae/pui-cli&#x27;).stylelintConfig</code></td><td><code>import { stylelintConfig } from &#x27;@elliemae/pui-cli/stylelint&#x27;</code></td></tr></tbody></table>
20
+ <hr>
21
+ <h2 class="anchor anchorTargetStickyNavbar_jFbF" id="why-stylelint-config-styled-components-was-removed">Why <code>stylelint-config-styled-components</code> was removed<a href="#why-stylelint-config-styled-components-was-removed" class="hash-link" aria-label="Direct link to why-stylelint-config-styled-components-was-removed" title="Direct link to why-stylelint-config-styled-components-was-removed" translate="no">​</a></h2>
22
+ <p><code>stylelint-config-styled-components@0.1.1</code> is unmaintained and references rules removed in Stylelint 17 (for example <code>no-missing-end-of-source-newline</code>). That caused config load failures after the Stylelint 17 upgrade.</p>
23
+ <p>The shared pui-cli config now inlines the small set of rules that package provided:</p>
24
+ <table><thead><tr><th>Rule</th><th>Value</th><th>Notes</th></tr></thead><tbody><tr><td><code>value-no-vendor-prefix</code></td><td><code>true</code></td><td>Same as styled-components preset</td></tr><tr><td><code>property-no-vendor-prefix</code></td><td><code>true</code></td><td>Same as styled-components preset</td></tr><tr><td><code>no-empty-source</code></td><td><code>null</code></td><td>Styled template files may be empty</td></tr><tr><td><code>selector-type-no-unknown</code></td><td><code>null</code></td><td>Allow styled-components DOM shims</td></tr><tr><td><code>function-no-unknown</code></td><td><code>null</code></td><td>Allow CSS-in-JS helper functions</td></tr></tbody></table>
25
+ <hr>
26
+ <h2 class="anchor anchorTargetStickyNavbar_jFbF" id="how-to-upgrade-a-repo">How to upgrade a repo<a href="#how-to-upgrade-a-repo" class="hash-link" aria-label="Direct link to How to upgrade a repo" title="Direct link to How to upgrade a repo" translate="no">​</a></h2>
27
+ <ol>
28
+ <li class="">Upgrade <code>@elliemae/pui-cli</code> to v9 (Stylelint 17 is bundled as a dependency).</li>
29
+ <li class="">Replace your Stylelint config with the shared config (see below).</li>
30
+ <li class=""><strong>Delete</strong> any local workaround that filters <code>stylelint-config-styled-components</code> from <code>extends</code>.</li>
31
+ <li class="">Run <code>pui-cli lint</code> (or <code>pui-cli lint --css</code>).</li>
32
+ </ol>
33
+ <h3 class="anchor anchorTargetStickyNavbar_jFbF" id="esm-config-recommended">ESM config (recommended)<a href="#esm-config-recommended" class="hash-link" aria-label="Direct link to ESM config (recommended)" title="Direct link to ESM config (recommended)" translate="no">​</a></h3>
34
+ <div class="language-javascript codeBlockContainer_uLrG theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_yDoo"><pre tabindex="0" class="prism-code language-javascript codeBlock_whMN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_r5mI"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// stylelint.config.mjs</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword module" style="color:#00009f">import</span><span class="token plain"> </span><span class="token imports punctuation" style="color:#393A34">{</span><span class="token imports"> stylelintConfig </span><span class="token imports punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;@elliemae/pui-cli/stylelint&#x27;</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword module" style="color:#00009f">export</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">default</span><span class="token plain"> stylelintConfig</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
35
+ <h3 class="anchor anchorTargetStickyNavbar_jFbF" id="cjs-config-still-supported">CJS config (still supported)<a href="#cjs-config-still-supported" class="hash-link" aria-label="Direct link to CJS config (still supported)" title="Direct link to CJS config (still supported)" translate="no">​</a></h3>
36
+ <div class="language-javascript codeBlockContainer_uLrG theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_yDoo"><pre tabindex="0" class="prism-code language-javascript codeBlock_whMN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_r5mI"><div class="token-line" style="color:#393A34"><span class="token comment" style="color:#999988;font-style:italic">// stylelint.config.cjs</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword" style="color:#00009f">const</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"> stylelintConfig </span><span class="token punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">require</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">&#x27;@elliemae/pui-cli&#x27;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">module</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> stylelintConfig</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
37
+ <p><code>pui-cli lint</code> auto-detects <code>stylelint.config.mjs</code> first, then <code>stylelint.config.cjs</code>.</p>
38
+ <hr>
39
+ <h2 class="anchor anchorTargetStickyNavbar_jFbF" id="stylelint-17-breaking-changes-summary">Stylelint 17 breaking changes (summary)<a href="#stylelint-17-breaking-changes-summary" class="hash-link" aria-label="Direct link to Stylelint 17 breaking changes (summary)" title="Direct link to Stylelint 17 breaking changes (summary)" translate="no">​</a></h2>
40
+ <p>Stylelint 17 is ESM-only internally and requires <strong>Node.js 20.19+</strong> (pui-cli 9 requires Node 24). Notable changes that may affect CI or custom plugins:</p>
41
+ <ul>
42
+ <li class=""><strong>Default <code>fix</code> mode</strong> is now <code>strict</code> (fixes only when the whole file can be safely autofixed).</li>
43
+ <li class=""><strong>Vendor-prefix rules</strong> have consistent behaviour for <code>ignore*: []</code> options.</li>
44
+ <li class=""><strong>Removed</strong> legacy CommonJS API surface (<code>output</code> on resolved results, etc.).</li>
45
+ </ul>
46
+ <p>Full upstream details: <a href="https://stylelint.io/migration-guide/to-17" target="_blank" rel="noopener noreferrer" class="">Stylelint 17 migration guide</a>.</p>
47
+ <hr>
48
+ <h2 class="anchor anchorTargetStickyNavbar_jFbF" id="troubleshooting">Troubleshooting<a href="#troubleshooting" class="hash-link" aria-label="Direct link to Troubleshooting" title="Direct link to Troubleshooting" translate="no">​</a></h2>
49
+ <h3 class="anchor anchorTargetStickyNavbar_jFbF" id="unknown-rule-no-missing-end-of-source-newline"><code>Unknown rule no-missing-end-of-source-newline</code><a href="#unknown-rule-no-missing-end-of-source-newline" class="hash-link" aria-label="Direct link to unknown-rule-no-missing-end-of-source-newline" title="Direct link to unknown-rule-no-missing-end-of-source-newline" translate="no">​</a></h3>
50
+ <p>A dependency or local config still extends <code>stylelint-config-styled-components</code> or sets removed rules. Remove that extend and use the pui-cli shared config.</p>
51
+ <h3 class="anchor anchorTargetStickyNavbar_jFbF" id="no-rules-found-within-configuration"><code>No rules found within configuration</code><a href="#no-rules-found-within-configuration" class="hash-link" aria-label="Direct link to no-rules-found-within-configuration" title="Direct link to no-rules-found-within-configuration" translate="no">​</a></h3>
52
+ <p>The Stylelint CLI must receive a config whose <strong>default export / <code>module.exports</code></strong> is the config object — not <code>{ stylelintConfig: { ... } }</code>. Re-export correctly:</p>
53
+ <div class="language-javascript codeBlockContainer_uLrG theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_yDoo"><pre tabindex="0" class="prism-code language-javascript codeBlock_whMN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_r5mI"><div class="token-line" style="color:#393A34"><span class="token plain">module</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">exports</span><span class="token plain"> </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">require</span><span class="token punctuation" style="color:#393A34">(</span><span class="token string" style="color:#e3116c">&#x27;@elliemae/pui-cli&#x27;</span><span class="token punctuation" style="color:#393A34">)</span><span class="token punctuation" style="color:#393A34">.</span><span class="token property-access">stylelintConfig</span><span class="token punctuation" style="color:#393A34">;</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token comment" style="color:#999988;font-style:italic">// or</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token keyword module" style="color:#00009f">export</span><span class="token plain"> </span><span class="token exports punctuation" style="color:#393A34">{</span><span class="token exports"> stylelintConfig </span><span class="token exports keyword module" style="color:#00009f">as</span><span class="token exports"> </span><span class="token exports keyword module" style="color:#00009f">default</span><span class="token exports"> </span><span class="token exports punctuation" style="color:#393A34">}</span><span class="token plain"> </span><span class="token keyword module" style="color:#00009f">from</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">&#x27;@elliemae/pui-cli/stylelint&#x27;</span><span class="token punctuation" style="color:#393A34">;</span><br></div></code></pre></div></div>
54
+ <h3 class="anchor anchorTargetStickyNavbar_jFbF" id="styled-components-files-not-linted">Styled-components files not linted<a href="#styled-components-files-not-linted" class="hash-link" aria-label="Direct link to Styled-components files not linted" title="Direct link to Styled-components files not linted" translate="no">​</a></h3>
55
+ <p>Ensure files are included in the lint glob (<code>app/**</code>, <code>lib/**</code> with <code>.{js,jsx,ts,tsx}</code> extensions). The shared config sets <code>customSyntax: &#x27;postcss-styled-syntax&#x27;</code> for CSS-in-JS.</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col noPrint_sn50"><a href="https://git.elliemae.io/platform-ui/pui-cli.git/docs/stylelint-migration.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_sbI6" aria-hidden="true"><g><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"></path></g></svg>Edit this page</a></div><div class="col lastUpdated_n07i"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href="/cli/ssl-certificate-setup"><div class="pagination-nav__sublabel">Previous</div><div class="pagination-nav__label">Trust SSL Certificate Guide</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/cli/usage-guide"><div class="pagination-nav__sublabel">Next</div><div class="pagination-nav__label">Usage Guide</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_gGRX thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#at-a-glance" class="table-of-contents__link toc-highlight">At a glance</a></li><li><a href="#why-stylelint-config-styled-components-was-removed" class="table-of-contents__link toc-highlight">Why <code>stylelint-config-styled-components</code> was removed</a></li><li><a href="#how-to-upgrade-a-repo" class="table-of-contents__link toc-highlight">How to upgrade a repo</a><ul><li><a href="#esm-config-recommended" class="table-of-contents__link toc-highlight">ESM config (recommended)</a></li><li><a href="#cjs-config-still-supported" class="table-of-contents__link toc-highlight">CJS config (still supported)</a></li></ul></li><li><a href="#stylelint-17-breaking-changes-summary" class="table-of-contents__link toc-highlight">Stylelint 17 breaking changes (summary)</a></li><li><a href="#troubleshooting" class="table-of-contents__link toc-highlight">Troubleshooting</a><ul><li><a href="#unknown-rule-no-missing-end-of-source-newline" class="table-of-contents__link toc-highlight"><code>Unknown rule no-missing-end-of-source-newline</code></a></li><li><a href="#no-rules-found-within-configuration" class="table-of-contents__link toc-highlight"><code>No rules found within configuration</code></a></li><li><a href="#styled-components-files-not-linted" class="table-of-contents__link toc-highlight">Styled-components files not linted</a></li></ul></li></ul></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Docs</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/cli/">Getting Started</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Community</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://icemortgagetechnology.slack.com/archives/C01M49EGP6Z" target="_blank" rel="noopener noreferrer" class="footer__link-item">Slack<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink__EWc"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://git.elliemae.io/platform-ui/pui-cli.git" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink__EWc"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2026 ICE.</div></div></div></footer></div>
56
+ </body>
57
+ </html>