@servicetitan/startup 31.3.2 → 31.5.0

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 (234) hide show
  1. package/dist/cli/commands/build.d.ts +0 -7
  2. package/dist/cli/commands/build.d.ts.map +1 -1
  3. package/dist/cli/commands/build.js +28 -17
  4. package/dist/cli/commands/build.js.map +1 -1
  5. package/dist/cli/commands/bundle-package.d.ts +1 -1
  6. package/dist/cli/commands/bundle-package.d.ts.map +1 -1
  7. package/dist/cli/commands/bundle-package.js +13 -21
  8. package/dist/cli/commands/bundle-package.js.map +1 -1
  9. package/dist/cli/commands/clean.js +1 -1
  10. package/dist/cli/commands/clean.js.map +1 -1
  11. package/dist/cli/commands/eslint.d.ts +0 -1
  12. package/dist/cli/commands/eslint.d.ts.map +1 -1
  13. package/dist/cli/commands/eslint.js +0 -3
  14. package/dist/cli/commands/eslint.js.map +1 -1
  15. package/dist/cli/commands/get-command.d.ts.map +1 -1
  16. package/dist/cli/commands/get-command.js +3 -1
  17. package/dist/cli/commands/get-command.js.map +1 -1
  18. package/dist/cli/commands/get-user-commands.js +3 -2
  19. package/dist/cli/commands/get-user-commands.js.map +1 -1
  20. package/dist/cli/commands/init.js.map +1 -1
  21. package/dist/cli/commands/install.js.map +1 -1
  22. package/dist/cli/commands/lint.js.map +1 -1
  23. package/dist/cli/commands/mfe-package-clean.d.ts +3 -4
  24. package/dist/cli/commands/mfe-package-clean.d.ts.map +1 -1
  25. package/dist/cli/commands/mfe-package-clean.js +0 -3
  26. package/dist/cli/commands/mfe-package-clean.js.map +1 -1
  27. package/dist/cli/commands/mfe-package-publish.d.ts +9 -4
  28. package/dist/cli/commands/mfe-package-publish.d.ts.map +1 -1
  29. package/dist/cli/commands/mfe-package-publish.js +70 -47
  30. package/dist/cli/commands/mfe-package-publish.js.map +1 -1
  31. package/dist/cli/commands/mfe-publish.d.ts +3 -3
  32. package/dist/cli/commands/mfe-publish.d.ts.map +1 -1
  33. package/dist/cli/commands/mfe-publish.js +7 -1
  34. package/dist/cli/commands/mfe-publish.js.map +1 -1
  35. package/dist/cli/commands/prepare-package.d.ts +0 -1
  36. package/dist/cli/commands/prepare-package.d.ts.map +1 -1
  37. package/dist/cli/commands/prepare-package.js +0 -3
  38. package/dist/cli/commands/prepare-package.js.map +1 -1
  39. package/dist/cli/commands/review/review.js.map +1 -1
  40. package/dist/cli/commands/review/rules/require-one-anvil-uikit-contrib-version.js.map +1 -1
  41. package/dist/cli/commands/review/rules/require-one-collection-version.js.map +1 -1
  42. package/dist/cli/commands/review/rules/require-one-uikit-version.js.map +1 -1
  43. package/dist/cli/commands/run-task.d.ts +0 -1
  44. package/dist/cli/commands/run-task.d.ts.map +1 -1
  45. package/dist/cli/commands/run-task.js +0 -3
  46. package/dist/cli/commands/run-task.js.map +1 -1
  47. package/dist/cli/commands/start.d.ts +0 -8
  48. package/dist/cli/commands/start.d.ts.map +1 -1
  49. package/dist/cli/commands/start.js +28 -16
  50. package/dist/cli/commands/start.js.map +1 -1
  51. package/dist/cli/commands/styles-check.d.ts +0 -1
  52. package/dist/cli/commands/styles-check.d.ts.map +1 -1
  53. package/dist/cli/commands/styles-check.js +40 -99
  54. package/dist/cli/commands/styles-check.js.map +1 -1
  55. package/dist/cli/commands/tests.js.map +1 -1
  56. package/dist/cli/commands/types.d.ts +1 -1
  57. package/dist/cli/commands/types.d.ts.map +1 -1
  58. package/dist/cli/commands/upload-sourcemaps.d.ts +22 -0
  59. package/dist/cli/commands/upload-sourcemaps.d.ts.map +1 -0
  60. package/dist/cli/commands/upload-sourcemaps.js +179 -0
  61. package/dist/cli/commands/upload-sourcemaps.js.map +1 -0
  62. package/dist/cli/tasks/cli-task.js.map +1 -1
  63. package/dist/cli/tasks/swc-compile-package.js.map +1 -1
  64. package/dist/cli/tasks/task.js.map +1 -1
  65. package/dist/cli/tasks/tsc-compile-package.js.map +1 -1
  66. package/dist/cli/tasks/tsc-compile.js.map +1 -1
  67. package/dist/cli/utils/bundle.d.ts +4 -1
  68. package/dist/cli/utils/bundle.d.ts.map +1 -1
  69. package/dist/cli/utils/bundle.js +67 -74
  70. package/dist/cli/utils/bundle.js.map +1 -1
  71. package/dist/cli/utils/cli-os.js +2 -2
  72. package/dist/cli/utils/cli-os.js.map +1 -1
  73. package/dist/cli/utils/ts-config.js.map +1 -1
  74. package/dist/utils/find-packages.d.ts.map +1 -1
  75. package/dist/utils/find-packages.js +3 -4
  76. package/dist/utils/find-packages.js.map +1 -1
  77. package/dist/utils/find-up.d.ts +2 -0
  78. package/dist/utils/find-up.d.ts.map +1 -0
  79. package/dist/utils/find-up.js +28 -0
  80. package/dist/utils/find-up.js.map +1 -0
  81. package/dist/utils/get-configuration.d.ts +3 -1
  82. package/dist/utils/get-configuration.d.ts.map +1 -1
  83. package/dist/utils/get-configuration.js +1 -0
  84. package/dist/utils/get-configuration.js.map +1 -1
  85. package/dist/utils/index.d.ts +1 -0
  86. package/dist/utils/index.d.ts.map +1 -1
  87. package/dist/utils/index.js +1 -0
  88. package/dist/utils/index.js.map +1 -1
  89. package/dist/utils/log.js.map +1 -1
  90. package/dist/webpack/configs/cache-config.d.ts +6 -0
  91. package/dist/webpack/configs/cache-config.d.ts.map +1 -0
  92. package/dist/webpack/configs/cache-config.js +52 -0
  93. package/dist/webpack/configs/cache-config.js.map +1 -0
  94. package/dist/webpack/configs/dev-server-config.js +1 -1
  95. package/dist/webpack/configs/dev-server-config.js.map +1 -1
  96. package/dist/webpack/configs/entry.config.d.ts.map +1 -1
  97. package/dist/webpack/configs/entry.config.js +15 -6
  98. package/dist/webpack/configs/entry.config.js.map +1 -1
  99. package/dist/webpack/configs/externals-config.d.ts.map +1 -1
  100. package/dist/webpack/configs/externals-config.js +6 -2
  101. package/dist/webpack/configs/externals-config.js.map +1 -1
  102. package/dist/webpack/configs/index.d.ts +1 -0
  103. package/dist/webpack/configs/index.d.ts.map +1 -1
  104. package/dist/webpack/configs/index.js +1 -0
  105. package/dist/webpack/configs/index.js.map +1 -1
  106. package/dist/webpack/configs/optimization-config.d.ts.map +1 -1
  107. package/dist/webpack/configs/optimization-config.js +7 -11
  108. package/dist/webpack/configs/optimization-config.js.map +1 -1
  109. package/dist/webpack/configs/output-config.d.ts.map +1 -1
  110. package/dist/webpack/configs/output-config.js +25 -4
  111. package/dist/webpack/configs/output-config.js.map +1 -1
  112. package/dist/webpack/configs/plugins/assets-manifest-plugin.d.ts +6 -0
  113. package/dist/webpack/configs/plugins/assets-manifest-plugin.d.ts.map +1 -1
  114. package/dist/webpack/configs/plugins/assets-manifest-plugin.js +50 -8
  115. package/dist/webpack/configs/plugins/assets-manifest-plugin.js.map +1 -1
  116. package/dist/webpack/configs/plugins/bundle-analyser-plugin.d.ts.map +1 -1
  117. package/dist/webpack/configs/plugins/bundle-analyser-plugin.js +3 -7
  118. package/dist/webpack/configs/plugins/bundle-analyser-plugin.js.map +1 -1
  119. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.d.ts.map +1 -1
  120. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js +3 -2
  121. package/dist/webpack/configs/plugins/define-exposed-dependencies-plugin.js.map +1 -1
  122. package/dist/webpack/configs/plugins/define-exposed-instance-dependencies-plugin.js +2 -2
  123. package/dist/webpack/configs/plugins/define-exposed-instance-dependencies-plugin.js.map +1 -1
  124. package/dist/webpack/configs/plugins/html-plugin.d.ts +1 -1
  125. package/dist/webpack/configs/plugins/html-plugin.d.ts.map +1 -1
  126. package/dist/webpack/configs/plugins/html-plugin.js +2 -3
  127. package/dist/webpack/configs/plugins/html-plugin.js.map +1 -1
  128. package/dist/webpack/configs/plugins/html-tags-plugin.d.ts +4 -0
  129. package/dist/webpack/configs/plugins/html-tags-plugin.d.ts.map +1 -0
  130. package/dist/webpack/configs/plugins/html-tags-plugin.js +49 -0
  131. package/dist/webpack/configs/plugins/html-tags-plugin.js.map +1 -0
  132. package/dist/webpack/configs/plugins/index.d.ts +2 -0
  133. package/dist/webpack/configs/plugins/index.d.ts.map +1 -1
  134. package/dist/webpack/configs/plugins/index.js +2 -0
  135. package/dist/webpack/configs/plugins/index.js.map +1 -1
  136. package/dist/webpack/configs/plugins/remove-empty-scripts-plugin.d.ts +4 -0
  137. package/dist/webpack/configs/plugins/remove-empty-scripts-plugin.d.ts.map +1 -0
  138. package/dist/webpack/configs/plugins/remove-empty-scripts-plugin.js +25 -0
  139. package/dist/webpack/configs/plugins/remove-empty-scripts-plugin.js.map +1 -0
  140. package/dist/webpack/configs/plugins/virtual-modules-plugin.d.ts +1 -0
  141. package/dist/webpack/configs/plugins/virtual-modules-plugin.d.ts.map +1 -1
  142. package/dist/webpack/configs/plugins/virtual-modules-plugin.js +23 -14
  143. package/dist/webpack/configs/plugins/virtual-modules-plugin.js.map +1 -1
  144. package/dist/webpack/configs/plugins-config.d.ts.map +1 -1
  145. package/dist/webpack/configs/plugins-config.js +2 -0
  146. package/dist/webpack/configs/plugins-config.js.map +1 -1
  147. package/dist/webpack/configs/rules/css-rules.d.ts.map +1 -1
  148. package/dist/webpack/configs/rules/css-rules.js +13 -18
  149. package/dist/webpack/configs/rules/css-rules.js.map +1 -1
  150. package/dist/webpack/configs/utils/get-bundle-type.d.ts +3 -0
  151. package/dist/webpack/configs/utils/get-bundle-type.d.ts.map +1 -0
  152. package/dist/webpack/configs/utils/get-bundle-type.js +24 -0
  153. package/dist/webpack/configs/utils/get-bundle-type.js.map +1 -0
  154. package/dist/webpack/configs/utils/index.d.ts +1 -0
  155. package/dist/webpack/configs/utils/index.d.ts.map +1 -1
  156. package/dist/webpack/configs/utils/index.js +1 -0
  157. package/dist/webpack/configs/utils/index.js.map +1 -1
  158. package/dist/webpack/create-webpack-config.d.ts.map +1 -1
  159. package/dist/webpack/create-webpack-config.js +37 -48
  160. package/dist/webpack/create-webpack-config.js.map +1 -1
  161. package/dist/webpack/types.d.ts +4 -0
  162. package/dist/webpack/types.d.ts.map +1 -1
  163. package/dist/webpack/utils/index.d.ts +1 -0
  164. package/dist/webpack/utils/index.d.ts.map +1 -1
  165. package/dist/webpack/utils/index.js +1 -0
  166. package/dist/webpack/utils/index.js.map +1 -1
  167. package/dist/webpack/utils/stringify-config.d.ts +2 -0
  168. package/dist/webpack/utils/stringify-config.d.ts.map +1 -0
  169. package/dist/webpack/utils/stringify-config.js +35 -0
  170. package/dist/webpack/utils/stringify-config.js.map +1 -0
  171. package/package.json +17 -15
  172. package/src/cli/commands/__tests__/build.test.ts +19 -2
  173. package/src/cli/commands/__tests__/bundle-package.test.ts +29 -8
  174. package/src/cli/commands/__tests__/clean.test.ts +2 -0
  175. package/src/cli/commands/__tests__/get-user-commands.test.ts +1 -1
  176. package/src/cli/commands/__tests__/mfe-package-publish.test.ts +91 -15
  177. package/src/cli/commands/__tests__/mfe-publish.test.ts +2 -0
  178. package/src/cli/commands/__tests__/start.test.ts +15 -1
  179. package/src/cli/commands/__tests__/styles-check.test.ts +27 -80
  180. package/src/cli/commands/__tests__/upload-sourcemaps.test.ts +127 -0
  181. package/src/cli/commands/build.ts +33 -17
  182. package/src/cli/commands/bundle-package.ts +10 -19
  183. package/src/cli/commands/clean.ts +1 -1
  184. package/src/cli/commands/eslint.ts +0 -4
  185. package/src/cli/commands/get-command.ts +2 -0
  186. package/src/cli/commands/get-user-commands.ts +1 -1
  187. package/src/cli/commands/mfe-package-clean.ts +2 -6
  188. package/src/cli/commands/mfe-package-publish.ts +104 -70
  189. package/src/cli/commands/mfe-publish.ts +8 -5
  190. package/src/cli/commands/prepare-package.ts +0 -4
  191. package/src/cli/commands/run-task.ts +0 -4
  192. package/src/cli/commands/start.ts +22 -5
  193. package/src/cli/commands/styles-check.ts +28 -131
  194. package/src/cli/commands/types.ts +1 -1
  195. package/src/cli/commands/upload-sourcemaps.ts +108 -0
  196. package/src/cli/utils/__tests__/bundle.test.ts +119 -9
  197. package/src/cli/utils/__tests__/cli-os.test.ts +2 -2
  198. package/src/cli/utils/__tests__/compile.test.ts +2 -0
  199. package/src/cli/utils/__tests__/type-check.test.ts +2 -0
  200. package/src/cli/utils/bundle.ts +76 -54
  201. package/src/cli/utils/cli-os.ts +2 -2
  202. package/src/utils/__tests__/get-configuration.test.ts +1 -1
  203. package/src/utils/find-packages.ts +3 -5
  204. package/src/utils/find-up.ts +12 -0
  205. package/src/utils/get-configuration.ts +2 -0
  206. package/src/utils/index.ts +1 -0
  207. package/src/webpack/__mocks__/style-rules.ts +1 -1
  208. package/src/webpack/__tests__/create-webpack-config-shared-dependencies.test.ts +274 -45
  209. package/src/webpack/__tests__/create-webpack-config-web-component.test.ts +25 -1
  210. package/src/webpack/__tests__/create-webpack-config.test.ts +9 -57
  211. package/src/webpack/configs/cache-config.ts +37 -0
  212. package/src/webpack/configs/dev-server-config.ts +1 -1
  213. package/src/webpack/configs/entry.config.ts +18 -8
  214. package/src/webpack/configs/externals-config.ts +7 -2
  215. package/src/webpack/configs/index.ts +1 -0
  216. package/src/webpack/configs/optimization-config.ts +7 -11
  217. package/src/webpack/configs/output-config.ts +23 -7
  218. package/src/webpack/configs/plugins/assets-manifest-plugin.ts +46 -10
  219. package/src/webpack/configs/plugins/bundle-analyser-plugin.ts +1 -6
  220. package/src/webpack/configs/plugins/define-exposed-dependencies-plugin.ts +3 -2
  221. package/src/webpack/configs/plugins/define-exposed-instance-dependencies-plugin.ts +2 -2
  222. package/src/webpack/configs/plugins/html-plugin.ts +2 -3
  223. package/src/webpack/configs/plugins/html-tags-plugin.ts +28 -0
  224. package/src/webpack/configs/plugins/index.ts +2 -0
  225. package/src/webpack/configs/plugins/remove-empty-scripts-plugin.ts +11 -0
  226. package/src/webpack/configs/plugins/virtual-modules-plugin.ts +27 -16
  227. package/src/webpack/configs/plugins-config.ts +4 -0
  228. package/src/webpack/configs/rules/css-rules.ts +19 -20
  229. package/src/webpack/configs/utils/get-bundle-type.ts +22 -0
  230. package/src/webpack/configs/utils/index.ts +1 -0
  231. package/src/webpack/create-webpack-config.ts +46 -52
  232. package/src/webpack/types.ts +4 -0
  233. package/src/webpack/utils/index.ts +1 -0
  234. package/src/webpack/utils/stringify-config.ts +19 -0
@@ -8,22 +8,16 @@ Object.defineProperty(exports, "cssRules", {
8
8
  return cssRules;
9
9
  }
10
10
  });
11
- const _minicssextractplugin = /*#__PURE__*/ _interop_require_default(require("mini-css-extract-plugin"));
11
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
12
+ const _utils = require("../../../utils");
12
13
  const _loaders = require("../loaders");
13
14
  function _interop_require_default(obj) {
14
15
  return obj && obj.__esModule ? obj : {
15
16
  default: obj
16
17
  };
17
18
  }
18
- const sharedCssDependencies = [
19
- /design-system\.css$/,
20
- /@servicetitan[\\/]anvil2[\\/].*\.css$/
21
- ];
22
19
  function cssRules(context) {
23
- const { isExposeSharedDependencies, isProduction } = context;
24
- const excludeCallback = (path)=>{
25
- return path.endsWith('.module.css') || isExposeSharedDependencies && sharedCssDependencies.some((regex)=>regex.test(path));
26
- };
20
+ const { emitExposedDependencies, isExposeSharedDependencies, sharedDependencies } = context;
27
21
  const result = [
28
22
  {
29
23
  test: /\.module.css$/,
@@ -38,21 +32,22 @@ function cssRules(context) {
38
32
  },
39
33
  {
40
34
  test: /(\.css)$/,
41
- exclude: isProduction ? /\.module.css$/ : excludeCallback,
35
+ exclude: /\.module.css$/,
42
36
  use: [
43
37
  (0, _loaders.styleLoader)(context),
44
38
  (0, _loaders.cssLoader)(context)
45
39
  ]
46
40
  }
47
41
  ];
48
- if (isExposeSharedDependencies && !isProduction) {
49
- result.push(...sharedCssDependencies.map((test)=>({
50
- test,
51
- use: [
52
- _minicssextractplugin.default.loader,
53
- (0, _loaders.cssLoader)(context)
54
- ]
55
- })));
42
+ if (isExposeSharedDependencies && !!sharedDependencies['@servicetitan/design-system'] && !emitExposedDependencies) {
43
+ result.push({
44
+ test: /[\\/]design-system.css$/,
45
+ use ({ issuer }) {
46
+ const filename = _path.default.basename(issuer, '.js');
47
+ _utils.log.error(`Error: do not import design-system.css in "${filename}"; it is automatically included as a shared dependency`);
48
+ process.exit(1);
49
+ }
50
+ });
56
51
  }
57
52
  return result;
58
53
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/webpack/configs/rules/css-rules.ts"],"sourcesContent":["import MiniCssExtractPlugin from 'mini-css-extract-plugin';\nimport { RuleSetRule } from 'webpack';\nimport { cssLoader, styleLoader } from '../loaders';\nimport { Context } from '../types';\n\nconst sharedCssDependencies = [/design-system\\.css$/, /@servicetitan[\\\\/]anvil2[\\\\/].*\\.css$/];\n\nexport function cssRules(context: Context): RuleSetRule[] {\n const { isExposeSharedDependencies, isProduction } = context;\n\n const excludeCallback = (path: string) => {\n return (\n path.endsWith('.module.css') ||\n (isExposeSharedDependencies && sharedCssDependencies.some(regex => regex.test(path)))\n );\n };\n\n const result: RuleSetRule[] = [\n {\n test: /\\.module.css$/,\n use: [styleLoader(context, { esModule: true }), cssLoader(context, { esModule: true })],\n },\n {\n test: /(\\.css)$/,\n exclude: isProduction ? /\\.module.css$/ : excludeCallback,\n use: [styleLoader(context), cssLoader(context)],\n },\n ];\n\n if (isExposeSharedDependencies && !isProduction) {\n result.push(\n ...sharedCssDependencies.map(test => ({\n test,\n use: [MiniCssExtractPlugin.loader, cssLoader(context)],\n }))\n );\n }\n\n return result;\n}\n"],"names":["cssRules","sharedCssDependencies","context","isExposeSharedDependencies","isProduction","excludeCallback","path","endsWith","some","regex","test","result","use","styleLoader","esModule","cssLoader","exclude","push","map","MiniCssExtractPlugin","loader"],"mappings":";;;;+BAOgBA;;;eAAAA;;;6EAPiB;yBAEM;;;;;;AAGvC,MAAMC,wBAAwB;IAAC;IAAuB;CAAwC;AAEvF,SAASD,SAASE,OAAgB;IACrC,MAAM,EAAEC,0BAA0B,EAAEC,YAAY,EAAE,GAAGF;IAErD,MAAMG,kBAAkB,CAACC;QACrB,OACIA,KAAKC,QAAQ,CAAC,kBACbJ,8BAA8BF,sBAAsBO,IAAI,CAACC,CAAAA,QAASA,MAAMC,IAAI,CAACJ;IAEtF;IAEA,MAAMK,SAAwB;QAC1B;YACID,MAAM;YACNE,KAAK;gBAACC,IAAAA,oBAAW,EAACX,SAAS;oBAAEY,UAAU;gBAAK;gBAAIC,IAAAA,kBAAS,EAACb,SAAS;oBAAEY,UAAU;gBAAK;aAAG;QAC3F;QACA;YACIJ,MAAM;YACNM,SAASZ,eAAe,kBAAkBC;YAC1CO,KAAK;gBAACC,IAAAA,oBAAW,EAACX;gBAAUa,IAAAA,kBAAS,EAACb;aAAS;QACnD;KACH;IAED,IAAIC,8BAA8B,CAACC,cAAc;QAC7CO,OAAOM,IAAI,IACJhB,sBAAsBiB,GAAG,CAACR,CAAAA,OAAS,CAAA;gBAClCA;gBACAE,KAAK;oBAACO,6BAAoB,CAACC,MAAM;oBAAEL,IAAAA,kBAAS,EAACb;iBAAS;YAC1D,CAAA;IAER;IAEA,OAAOS;AACX"}
1
+ {"version":3,"sources":["../../../../src/webpack/configs/rules/css-rules.ts"],"sourcesContent":["import path from 'path';\nimport { RuleSetRule } from 'webpack';\nimport { log } from '../../../utils';\nimport { cssLoader, styleLoader } from '../loaders';\nimport { Context } from '../types';\n\nexport function cssRules(context: Context): RuleSetRule[] {\n const { emitExposedDependencies, isExposeSharedDependencies, sharedDependencies } = context;\n const result: RuleSetRule[] = [\n {\n test: /\\.module.css$/,\n use: [styleLoader(context, { esModule: true }), cssLoader(context, { esModule: true })],\n },\n {\n test: /(\\.css)$/,\n exclude: /\\.module.css$/,\n use: [styleLoader(context), cssLoader(context)],\n },\n ];\n\n if (\n isExposeSharedDependencies &&\n !!sharedDependencies['@servicetitan/design-system'] &&\n !emitExposedDependencies\n ) {\n result.push({\n test: /[\\\\/]design-system.css$/,\n use({ issuer }) {\n const filename = path.basename(issuer, '.js');\n log.error(\n `Error: do not import design-system.css in \"${filename}\"; it is automatically included as a shared dependency`\n );\n process.exit(1);\n },\n });\n }\n\n return result;\n}\n"],"names":["cssRules","context","emitExposedDependencies","isExposeSharedDependencies","sharedDependencies","result","test","use","styleLoader","esModule","cssLoader","exclude","push","issuer","filename","path","basename","log","error","process","exit"],"mappings":";;;;+BAMgBA;;;eAAAA;;;6DANC;uBAEG;yBACmB;;;;;;AAGhC,SAASA,SAASC,OAAgB;IACrC,MAAM,EAAEC,uBAAuB,EAAEC,0BAA0B,EAAEC,kBAAkB,EAAE,GAAGH;IACpF,MAAMI,SAAwB;QAC1B;YACIC,MAAM;YACNC,KAAK;gBAACC,IAAAA,oBAAW,EAACP,SAAS;oBAAEQ,UAAU;gBAAK;gBAAIC,IAAAA,kBAAS,EAACT,SAAS;oBAAEQ,UAAU;gBAAK;aAAG;QAC3F;QACA;YACIH,MAAM;YACNK,SAAS;YACTJ,KAAK;gBAACC,IAAAA,oBAAW,EAACP;gBAAUS,IAAAA,kBAAS,EAACT;aAAS;QACnD;KACH;IAED,IACIE,8BACA,CAAC,CAACC,kBAAkB,CAAC,8BAA8B,IACnD,CAACF,yBACH;QACEG,OAAOO,IAAI,CAAC;YACRN,MAAM;YACNC,KAAI,EAAEM,MAAM,EAAE;gBACV,MAAMC,WAAWC,aAAI,CAACC,QAAQ,CAACH,QAAQ;gBACvCI,UAAG,CAACC,KAAK,CACL,CAAC,2CAA2C,EAAEJ,SAAS,sDAAsD,CAAC;gBAElHK,QAAQC,IAAI,CAAC;YACjB;QACJ;IACJ;IAEA,OAAOf;AACX"}
@@ -0,0 +1,3 @@
1
+ import { Context } from '../types';
2
+ export declare function getBundleType({ embed, emitExposedDependencies, headless, isExposeSharedDependencies, isWebComponent, }: Context): "full" | "light" | "headless" | "shared" | undefined;
3
+ //# sourceMappingURL=get-bundle-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-bundle-type.d.ts","sourceRoot":"","sources":["../../../../src/webpack/configs/utils/get-bundle-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,wBAAgB,aAAa,CAAC,EAC1B,KAAK,EACL,uBAAuB,EACvB,QAAQ,EACR,0BAA0B,EAC1B,cAAc,GACjB,EAAE,OAAO,wDAaT"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "getBundleType", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return getBundleType;
9
+ }
10
+ });
11
+ function getBundleType({ embed, emitExposedDependencies, headless, isExposeSharedDependencies, isWebComponent }) {
12
+ if (isExposeSharedDependencies && emitExposedDependencies) {
13
+ return 'shared';
14
+ }
15
+ if (isWebComponent) {
16
+ if (headless) {
17
+ return 'headless';
18
+ }
19
+ return embed ? 'light' : 'full';
20
+ }
21
+ return undefined;
22
+ }
23
+
24
+ //# sourceMappingURL=get-bundle-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/webpack/configs/utils/get-bundle-type.ts"],"sourcesContent":["import { Context } from '../types';\n\nexport function getBundleType({\n embed,\n emitExposedDependencies,\n headless,\n isExposeSharedDependencies,\n isWebComponent,\n}: Context) {\n if (isExposeSharedDependencies && emitExposedDependencies) {\n return 'shared';\n }\n\n if (isWebComponent) {\n if (headless) {\n return 'headless';\n }\n return embed ? 'light' : 'full';\n }\n\n return undefined;\n}\n"],"names":["getBundleType","embed","emitExposedDependencies","headless","isExposeSharedDependencies","isWebComponent","undefined"],"mappings":";;;;+BAEgBA;;;eAAAA;;;AAAT,SAASA,cAAc,EAC1BC,KAAK,EACLC,uBAAuB,EACvBC,QAAQ,EACRC,0BAA0B,EAC1BC,cAAc,EACR;IACN,IAAID,8BAA8BF,yBAAyB;QACvD,OAAO;IACX;IAEA,IAAIG,gBAAgB;QAChB,IAAIF,UAAU;YACV,OAAO;QACX;QACA,OAAOF,QAAQ,UAAU;IAC7B;IAEA,OAAOK;AACX"}
@@ -1,2 +1,3 @@
1
1
  export * from './generate-metadata';
2
+ export * from './get-bundle-type';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/webpack/configs/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/webpack/configs/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
5
  _export_star(require("./generate-metadata"), exports);
6
+ _export_star(require("./get-bundle-type"), exports);
6
7
  function _export_star(from, to) {
7
8
  Object.keys(from).forEach(function(k) {
8
9
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/webpack/configs/utils/index.ts"],"sourcesContent":["export * from './generate-metadata';\n"],"names":[],"mappings":";;;;qBAAc"}
1
+ {"version":3,"sources":["../../../../src/webpack/configs/utils/index.ts"],"sourcesContent":["export * from './generate-metadata';\nexport * from './get-bundle-type';\n"],"names":[],"mappings":";;;;qBAAc;qBACA"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-webpack-config.d.ts","sourceRoot":"","sources":["../../src/webpack/create-webpack-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA+BxC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG7C,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,OAAY,GAAG,aAAa,CAqD9F"}
1
+ {"version":3,"file":"create-webpack-config.d.ts","sourceRoot":"","sources":["../../src/webpack/create-webpack-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAgCxC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG7C,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,GAAE,OAAY,GAAG,aAAa,CAmC9F"}
@@ -15,32 +15,16 @@ const _utils1 = require("../utils");
15
15
  const _configs = require("./configs");
16
16
  const _utils2 = require("./utils");
17
17
  function createWebpackConfig(overrides, options = {}) {
18
- const { configuration = {} } = overrides;
19
- const { source, destination } = (0, _utils1.getFolders)();
20
- const { minify } = (0, _utils1.getWebpackConfiguration)();
21
- const packageData = (0, _utils1.getPackageData)();
22
- const sharedDependencies = (0, _utils1.loadSharedDependencies)(packageData.dependencies, packageData.sharedDependencies);
23
- var _options_codeCoverage;
24
- const context = {
25
- codeCoverage: (_options_codeCoverage = options.codeCoverage) !== null && _options_codeCoverage !== void 0 ? _options_codeCoverage : !!_yargs.argv['code-coverage'],
26
- destination,
27
- isCustomStyleRules: (0, _utils1.isCustomStyleRules)(),
28
- isExposeSharedDependencies: (0, _utils1.isExposeSharedDependencies)(),
29
- isLegacyRoot: (0, _utils1.isLegacyRoot)(),
30
- isProduction: configuration.mode === 'production',
31
- isWebComponent: (0, _utils1.isWebComponent)(),
32
- minify,
33
- name: '',
34
- ...options,
35
- packageData,
36
- sharedDependencies,
37
- source
38
- };
18
+ const context = getContext(overrides, options);
39
19
  if (context.isWebComponent && isCalledFromCustomWebpackConfigFile()) {
40
20
  throw new Error(WEB_COMPONENT_CONFIG_ERROR);
41
21
  }
42
- const result = (0, _webpackmerge.merge)([
22
+ if (options.emitExposedDependencies && !context.isExposeSharedDependencies) {
23
+ throw new Error('package does not expose shared dependencies');
24
+ }
25
+ const configs = [
43
26
  _configs.amdConfig,
27
+ _configs.cacheConfig,
44
28
  _configs.devServerConfig,
45
29
  _configs.devtoolConfig,
46
30
  _configs.entryConfig,
@@ -52,13 +36,41 @@ function createWebpackConfig(overrides, options = {}) {
52
36
  _configs.resolveConfig,
53
37
  _configs.statsConfig,
54
38
  _configs.watchOptionsConfig
55
- ].reduce((result, fn)=>({
39
+ ];
40
+ var _overrides_configuration;
41
+ const result = (0, _webpackmerge.merge)(configs.reduce((result, fn)=>({
56
42
  ...result,
57
43
  ...fn(context, overrides)
58
- }), {}), configuration);
59
- /* istanbul ignore next: debug only */ _utils1.log.debug('create-webpack-config', ()=>stringify(result));
44
+ }), {}), (_overrides_configuration = overrides.configuration) !== null && _overrides_configuration !== void 0 ? _overrides_configuration : {});
45
+ /* istanbul ignore next: debug only */ _utils1.log.debug('create-webpack-config', ()=>(0, _utils2.stringifyConfig)(result));
60
46
  return result;
61
47
  }
48
+ function getContext({ configuration = {} }, options) {
49
+ const { source, destination } = (0, _utils1.getFolders)();
50
+ const { minify } = (0, _utils1.getWebpackConfiguration)();
51
+ const packageData = (0, _utils1.getPackageData)();
52
+ const sharedDependencies = (0, _utils1.loadSharedDependencies)(packageData.dependencies, packageData.sharedDependencies);
53
+ const args = _yargs.argv;
54
+ var _options_emitExposedDependencies;
55
+ const emitExposedDependencies = (_options_emitExposedDependencies = options.emitExposedDependencies) !== null && _options_emitExposedDependencies !== void 0 ? _options_emitExposedDependencies : !!args['exposed-dependencies'];
56
+ var _options_codeCoverage;
57
+ return {
58
+ codeCoverage: (_options_codeCoverage = options.codeCoverage) !== null && _options_codeCoverage !== void 0 ? _options_codeCoverage : !!args['code-coverage'],
59
+ destination,
60
+ emitExposedDependencies,
61
+ isCustomStyleRules: !emitExposedDependencies && (0, _utils1.isCustomStyleRules)(),
62
+ isExposeSharedDependencies: (0, _utils1.isExposeSharedDependencies)(),
63
+ isLegacyRoot: (0, _utils1.isLegacyRoot)(),
64
+ isProduction: configuration.mode === 'production',
65
+ isWebComponent: (0, _utils1.isWebComponent)(),
66
+ minify,
67
+ name: '',
68
+ ...options,
69
+ packageData,
70
+ sharedDependencies,
71
+ source
72
+ };
73
+ }
62
74
  function isCalledFromCustomWebpackConfigFile() {
63
75
  const callerFileName = (0, _utils2.getCallerFile)();
64
76
  return [
@@ -66,29 +78,6 @@ function isCalledFromCustomWebpackConfigFile() {
66
78
  _utils.webpackProdConfigFileName
67
79
  ].some((configFileName)=>callerFileName.includes(configFileName));
68
80
  }
69
- /* istanbul ignore next: debug only */ function stringify(configuration) {
70
- function replacer(key, value) {
71
- if (typeof value === 'function') {
72
- var _value_name;
73
- return `Function(${(_value_name = value.name) !== null && _value_name !== void 0 ? _value_name : ''})`;
74
- }
75
- if (value instanceof RegExp) {
76
- return String(value);
77
- }
78
- if (key === 'plugins' && Array.isArray(value)) {
79
- return value.map((plugin)=>{
80
- var _plugin_constructor;
81
- var _plugin_constructor_name;
82
- const name = (_plugin_constructor_name = (_plugin_constructor = plugin.constructor) === null || _plugin_constructor === void 0 ? void 0 : _plugin_constructor.name) !== null && _plugin_constructor_name !== void 0 ? _plugin_constructor_name : plugin.name;
83
- return name ? {
84
- [name]: plugin
85
- } : plugin;
86
- });
87
- }
88
- return value;
89
- }
90
- return JSON.stringify(configuration, replacer, 2);
91
- }
92
81
  const WEB_COMPONENT_CONFIG_ERROR = `
93
82
  You cannot call createWebpackConfig in a custom webpack config file in a web component (MFE) project.
94
83
  Export webpack configuration itself as a default export from the config file instead.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/webpack/create-webpack-config.ts"],"sourcesContent":["import { Configuration } from 'webpack';\nimport { merge } from 'webpack-merge';\nimport { argv, Arguments } from 'yargs';\n\nimport { webpackDevConfigFileName, webpackProdConfigFileName } from '../cli/utils';\nimport {\n getFolders,\n getPackageData,\n getWebpackConfiguration,\n isCustomStyleRules,\n isExposeSharedDependencies,\n isLegacyRoot,\n isWebComponent,\n loadSharedDependencies,\n log,\n} from '../utils';\nimport {\n Context,\n amdConfig,\n devServerConfig,\n devtoolConfig,\n entryConfig,\n externalsConfig,\n moduleConfig,\n optimizationConfig,\n outputConfig,\n pluginsConfig,\n resolveConfig,\n statsConfig,\n watchOptionsConfig,\n} from './configs';\nimport { Options, Overrides } from './types';\nimport { getCallerFile } from './utils';\n\nexport function createWebpackConfig(overrides: Overrides, options: Options = {}): Configuration {\n const { configuration = {} } = overrides;\n\n const { source, destination } = getFolders();\n const { minify } = getWebpackConfiguration();\n const packageData = getPackageData();\n const sharedDependencies = loadSharedDependencies(\n packageData.dependencies,\n packageData.sharedDependencies\n );\n\n const context: Context = {\n codeCoverage: options.codeCoverage ?? !!(argv as Arguments)['code-coverage'],\n destination,\n isCustomStyleRules: isCustomStyleRules(),\n isExposeSharedDependencies: isExposeSharedDependencies(),\n isLegacyRoot: isLegacyRoot(),\n isProduction: configuration.mode === 'production',\n isWebComponent: isWebComponent(),\n minify,\n name: '',\n ...options,\n packageData,\n sharedDependencies,\n source,\n };\n\n if (context.isWebComponent && isCalledFromCustomWebpackConfigFile()) {\n throw new Error(WEB_COMPONENT_CONFIG_ERROR);\n }\n\n const result = merge(\n [\n amdConfig,\n devServerConfig,\n devtoolConfig,\n entryConfig,\n externalsConfig,\n moduleConfig,\n optimizationConfig,\n outputConfig,\n pluginsConfig,\n resolveConfig,\n statsConfig,\n watchOptionsConfig,\n ].reduce((result, fn) => ({ ...result, ...fn(context, overrides) }), {}),\n configuration\n );\n\n /* istanbul ignore next: debug only */\n log.debug('create-webpack-config', () => stringify(result));\n\n return result;\n}\n\nfunction isCalledFromCustomWebpackConfigFile() {\n const callerFileName = getCallerFile();\n return [webpackDevConfigFileName, webpackProdConfigFileName].some(configFileName =>\n callerFileName.includes(configFileName)\n );\n}\n\n/* istanbul ignore next: debug only */\nfunction stringify(configuration: any) {\n function replacer(key: string, value: any) {\n if (typeof value === 'function') {\n return `Function(${value.name ?? ''})`;\n }\n if (value instanceof RegExp) {\n return String(value);\n }\n if (key === 'plugins' && Array.isArray(value)) {\n return value.map(plugin => {\n const name = plugin.constructor?.name ?? plugin.name;\n return name ? { [name]: plugin } : plugin;\n });\n }\n return value;\n }\n return JSON.stringify(configuration, replacer, 2);\n}\n\nconst WEB_COMPONENT_CONFIG_ERROR = `\n You cannot call createWebpackConfig in a custom webpack config file in a web component (MFE) project.\n Export webpack configuration itself as a default export from the config file instead.\n`\n .replace(/\\n\\s*/g, ' ')\n .trim();\n"],"names":["createWebpackConfig","overrides","options","configuration","source","destination","getFolders","minify","getWebpackConfiguration","packageData","getPackageData","sharedDependencies","loadSharedDependencies","dependencies","context","codeCoverage","argv","isCustomStyleRules","isExposeSharedDependencies","isLegacyRoot","isProduction","mode","isWebComponent","name","isCalledFromCustomWebpackConfigFile","Error","WEB_COMPONENT_CONFIG_ERROR","result","merge","amdConfig","devServerConfig","devtoolConfig","entryConfig","externalsConfig","moduleConfig","optimizationConfig","outputConfig","pluginsConfig","resolveConfig","statsConfig","watchOptionsConfig","reduce","fn","log","debug","stringify","callerFileName","getCallerFile","webpackDevConfigFileName","webpackProdConfigFileName","some","configFileName","includes","replacer","key","value","RegExp","String","Array","isArray","map","plugin","constructor","JSON","replace","trim"],"mappings":";;;;+BAkCgBA;;;eAAAA;;;8BAjCM;uBACU;uBAEoC;wBAW7D;yBAeA;wBAEuB;AAEvB,SAASA,oBAAoBC,SAAoB,EAAEC,UAAmB,CAAC,CAAC;IAC3E,MAAM,EAAEC,gBAAgB,CAAC,CAAC,EAAE,GAAGF;IAE/B,MAAM,EAAEG,MAAM,EAAEC,WAAW,EAAE,GAAGC,IAAAA,kBAAU;IAC1C,MAAM,EAAEC,MAAM,EAAE,GAAGC,IAAAA,+BAAuB;IAC1C,MAAMC,cAAcC,IAAAA,sBAAc;IAClC,MAAMC,qBAAqBC,IAAAA,8BAAsB,EAC7CH,YAAYI,YAAY,EACxBJ,YAAYE,kBAAkB;QAIhBT;IADlB,MAAMY,UAAmB;QACrBC,cAAcb,CAAAA,wBAAAA,QAAQa,YAAY,cAApBb,mCAAAA,wBAAwB,CAAC,CAAC,AAACc,WAAI,AAAc,CAAC,gBAAgB;QAC5EX;QACAY,oBAAoBA,IAAAA,0BAAkB;QACtCC,4BAA4BA,IAAAA,kCAA0B;QACtDC,cAAcA,IAAAA,oBAAY;QAC1BC,cAAcjB,cAAckB,IAAI,KAAK;QACrCC,gBAAgBA,IAAAA,sBAAc;QAC9Bf;QACAgB,MAAM;QACN,GAAGrB,OAAO;QACVO;QACAE;QACAP;IACJ;IAEA,IAAIU,QAAQQ,cAAc,IAAIE,uCAAuC;QACjE,MAAM,IAAIC,MAAMC;IACpB;IAEA,MAAMC,SAASC,IAAAA,mBAAK,EAChB;QACIC,kBAAS;QACTC,wBAAe;QACfC,sBAAa;QACbC,oBAAW;QACXC,wBAAe;QACfC,qBAAY;QACZC,2BAAkB;QAClBC,qBAAY;QACZC,sBAAa;QACbC,sBAAa;QACbC,oBAAW;QACXC,2BAAkB;KACrB,CAACC,MAAM,CAAC,CAACd,QAAQe,KAAQ,CAAA;YAAE,GAAGf,MAAM;YAAE,GAAGe,GAAG5B,SAASb,UAAU;QAAC,CAAA,GAAI,CAAC,IACtEE;IAGJ,oCAAoC,GACpCwC,WAAG,CAACC,KAAK,CAAC,yBAAyB,IAAMC,UAAUlB;IAEnD,OAAOA;AACX;AAEA,SAASH;IACL,MAAMsB,iBAAiBC,IAAAA,qBAAa;IACpC,OAAO;QAACC,+BAAwB;QAAEC,gCAAyB;KAAC,CAACC,IAAI,CAACC,CAAAA,iBAC9DL,eAAeM,QAAQ,CAACD;AAEhC;AAEA,oCAAoC,GACpC,SAASN,UAAU1C,aAAkB;IACjC,SAASkD,SAASC,GAAW,EAAEC,KAAU;QACrC,IAAI,OAAOA,UAAU,YAAY;gBACVA;YAAnB,OAAO,CAAC,SAAS,EAAEA,CAAAA,cAAAA,MAAMhC,IAAI,cAAVgC,yBAAAA,cAAc,GAAG,CAAC,CAAC;QAC1C;QACA,IAAIA,iBAAiBC,QAAQ;YACzB,OAAOC,OAAOF;QAClB;QACA,IAAID,QAAQ,aAAaI,MAAMC,OAAO,CAACJ,QAAQ;YAC3C,OAAOA,MAAMK,GAAG,CAACC,CAAAA;oBACAA;oBAAAA;gBAAb,MAAMtC,OAAOsC,CAAAA,4BAAAA,sBAAAA,OAAOC,WAAW,cAAlBD,0CAAAA,oBAAoBtC,IAAI,cAAxBsC,sCAAAA,2BAA4BA,OAAOtC,IAAI;gBACpD,OAAOA,OAAO;oBAAE,CAACA,KAAK,EAAEsC;gBAAO,IAAIA;YACvC;QACJ;QACA,OAAON;IACX;IACA,OAAOQ,KAAKlB,SAAS,CAAC1C,eAAekD,UAAU;AACnD;AAEA,MAAM3B,6BAA6B,CAAC;;;AAGpC,CAAC,CACIsC,OAAO,CAAC,UAAU,KAClBC,IAAI"}
1
+ {"version":3,"sources":["../../src/webpack/create-webpack-config.ts"],"sourcesContent":["import { Configuration } from 'webpack';\nimport { merge } from 'webpack-merge';\nimport { argv, Arguments } from 'yargs';\n\nimport { webpackDevConfigFileName, webpackProdConfigFileName } from '../cli/utils';\nimport {\n getFolders,\n getPackageData,\n getWebpackConfiguration,\n isCustomStyleRules,\n isExposeSharedDependencies,\n isLegacyRoot,\n isWebComponent,\n loadSharedDependencies,\n log,\n} from '../utils';\nimport {\n Context,\n amdConfig,\n cacheConfig,\n devServerConfig,\n devtoolConfig,\n entryConfig,\n externalsConfig,\n moduleConfig,\n optimizationConfig,\n outputConfig,\n pluginsConfig,\n resolveConfig,\n statsConfig,\n watchOptionsConfig,\n} from './configs';\nimport { Options, Overrides } from './types';\nimport { getCallerFile, stringifyConfig } from './utils';\n\nexport function createWebpackConfig(overrides: Overrides, options: Options = {}): Configuration {\n const context = getContext(overrides, options);\n if (context.isWebComponent && isCalledFromCustomWebpackConfigFile()) {\n throw new Error(WEB_COMPONENT_CONFIG_ERROR);\n }\n\n if (options.emitExposedDependencies && !context.isExposeSharedDependencies) {\n throw new Error('package does not expose shared dependencies');\n }\n\n const configs = [\n amdConfig,\n cacheConfig,\n devServerConfig,\n devtoolConfig,\n entryConfig,\n externalsConfig,\n moduleConfig,\n optimizationConfig,\n outputConfig,\n pluginsConfig,\n resolveConfig,\n statsConfig,\n watchOptionsConfig,\n ];\n\n const result = merge(\n configs.reduce((result, fn) => ({ ...result, ...fn(context, overrides) }), {}),\n overrides.configuration ?? {}\n );\n\n /* istanbul ignore next: debug only */\n log.debug('create-webpack-config', () => stringifyConfig(result));\n\n return result;\n}\n\nfunction getContext({ configuration = {} }: Overrides, options: Options): Context {\n const { source, destination } = getFolders();\n const { minify } = getWebpackConfiguration();\n const packageData = getPackageData();\n const sharedDependencies = loadSharedDependencies(\n packageData.dependencies,\n packageData.sharedDependencies\n );\n\n const args = argv as Arguments;\n const emitExposedDependencies =\n options.emitExposedDependencies ?? !!args['exposed-dependencies'];\n\n return {\n codeCoverage: options.codeCoverage ?? !!args['code-coverage'],\n destination,\n emitExposedDependencies,\n isCustomStyleRules: !emitExposedDependencies && isCustomStyleRules(),\n isExposeSharedDependencies: isExposeSharedDependencies(),\n isLegacyRoot: isLegacyRoot(),\n isProduction: configuration.mode === 'production',\n isWebComponent: isWebComponent(),\n minify,\n name: '',\n ...options,\n packageData,\n sharedDependencies,\n source,\n };\n}\n\nfunction isCalledFromCustomWebpackConfigFile() {\n const callerFileName = getCallerFile();\n return [webpackDevConfigFileName, webpackProdConfigFileName].some(configFileName =>\n callerFileName.includes(configFileName)\n );\n}\n\nconst WEB_COMPONENT_CONFIG_ERROR = `\n You cannot call createWebpackConfig in a custom webpack config file in a web component (MFE) project.\n Export webpack configuration itself as a default export from the config file instead.\n`\n .replace(/\\n\\s*/g, ' ')\n .trim();\n"],"names":["createWebpackConfig","overrides","options","context","getContext","isWebComponent","isCalledFromCustomWebpackConfigFile","Error","WEB_COMPONENT_CONFIG_ERROR","emitExposedDependencies","isExposeSharedDependencies","configs","amdConfig","cacheConfig","devServerConfig","devtoolConfig","entryConfig","externalsConfig","moduleConfig","optimizationConfig","outputConfig","pluginsConfig","resolveConfig","statsConfig","watchOptionsConfig","result","merge","reduce","fn","configuration","log","debug","stringifyConfig","source","destination","getFolders","minify","getWebpackConfiguration","packageData","getPackageData","sharedDependencies","loadSharedDependencies","dependencies","args","argv","codeCoverage","isCustomStyleRules","isLegacyRoot","isProduction","mode","name","callerFileName","getCallerFile","webpackDevConfigFileName","webpackProdConfigFileName","some","configFileName","includes","replace","trim"],"mappings":";;;;+BAmCgBA;;;eAAAA;;;8BAlCM;uBACU;uBAEoC;wBAW7D;yBAgBA;wBAEwC;AAExC,SAASA,oBAAoBC,SAAoB,EAAEC,UAAmB,CAAC,CAAC;IAC3E,MAAMC,UAAUC,WAAWH,WAAWC;IACtC,IAAIC,QAAQE,cAAc,IAAIC,uCAAuC;QACjE,MAAM,IAAIC,MAAMC;IACpB;IAEA,IAAIN,QAAQO,uBAAuB,IAAI,CAACN,QAAQO,0BAA0B,EAAE;QACxE,MAAM,IAAIH,MAAM;IACpB;IAEA,MAAMI,UAAU;QACZC,kBAAS;QACTC,oBAAW;QACXC,wBAAe;QACfC,sBAAa;QACbC,oBAAW;QACXC,wBAAe;QACfC,qBAAY;QACZC,2BAAkB;QAClBC,qBAAY;QACZC,sBAAa;QACbC,sBAAa;QACbC,oBAAW;QACXC,2BAAkB;KACrB;QAIGvB;IAFJ,MAAMwB,SAASC,IAAAA,mBAAK,EAChBf,QAAQgB,MAAM,CAAC,CAACF,QAAQG,KAAQ,CAAA;YAAE,GAAGH,MAAM;YAAE,GAAGG,GAAGzB,SAASF,UAAU;QAAC,CAAA,GAAI,CAAC,IAC5EA,CAAAA,2BAAAA,UAAU4B,aAAa,cAAvB5B,sCAAAA,2BAA2B,CAAC;IAGhC,oCAAoC,GACpC6B,WAAG,CAACC,KAAK,CAAC,yBAAyB,IAAMC,IAAAA,uBAAe,EAACP;IAEzD,OAAOA;AACX;AAEA,SAASrB,WAAW,EAAEyB,gBAAgB,CAAC,CAAC,EAAa,EAAE3B,OAAgB;IACnE,MAAM,EAAE+B,MAAM,EAAEC,WAAW,EAAE,GAAGC,IAAAA,kBAAU;IAC1C,MAAM,EAAEC,MAAM,EAAE,GAAGC,IAAAA,+BAAuB;IAC1C,MAAMC,cAAcC,IAAAA,sBAAc;IAClC,MAAMC,qBAAqBC,IAAAA,8BAAsB,EAC7CH,YAAYI,YAAY,EACxBJ,YAAYE,kBAAkB;IAGlC,MAAMG,OAAOC,WAAI;QAEb1C;IADJ,MAAMO,0BACFP,CAAAA,mCAAAA,QAAQO,uBAAuB,cAA/BP,8CAAAA,mCAAmC,CAAC,CAACyC,IAAI,CAAC,uBAAuB;QAGnDzC;IADlB,OAAO;QACH2C,cAAc3C,CAAAA,wBAAAA,QAAQ2C,YAAY,cAApB3C,mCAAAA,wBAAwB,CAAC,CAACyC,IAAI,CAAC,gBAAgB;QAC7DT;QACAzB;QACAqC,oBAAoB,CAACrC,2BAA2BqC,IAAAA,0BAAkB;QAClEpC,4BAA4BA,IAAAA,kCAA0B;QACtDqC,cAAcA,IAAAA,oBAAY;QAC1BC,cAAcnB,cAAcoB,IAAI,KAAK;QACrC5C,gBAAgBA,IAAAA,sBAAc;QAC9B+B;QACAc,MAAM;QACN,GAAGhD,OAAO;QACVoC;QACAE;QACAP;IACJ;AACJ;AAEA,SAAS3B;IACL,MAAM6C,iBAAiBC,IAAAA,qBAAa;IACpC,OAAO;QAACC,+BAAwB;QAAEC,gCAAyB;KAAC,CAACC,IAAI,CAACC,CAAAA,iBAC9DL,eAAeM,QAAQ,CAACD;AAEhC;AAEA,MAAMhD,6BAA6B,CAAC;;;AAGpC,CAAC,CACIkD,OAAO,CAAC,UAAU,KAClBC,IAAI"}
@@ -1,10 +1,14 @@
1
1
  import { Options as HtmlWebpackPluginOptions } from 'html-webpack-plugin';
2
2
  import { PluginOptions as MiniCssExtractPlugInOptions } from 'mini-css-extract-plugin';
3
3
  import { Configuration } from 'webpack';
4
+ export interface ExposedDependenciesConfig {
5
+ output?: Configuration['output'];
6
+ }
4
7
  export interface Options {
5
8
  buildStat?: boolean;
6
9
  codeCoverage?: boolean;
7
10
  embed?: boolean;
11
+ emitExposedDependencies?: boolean | ExposedDependenciesConfig;
8
12
  headless?: boolean;
9
13
  name?: string;
10
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/webpack/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,aAAa,IAAI,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,OAAO;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;QAC7C,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;KACtD,CAAC;CACL"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/webpack/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,aAAa,IAAI,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,MAAM,WAAW,yBAAyB;IACtC,MAAM,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;CACpC;AACD,MAAM,WAAW,OAAO;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,uBAAuB,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACtB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,OAAO,CAAC,EAAE;QACN,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;QAC7C,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;KACtD,CAAC;CACL"}
@@ -1,4 +1,5 @@
1
1
  export * from './get-caller-filename';
2
2
  export * from './get-module-entry-path';
3
3
  export * from './split-by-entry';
4
+ export * from './stringify-config';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/webpack/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/webpack/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  _export_star(require("./get-caller-filename"), exports);
6
6
  _export_star(require("./get-module-entry-path"), exports);
7
7
  _export_star(require("./split-by-entry"), exports);
8
+ _export_star(require("./stringify-config"), exports);
8
9
  function _export_star(from, to) {
9
10
  Object.keys(from).forEach(function(k) {
10
11
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/webpack/utils/index.ts"],"sourcesContent":["export * from './get-caller-filename';\nexport * from './get-module-entry-path';\nexport * from './split-by-entry';\n"],"names":[],"mappings":";;;;qBAAc;qBACA;qBACA"}
1
+ {"version":3,"sources":["../../../src/webpack/utils/index.ts"],"sourcesContent":["export * from './get-caller-filename';\nexport * from './get-module-entry-path';\nexport * from './split-by-entry';\nexport * from './stringify-config';\n"],"names":[],"mappings":";;;;qBAAc;qBACA;qBACA;qBACA"}
@@ -0,0 +1,2 @@
1
+ export declare function stringifyConfig(configuration: any): string;
2
+ //# sourceMappingURL=stringify-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stringify-config.d.ts","sourceRoot":"","sources":["../../../src/webpack/utils/stringify-config.ts"],"names":[],"mappings":"AACA,wBAAgB,eAAe,CAAC,aAAa,EAAE,GAAG,UAiBjD"}
@@ -0,0 +1,35 @@
1
+ /* istanbul ignore next: debug only */ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "stringifyConfig", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return stringifyConfig;
9
+ }
10
+ });
11
+ function stringifyConfig(configuration) {
12
+ function replacer(key, value) {
13
+ if (typeof value === 'function') {
14
+ var _value_name;
15
+ return `Function(${(_value_name = value.name) !== null && _value_name !== void 0 ? _value_name : ''})`;
16
+ }
17
+ if (value instanceof RegExp) {
18
+ return String(value);
19
+ }
20
+ if (key === 'plugins' && Array.isArray(value)) {
21
+ return value.map((plugin)=>{
22
+ var _plugin_constructor;
23
+ var _plugin_constructor_name;
24
+ const name = (_plugin_constructor_name = (_plugin_constructor = plugin.constructor) === null || _plugin_constructor === void 0 ? void 0 : _plugin_constructor.name) !== null && _plugin_constructor_name !== void 0 ? _plugin_constructor_name : plugin.name;
25
+ return name ? {
26
+ [name]: plugin
27
+ } : plugin;
28
+ });
29
+ }
30
+ return value;
31
+ }
32
+ return JSON.stringify(configuration, replacer, 2);
33
+ }
34
+
35
+ //# sourceMappingURL=stringify-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/webpack/utils/stringify-config.ts"],"sourcesContent":["/* istanbul ignore next: debug only */\nexport function stringifyConfig(configuration: any) {\n function replacer(key: string, value: any) {\n if (typeof value === 'function') {\n return `Function(${value.name ?? ''})`;\n }\n if (value instanceof RegExp) {\n return String(value);\n }\n if (key === 'plugins' && Array.isArray(value)) {\n return value.map(plugin => {\n const name = plugin.constructor?.name ?? plugin.name;\n return name ? { [name]: plugin } : plugin;\n });\n }\n return value;\n }\n return JSON.stringify(configuration, replacer, 2);\n}\n"],"names":["stringifyConfig","configuration","replacer","key","value","name","RegExp","String","Array","isArray","map","plugin","JSON","stringify"],"mappings":"AAAA,oCAAoC;;;;+BACpBA;;;eAAAA;;;AAAT,SAASA,gBAAgBC,aAAkB;IAC9C,SAASC,SAASC,GAAW,EAAEC,KAAU;QACrC,IAAI,OAAOA,UAAU,YAAY;gBACVA;YAAnB,OAAO,CAAC,SAAS,EAAEA,CAAAA,cAAAA,MAAMC,IAAI,cAAVD,yBAAAA,cAAc,GAAG,CAAC,CAAC;QAC1C;QACA,IAAIA,iBAAiBE,QAAQ;YACzB,OAAOC,OAAOH;QAClB;QACA,IAAID,QAAQ,aAAaK,MAAMC,OAAO,CAACL,QAAQ;YAC3C,OAAOA,MAAMM,GAAG,CAACC,CAAAA;oBACAA;oBAAAA;gBAAb,MAAMN,OAAOM,CAAAA,4BAAAA,sBAAAA,OAAO,WAAW,cAAlBA,0CAAAA,oBAAoBN,IAAI,cAAxBM,sCAAAA,2BAA4BA,OAAON,IAAI;gBACpD,OAAOA,OAAO;oBAAE,CAACA,KAAK,EAAEM;gBAAO,IAAIA;YACvC;QACJ;QACA,OAAOP;IACX;IACA,OAAOQ,KAAKC,SAAS,CAACZ,eAAeC,UAAU;AACnD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/startup",
3
- "version": "31.3.2",
3
+ "version": "31.5.0",
4
4
  "description": "",
5
5
  "homepage": "https://docs.st.dev/docs/frontend/startup",
6
6
  "repository": {
@@ -9,7 +9,7 @@
9
9
  "directory": "packages/startup"
10
10
  },
11
11
  "engines": {
12
- "node": ">=20",
12
+ "node": ">=20.19 <21 || >=22.17",
13
13
  "npm": ">=9"
14
14
  },
15
15
  "sideEffects": false,
@@ -37,11 +37,11 @@
37
37
  "@jest/core": "~29.7.0",
38
38
  "@jest/types": "~29.6.3",
39
39
  "@jsdevtools/coverage-istanbul-loader": "^3.0.5",
40
- "@servicetitan/eslint-config": "31.3.2",
41
- "@servicetitan/stylelint-config": "31.3.2",
40
+ "@servicetitan/eslint-config": "31.5.0",
41
+ "@servicetitan/stylelint-config": "31.5.0",
42
42
  "@svgr/webpack": "^8.1.0",
43
43
  "@swc/cli": "^0.5.0",
44
- "@swc/core": "1.11.29",
44
+ "@swc/core": "1.13.3",
45
45
  "@types/debug": "^4.1.12",
46
46
  "@types/jest": "~29.5.12",
47
47
  "chalk": "~4.1.2",
@@ -51,10 +51,11 @@
51
51
  "debounce": "^2.2.0",
52
52
  "debug": "^4.4.1",
53
53
  "deepmerge": "~4.3.1",
54
- "eslint": "~9.30.1",
54
+ "eslint": "~9.33.0",
55
55
  "execa": "~5.1.1",
56
56
  "glob": "~11.0.3",
57
57
  "html-webpack-plugin": "~5.6.3",
58
+ "html-webpack-tags-plugin": "^3.0.2",
58
59
  "identity-obj-proxy": "~3.0.0",
59
60
  "jest": "~29.7.0",
60
61
  "jest-circus": "~29.7.0",
@@ -62,35 +63,36 @@
62
63
  "jest-fetch-mock": "~3.0.3",
63
64
  "json5": "^2.2.3",
64
65
  "lerna": "~8.2.3",
65
- "less": "~4.3.0",
66
+ "less": "~4.4.0",
66
67
  "less-loader": "~12.3.0",
67
68
  "less-plugin-npm-import": "~2.1.0",
68
69
  "lodash.memoize": "^4.1.2",
69
- "memfs": "~4.17.2",
70
- "mini-css-extract-plugin": "~2.9.2",
70
+ "memfs": "~4.36.0",
71
+ "mini-css-extract-plugin": "~2.9.4",
71
72
  "moment-locales-webpack-plugin": "~1.2.0",
72
73
  "multimatch": "~5.0.0",
73
74
  "portfinder": "~1.0.37",
74
75
  "postcss": "~8.5.6",
75
76
  "prettier": "~3.6.2",
76
- "sass": "~1.89.2",
77
+ "sass": "~1.90.0",
77
78
  "sass-loader": "~16.0.5",
78
79
  "semver": "~7.7.2",
79
80
  "source-map-loader": "~5.0.0",
80
81
  "style-loader": "~4.0.0",
81
- "stylelint": "~16.21.1",
82
+ "stylelint": "~16.23.1",
82
83
  "terminal-link": "^4.0.0",
83
84
  "terser-webpack-plugin": "^5.3.14",
84
- "ts-jest": "29.4.0",
85
+ "ts-jest": "29.4.1",
85
86
  "ts-node": "~10.9.2",
86
87
  "typed-css-modules": "~0.9.1",
87
- "typescript": "5.8.3",
88
+ "typescript": "5.9.2",
88
89
  "webpack": "~5.99.9",
89
- "webpack-assets-manifest": "~6.2.1",
90
+ "webpack-assets-manifest": "~6.2.2",
90
91
  "webpack-bundle-analyzer": "^4.10.2",
91
92
  "webpack-dev-server": "~5.2.2",
92
93
  "webpack-filter-warnings-plugin": "~1.2.1",
93
94
  "webpack-merge": "~6.0.1",
95
+ "webpack-remove-empty-scripts": "^1.1.1",
94
96
  "webpack-virtual-modules": "~0.6.2",
95
97
  "worker-loader": "~3.0.8",
96
98
  "xhr-mock": "~2.5.1",
@@ -116,5 +118,5 @@
116
118
  "cli": {
117
119
  "webpack": false
118
120
  },
119
- "gitHead": "c9909c13f221700fe9d3adb043d2faa26472e921"
121
+ "gitHead": "6fce124ae36f2a36705247f6300ca8354aba6fb2"
120
122
  }
@@ -96,6 +96,18 @@ describe(`[startup] ${Build.name}`, () => {
96
96
  expect(kendoUILicense).toHaveBeenCalled();
97
97
  });
98
98
 
99
+ test('bundles exposed dependencies', async () => {
100
+ await subject();
101
+
102
+ expect(lernaExec).toHaveBeenCalledWith({
103
+ 'cmd': 'startup bundle-package',
104
+ 'scope': packages.map(({ name }) => name),
105
+ 'parallel': true,
106
+ 'stream': true,
107
+ '--': ['--exposed-dependencies'],
108
+ });
109
+ });
110
+
99
111
  test('bundles the package', async () => {
100
112
  await subject();
101
113
 
@@ -115,6 +127,7 @@ describe(`[startup] ${Build.name}`, () => {
115
127
 
116
128
  expect(lernaExec).toHaveBeenCalledWith(
117
129
  expect.objectContaining({
130
+ 'cmd': 'startup bundle-package',
118
131
  '--': ['--code-coverage'],
119
132
  })
120
133
  );
@@ -129,6 +142,7 @@ describe(`[startup] ${Build.name}`, () => {
129
142
 
130
143
  expect(lernaExec).toHaveBeenCalledWith(
131
144
  expect.objectContaining({
145
+ 'cmd': 'startup bundle-package',
132
146
  '--': ['--stat'],
133
147
  })
134
148
  );
@@ -142,7 +156,10 @@ describe(`[startup] ${Build.name}`, () => {
142
156
  await subject();
143
157
 
144
158
  expect(lernaExec).toHaveBeenCalledWith(
145
- expect.objectContaining({ '--': [`--config "${args.config}"`] })
159
+ expect.objectContaining({
160
+ 'cmd': 'startup bundle-package',
161
+ '--': [`--config "${args.config}"`],
162
+ })
146
163
  );
147
164
  });
148
165
  });
@@ -188,7 +205,7 @@ describe(`[startup] ${Build.name}`, () => {
188
205
  beforeEach(() => ((args as Record<string, any>)[arg] = true));
189
206
 
190
207
  test('logs warning', async () => {
191
- const logSpy = jest.spyOn(log, 'warning');
208
+ const logSpy = jest.spyOn(log, 'warning').mockImplementation(jest.fn());
192
209
 
193
210
  await subject();
194
211