@elliemae/pui-cli 6.16.0 → 7.0.0-alpha.2

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 (261) hide show
  1. package/dist/cjs/cli-commands/build.js +72 -0
  2. package/dist/cjs/cli-commands/codemod.js +51 -0
  3. package/dist/cjs/cli-commands/gendoc.js +52 -0
  4. package/dist/cjs/cli-commands/lint.js +86 -0
  5. package/dist/cjs/cli-commands/pack.js +88 -0
  6. package/dist/cjs/cli-commands/start.js +61 -0
  7. package/dist/cjs/cli-commands/storybook.js +63 -0
  8. package/dist/cjs/cli-commands/test.js +86 -0
  9. package/dist/cjs/cli-commands/tsc.js +103 -0
  10. package/dist/cjs/cli-commands/utils.js +137 -0
  11. package/dist/cjs/cli-commands/version.js +71 -0
  12. package/dist/cjs/cli-commands/vitest.js +84 -0
  13. package/dist/cjs/cli.js +47 -0
  14. package/dist/cjs/docgen/jsdoc.conf.json +17 -0
  15. package/{lib/dummy.ts → dist/cjs/dummy.js} +0 -0
  16. package/dist/cjs/index.js +41 -0
  17. package/dist/cjs/lint/lint-staged.config.js +42 -0
  18. package/dist/cjs/monorepo/delete-merged-tags.js +57 -0
  19. package/dist/cjs/monorepo/set-registry-version.js +43 -0
  20. package/dist/cjs/monorepo/set-workspace-version.js +44 -0
  21. package/dist/cjs/monorepo/utils.js +34 -0
  22. package/dist/cjs/package.json +4 -0
  23. package/dist/cjs/pui-config/index.js +40 -0
  24. package/dist/cjs/scripts/helpers/checkmark.js +32 -0
  25. package/dist/cjs/scripts/helpers/get-npm-config.js +27 -0
  26. package/dist/cjs/scripts/helpers/progress.js +35 -0
  27. package/dist/cjs/scripts/helpers/xmark.js +31 -0
  28. package/dist/cjs/scripts/npmcheckversion.js +8 -0
  29. package/dist/cjs/scripts/update-notifier.js +33 -0
  30. package/dist/cjs/server/csp.js +88 -0
  31. package/dist/cjs/server/index.js +29 -0
  32. package/dist/cjs/server/logger.js +50 -0
  33. package/dist/cjs/server/middlewares/addProdMiddlewares.js +44 -0
  34. package/dist/cjs/server/middlewares/index.js +57 -0
  35. package/dist/cjs/server/util/index.js +68 -0
  36. package/dist/cjs/testing/setup-react-env.js +18 -0
  37. package/dist/cjs/testing/setup-tests.js +63 -0
  38. package/dist/cjs/testing/vitest.config.js +39 -0
  39. package/{lib/testing/vitest.setup.ts → dist/cjs/testing/vitest.setup.js} +0 -0
  40. package/dist/cjs/transpile/esbuild.js +138 -0
  41. package/dist/cjs/transpile/react-shim.js +26 -0
  42. package/{lib → dist/cjs}/typescript/app.tsconfig.json +0 -0
  43. package/{lib → dist/cjs}/typescript/library.tsconfig.json +0 -0
  44. package/dist/cjs/typescript/tsc-files/index.js +68 -0
  45. package/dist/cjs/typescript/tsc-files/utils.js +31 -0
  46. package/dist/cjs/typescript/util.js +28 -0
  47. package/dist/cjs/webpack/helpers.js +216 -0
  48. package/dist/cjs/webpack/webpack.base.babel.js +262 -0
  49. package/dist/cjs/webpack/webpack.dev.babel.js +136 -0
  50. package/dist/cjs/webpack/webpack.lib.base.babel.js +217 -0
  51. package/dist/cjs/webpack/webpack.lib.dev.babel.js +67 -0
  52. package/dist/cjs/webpack/webpack.lib.prod.babel.js +92 -0
  53. package/dist/cjs/webpack/webpack.prod.babel.js +139 -0
  54. package/dist/esm/cli-commands/build.js +56 -0
  55. package/dist/esm/cli-commands/codemod.js +29 -0
  56. package/dist/esm/cli-commands/gendoc.js +29 -0
  57. package/dist/esm/cli-commands/lint.js +64 -0
  58. package/dist/esm/cli-commands/pack.js +65 -0
  59. package/dist/esm/cli-commands/start.js +38 -0
  60. package/dist/esm/cli-commands/storybook.js +41 -0
  61. package/dist/esm/cli-commands/test.js +64 -0
  62. package/dist/esm/cli-commands/tsc.js +83 -0
  63. package/dist/esm/cli-commands/utils.js +120 -0
  64. package/dist/esm/cli-commands/version.js +49 -0
  65. package/dist/esm/cli-commands/vitest.js +61 -0
  66. package/dist/esm/cli.js +31 -0
  67. package/dist/esm/docgen/jsdoc.conf.json +17 -0
  68. package/dist/esm/dummy.js +0 -0
  69. package/dist/esm/index.js +22 -0
  70. package/dist/esm/lint/lint-staged.config.js +19 -0
  71. package/dist/esm/monorepo/delete-merged-tags.js +38 -0
  72. package/dist/esm/monorepo/set-registry-version.js +21 -0
  73. package/dist/esm/monorepo/set-workspace-version.js +22 -0
  74. package/dist/esm/monorepo/utils.js +12 -0
  75. package/dist/esm/package.json +4 -0
  76. package/dist/esm/pui-config/index.js +18 -0
  77. package/dist/esm/scripts/helpers/checkmark.js +10 -0
  78. package/dist/esm/scripts/helpers/get-npm-config.js +5 -0
  79. package/dist/esm/scripts/helpers/progress.js +13 -0
  80. package/dist/esm/scripts/helpers/xmark.js +9 -0
  81. package/dist/esm/scripts/npmcheckversion.js +8 -0
  82. package/dist/esm/scripts/update-notifier.js +11 -0
  83. package/dist/esm/server/csp.js +66 -0
  84. package/dist/esm/server/index.js +17 -0
  85. package/dist/esm/server/logger.js +28 -0
  86. package/dist/esm/server/middlewares/addProdMiddlewares.js +22 -0
  87. package/dist/esm/server/middlewares/index.js +35 -0
  88. package/{lib → dist/esm}/server/util/index.js +18 -19
  89. package/dist/esm/testing/setup-react-env.js +3 -0
  90. package/dist/esm/testing/setup-tests.js +48 -0
  91. package/dist/esm/testing/vitest.config.js +17 -0
  92. package/dist/esm/testing/vitest.setup.js +0 -0
  93. package/dist/esm/transpile/esbuild.js +117 -0
  94. package/dist/esm/transpile/react-shim.js +4 -0
  95. package/dist/esm/typescript/app.tsconfig.json +23 -0
  96. package/dist/esm/typescript/library.tsconfig.json +23 -0
  97. package/dist/esm/typescript/tsc-files/index.js +55 -0
  98. package/{lib → dist/esm}/typescript/tsc-files/utils.js +3 -7
  99. package/dist/esm/typescript/util.js +6 -0
  100. package/dist/esm/webpack/helpers.js +196 -0
  101. package/dist/esm/webpack/webpack.base.babel.js +248 -0
  102. package/dist/esm/webpack/webpack.dev.babel.js +118 -0
  103. package/dist/esm/webpack/webpack.lib.base.babel.js +208 -0
  104. package/dist/esm/webpack/webpack.lib.dev.babel.js +45 -0
  105. package/dist/esm/webpack/webpack.lib.prod.babel.js +70 -0
  106. package/dist/esm/webpack/webpack.prod.babel.js +122 -0
  107. package/dist/types/babel/babel.config.d.cts +59 -0
  108. package/dist/types/cli-commands/build.d.ts +14 -0
  109. package/dist/types/cli-commands/codemod.d.ts +6 -0
  110. package/dist/types/cli-commands/gendoc.d.ts +6 -0
  111. package/dist/types/cli-commands/lint.d.ts +29 -0
  112. package/dist/types/cli-commands/pack.d.ts +26 -0
  113. package/dist/types/cli-commands/start.d.ts +13 -0
  114. package/dist/types/cli-commands/storybook.d.ts +19 -0
  115. package/dist/types/cli-commands/test.d.ts +35 -0
  116. package/dist/types/cli-commands/tsc.d.ts +20 -0
  117. package/dist/types/cli-commands/utils.d.ts +14 -0
  118. package/dist/types/cli-commands/version.d.ts +30 -0
  119. package/dist/types/cli-commands/vitest.d.ts +35 -0
  120. package/dist/types/cli.d.ts +2 -0
  121. package/dist/types/dummy.d.ts +0 -0
  122. package/dist/types/index.d.ts +10 -0
  123. package/dist/types/lint/commitlint.config.d.cts +4 -0
  124. package/dist/types/lint/eslint/common.d.cts +124 -0
  125. package/dist/types/lint/eslint/non-react.d.cts +88 -0
  126. package/dist/types/lint/eslint/react.d.cts +118 -0
  127. package/dist/types/lint/eslint/typescript/common.d.cts +37 -0
  128. package/dist/types/lint/eslint/typescript/non-react.d.cts +87 -0
  129. package/dist/types/lint/eslint/typescript/react.d.cts +118 -0
  130. package/dist/types/lint/lint-staged.config.d.ts +5 -0
  131. package/dist/types/lint/prettier.config.d.cts +8 -0
  132. package/dist/types/lint/stylelint.config.d.cts +10 -0
  133. package/dist/types/monorepo/delete-merged-tags.d.ts +1 -0
  134. package/dist/types/monorepo/set-registry-version.d.ts +1 -0
  135. package/dist/types/monorepo/set-workspace-version.d.ts +1 -0
  136. package/dist/types/monorepo/utils.d.ts +1 -0
  137. package/dist/types/pui-config/index.d.ts +1 -0
  138. package/dist/types/release/release.config.d.cts +9 -0
  139. package/dist/types/scripts/helpers/checkmark.d.ts +7 -0
  140. package/dist/types/scripts/helpers/get-npm-config.d.ts +2 -0
  141. package/dist/types/scripts/helpers/progress.d.ts +7 -0
  142. package/dist/types/scripts/helpers/xmark.d.ts +6 -0
  143. package/dist/types/scripts/npmcheckversion.d.ts +1 -0
  144. package/dist/types/scripts/update-notifier.d.ts +2 -0
  145. package/dist/types/server/csp.d.ts +10 -0
  146. package/dist/types/server/index.d.ts +1 -0
  147. package/dist/types/server/logger.d.ts +4 -0
  148. package/dist/types/server/middlewares/addProdMiddlewares.d.ts +1 -0
  149. package/dist/types/server/middlewares/index.d.ts +2 -0
  150. package/dist/types/server/util/index.d.ts +4 -0
  151. package/dist/types/testing/jest.config.d.cts +39 -0
  152. package/dist/types/testing/jest.node.config.d.cts +39 -0
  153. package/dist/types/testing/mocks/axios.d.cts +14 -0
  154. package/dist/types/testing/mocks/cssModule.d.cts +2 -0
  155. package/dist/types/testing/mocks/html.d.cts +2 -0
  156. package/dist/types/testing/mocks/image.d.cts +2 -0
  157. package/dist/types/testing/mocks/matchMedia.d.cts +2 -0
  158. package/dist/types/testing/mocks/pui-app-loader.d.cts +1 -0
  159. package/dist/types/testing/mocks/pui-diagnostics.d.cts +28 -0
  160. package/dist/types/testing/mocks/pui-user-monitoring.d.cts +3 -0
  161. package/dist/types/testing/mocks/retry-axios.d.cts +3 -0
  162. package/dist/types/testing/mocks/svg.d.cts +3 -0
  163. package/dist/types/testing/mocks/webpack-hmr.d.cts +1 -0
  164. package/dist/types/testing/resolver.d.cts +2 -0
  165. package/dist/types/testing/setup-react-env.d.ts +1 -0
  166. package/dist/types/testing/setup-tests.d.ts +1 -0
  167. package/dist/types/testing/vitest.config.d.ts +2 -0
  168. package/dist/types/testing/vitest.setup.d.ts +0 -0
  169. package/dist/types/transpile/esbuild.d.ts +13 -0
  170. package/dist/types/transpile/react-shim.d.ts +2 -0
  171. package/dist/types/transpile/swcrc.config.d.cts +1 -0
  172. package/dist/types/typescript/tsc-files/index.d.ts +1 -0
  173. package/dist/types/typescript/tsc-files/utils.d.ts +3 -0
  174. package/dist/types/typescript/util.d.ts +1 -0
  175. package/dist/types/utils.d.cts +3 -0
  176. package/dist/types/webpack/helpers.d.ts +28 -0
  177. package/dist/types/webpack/webpack.base.babel.d.ts +90 -0
  178. package/dist/types/webpack/webpack.dev.babel.d.ts +1 -0
  179. package/dist/types/webpack/webpack.lib.base.babel.d.ts +107 -0
  180. package/dist/types/webpack/webpack.lib.dev.babel.d.ts +91 -0
  181. package/dist/types/webpack/webpack.lib.prod.babel.d.ts +91 -0
  182. package/dist/types/webpack/webpack.prod.babel.d.ts +2 -0
  183. package/dist/types/webpack/webpack.storybook.d.cts +4 -0
  184. package/package.json +63 -52
  185. package/lib/babel/babel.config.js +0 -101
  186. package/lib/cli-commands/build.js +0 -56
  187. package/lib/cli-commands/codemod.js +0 -31
  188. package/lib/cli-commands/gendoc.js +0 -36
  189. package/lib/cli-commands/lint.js +0 -75
  190. package/lib/cli-commands/pack.js +0 -67
  191. package/lib/cli-commands/start.js +0 -44
  192. package/lib/cli-commands/storybook.js +0 -53
  193. package/lib/cli-commands/test.js +0 -63
  194. package/lib/cli-commands/tsc.js +0 -103
  195. package/lib/cli-commands/utils.js +0 -89
  196. package/lib/cli-commands/version.js +0 -53
  197. package/lib/cli-commands/vitest.js +0 -66
  198. package/lib/cli.js +0 -33
  199. package/lib/docgen/jsdoc.config.js +0 -17
  200. package/lib/index.js +0 -25
  201. package/lib/lint/commitlint.config.js +0 -1
  202. package/lib/lint/eslint/common.js +0 -160
  203. package/lib/lint/eslint/non-react.js +0 -14
  204. package/lib/lint/eslint/react.js +0 -26
  205. package/lib/lint/eslint/typescript/common.js +0 -43
  206. package/lib/lint/eslint/typescript/non-react.js +0 -12
  207. package/lib/lint/eslint/typescript/react.js +0 -19
  208. package/lib/lint/lint-staged.config.js +0 -16
  209. package/lib/lint/prettier.config.js +0 -8
  210. package/lib/lint/stylelint.config.js +0 -19
  211. package/lib/monorepo/delete-merged-tags.js +0 -48
  212. package/lib/monorepo/set-registry-version.js +0 -22
  213. package/lib/monorepo/set-workspace-version.js +0 -29
  214. package/lib/monorepo/utils.js +0 -15
  215. package/lib/pui-config/index.js +0 -18
  216. package/lib/release/release.config.js +0 -31
  217. package/lib/scripts/helpers/checkmark.js +0 -15
  218. package/lib/scripts/helpers/get-npm-config.js +0 -3
  219. package/lib/scripts/helpers/progress.js +0 -19
  220. package/lib/scripts/helpers/xmark.js +0 -13
  221. package/lib/scripts/npmcheckversion.js +0 -8
  222. package/lib/scripts/update-notifier.js +0 -7
  223. package/lib/server/argv.js +0 -1
  224. package/lib/server/csp.js +0 -74
  225. package/lib/server/index.js +0 -69
  226. package/lib/server/logger.js +0 -42
  227. package/lib/server/middlewares/addDevMiddlewares.js +0 -39
  228. package/lib/server/middlewares/addProdMiddlewares.js +0 -31
  229. package/lib/server/middlewares/frontendMiddleware.js +0 -16
  230. package/lib/server/port.js +0 -6
  231. package/lib/testing/jest.config.js +0 -100
  232. package/lib/testing/jest.node.config.js +0 -8
  233. package/lib/testing/mocks/axios.js +0 -15
  234. package/lib/testing/mocks/cssModule.js +0 -1
  235. package/lib/testing/mocks/html.js +0 -1
  236. package/lib/testing/mocks/image.js +0 -1
  237. package/lib/testing/mocks/matchMedia.js +0 -24
  238. package/lib/testing/mocks/pui-app-loader.js +0 -1
  239. package/lib/testing/mocks/pui-diagnostics.js +0 -28
  240. package/lib/testing/mocks/pui-user-monitoring.js +0 -3
  241. package/lib/testing/mocks/retry-axios.js +0 -3
  242. package/lib/testing/mocks/svg.js +0 -5
  243. package/lib/testing/mocks/webpack-hmr.js +0 -1
  244. package/lib/testing/resolver.js +0 -47
  245. package/lib/testing/setup-react-env.js +0 -3
  246. package/lib/testing/setup-tests.js +0 -58
  247. package/lib/testing/vitest.config.ts +0 -16
  248. package/lib/transpile/.swcrc +0 -11
  249. package/lib/transpile/esbuild.js +0 -116
  250. package/lib/transpile/react-shim.js +0 -2
  251. package/lib/transpile/swcrc.config.js +0 -13
  252. package/lib/typescript/tsc-files/index.js +0 -66
  253. package/lib/typescript/util.js +0 -5
  254. package/lib/webpack/helpers.js +0 -255
  255. package/lib/webpack/webpack.base.babel.js +0 -239
  256. package/lib/webpack/webpack.dev.babel.js +0 -122
  257. package/lib/webpack/webpack.lib.base.babel.js +0 -205
  258. package/lib/webpack/webpack.lib.dev.babel.js +0 -49
  259. package/lib/webpack/webpack.lib.prod.babel.js +0 -77
  260. package/lib/webpack/webpack.prod.babel.js +0 -164
  261. package/lib/webpack/webpack.storybook.js +0 -91
@@ -0,0 +1,92 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var webpack_lib_prod_babel_exports = {};
22
+ __export(webpack_lib_prod_babel_exports, {
23
+ default: () => webpack_lib_prod_babel_default
24
+ });
25
+ module.exports = __toCommonJS(webpack_lib_prod_babel_exports);
26
+ var import_node_path = __toESM(require("node:path"), 1);
27
+ var import_mini_css_extract_plugin = __toESM(require("mini-css-extract-plugin"), 1);
28
+ var import_html_webpack_plugin = __toESM(require("html-webpack-plugin"), 1);
29
+ var import_webpack_bundle_analyzer = require("webpack-bundle-analyzer");
30
+ var import_esbuild_loader = require("esbuild-loader");
31
+ var import_browserslist_to_esbuild = __toESM(require("browserslist-to-esbuild"), 1);
32
+ var import_helpers = require("./helpers.js");
33
+ var import_webpack_base_babel = require("./webpack.base.babel.js");
34
+ const libraryName = (0, import_helpers.getLibraryName)();
35
+ var webpack_lib_prod_babel_default = (0, import_webpack_base_babel.baseConfig)({
36
+ mode: "production",
37
+ output: {
38
+ filename: `js/${libraryName}.[chunkhash].js`,
39
+ chunkFilename: `js/${libraryName}.[chunkhash].chunk.js`,
40
+ assetModuleFilename: "assets/[name].[hash][ext][query]"
41
+ },
42
+ optimization: {
43
+ moduleIds: "deterministic",
44
+ minimize: true,
45
+ minimizer: [
46
+ new import_esbuild_loader.ESBuildMinifyPlugin({
47
+ target: (0, import_browserslist_to_esbuild.default)(),
48
+ css: true
49
+ })
50
+ ],
51
+ nodeEnv: "production",
52
+ sideEffects: true,
53
+ concatenateModules: true,
54
+ splitChunks: {
55
+ chunks: "all"
56
+ }
57
+ },
58
+ plugins: [
59
+ new import_html_webpack_plugin.default({
60
+ template: "lib/index.pug",
61
+ filename: "index.html",
62
+ libraryName,
63
+ minify: {
64
+ removeComments: true,
65
+ collapseWhitespace: true,
66
+ removeRedundantAttributes: true,
67
+ useShortDoctype: true,
68
+ removeEmptyAttributes: true,
69
+ removeStyleLinkTypeAttributes: true,
70
+ keepClosingSlash: true,
71
+ minifyJS: true,
72
+ minifyCSS: true,
73
+ minifyURLs: true
74
+ },
75
+ inject: true
76
+ }),
77
+ new import_mini_css_extract_plugin.default({
78
+ filename: `css/${libraryName}.[contenthash].css`,
79
+ chunkFilename: `css/${libraryName}.[contenthash].chunk.css`
80
+ }),
81
+ ...(0, import_helpers.getCompressionPlugins)(true),
82
+ new import_webpack_bundle_analyzer.BundleAnalyzerPlugin({
83
+ analyzerMode: "static",
84
+ reportFilename: import_node_path.default.join(process.cwd(), "reports/bundle-stats.html"),
85
+ openAnalyzer: false
86
+ })
87
+ ],
88
+ devtool: "source-map",
89
+ performance: {
90
+ assetFilter: (assetFilename) => !/(\.map$)|(^(main\.|favicon\.))/.test(assetFilename)
91
+ }
92
+ });
@@ -0,0 +1,139 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
21
+ var webpack_prod_babel_exports = {};
22
+ __export(webpack_prod_babel_exports, {
23
+ default: () => webpack_prod_babel_default
24
+ });
25
+ module.exports = __toCommonJS(webpack_prod_babel_exports);
26
+ var import_node_path = __toESM(require("node:path"), 1);
27
+ var import_html_webpack_plugin = __toESM(require("html-webpack-plugin"), 1);
28
+ var import_workbox_webpack_plugin = require("workbox-webpack-plugin");
29
+ var import_mini_css_extract_plugin = __toESM(require("mini-css-extract-plugin"), 1);
30
+ var import_webpack_bundle_analyzer = require("webpack-bundle-analyzer");
31
+ var import_esbuild_loader = require("esbuild-loader");
32
+ var import_speed_measure_webpack_plugin = __toESM(require("speed-measure-webpack-plugin"), 1);
33
+ var import_browserslist_to_esbuild = __toESM(require("browserslist-to-esbuild"), 1);
34
+ var import_webpack_base_babel = __toESM(require("./webpack.base.babel.js"), 1);
35
+ var import_helpers = require("./helpers.js");
36
+ const getProdConfig = ({ latestVersion = true } = {}) => {
37
+ const { buildPath } = (0, import_helpers.getPaths)(latestVersion);
38
+ return {
39
+ mode: "production",
40
+ entry: {
41
+ app: import_node_path.default.join(process.cwd(), "app/index")
42
+ },
43
+ output: {
44
+ path: buildPath,
45
+ publicPath: "auto",
46
+ filename: "latest/js/[name].[contenthash].js",
47
+ chunkFilename: "latest/js/[name].[contenthash].chunk.js",
48
+ assetModuleFilename: "latest/assets/[name].[hash][ext][query]"
49
+ },
50
+ optimization: {
51
+ moduleIds: "deterministic",
52
+ minimizer: [
53
+ new import_esbuild_loader.ESBuildMinifyPlugin({
54
+ target: (0, import_browserslist_to_esbuild.default)(),
55
+ css: true
56
+ })
57
+ ],
58
+ runtimeChunk: true,
59
+ splitChunks: {
60
+ chunks: "all",
61
+ cacheGroups: {
62
+ emui: {
63
+ name: "emui",
64
+ test: /[\\/]node_modules[\\/](@elliemae)[\\/]/,
65
+ priority: 1
66
+ },
67
+ vendors: {
68
+ name: "vendors",
69
+ test: /[\\/]node_modules[\\/]/
70
+ }
71
+ }
72
+ }
73
+ },
74
+ plugins: [
75
+ ...(0, import_helpers.getCompressionPlugins)(),
76
+ new import_webpack_bundle_analyzer.BundleAnalyzerPlugin({
77
+ analyzerMode: "static",
78
+ reportFilename: import_node_path.default.join(process.cwd(), "reports/bundle-stats.html"),
79
+ openAnalyzer: false
80
+ }),
81
+ new import_workbox_webpack_plugin.GenerateSW({
82
+ swDest: "sw.js",
83
+ clientsClaim: true,
84
+ skipWaiting: true
85
+ })
86
+ ],
87
+ devtool: "source-map",
88
+ performance: {
89
+ assetFilter: (assetFilename) => !/(\.map$)|(^(main\.|favicon\.))/.test(assetFilename)
90
+ }
91
+ };
92
+ };
93
+ const {
94
+ userMonScriptPath,
95
+ globalScriptPath,
96
+ appLoaderScriptPath,
97
+ diagnosticsScriptPath,
98
+ encwLoaderScriptPath,
99
+ basePath
100
+ } = (0, import_helpers.getPaths)();
101
+ const htmlWebpackPlugin = new import_html_webpack_plugin.default({
102
+ inject: !(0, import_helpers.isAppLoaderEnabled)(),
103
+ template: !(0, import_helpers.isAppLoaderEnabled)() ? "app/index.html" : "app/index-app-loader.html",
104
+ minify: {
105
+ removeComments: true,
106
+ collapseWhitespace: true,
107
+ removeRedundantAttributes: true,
108
+ useShortDoctype: true,
109
+ removeEmptyAttributes: true,
110
+ removeStyleLinkTypeAttributes: true,
111
+ keepClosingSlash: true,
112
+ minifyJS: true,
113
+ minifyCSS: true,
114
+ minifyURLs: true
115
+ },
116
+ emui: {
117
+ appVersion: "latest",
118
+ basePath,
119
+ globalScriptPath,
120
+ userMonScriptPath,
121
+ appLoaderScriptPath,
122
+ diagnosticsScriptPath,
123
+ encwLoaderScriptPath,
124
+ googleTagManager: (0, import_helpers.isGoogleTagManagerEnabled)()
125
+ }
126
+ });
127
+ const config = (0, import_webpack_base_babel.default)(getProdConfig());
128
+ config.plugins.push(htmlWebpackPlugin);
129
+ const addSMPPlugin = (webpackConfig) => {
130
+ const smpConfig = new import_speed_measure_webpack_plugin.default({
131
+ disable: !process.env.MEASURE
132
+ }).wrap(webpackConfig);
133
+ smpConfig.plugins.push(new import_mini_css_extract_plugin.default({
134
+ filename: "latest/css/[name].[contenthash].css",
135
+ chunkFilename: "latest/css/[name].[contenthash].chunk.css"
136
+ }));
137
+ return smpConfig;
138
+ };
139
+ var webpack_prod_babel_default = addSMPPlugin(config);
@@ -0,0 +1,56 @@
1
+ import path from "node:path";
2
+ import { fileURLToPath } from "node:url";
3
+ import yargs from "yargs";
4
+ import {
5
+ exec,
6
+ logInfo,
7
+ logError,
8
+ logSuccess,
9
+ writeAppInfo,
10
+ copyBuildAssetsToVersionedFolder
11
+ } from "./utils.js";
12
+ import { esBuild, TARGETS } from "../transpile/esbuild.js";
13
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
14
+ const buildWebApp = async () => {
15
+ await exec(`rimraf ./build`);
16
+ await exec(`cross-env NODE_ENV=production webpack --config ${path.resolve(__dirname, "../webpack/webpack.prod.babel.js")} --color`);
17
+ await copyBuildAssetsToVersionedFolder();
18
+ await writeAppInfo();
19
+ };
20
+ const buildService = async () => {
21
+ await exec("rimraf ./build");
22
+ await esBuild({
23
+ srcdir: "./app",
24
+ outdir: "build",
25
+ esmOnly: true,
26
+ target: TARGETS.node,
27
+ injectReactShim: false,
28
+ skipNestedPackageJSON: true
29
+ });
30
+ };
31
+ const buildCmd = {
32
+ handler: async ({ service = false }) => {
33
+ try {
34
+ logInfo("Build in progress...");
35
+ if (service)
36
+ await buildService();
37
+ else
38
+ await buildWebApp();
39
+ logSuccess("Build completed");
40
+ } catch (err) {
41
+ logError("Build failed", err);
42
+ yargs().exit(-1, err);
43
+ }
44
+ },
45
+ command: "build",
46
+ describe: "builds front end application or NodeJS service",
47
+ builder: {
48
+ service: {
49
+ type: "boolean",
50
+ default: false
51
+ }
52
+ }
53
+ };
54
+ export {
55
+ buildCmd
56
+ };
@@ -0,0 +1,29 @@
1
+ import yargs from "yargs";
2
+ import { exec, logInfo, logError, logSuccess } from "./utils.js";
3
+ const transform = async (argv) => {
4
+ logInfo("Code modification in-progress...");
5
+ exec(`jscodeshift --ignore-file=.gitignore -t ${argv.transform} .`);
6
+ };
7
+ const codemodCmd = {
8
+ handler: async (argv) => {
9
+ try {
10
+ await transform(argv);
11
+ logSuccess("Code modifications completed. ");
12
+ } catch (err) {
13
+ logError("Code modifications failed", err);
14
+ yargs().exit(-1, err);
15
+ }
16
+ },
17
+ command: "codemod <transform>",
18
+ describe: "Transforms code",
19
+ builder: (yargsRef) => {
20
+ yargsRef.positional("transform", {
21
+ describe: "path to the transform file. Can be either a local path or url",
22
+ type: "string",
23
+ default: "./transform.js"
24
+ });
25
+ }
26
+ };
27
+ export {
28
+ codemodCmd
29
+ };
@@ -0,0 +1,29 @@
1
+ import path from "node:path";
2
+ import { fileURLToPath } from "node:url";
3
+ import fs from "node:fs";
4
+ import yargs from "yargs";
5
+ import { exec, logInfo, logSuccess, logError } from "./utils.js";
6
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
7
+ const isApp = () => fs.existsSync(path.join(process.cwd(), "app"));
8
+ const generateDocs = async () => {
9
+ logInfo("Documentation Generation inprogress...");
10
+ const srcPath = path.join(process.cwd(), isApp() ? "app" : "lib");
11
+ await exec(`jsdoc ${srcPath} -r -c ${path.resolve(__dirname, "../docgen/jsdoc.conf.json")} -d docs`);
12
+ };
13
+ const gendocCmd = {
14
+ handler: async () => {
15
+ try {
16
+ await generateDocs();
17
+ logSuccess("Document generation completed. ");
18
+ } catch (err) {
19
+ logError("Document generation failed", err);
20
+ yargs().exit(-1, err);
21
+ }
22
+ },
23
+ command: "gendoc",
24
+ describe: "Builds documentation from source files",
25
+ builder: {}
26
+ };
27
+ export {
28
+ gendocCmd
29
+ };
@@ -0,0 +1,64 @@
1
+ import path from "node:path";
2
+ import yargs from "yargs";
3
+ import { exec, logError, logSuccess } from "./utils.js";
4
+ import { isTypeScriptEnabled } from "../typescript/util.js";
5
+ const { CI = false } = process.env;
6
+ const lintCSS = async (fix = false) => {
7
+ const fixIssues = fix ? "--fix" : "";
8
+ await exec(`stylelint ./{lib,app}/**/*.{js,jsx,ts,tsx} ${fixIssues} ${!CI ? "--color" : ""} --allow-empty-input --config ${path.join(process.cwd(), "stylelint.config.cjs")}`);
9
+ };
10
+ const lintJS = async (fix = false) => {
11
+ const fixIssues = fix ? "--fix" : "";
12
+ await exec(`eslint ${!CI ? "--color" : ""} ${fixIssues} .`);
13
+ };
14
+ const lintCmd = {
15
+ handler: async (argv) => {
16
+ if (argv.js) {
17
+ if (isTypeScriptEnabled())
18
+ await exec("tsc --noEmit --emitDeclarationOnly false");
19
+ try {
20
+ await exec("rimraf ./reports/eslint.json");
21
+ await lintJS(argv.fix);
22
+ logSuccess("JS linting completed");
23
+ } catch (err) {
24
+ logError("JS linting failed");
25
+ yargs().exit(-1, err);
26
+ return -1;
27
+ }
28
+ }
29
+ if (argv.css) {
30
+ try {
31
+ await exec("rimraf ./reports/stylelint.json");
32
+ await lintCSS(argv.fix);
33
+ logSuccess("CSS linting completed");
34
+ } catch (err) {
35
+ logError("CSS linting failed");
36
+ yargs().exit(-1, err);
37
+ return -1;
38
+ }
39
+ }
40
+ return 0;
41
+ },
42
+ command: "lint [options]",
43
+ describe: "lints application code",
44
+ builder: {
45
+ css: {
46
+ alias: "css",
47
+ type: "boolean",
48
+ default: true
49
+ },
50
+ js: {
51
+ alias: "js",
52
+ type: "boolean",
53
+ default: true
54
+ },
55
+ fix: {
56
+ alias: "fix",
57
+ type: "boolean",
58
+ default: false
59
+ }
60
+ }
61
+ };
62
+ export {
63
+ lintCmd
64
+ };
@@ -0,0 +1,65 @@
1
+ import path from "node:path";
2
+ import { fileURLToPath } from "node:url";
3
+ import yargs from "yargs";
4
+ import { exec, logInfo, logError, logSuccess } from "./utils.js";
5
+ import { isTypeScriptEnabled } from "../typescript/util.js";
6
+ import { esBuild } from "../transpile/esbuild.js";
7
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
8
+ const compileTypeScript = async () => {
9
+ logInfo("Generating types...");
10
+ await exec("tsc --emitDeclarationOnly");
11
+ logInfo("Types generation completed...");
12
+ };
13
+ const webBuild = async (productionBuild) => {
14
+ logInfo("Building source files for browser environment...");
15
+ const devCmd = `${path.resolve(__dirname, "../webpack/webpack.lib.dev.babel.js")} --color`;
16
+ const prodCmd = `${path.resolve(__dirname, "../webpack/webpack.lib.prod.babel.js")} --color`;
17
+ await exec(`webpack --config ${productionBuild ? prodCmd : devCmd}`);
18
+ logInfo("Building source files for browser environment completed...");
19
+ };
20
+ const pack = async ({ production, target, srcPath }) => {
21
+ logInfo("Build in-progress...");
22
+ await exec("rimraf ./dist");
23
+ if (isTypeScriptEnabled()) {
24
+ await compileTypeScript();
25
+ }
26
+ if (target !== "node")
27
+ await webBuild(production);
28
+ if (target !== "web") {
29
+ logInfo("Building source files for nodejs environment...");
30
+ await esBuild({ srcdir: srcPath });
31
+ logInfo("Building source files for nodejs environment completed.");
32
+ }
33
+ };
34
+ const packCmd = {
35
+ handler: async (argv) => {
36
+ try {
37
+ await pack(argv);
38
+ logSuccess("Build completed");
39
+ } catch (err) {
40
+ logError("Build failed", err);
41
+ yargs().exit(-1, err);
42
+ }
43
+ },
44
+ command: "pack",
45
+ describe: "builds library",
46
+ builder: {
47
+ production: {
48
+ alias: "p",
49
+ type: "boolean",
50
+ default: false
51
+ },
52
+ target: {
53
+ alias: "t",
54
+ type: "string",
55
+ description: "target environment where this library will be used. allowed values are web, node. by default libraries will be compiled for both web and nodejs environments"
56
+ },
57
+ srcPath: {
58
+ type: "string",
59
+ default: "./lib"
60
+ }
61
+ }
62
+ };
63
+ export {
64
+ packCmd
65
+ };
@@ -0,0 +1,38 @@
1
+ import path from "node:path";
2
+ import { fileURLToPath } from "node:url";
3
+ import yargs from "yargs";
4
+ import { exec, logError, logSuccess } from "./utils.js";
5
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
6
+ const startProdServer = async () => {
7
+ await exec(`cross-env NODE_ENV=production ts-node ${path.resolve(__dirname, "../server")} --color always`);
8
+ };
9
+ const startDevServer = async () => {
10
+ await exec(`cross-env NODE_ENV=development webpack serve --config ${path.resolve(__dirname, "../webpack/webpack.dev.babel.js")}`);
11
+ };
12
+ const startCmd = {
13
+ handler: async (argv) => {
14
+ try {
15
+ if (argv.prod) {
16
+ await startProdServer();
17
+ } else {
18
+ await startDevServer();
19
+ }
20
+ logSuccess("Server started");
21
+ } catch (err) {
22
+ logError("Server start failed", err);
23
+ yargs().exit(-1, err);
24
+ }
25
+ },
26
+ command: "start [options]",
27
+ describe: "starts local web server to test the application",
28
+ builder: {
29
+ prod: {
30
+ alias: "p",
31
+ default: false,
32
+ type: "boolean"
33
+ }
34
+ }
35
+ };
36
+ export {
37
+ startCmd
38
+ };
@@ -0,0 +1,41 @@
1
+ import yargs from "yargs";
2
+ import { exec, logInfo, logError, logSuccess } from "./utils.js";
3
+ const buildStoryBook = async (isDoc = false) => {
4
+ const additionalParams = isDoc ? "--docs -o demo/docs" : "-o demo";
5
+ await exec(`cross-env NODE_ENV=production FORCE_COLOR=true build-storybook --quiet ${additionalParams}`);
6
+ };
7
+ const startStoryBook = async (isDoc = false) => {
8
+ await exec(`cross-env NODE_ENV=development STORYBOOK_BUILD=true FORCE_COLOR=true start-storybook ${isDoc && "--docs"} -p 11000 --quiet`);
9
+ };
10
+ const storybookCmd = {
11
+ handler: async (argv) => {
12
+ try {
13
+ if (!argv.build) {
14
+ await startStoryBook(argv.docs);
15
+ logInfo("Storybook started");
16
+ } else {
17
+ await buildStoryBook(argv.docs);
18
+ logSuccess("Storybook build completed");
19
+ }
20
+ } catch (err) {
21
+ logError("Storybook execution failed", err);
22
+ yargs().exit(-1, err);
23
+ }
24
+ },
25
+ command: "storybook [options]",
26
+ describe: "story book application code",
27
+ builder: {
28
+ build: {
29
+ alias: "b",
30
+ type: "boolean",
31
+ default: false
32
+ },
33
+ docs: {
34
+ type: "boolean",
35
+ default: false
36
+ }
37
+ }
38
+ };
39
+ export {
40
+ storybookCmd
41
+ };
@@ -0,0 +1,64 @@
1
+ import yargs from "yargs";
2
+ import { exec, logError, logSuccess } from "./utils.js";
3
+ const { CI = false } = process.env;
4
+ const test = async (commandOptions) => {
5
+ await exec(`cross-env NODE_ENV=test jest ${commandOptions}`);
6
+ };
7
+ const testCmd = {
8
+ handler: async (argv) => {
9
+ let commandOptions = "--coverage";
10
+ if (argv.fix)
11
+ commandOptions = "-u";
12
+ else if (argv.watch)
13
+ commandOptions = "--watchAll";
14
+ if (CI)
15
+ commandOptions += " --ci --runInBand --no-colors";
16
+ else
17
+ commandOptions += " --maxWorkers=50%";
18
+ if (argv.p)
19
+ commandOptions += " --passWithNoTests";
20
+ if (argv.r)
21
+ commandOptions += " --bail --findRelatedTests";
22
+ if (argv.s)
23
+ commandOptions += " --silent";
24
+ try {
25
+ if (CI) {
26
+ await exec("rimraf ./reports");
27
+ }
28
+ await test(commandOptions);
29
+ logSuccess("Unit test execution completed");
30
+ } catch (err) {
31
+ logError("Unit test execution failed", err);
32
+ yargs().exit(-1, err);
33
+ return -1;
34
+ }
35
+ return 0;
36
+ },
37
+ command: "test [options]",
38
+ describe: "unit tests application code",
39
+ builder: {
40
+ fix: {
41
+ alias: "f",
42
+ type: "boolean"
43
+ },
44
+ watch: {
45
+ alias: "w",
46
+ type: "boolean"
47
+ },
48
+ passWithNoTests: {
49
+ alias: "p",
50
+ type: "boolean"
51
+ },
52
+ findReleatedTests: {
53
+ alias: "r",
54
+ type: "boolean"
55
+ },
56
+ silent: {
57
+ alias: "s",
58
+ type: "boolean"
59
+ }
60
+ }
61
+ };
62
+ export {
63
+ testCmd
64
+ };