@elliemae/pui-cli 7.0.0-alpha.1 → 7.0.0-alpha.4

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 (290) hide show
  1. package/{lib/babel/babel.config.js → dist/cjs/babel/babel.config.cjs} +2 -2
  2. package/dist/cjs/cli-commands/build.js +72 -0
  3. package/dist/cjs/cli-commands/codemod.js +51 -0
  4. package/dist/cjs/cli-commands/gendoc.js +52 -0
  5. package/dist/cjs/cli-commands/lint.js +86 -0
  6. package/dist/cjs/cli-commands/pack.js +88 -0
  7. package/dist/cjs/cli-commands/start.js +61 -0
  8. package/dist/cjs/cli-commands/storybook.js +63 -0
  9. package/dist/cjs/cli-commands/test.js +86 -0
  10. package/dist/cjs/cli-commands/tsc.js +103 -0
  11. package/dist/cjs/cli-commands/utils.js +137 -0
  12. package/dist/cjs/cli-commands/version.js +71 -0
  13. package/dist/cjs/cli-commands/vitest.js +84 -0
  14. package/dist/cjs/cli.js +47 -0
  15. package/dist/cjs/docgen/jsdoc.conf.json +17 -0
  16. package/{lib/dummy.ts → dist/cjs/dummy.js} +0 -0
  17. package/dist/cjs/index.js +41 -0
  18. package/dist/cjs/lint/commitlint.config.cjs +1 -0
  19. package/{lib/lint/eslint/common.js → dist/cjs/lint/eslint/common.cjs} +8 -8
  20. package/{lib/lint/eslint/non-react.js → dist/cjs/lint/eslint/non-react.cjs} +2 -2
  21. package/{lib/lint/eslint/react.js → dist/cjs/lint/eslint/react.cjs} +2 -2
  22. package/{lib/lint/eslint/typescript/common.js → dist/cjs/lint/eslint/typescript/common.cjs} +1 -1
  23. package/{lib/lint/eslint/typescript/non-react.js → dist/cjs/lint/eslint/typescript/non-react.cjs} +2 -2
  24. package/{lib/lint/eslint/typescript/react.js → dist/cjs/lint/eslint/typescript/react.cjs} +2 -2
  25. package/dist/cjs/lint/lint-staged.config.js +42 -0
  26. package/{lib/lint/prettier.config.js → dist/cjs/lint/prettier.config.cjs} +1 -1
  27. package/{lib/lint/stylelint.config.js → dist/cjs/lint/stylelint.config.cjs} +2 -2
  28. package/dist/cjs/monorepo/delete-merged-tags.js +57 -0
  29. package/dist/cjs/monorepo/set-registry-version.js +43 -0
  30. package/dist/cjs/monorepo/set-workspace-version.js +44 -0
  31. package/dist/cjs/monorepo/utils.js +34 -0
  32. package/dist/cjs/package.json +4 -0
  33. package/dist/cjs/pui-config/index.js +40 -0
  34. package/{lib/release/release.config.js → dist/cjs/release/release.config.cjs} +0 -0
  35. package/dist/cjs/scripts/helpers/checkmark.js +32 -0
  36. package/dist/cjs/scripts/helpers/get-npm-config.js +27 -0
  37. package/dist/cjs/scripts/helpers/progress.js +35 -0
  38. package/dist/cjs/scripts/helpers/xmark.js +31 -0
  39. package/dist/cjs/scripts/npmcheckversion.js +8 -0
  40. package/dist/cjs/scripts/update-notifier.js +33 -0
  41. package/dist/cjs/server/csp.js +88 -0
  42. package/dist/cjs/server/index.js +29 -0
  43. package/dist/cjs/server/logger.js +50 -0
  44. package/dist/cjs/server/middlewares/addProdMiddlewares.js +44 -0
  45. package/dist/cjs/server/middlewares/index.js +57 -0
  46. package/dist/cjs/server/util/index.js +68 -0
  47. package/{lib/testing/jest.config.js → dist/cjs/testing/jest.config.cjs} +15 -15
  48. package/{lib/testing/jest.node.config.js → dist/cjs/testing/jest.node.config.cjs} +1 -1
  49. package/{lib/testing/mocks/axios.js → dist/cjs/testing/mocks/axios.cjs} +0 -0
  50. package/{lib/testing/mocks/cssModule.js → dist/cjs/testing/mocks/cssModule.cjs} +0 -0
  51. package/{lib/testing/mocks/html.js → dist/cjs/testing/mocks/html.cjs} +0 -0
  52. package/{lib/testing/mocks/image.js → dist/cjs/testing/mocks/image.cjs} +0 -0
  53. package/{lib/testing/mocks/matchMedia.js → dist/cjs/testing/mocks/matchMedia.cjs} +0 -0
  54. package/{lib/testing/mocks/pui-app-loader.js → dist/cjs/testing/mocks/pui-app-loader.cjs} +0 -0
  55. package/{lib/testing/mocks/pui-diagnostics.js → dist/cjs/testing/mocks/pui-diagnostics.cjs} +0 -0
  56. package/{lib/testing/mocks/pui-user-monitoring.js → dist/cjs/testing/mocks/pui-user-monitoring.cjs} +0 -0
  57. package/{lib/testing/mocks/retry-axios.js → dist/cjs/testing/mocks/retry-axios.cjs} +0 -0
  58. package/{lib/testing/mocks/svg.js → dist/cjs/testing/mocks/svg.cjs} +0 -0
  59. package/{lib/testing/mocks/webpack-hmr.js → dist/cjs/testing/mocks/webpack-hmr.cjs} +0 -0
  60. package/{lib/testing/resolver.js → dist/cjs/testing/resolver.cjs} +0 -0
  61. package/dist/cjs/testing/setup-react-env.js +18 -0
  62. package/dist/cjs/testing/setup-tests.js +63 -0
  63. package/dist/cjs/testing/vitest.config.js +39 -0
  64. package/{lib/testing/vitest.setup.ts → dist/cjs/testing/vitest.setup.js} +0 -0
  65. package/dist/cjs/transpile/esbuild.js +138 -0
  66. package/dist/cjs/transpile/react-shim.js +26 -0
  67. package/{lib/transpile/swcrc.config.js → dist/cjs/transpile/swcrc.config.cjs} +1 -1
  68. package/{lib → dist/cjs}/typescript/app.tsconfig.json +0 -0
  69. package/{lib → dist/cjs}/typescript/library.tsconfig.json +0 -0
  70. package/dist/cjs/typescript/tsc-files/index.js +68 -0
  71. package/dist/cjs/typescript/tsc-files/utils.js +31 -0
  72. package/dist/cjs/typescript/util.js +28 -0
  73. package/dist/cjs/utils.cjs +20 -0
  74. package/dist/cjs/webpack/helpers.js +216 -0
  75. package/dist/cjs/webpack/webpack.base.babel.js +262 -0
  76. package/dist/cjs/webpack/webpack.dev.babel.js +136 -0
  77. package/dist/cjs/webpack/webpack.lib.base.babel.js +217 -0
  78. package/dist/cjs/webpack/webpack.lib.dev.babel.js +67 -0
  79. package/dist/cjs/webpack/webpack.lib.prod.babel.js +92 -0
  80. package/dist/cjs/webpack/webpack.prod.babel.js +139 -0
  81. package/{lib/webpack/webpack.storybook.js → dist/cjs/webpack/webpack.storybook.cjs} +1 -1
  82. package/dist/esm/babel/babel.config.cjs +101 -0
  83. package/dist/esm/cli-commands/build.js +56 -0
  84. package/dist/esm/cli-commands/codemod.js +29 -0
  85. package/dist/esm/cli-commands/gendoc.js +29 -0
  86. package/dist/esm/cli-commands/lint.js +64 -0
  87. package/dist/esm/cli-commands/pack.js +65 -0
  88. package/dist/esm/cli-commands/start.js +38 -0
  89. package/dist/esm/cli-commands/storybook.js +41 -0
  90. package/dist/esm/cli-commands/test.js +64 -0
  91. package/dist/esm/cli-commands/tsc.js +83 -0
  92. package/dist/esm/cli-commands/utils.js +120 -0
  93. package/dist/esm/cli-commands/version.js +49 -0
  94. package/dist/esm/cli-commands/vitest.js +61 -0
  95. package/dist/esm/cli.js +31 -0
  96. package/dist/esm/docgen/jsdoc.conf.json +17 -0
  97. package/dist/esm/dummy.js +0 -0
  98. package/dist/esm/index.js +22 -0
  99. package/dist/esm/lint/commitlint.config.cjs +1 -0
  100. package/dist/esm/lint/eslint/common.cjs +160 -0
  101. package/dist/esm/lint/eslint/non-react.cjs +14 -0
  102. package/dist/esm/lint/eslint/react.cjs +26 -0
  103. package/dist/esm/lint/eslint/typescript/common.cjs +43 -0
  104. package/dist/esm/lint/eslint/typescript/non-react.cjs +12 -0
  105. package/dist/esm/lint/eslint/typescript/react.cjs +19 -0
  106. package/dist/esm/lint/lint-staged.config.js +19 -0
  107. package/dist/esm/lint/prettier.config.cjs +8 -0
  108. package/dist/esm/lint/stylelint.config.cjs +19 -0
  109. package/dist/esm/monorepo/delete-merged-tags.js +38 -0
  110. package/dist/esm/monorepo/set-registry-version.js +21 -0
  111. package/dist/esm/monorepo/set-workspace-version.js +22 -0
  112. package/dist/esm/monorepo/utils.js +12 -0
  113. package/dist/esm/package.json +4 -0
  114. package/dist/esm/pui-config/index.js +18 -0
  115. package/dist/esm/release/release.config.cjs +31 -0
  116. package/dist/esm/scripts/helpers/checkmark.js +10 -0
  117. package/dist/esm/scripts/helpers/get-npm-config.js +5 -0
  118. package/dist/esm/scripts/helpers/progress.js +13 -0
  119. package/dist/esm/scripts/helpers/xmark.js +9 -0
  120. package/dist/esm/scripts/npmcheckversion.js +8 -0
  121. package/dist/esm/scripts/update-notifier.js +11 -0
  122. package/dist/esm/server/csp.js +66 -0
  123. package/dist/esm/server/index.js +17 -0
  124. package/dist/esm/server/logger.js +28 -0
  125. package/dist/esm/server/middlewares/addProdMiddlewares.js +22 -0
  126. package/dist/esm/server/middlewares/index.js +35 -0
  127. package/dist/esm/server/util/index.js +46 -0
  128. package/dist/esm/testing/jest.config.cjs +105 -0
  129. package/dist/esm/testing/jest.node.config.cjs +8 -0
  130. package/dist/esm/testing/mocks/axios.cjs +15 -0
  131. package/dist/esm/testing/mocks/cssModule.cjs +1 -0
  132. package/dist/esm/testing/mocks/html.cjs +1 -0
  133. package/dist/esm/testing/mocks/image.cjs +1 -0
  134. package/dist/esm/testing/mocks/matchMedia.cjs +24 -0
  135. package/dist/esm/testing/mocks/pui-app-loader.cjs +1 -0
  136. package/dist/esm/testing/mocks/pui-diagnostics.cjs +28 -0
  137. package/dist/esm/testing/mocks/pui-user-monitoring.cjs +3 -0
  138. package/dist/esm/testing/mocks/retry-axios.cjs +3 -0
  139. package/dist/esm/testing/mocks/svg.cjs +5 -0
  140. package/dist/esm/testing/mocks/webpack-hmr.cjs +1 -0
  141. package/dist/esm/testing/resolver.cjs +47 -0
  142. package/dist/esm/testing/setup-react-env.js +3 -0
  143. package/dist/esm/testing/setup-tests.js +48 -0
  144. package/dist/esm/testing/vitest.config.js +17 -0
  145. package/dist/esm/testing/vitest.setup.js +0 -0
  146. package/dist/esm/transpile/esbuild.js +117 -0
  147. package/dist/esm/transpile/react-shim.js +4 -0
  148. package/dist/esm/transpile/swcrc.config.cjs +13 -0
  149. package/dist/esm/typescript/app.tsconfig.json +23 -0
  150. package/dist/esm/typescript/library.tsconfig.json +23 -0
  151. package/dist/esm/typescript/tsc-files/index.js +55 -0
  152. package/{lib → dist/esm}/typescript/tsc-files/utils.js +3 -7
  153. package/dist/esm/typescript/util.js +6 -0
  154. package/dist/esm/utils.cjs +20 -0
  155. package/dist/esm/webpack/helpers.js +196 -0
  156. package/dist/esm/webpack/webpack.base.babel.js +248 -0
  157. package/dist/esm/webpack/webpack.dev.babel.js +118 -0
  158. package/dist/esm/webpack/webpack.lib.base.babel.js +208 -0
  159. package/dist/esm/webpack/webpack.lib.dev.babel.js +45 -0
  160. package/dist/esm/webpack/webpack.lib.prod.babel.js +70 -0
  161. package/dist/esm/webpack/webpack.prod.babel.js +122 -0
  162. package/dist/esm/webpack/webpack.storybook.cjs +87 -0
  163. package/dist/types/babel/babel.config.d.cts +59 -0
  164. package/dist/types/cli-commands/build.d.ts +14 -0
  165. package/dist/types/cli-commands/codemod.d.ts +6 -0
  166. package/dist/types/cli-commands/gendoc.d.ts +6 -0
  167. package/dist/types/cli-commands/lint.d.ts +29 -0
  168. package/dist/types/cli-commands/pack.d.ts +26 -0
  169. package/dist/types/cli-commands/start.d.ts +13 -0
  170. package/dist/types/cli-commands/storybook.d.ts +19 -0
  171. package/dist/types/cli-commands/test.d.ts +35 -0
  172. package/dist/types/cli-commands/tsc.d.ts +20 -0
  173. package/dist/types/cli-commands/utils.d.ts +14 -0
  174. package/dist/types/cli-commands/version.d.ts +30 -0
  175. package/dist/types/cli-commands/vitest.d.ts +35 -0
  176. package/dist/types/cli.d.ts +2 -0
  177. package/dist/types/dummy.d.ts +0 -0
  178. package/dist/types/index.d.ts +10 -0
  179. package/dist/types/lint/commitlint.config.d.cts +4 -0
  180. package/dist/types/lint/eslint/common.d.cts +124 -0
  181. package/dist/types/lint/eslint/non-react.d.cts +88 -0
  182. package/dist/types/lint/eslint/react.d.cts +118 -0
  183. package/dist/types/lint/eslint/typescript/common.d.cts +37 -0
  184. package/dist/types/lint/eslint/typescript/non-react.d.cts +87 -0
  185. package/dist/types/lint/eslint/typescript/react.d.cts +118 -0
  186. package/dist/types/lint/lint-staged.config.d.ts +5 -0
  187. package/dist/types/lint/prettier.config.d.cts +8 -0
  188. package/dist/types/lint/stylelint.config.d.cts +11 -0
  189. package/dist/types/monorepo/delete-merged-tags.d.ts +1 -0
  190. package/dist/types/monorepo/set-registry-version.d.ts +1 -0
  191. package/dist/types/monorepo/set-workspace-version.d.ts +1 -0
  192. package/dist/types/monorepo/utils.d.ts +1 -0
  193. package/dist/types/pui-config/index.d.ts +1 -0
  194. package/dist/types/release/release.config.d.cts +9 -0
  195. package/dist/types/scripts/helpers/checkmark.d.ts +7 -0
  196. package/dist/types/scripts/helpers/get-npm-config.d.ts +2 -0
  197. package/dist/types/scripts/helpers/progress.d.ts +7 -0
  198. package/dist/types/scripts/helpers/xmark.d.ts +6 -0
  199. package/dist/types/scripts/npmcheckversion.d.ts +1 -0
  200. package/dist/types/scripts/update-notifier.d.ts +2 -0
  201. package/dist/types/server/csp.d.ts +10 -0
  202. package/dist/types/server/index.d.ts +1 -0
  203. package/dist/types/server/logger.d.ts +4 -0
  204. package/dist/types/server/middlewares/addProdMiddlewares.d.ts +1 -0
  205. package/dist/types/server/middlewares/index.d.ts +2 -0
  206. package/dist/types/server/util/index.d.ts +4 -0
  207. package/dist/types/testing/jest.config.d.cts +38 -0
  208. package/dist/types/testing/jest.node.config.d.cts +38 -0
  209. package/dist/types/testing/mocks/axios.d.cts +14 -0
  210. package/dist/types/testing/mocks/cssModule.d.cts +2 -0
  211. package/dist/types/testing/mocks/html.d.cts +2 -0
  212. package/dist/types/testing/mocks/image.d.cts +2 -0
  213. package/dist/types/testing/mocks/matchMedia.d.cts +2 -0
  214. package/dist/types/testing/mocks/pui-app-loader.d.cts +1 -0
  215. package/dist/types/testing/mocks/pui-diagnostics.d.cts +28 -0
  216. package/dist/types/testing/mocks/pui-user-monitoring.d.cts +3 -0
  217. package/dist/types/testing/mocks/retry-axios.d.cts +3 -0
  218. package/dist/types/testing/mocks/svg.d.cts +3 -0
  219. package/dist/types/testing/mocks/webpack-hmr.d.cts +1 -0
  220. package/dist/types/testing/resolver.d.cts +2 -0
  221. package/dist/types/testing/setup-react-env.d.ts +1 -0
  222. package/dist/types/testing/setup-tests.d.ts +1 -0
  223. package/dist/types/testing/vitest.config.d.ts +2 -0
  224. package/dist/types/testing/vitest.setup.d.ts +0 -0
  225. package/dist/types/transpile/esbuild.d.ts +13 -0
  226. package/dist/types/transpile/react-shim.d.ts +2 -0
  227. package/dist/types/transpile/swcrc.config.d.cts +1 -0
  228. package/dist/types/typescript/tsc-files/index.d.ts +1 -0
  229. package/dist/types/typescript/tsc-files/utils.d.ts +3 -0
  230. package/dist/types/typescript/util.d.ts +1 -0
  231. package/dist/types/utils.d.cts +3 -0
  232. package/dist/types/webpack/helpers.d.ts +28 -0
  233. package/dist/types/webpack/webpack.base.babel.d.ts +90 -0
  234. package/dist/types/webpack/webpack.dev.babel.d.ts +1 -0
  235. package/dist/types/webpack/webpack.lib.base.babel.d.ts +107 -0
  236. package/dist/types/webpack/webpack.lib.dev.babel.d.ts +91 -0
  237. package/dist/types/webpack/webpack.lib.prod.babel.d.ts +91 -0
  238. package/dist/types/webpack/webpack.prod.babel.d.ts +2 -0
  239. package/dist/types/webpack/webpack.storybook.d.cts +4 -0
  240. package/package.json +45 -37
  241. package/lib/cli-commands/build.js +0 -60
  242. package/lib/cli-commands/codemod.js +0 -31
  243. package/lib/cli-commands/gendoc.js +0 -36
  244. package/lib/cli-commands/lint.js +0 -75
  245. package/lib/cli-commands/pack.js +0 -67
  246. package/lib/cli-commands/start.js +0 -49
  247. package/lib/cli-commands/storybook.js +0 -53
  248. package/lib/cli-commands/test.js +0 -63
  249. package/lib/cli-commands/tsc.js +0 -103
  250. package/lib/cli-commands/utils.js +0 -135
  251. package/lib/cli-commands/version.js +0 -53
  252. package/lib/cli-commands/vitest.js +0 -66
  253. package/lib/cli.js +0 -33
  254. package/lib/docgen/jsdoc.config.js +0 -17
  255. package/lib/index.js +0 -25
  256. package/lib/lint/commitlint.config.js +0 -1
  257. package/lib/lint/lint-staged.config.js +0 -16
  258. package/lib/monorepo/delete-merged-tags.js +0 -48
  259. package/lib/monorepo/set-registry-version.js +0 -22
  260. package/lib/monorepo/set-workspace-version.js +0 -29
  261. package/lib/monorepo/utils.js +0 -15
  262. package/lib/pui-config/index.js +0 -18
  263. package/lib/scripts/helpers/checkmark.js +0 -15
  264. package/lib/scripts/helpers/get-npm-config.js +0 -3
  265. package/lib/scripts/helpers/progress.js +0 -19
  266. package/lib/scripts/helpers/xmark.js +0 -13
  267. package/lib/scripts/npmcheckversion.js +0 -8
  268. package/lib/scripts/update-notifier.js +0 -7
  269. package/lib/server/csp.js +0 -74
  270. package/lib/server/index.js +0 -37
  271. package/lib/server/logger.js +0 -42
  272. package/lib/server/middlewares/addDevMiddlewares.js +0 -39
  273. package/lib/server/middlewares/addProdMiddlewares.js +0 -30
  274. package/lib/server/middlewares/index.js +0 -37
  275. package/lib/server/util/index.js +0 -52
  276. package/lib/testing/setup-react-env.js +0 -3
  277. package/lib/testing/setup-tests.js +0 -58
  278. package/lib/testing/vitest.config.ts +0 -16
  279. package/lib/transpile/.swcrc +0 -11
  280. package/lib/transpile/esbuild.js +0 -116
  281. package/lib/transpile/react-shim.js +0 -2
  282. package/lib/typescript/tsc-files/index.js +0 -66
  283. package/lib/typescript/util.js +0 -5
  284. package/lib/webpack/helpers.js +0 -252
  285. package/lib/webpack/webpack.base.babel.js +0 -242
  286. package/lib/webpack/webpack.dev.babel.js +0 -137
  287. package/lib/webpack/webpack.lib.base.babel.js +0 -205
  288. package/lib/webpack/webpack.lib.dev.babel.js +0 -49
  289. package/lib/webpack/webpack.lib.prod.babel.js +0 -77
  290. package/lib/webpack/webpack.prod.babel.js +0 -142
@@ -1,116 +0,0 @@
1
- const { build } = require('esbuild');
2
- const fg = require('fast-glob');
3
- const { writeFile, copyFile, readFile, mkdir } = require('fs/promises');
4
- const path = require('path');
5
- const browserslistToEsbuild = require('browserslist-to-esbuild');
6
-
7
- const TARGETS = {
8
- browserslist: browserslistToEsbuild(),
9
- web: 'es2020',
10
- node: 'node14',
11
- };
12
-
13
- const ESBUILD_FORMAT = {
14
- CJS: 'cjs',
15
- ESM: 'esm',
16
- };
17
-
18
- const NODE_MODULE_TYPES = {
19
- CJS: 'commonjs',
20
- ESM: 'module',
21
- };
22
-
23
- const getCommonConfig = ({ injectReactShim }) => ({
24
- bundle: false,
25
- loader: { '.js': 'jsx' },
26
- mainFields: ['module', 'browser', 'main'],
27
- inject: [
28
- injectReactShim ? path.resolve(__dirname, './react-shim.js') : '',
29
- ].filter(Boolean),
30
- });
31
-
32
- const copyFiles = async ({ srcdir, outdir }) => {
33
- const files = await fg([
34
- `${srcdir}/**/*.*`,
35
- `!${srcdir}/**/*.{js,jsx,ts,tsx,cjs,mjs}`,
36
- ]);
37
- await Promise.all(
38
- files.map(async (srcFilePath) => {
39
- const destFilePath = srcFilePath.replace(srcdir, outdir);
40
- const fileDir = path.dirname(destFilePath);
41
- await mkdir(fileDir, { recursive: true });
42
- await copyFile(srcFilePath, destFilePath);
43
- }),
44
- );
45
- };
46
-
47
- const getSideEffects = async () => {
48
- const data = await readFile(path.join(process.cwd(), './package.json'));
49
- const packageJSON = JSON.parse(data);
50
- return packageJSON?.sideEffects || false;
51
- };
52
-
53
- const createPackageJson = async ({ outdir, type = NODE_MODULE_TYPES.ESM }) => {
54
- const filePath = path.join(process.cwd(), outdir, 'package.json');
55
- const packageJSON = JSON.stringify(
56
- {
57
- type,
58
- sideEffects: await getSideEffects(),
59
- },
60
- null,
61
- 2,
62
- );
63
- await writeFile(filePath, packageJSON);
64
- };
65
-
66
- exports.esBuild = async ({
67
- srcdir,
68
- outdir = 'dist',
69
- esmOnly = false,
70
- target = TARGETS.browserslist,
71
- injectReactShim = true,
72
- skipNestedPackageJSON = false,
73
- }) => {
74
- const inputFiles = [
75
- `${srcdir}/**/*.{js,jsx,ts,tsx}`,
76
- `!${srcdir}/**/*.d.ts`,
77
- `!${srcdir}/**/*.test.{js,jsx,ts,tsx}`,
78
- `!${srcdir}/**/*.stories.{js,jsx,ts,tsx}`,
79
- `!${srcdir}/**/*.endpoint.{js,jsx,ts,tsx}`,
80
- ];
81
-
82
- // build commonjs
83
- if (!esmOnly) {
84
- const cjsOutdir = `${outdir}/cjs`;
85
- const commonJSEntryPoints = await fg(inputFiles);
86
- await build({
87
- entryPoints: commonJSEntryPoints,
88
- ...getCommonConfig({ injectReactShim }),
89
- outdir: cjsOutdir,
90
- format: ESBUILD_FORMAT.CJS,
91
- target,
92
- });
93
- // copy files that are not built by esbuild
94
- await copyFiles({ srcdir, outdir: cjsOutdir });
95
- await createPackageJson({ outdir: cjsOutdir, type: NODE_MODULE_TYPES.CJS });
96
- }
97
-
98
- // build esm
99
- const esmOutdir = esmOnly ? outdir : `${outdir}/esm`;
100
- const entryPoints = await fg(
101
- inputFiles.concat([`!${srcdir}/**/cjs/**/*.{js,jsx,ts,tsx}`]),
102
- );
103
- await build({
104
- entryPoints,
105
- ...getCommonConfig({ injectReactShim }),
106
- outdir: esmOutdir,
107
- format: ESBUILD_FORMAT.ESM,
108
- target,
109
- });
110
- // copy files that are not built by esbuild
111
- await copyFiles({ srcdir, outdir: esmOutdir });
112
- if (!skipNestedPackageJSON)
113
- await createPackageJson({ outdir: esmOutdir, type: NODE_MODULE_TYPES.ESM });
114
- };
115
-
116
- exports.TARGETS = TARGETS;
@@ -1,2 +0,0 @@
1
- import * as React from 'react';
2
- export { React };
@@ -1,66 +0,0 @@
1
- const execa = require('execa');
2
- const fs = require('fs');
3
- const path = require('path');
4
-
5
- const { randomChars, resolveFromRoot } = require('./utils');
6
-
7
- const args = process.argv.slice(2);
8
- const argsProjectIndex = args.findIndex((arg) =>
9
- ['-p', '--project'].includes(arg),
10
- );
11
- const argsProjectValue =
12
- argsProjectIndex !== -1 ? args[argsProjectIndex + 1] : undefined;
13
-
14
- const files = args.filter((file) => /\.(ts|tsx)$/.test(file));
15
- if (files.length === 0) {
16
- process.exit(0);
17
- }
18
-
19
- const remainingArgsToForward = args
20
- .slice()
21
- .filter((arg) => !files.includes(arg));
22
-
23
- if (argsProjectIndex !== -1) {
24
- remainingArgsToForward.splice(argsProjectIndex, 2);
25
- }
26
-
27
- // Load existing config
28
- const tsconfigPath = argsProjectValue || resolveFromRoot('tsconfig.json');
29
- const tsconfigContent = fs.readFileSync(tsconfigPath).toString();
30
- // Use 'eval' to read the JSON as regular JavaScript syntax so that comments are allowed
31
- // eslint-disable-next-line prefer-const
32
- let tsconfig = {};
33
- // eslint-disable-next-line no-eval
34
- eval(`tsconfig = ${tsconfigContent}`);
35
-
36
- // Write a temp config file
37
- const tmpTsconfigPath = resolveFromRoot(`tsconfig.${randomChars()}.json`);
38
- const tmpTsconfig = {
39
- ...tsconfig,
40
- compilerOptions: {
41
- ...tsconfig.compilerOptions,
42
- skipLibCheck: true,
43
- },
44
- files,
45
- include: ['app', 'lib'],
46
- };
47
- fs.writeFileSync(tmpTsconfigPath, JSON.stringify(tmpTsconfig, null, 2));
48
-
49
- // Type-check our files
50
- let status = 0;
51
- try {
52
- execa.sync(
53
- path.resolve(
54
- process.cwd(),
55
- `./node_modules/.bin/tsc${process.platform === 'win32' ? '.cmd' : ''}`,
56
- ),
57
- ['-p', tmpTsconfigPath, ...remainingArgsToForward],
58
- { stdio: 'inherit' },
59
- );
60
- } catch (ex) {
61
- status = ex.exitCode;
62
- }
63
-
64
- // Delete temp config file
65
- fs.unlinkSync(tmpTsconfigPath);
66
- process.exit(status);
@@ -1,5 +0,0 @@
1
- const fs = require('fs');
2
- const path = require('path');
3
-
4
- exports.isTypeScriptEnabled = () =>
5
- fs.existsSync(path.join(process.cwd(), 'tsconfig.json'));
@@ -1,252 +0,0 @@
1
- /* eslint-disable max-lines */
2
- const path = require('path');
3
- const fs = require('fs');
4
- const _ = require('lodash');
5
- const CompressionPlugin = require('compression-webpack-plugin');
6
- const zlib = require('zlib');
7
- const { findMonoRepoRoot } = require('../monorepo/utils');
8
-
9
- let pathSep = path.sep;
10
- if (pathSep === '\\')
11
- // must be quoted for use in a regexp:
12
- pathSep = '\\\\';
13
-
14
- const LATEST_VERSION = 'latest';
15
-
16
- const getNodeModulesRegEx = (modules) =>
17
- modules.map(
18
- (modName) =>
19
- new RegExp(`node_modules${pathSep}${modName.replace('/', pathSep)}`),
20
- );
21
-
22
- const excludeNodeModulesExcept = (modules) => {
23
- const moduleRegExps = getNodeModulesRegEx(modules);
24
-
25
- // eslint-disable-next-line func-names
26
- return function (modulePath) {
27
- if (/node_modules/.test(modulePath)) {
28
- for (let i = 0; i < moduleRegExps.length; i += 1)
29
- if (moduleRegExps[i].test(modulePath)) return false;
30
- return true;
31
- }
32
- return false;
33
- };
34
- };
35
-
36
- const getLibraryName = () => {
37
- // eslint-disable-next-line global-require
38
- const packageJson = require(path.join(process.cwd(), 'package.json'));
39
- const libraryName = packageJson
40
- ? packageJson.name
41
- : process.env.LIBRARY_NAME || 'mylibrary';
42
- const modifiedLibName = `emui-${libraryName
43
- .replace('@elliemae/', '')
44
- .replace('pui-', '')}`;
45
- return _.camelCase(modifiedLibName);
46
- };
47
-
48
- const getAppConfig = () => {
49
- const appConfigPath = path.join(
50
- process.cwd(),
51
- isApp() ? 'app' : 'lib',
52
- 'app.config.json',
53
- );
54
-
55
- if (!fs.existsSync(appConfigPath)) return '{}';
56
- // eslint-disable-next-line global-require
57
- const appConfig = require(appConfigPath);
58
- return appConfig ? JSON.stringify(appConfig) : '{}';
59
- };
60
-
61
- const mapToFolder = (dependencies, folder) =>
62
- dependencies.reduce(
63
- (acc, dependency) => ({
64
- [dependency]: path.resolve(`${folder}/${dependency.replace('$', '')}`),
65
- ...acc,
66
- }),
67
- {},
68
- );
69
-
70
- const getAlias = () => {
71
- const monorepoRoot = findMonoRepoRoot(process.cwd()) || '';
72
- return mapToFolder(
73
- [
74
- '@babel/runtime',
75
- 'react',
76
- 'react-dom',
77
- 'react-redux',
78
- 'redux',
79
- 'redux-saga',
80
- 'moment',
81
- 'lodash',
82
- 'styled-components',
83
- 'immer',
84
- 'react-dates',
85
- 'react-transition-group',
86
- '@elliemae/pui-cli',
87
- '@elliemae/pui-app-sdk$',
88
- '@elliemae/pui-theme$',
89
- ],
90
- path.join(monorepoRoot, './node_modules'),
91
- );
92
- };
93
-
94
- const modulesToTranspile = [
95
- '@elliemae/pui-*',
96
- '@elliemae/ds-*',
97
- '@dnd-kit/*',
98
- '@elliemae/em-platform-document-viewer',
99
- ];
100
-
101
- const getUserMonitoringFileName = () => {
102
- const libName = 'emuiUserMonitoring';
103
- const userMonLibPath = path.join(
104
- process.cwd(),
105
- 'node_modules/@elliemae/pui-user-monitoring/dist/public/js',
106
- );
107
- if (!fs.existsSync(userMonLibPath)) return `${libName}.js`;
108
- const distJSFiles = fs.readdirSync(userMonLibPath);
109
- return distJSFiles.filter((fName) =>
110
- fName.match(/emuiUserMonitoring+((?!chunk).)*\.js$/),
111
- )[0];
112
- };
113
-
114
- const getAppLoaderFileName = () => {
115
- const libName = 'emuiAppLoader';
116
- const appLoaderLibPath = path.join(
117
- process.cwd(),
118
- 'node_modules/@elliemae/pui-app-loader/dist/public/js',
119
- );
120
- if (!fs.existsSync(appLoaderLibPath)) return `${libName}.js`;
121
- const distJSFiles = fs.readdirSync(appLoaderLibPath);
122
- return distJSFiles.filter((fName) =>
123
- fName.match(/emuiAppLoader+((?!chunk).)*\.js$/),
124
- )[0];
125
- };
126
-
127
- const getDiagnosticsFileName = () => {
128
- const libName = 'emuiDiagnostics';
129
- const libPath = path.join(
130
- process.cwd(),
131
- 'node_modules/@elliemae/pui-diagnostics/dist/public/js',
132
- );
133
- if (!fs.existsSync(libPath)) return `${libName}.js`;
134
- const distJSFiles = fs.readdirSync(libPath);
135
- return distJSFiles.filter((fName) =>
136
- fName.match(/emuiDiagnostics+((?!chunk).)*\.js$/),
137
- )[0];
138
- };
139
-
140
- const getENCWLoaderFileName = () => {
141
- const libName = 'emuiEncwLoader';
142
- const appLoaderLibPath = path.join(
143
- process.cwd(),
144
- 'node_modules/@elliemae/encw-loader/dist/public/js',
145
- );
146
- if (!fs.existsSync(appLoaderLibPath)) return `${libName}.js`;
147
- const distJSFiles = fs.readdirSync(appLoaderLibPath);
148
- return distJSFiles.filter((fName) =>
149
- fName.match(/emuiEncwLoader+((?!chunk).)*\.js$/),
150
- )[0];
151
- };
152
-
153
- const getAppVersion = () => {
154
- if (!process.env.APP_VERSION) return LATEST_VERSION;
155
- const match = process.env.APP_VERSION.match(/^v?(\d+\.\d+)\..*$/);
156
- return (match && match[1]) || LATEST_VERSION;
157
- };
158
-
159
- const getPaths = (latestVersion = true) => {
160
- const version = latestVersion ? LATEST_VERSION : getAppVersion();
161
- const publicPath = `${version}/`;
162
- const timeStampQuery =
163
- process.env.PUI_PIPELINE !== 'true' ? `?timeStamp=${Date.now()}` : '';
164
- return {
165
- appVersion: version,
166
- buildPath: path.resolve(process.cwd(), `build/public/`),
167
- basePath: (process.env.BASE_PATH || '/').replace(/\/?$/, '/'),
168
- publicPath,
169
- userMonScriptPath: `latest/js/${getUserMonitoringFileName()}`,
170
- appLoaderScriptPath: `latest/js/${getAppLoaderFileName()}`,
171
- diagnosticsScriptPath: `latest/js/${getDiagnosticsFileName()}`,
172
- globalScriptPath: `latest/js/global.js${timeStampQuery}`,
173
- encwLoaderScriptPath: `latest/js/${getENCWLoaderFileName()}`,
174
- };
175
- };
176
-
177
- const isApp = () => fs.existsSync(path.join(process.cwd(), 'app'));
178
-
179
- const isAppLoaderEnabled = () => process.env.APP_LOADER === 'true';
180
-
181
- const getMediaPath = () => `assets/[name].[contenthash].[ext]`;
182
-
183
- const isGoogleTagManagerEnabled = () => {
184
- const appConfig = JSON.parse(getAppConfig());
185
- return !!appConfig?.googleTagManager;
186
- };
187
-
188
- const getCompressionPlugins = (isLibrary = false) => {
189
- const excludeList = [
190
- /\/adrum-ext/,
191
- /\/emuiUserMonitoring/,
192
- /\/emuiDiagnostics/,
193
- /\/emuiAppLoader/,
194
- /\/encwLoader/,
195
- ];
196
- const commonConfig = {
197
- test: /\.(js|css)$/,
198
- exclude: !isLibrary ? excludeList : [],
199
- // we are compressing all files since in aws cloudfront edge lambda, we don't want to whitelist files that are not compressed due to below limits
200
- minRatio: Infinity,
201
- };
202
- return [
203
- new CompressionPlugin({
204
- filename: '[path][base].gz',
205
- algorithm: 'gzip',
206
- ...commonConfig,
207
- }),
208
- new CompressionPlugin({
209
- filename: '[path][base].br',
210
- algorithm: 'brotliCompress',
211
- ...commonConfig,
212
- compressionOptions: {
213
- params: {
214
- [zlib.constants.BROTLI_PARAM_QUALITY]: 11,
215
- },
216
- },
217
- }),
218
- ];
219
- };
220
-
221
- const filterByFilePresence = (patterns) =>
222
- patterns.filter(
223
- ({ from, noErrorOnMissing }) =>
224
- !noErrorOnMissing || fs.existsSync(path.resolve(process.cwd(), from)),
225
- );
226
-
227
- exports.LATEST_VERSION = LATEST_VERSION;
228
- exports.excludeNodeModulesExcept = excludeNodeModulesExcept;
229
- exports.getLibraryName = getLibraryName;
230
- exports.getAppConfig = getAppConfig;
231
- exports.mapToFolder = mapToFolder;
232
- exports.isApp = isApp;
233
- exports.getAlias = getAlias;
234
- exports.getAppVersion = getAppVersion;
235
- exports.modulesToTranspile = modulesToTranspile;
236
- exports.isAppLoaderEnabled = isAppLoaderEnabled;
237
- exports.LATEST_VERSION = LATEST_VERSION;
238
- exports.getPaths = getPaths;
239
- exports.getMediaPath = getMediaPath;
240
- exports.resolveExtensions = [
241
- '.wasm',
242
- '.mjs',
243
- '.ts',
244
- '.tsx',
245
- '.js',
246
- '.jsx',
247
- '.json',
248
- ];
249
- exports.mainFields = ['browser', 'module', 'main'];
250
- exports.isGoogleTagManagerEnabled = isGoogleTagManagerEnabled;
251
- exports.getCompressionPlugins = getCompressionPlugins;
252
- exports.filterByFilePresence = filterByFilePresence;
@@ -1,242 +0,0 @@
1
- /* eslint-disable max-lines */
2
- const webpack = require('webpack');
3
- const path = require('path');
4
- const MiniCssExtractPlugin = require('mini-css-extract-plugin');
5
- const PostcssPresetEnv = require('postcss-preset-env');
6
- const CopyWebpackPlugin = require('copy-webpack-plugin');
7
- const DuplicatePackageCheckerPlugin = require('duplicate-package-checker-webpack-plugin');
8
- const MomentLocalesPlugin = require('moment-locales-webpack-plugin');
9
- const { WebpackManifestPlugin } = require('webpack-manifest-plugin');
10
- const FaviconsWebpackPlugin = require('favicons-webpack-plugin');
11
- const { ProvidePlugin, ProgressPlugin } = require('webpack');
12
- const browserslistToEsbuild = require('browserslist-to-esbuild');
13
-
14
- const {
15
- excludeNodeModulesExcept,
16
- modulesToTranspile,
17
- getAlias,
18
- getPaths,
19
- filterByFilePresence,
20
- } = require('./helpers');
21
-
22
- const minicssLoader = {
23
- loader: MiniCssExtractPlugin.loader,
24
- options: {},
25
- };
26
-
27
- const finalCSSLoader = (mode) =>
28
- mode !== 'production' ? { loader: 'style-loader' } : minicssLoader;
29
-
30
- const postcssPlugins = [PostcssPresetEnv({ autoprefixer: { grid: true } })];
31
- const { buildPath } = getPaths();
32
-
33
- const plugins = [
34
- new webpack.EnvironmentPlugin({
35
- NODE_ENV: 'development',
36
- CI: 'false',
37
- }),
38
- new ProvidePlugin({
39
- React: 'react',
40
- }),
41
- new CopyWebpackPlugin({
42
- patterns: filterByFilePresence([
43
- {
44
- from: 'app/app.config.json',
45
- to: './latest/app.config.json',
46
- },
47
- {
48
- from: 'app/robots.txt',
49
- to: 'robots.txt',
50
- noErrorOnMissing: true,
51
- },
52
- {
53
- from: 'app/global*.js',
54
- to: './latest/js/[name][ext]',
55
- },
56
- {
57
- from: 'node_modules/@elliemae/pui-user-monitoring/dist/public/js',
58
- to: './latest/js',
59
- toType: 'dir',
60
- info: { minimized: true },
61
- },
62
- {
63
- from: 'node_modules/@elliemae/pui-app-loader/dist/public/js',
64
- to: './latest/js',
65
- toType: 'dir',
66
- noErrorOnMissing: true,
67
- info: { minimized: true },
68
- },
69
- {
70
- from: 'node_modules/@elliemae/encw-loader/dist/public/js',
71
- to: './latest/js',
72
- toType: 'dir',
73
- noErrorOnMissing: true,
74
- info: { minimized: true },
75
- },
76
- {
77
- from: 'node_modules/@elliemae/pui-diagnostics/dist/public/js',
78
- to: './latest/js',
79
- toType: 'dir',
80
- noErrorOnMissing: true,
81
- info: { minimized: true },
82
- },
83
- {
84
- from: 'public',
85
- to: './latest',
86
- noErrorOnMissing: true,
87
- globOptions: {
88
- ignore: ['readme.md'],
89
- },
90
- },
91
- {
92
- from: 'webroot',
93
- noErrorOnMissing: true,
94
- globOptions: {
95
- ignore: ['readme.md'],
96
- },
97
- },
98
- ]),
99
- }),
100
- new DuplicatePackageCheckerPlugin(),
101
- new MomentLocalesPlugin({ localesToKeep: ['es-us'] }),
102
- new WebpackManifestPlugin({
103
- fileName: './latest/manifest.json',
104
- publicPath: '',
105
- map: (file) => {
106
- file.name = file.name.replace(/^latest\//, '');
107
- return file;
108
- },
109
- }),
110
- new FaviconsWebpackPlugin({
111
- outputPath: './latest/assets',
112
- logo: './app/view/images/favicon.png',
113
- favicons: {
114
- developerName: 'ICE MT',
115
- developerURL: null, // prevent retrieving from the nearest package.json
116
- icons: {
117
- coast: false,
118
- yandex: false,
119
- },
120
- },
121
- }),
122
- new ProgressPlugin(),
123
- ];
124
-
125
- module.exports = (options) => ({
126
- mode: options.mode,
127
- entry: options.entry,
128
- output: {
129
- clean: true,
130
- path: buildPath,
131
- publicPath: 'auto',
132
- ...options.output,
133
- }, // Merge with env dependent settings
134
- optimization: options.optimization,
135
- module: {
136
- rules: [
137
- {
138
- test: /\.jsx?$/,
139
- exclude: excludeNodeModulesExcept(modulesToTranspile),
140
- resolve: {
141
- fullySpecified: false,
142
- },
143
- use: {
144
- loader: 'esbuild-loader',
145
- options: {
146
- loader: 'jsx',
147
- target: browserslistToEsbuild(),
148
- },
149
- },
150
- },
151
- {
152
- test: /\.tsx?$/,
153
- exclude: excludeNodeModulesExcept(modulesToTranspile),
154
- resolve: {
155
- fullySpecified: false,
156
- },
157
- use: {
158
- loader: 'esbuild-loader',
159
- options: {
160
- loader: 'tsx',
161
- target: browserslistToEsbuild(),
162
- },
163
- },
164
- },
165
- {
166
- test: /\.css$/,
167
- exclude: excludeNodeModulesExcept(modulesToTranspile),
168
- use: [
169
- finalCSSLoader(options.mode),
170
- {
171
- loader: 'css-loader',
172
- options: {
173
- importLoaders: 1,
174
- sourceMap: true,
175
- },
176
- },
177
- {
178
- loader: 'postcss-loader',
179
- options: {
180
- postcssOptions: {
181
- plugins: postcssPlugins,
182
- },
183
- sourceMap: true,
184
- },
185
- },
186
- ],
187
- },
188
- {
189
- test: /\.(woff|woff2)$/,
190
- type: 'asset/resource',
191
- exclude: excludeNodeModulesExcept(modulesToTranspile),
192
- },
193
- {
194
- test: /\.svg$/i,
195
- issuer: /\.[jt]sx?$/,
196
- resourceQuery: /^((?!url).)*$/,
197
- exclude: excludeNodeModulesExcept(modulesToTranspile),
198
- use: ['@svgr/webpack'],
199
- },
200
- {
201
- test: /\.(jpe?g|png|gif|ico|mp4|webm)$/i,
202
- exclude: excludeNodeModulesExcept(modulesToTranspile),
203
- type: 'asset',
204
- },
205
- {
206
- resourceQuery: /resource/,
207
- type: 'asset/resource',
208
- exclude: excludeNodeModulesExcept(modulesToTranspile),
209
- },
210
- {
211
- type: 'asset',
212
- resourceQuery: /url/,
213
- exclude: excludeNodeModulesExcept(modulesToTranspile),
214
- },
215
- ],
216
- },
217
- plugins: plugins.concat(options.plugins),
218
- resolve: {
219
- modules: [
220
- 'node_modules',
221
- 'app',
222
- 'lib',
223
- path.resolve(process.cwd(), 'node_modules'),
224
- path.resolve(process.cwd(), 'app'),
225
- path.resolve(process.cwd(), 'lib'),
226
- ],
227
- extensions: ['.js', '.jsx', '.ts', '.tsx', '.json', '.wasm', '.mjs'],
228
- mainFields: ['browser', 'module', 'main'],
229
- alias: {
230
- ...getAlias(),
231
- ...((options.resolve || {}).alias || {}),
232
- },
233
- },
234
- externals: {
235
- '@elliemae/pui-user-monitoring': 'emuiUserMonitoring',
236
- '@elliemae/pui-app-loader': 'emuiAppLoader',
237
- '@elliemae/pui-diagnostics': 'emuiDiagnostics',
238
- },
239
- devtool: options.devtool || 'eval-source-map',
240
- performance: options.performance || {},
241
- devServer: options.devServer || {},
242
- });