@nrwl/angular 13.10.0-beta.1 → 13.10.0-beta.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 (195) hide show
  1. package/esm2020/mfe/index.mjs +2 -0
  2. package/esm2020/mfe/mfe.mjs +45 -0
  3. package/esm2020/mfe/nrwl-angular-mfe.mjs +5 -0
  4. package/esm2020/src/runtime/nx/data-persistence.mjs +3 -3
  5. package/esm2020/src/runtime/nx/nx.module.mjs +4 -4
  6. package/executors.js +3 -3
  7. package/executors.js.map +1 -1
  8. package/executors.json +4 -4
  9. package/fesm2015/nrwl-angular-mfe.mjs +57 -0
  10. package/fesm2015/nrwl-angular-mfe.mjs.map +1 -0
  11. package/fesm2015/nrwl-angular.mjs +7 -7
  12. package/fesm2020/nrwl-angular-mfe.mjs +51 -0
  13. package/fesm2020/nrwl-angular-mfe.mjs.map +1 -0
  14. package/fesm2020/nrwl-angular.mjs +7 -7
  15. package/generators.js +26 -26
  16. package/generators.js.map +1 -1
  17. package/generators.json +10 -0
  18. package/mfe/index.d.ts +1 -0
  19. package/mfe/index.js +7 -0
  20. package/mfe/index.js.map +1 -0
  21. package/mfe/mfe.d.ts +4 -0
  22. package/mfe/mfe.js +56 -0
  23. package/mfe/mfe.js.map +1 -0
  24. package/mfe/ng-package.json +6 -0
  25. package/mfe/nrwl-angular-mfe.d.ts +5 -0
  26. package/mfe/package.json +10 -0
  27. package/module-federation/index.d.ts +1 -0
  28. package/module-federation/index.js +6 -0
  29. package/module-federation/index.js.map +1 -0
  30. package/package.json +15 -7
  31. package/scripts/nx-cli-warning.js +1 -1
  32. package/src/builders/webpack-browser/schema.json +3 -2
  33. package/src/builders/webpack-browser/webpack-browser.impl.js +5 -5
  34. package/src/builders/webpack-browser/webpack-browser.impl.js.map +1 -1
  35. package/src/builders/webpack-server/lib/index.js +1 -1
  36. package/src/builders/webpack-server/lib/index.js.map +1 -1
  37. package/src/builders/webpack-server/schema.json +3 -2
  38. package/src/builders/webpack-server/webpack-server.impl.js +2 -3
  39. package/src/builders/webpack-server/webpack-server.impl.js.map +1 -1
  40. package/src/executors/delegate-build/delegate-build.impl.js +6 -6
  41. package/src/executors/delegate-build/delegate-build.impl.js.map +1 -1
  42. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +1 -1
  43. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/entry-point.transform.js +2 -2
  44. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ng-package/entry-point/write-package.transform.js +2 -2
  45. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ngc/compile-source-files.js +1 -1
  46. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/styles/stylesheet-processor.js +3 -3
  47. package/src/executors/ng-packagr-lite/ng-packagr-adjustments/ts/cache-compiler-host.js +2 -2
  48. package/src/executors/ng-packagr-lite/ng-packagr-lite.impl.js +1 -1
  49. package/src/executors/package/ng-packagr-adjustments/ng-package/entry-point/compile-ngc.transform.js +1 -1
  50. package/src/executors/package/ng-packagr-adjustments/ngc/compile-source-files.js +1 -1
  51. package/src/executors/package/ng-packagr-adjustments/styles/stylesheet-processor.js +3 -3
  52. package/src/executors/package/ng-packagr-adjustments/ts/cache-compiler-host.js +2 -2
  53. package/src/executors/package/package.impl.js +9 -9
  54. package/src/executors/package/package.impl.js.map +1 -1
  55. package/src/executors/utilities/tailwindcss.js +3 -3
  56. package/src/executors/utilities/tailwindcss.js.map +1 -1
  57. package/src/generators/add-linting/add-linting.js +1 -1
  58. package/src/generators/application/application.js +1 -1
  59. package/src/generators/application/lib/add-e2e.js +1 -1
  60. package/src/generators/application/lib/add-linting.js +1 -1
  61. package/src/generators/application/lib/add-mfe.js +1 -1
  62. package/src/generators/application/lib/add-protractor.js +1 -1
  63. package/src/generators/application/lib/add-unit-test-runner.js +1 -1
  64. package/src/generators/application/lib/index.js +20 -20
  65. package/src/generators/application/lib/index.js.map +1 -1
  66. package/src/generators/application/lib/update-config-files.js +1 -1
  67. package/src/generators/application/lib/update-config-files.js.map +1 -1
  68. package/src/generators/component/component.js +1 -1
  69. package/src/generators/convert-to-with-mf/convert-to-with-mf.compat.d.ts +2 -0
  70. package/src/generators/convert-to-with-mf/convert-to-with-mf.compat.js +6 -0
  71. package/src/generators/convert-to-with-mf/convert-to-with-mf.compat.js.map +1 -0
  72. package/src/generators/convert-to-with-mf/convert-to-with-mf.d.ts +3 -0
  73. package/src/generators/convert-to-with-mf/convert-to-with-mf.js +32 -0
  74. package/src/generators/convert-to-with-mf/convert-to-with-mf.js.map +1 -0
  75. package/src/generators/convert-to-with-mf/convert-to-with-mf.test-data.d.ts +5 -0
  76. package/src/generators/convert-to-with-mf/convert-to-with-mf.test-data.js +449 -0
  77. package/src/generators/convert-to-with-mf/convert-to-with-mf.test-data.js.map +1 -0
  78. package/src/generators/convert-to-with-mf/lib/check-name-matches.d.ts +2 -0
  79. package/src/generators/convert-to-with-mf/lib/check-name-matches.js +24 -0
  80. package/src/generators/convert-to-with-mf/lib/check-name-matches.js.map +1 -0
  81. package/src/generators/convert-to-with-mf/lib/check-shared-npm-packages.d.ts +2 -0
  82. package/src/generators/convert-to-with-mf/lib/check-shared-npm-packages.js +49 -0
  83. package/src/generators/convert-to-with-mf/lib/check-shared-npm-packages.js.map +1 -0
  84. package/src/generators/convert-to-with-mf/lib/get-webpack-config-path.d.ts +2 -0
  85. package/src/generators/convert-to-with-mf/lib/get-webpack-config-path.js +20 -0
  86. package/src/generators/convert-to-with-mf/lib/get-webpack-config-path.js.map +1 -0
  87. package/src/generators/convert-to-with-mf/lib/index.d.ts +6 -0
  88. package/src/generators/convert-to-with-mf/lib/index.js +10 -0
  89. package/src/generators/convert-to-with-mf/lib/index.js.map +1 -0
  90. package/src/generators/convert-to-with-mf/lib/is-host-remote-config.d.ts +5 -0
  91. package/src/generators/convert-to-with-mf/lib/is-host-remote-config.js +63 -0
  92. package/src/generators/convert-to-with-mf/lib/is-host-remote-config.js.map +1 -0
  93. package/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.d.ts +2 -0
  94. package/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.js +13 -0
  95. package/src/generators/convert-to-with-mf/lib/parse-ast-webpack-config.js.map +1 -0
  96. package/src/generators/convert-to-with-mf/lib/write-new-webpack-config.d.ts +3 -0
  97. package/src/generators/convert-to-with-mf/lib/write-new-webpack-config.js +48 -0
  98. package/src/generators/convert-to-with-mf/lib/write-new-webpack-config.js.map +1 -0
  99. package/src/generators/convert-to-with-mf/schema.d.ts +3 -0
  100. package/src/generators/convert-to-with-mf/schema.json +20 -0
  101. package/src/generators/convert-tslint-to-eslint/convert-tslint-to-eslint.js +4 -4
  102. package/src/generators/convert-tslint-to-eslint/convert-tslint-to-eslint.js.map +1 -1
  103. package/src/generators/downgrade-module/downgrade-module.js +1 -1
  104. package/src/generators/downgrade-module/lib/index.js +4 -4
  105. package/src/generators/downgrade-module/lib/index.js.map +1 -1
  106. package/src/generators/init/init.js +1 -1
  107. package/src/generators/karma-project/karma-project.js +1 -1
  108. package/src/generators/library/lib/update-project.js +2 -2
  109. package/src/generators/library/lib/update-project.js.map +1 -1
  110. package/src/generators/library/library.js +3 -3
  111. package/src/generators/library-secondary-entry-point/lib/index.js +4 -4
  112. package/src/generators/library-secondary-entry-point/lib/index.js.map +1 -1
  113. package/src/generators/library-secondary-entry-point/library-secondary-entry-point.js +1 -1
  114. package/src/generators/mfe-host/mfe-host.js +1 -1
  115. package/src/generators/mfe-host/schema.json +1 -1
  116. package/src/generators/mfe-remote/mfe-remote.js +15 -2
  117. package/src/generators/mfe-remote/mfe-remote.js.map +1 -1
  118. package/src/generators/mfe-remote/schema.json +1 -1
  119. package/src/generators/move/lib/update-ng-package.js +2 -2
  120. package/src/generators/move/lib/update-ng-package.js.map +1 -1
  121. package/src/generators/move/move.js +1 -1
  122. package/src/generators/ng-add/files/decorate-angular-cli/decorate-angular-cli.js__tmpl__ +1 -1
  123. package/src/generators/ng-add/files/root/nx.json__tmpl__ +1 -1
  124. package/src/generators/ng-add/migrate-from-angular-cli.js +4 -10
  125. package/src/generators/ng-add/migrate-from-angular-cli.js.map +1 -1
  126. package/src/generators/ng-add/ng-add.js +1 -1
  127. package/src/generators/ngrx/ngrx.js +1 -1
  128. package/src/generators/scam/scam.js +2 -2
  129. package/src/generators/scam/scam.js.map +1 -1
  130. package/src/generators/scam-directive/scam-directive.js +2 -2
  131. package/src/generators/scam-directive/scam-directive.js.map +1 -1
  132. package/src/generators/scam-pipe/scam-pipe.js +2 -2
  133. package/src/generators/scam-pipe/scam-pipe.js.map +1 -1
  134. package/src/generators/setup-mfe/files/webpack/webpack.config.js__tmpl__ +8 -59
  135. package/src/generators/setup-mfe/lib/add-remote-to-host.d.ts +1 -0
  136. package/src/generators/setup-mfe/lib/add-remote-to-host.js +15 -6
  137. package/src/generators/setup-mfe/lib/add-remote-to-host.js.map +1 -1
  138. package/src/generators/setup-mfe/lib/generate-config.js +1 -12
  139. package/src/generators/setup-mfe/lib/generate-config.js.map +1 -1
  140. package/src/generators/setup-mfe/lib/index.js +10 -10
  141. package/src/generators/setup-mfe/lib/index.js.map +1 -1
  142. package/src/generators/setup-mfe/setup-mfe.d.ts +2 -2
  143. package/src/generators/setup-mfe/setup-mfe.js +1 -10
  144. package/src/generators/setup-mfe/setup-mfe.js.map +1 -1
  145. package/src/generators/setup-tailwind/lib/index.js +6 -6
  146. package/src/generators/setup-tailwind/lib/index.js.map +1 -1
  147. package/src/generators/setup-tailwind/setup-tailwind.js +1 -1
  148. package/src/generators/storybook-configuration/lib/generate-storybook-configuration.js +1 -1
  149. package/src/generators/storybook-configuration/storybook-configuration.js +1 -1
  150. package/src/generators/storybook-migrate-stories-to-6-2/migrate-stories-to-6-2.js +1 -1
  151. package/src/generators/upgrade-module/lib/index.js +4 -4
  152. package/src/generators/upgrade-module/lib/index.js.map +1 -1
  153. package/src/generators/upgrade-module/upgrade-module.js +1 -1
  154. package/src/generators/utils/index.js +1 -1
  155. package/src/generators/utils/index.js.map +1 -1
  156. package/src/generators/utils/testing.js +1 -1
  157. package/src/generators/web-worker/lib/index.js +2 -2
  158. package/src/generators/web-worker/lib/index.js.map +1 -1
  159. package/src/generators/web-worker/web-worker.js +2 -2
  160. package/src/generators/web-worker/web-worker.js.map +1 -1
  161. package/src/migrations/update-10-3-0/update-10-3-0.js +1 -1
  162. package/src/migrations/update-10-4-0/update-10-4-0.js +1 -1
  163. package/src/migrations/update-10-5-0/add-template-support-and-presets-to-eslint.js +3 -3
  164. package/src/migrations/update-10-5-0/add-template-support-and-presets-to-eslint.js.map +1 -1
  165. package/src/migrations/update-12-3-0/convert-webpack-browser-build-target-to-delegate-build.js +3 -3
  166. package/src/migrations/update-12-3-0/convert-webpack-browser-build-target-to-delegate-build.js.map +1 -1
  167. package/src/migrations/update-12-3-0/update-angular-eslint-rules.js +1 -1
  168. package/src/migrations/update-12-3-0/update-storybook.js +1 -1
  169. package/src/migrations/update-12-3-0/update-webpack-browser-config.js +1 -1
  170. package/src/migrations/update-12-9-0/update-invalid-import-paths.js +1 -1
  171. package/src/migrations/update-13-0-0/add-postcss-packages.js +1 -1
  172. package/src/migrations/update-13-2-0/opt-out-testbed-teardown.js +1 -1
  173. package/src/migrations/update-13-2-0/update-angular-config.js +1 -1
  174. package/src/migrations/update-13-2-0/update-angular-jest-config.js +1 -1
  175. package/src/migrations/update-13-2-0/update-libraries.js +1 -1
  176. package/src/migrations/update-13-2-0/update-testing-imports.js +1 -1
  177. package/src/migrations/update-13-3-0/update-mfe-webpack-config.js +1 -1
  178. package/src/migrations/update-13-5-0/remove-library-generator-style-default.js +1 -1
  179. package/src/migrations/update-13-5-0/update-mfe-configs.js +1 -1
  180. package/src/migrations/update-13-8-1/add-cypress-mfe-workaround.js +1 -1
  181. package/src/migrations/update-13-8-4/migrate-karma-conf.js +1 -1
  182. package/src/migrations/update-13-9-0/set-build-libs-from-source.js +1 -1
  183. package/src/runtime/nx/data-persistence.js +2 -2
  184. package/src/runtime/nx/data-persistence.js.map +1 -1
  185. package/src/runtime/nx/nx.module.js +1 -1
  186. package/src/utils/get-mfe-projects.d.ts +3 -1
  187. package/src/utils/get-mfe-projects.js +5 -2
  188. package/src/utils/get-mfe-projects.js.map +1 -1
  189. package/src/utils/mfe/mfe-webpack.js +2 -3
  190. package/src/utils/mfe/mfe-webpack.js.map +1 -1
  191. package/src/utils/mfe/with-module-federation.js +8 -11
  192. package/src/utils/mfe/with-module-federation.js.map +1 -1
  193. package/src/utils/versions.d.ts +0 -1
  194. package/src/utils/versions.js +2 -3
  195. package/src/utils/versions.js.map +1 -1
@@ -24,7 +24,7 @@ function updateAppAndE2EProjectConfigurations(host, options) {
24
24
  delete project.targets.test;
25
25
  // Ensure the outputs property comes after the executor for
26
26
  // better readability.
27
- const _a = project.targets.build, { executor } = _a, rest = tslib_1.__rest(_a, ["executor"]);
27
+ const _a = project.targets.build, { executor } = _a, rest = (0, tslib_1.__rest)(_a, ["executor"]);
28
28
  project.targets.build = Object.assign({ executor, outputs: ['{options.outputPath}'] }, rest);
29
29
  if (project.generators) {
30
30
  delete project.generators;
@@ -1 +1 @@
1
- {"version":3,"file":"update-config-files.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/application/lib/update-config-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-config-files.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/application/lib/update-config-files.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ const ngcli_adapter_1 = require("@nrwl/devkit/ngcli-adapter");
7
7
  const devkit_2 = require("@nrwl/devkit");
8
8
  const path_1 = require("../utils/path");
9
9
  function componentGenerator(tree, schema) {
10
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
10
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
11
11
  checkPathUnderProjectRoot(tree, schema);
12
12
  const angularComponentSchematic = (0, ngcli_adapter_1.wrapAngularDevkitSchematic)('@schematics/angular', 'component');
13
13
  yield angularComponentSchematic(tree, Object.assign(Object.assign({}, schema), { skipImport: true }));
@@ -0,0 +1,2 @@
1
+ declare const _default: (options: import("./schema").Schema) => (tree: any, context: any) => Promise<any>;
2
+ export default _default;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const devkit_1 = require("@nrwl/devkit");
4
+ const convert_to_with_mf_1 = require("./convert-to-with-mf");
5
+ exports.default = (0, devkit_1.convertNxGenerator)(convert_to_with_mf_1.default);
6
+ //# sourceMappingURL=convert-to-with-mf.compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-to-with-mf.compat.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/convert-to-with-mf/convert-to-with-mf.compat.ts"],"names":[],"mappings":";;AAAA,yCAAkD;AAClD,6DAAmD;AAEnD,kBAAe,IAAA,2BAAkB,EAAC,4BAAe,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@nrwl/devkit';
2
+ import type { Schema } from './schema';
3
+ export default function convertToWithMF(tree: Tree, schema: Schema): Promise<void>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const devkit_1 = require("@nrwl/devkit");
5
+ const devkit_2 = require("@nrwl/devkit");
6
+ const get_mfe_projects_1 = require("../../utils/get-mfe-projects");
7
+ const lib_1 = require("./lib");
8
+ function convertToWithMF(tree, schema) {
9
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function* () {
10
+ const projects = new Set((0, get_mfe_projects_1.getMfeProjects)(tree, { legacy: true }));
11
+ if (!projects.has(schema.project)) {
12
+ throw new Error(`Could not find project "${schema.project}" with a Micro Frontend configuration in your workspace. Please check the name of the project you're wishing to convert exists.`);
13
+ }
14
+ const project = (0, devkit_2.readProjectConfiguration)(tree, schema.project);
15
+ const pathToWebpackConfig = (0, lib_1.getWebpackConfigPath)(project, schema.project);
16
+ const webpackAst = (0, lib_1.parseASTOfWebpackConfig)(tree, pathToWebpackConfig);
17
+ if (!(0, lib_1.checkOutputNameMatchesProjectName)(webpackAst, schema.project)) {
18
+ throw new Error(`Cannot automatically migrate "${schema.project}" to "withModuleFederation" micro frontend webpack config.
19
+ "uniqueName" in webpack config (${pathToWebpackConfig}) does not match project name.`);
20
+ }
21
+ if (!(0, lib_1.checkSharedNpmPackagesMatchExpected)(webpackAst)) {
22
+ throw new Error(`Cannot automatically migrate "${schema.project}" to "withModuleFederation" micro frontend webpack config.
23
+ There are npm packages being shared with a custom configuration in webpack config (${pathToWebpackConfig}).`);
24
+ }
25
+ devkit_1.logger.warn(`This Micro Frontend configuration conversion will overwrite "${schema.project}"'s current webpack config. If you have anything custom that is not related to Micro Frontends, it will be lost. You should be able to see the changes in your version control system.`);
26
+ const updatedWebpackConfig = (0, lib_1.writeNewWebpackConfig)(webpackAst, (0, lib_1.isHostRemoteConfig)(webpackAst), schema.project);
27
+ tree.write(pathToWebpackConfig, updatedWebpackConfig);
28
+ yield (0, devkit_2.formatFiles)(tree);
29
+ });
30
+ }
31
+ exports.default = convertToWithMF;
32
+ //# sourceMappingURL=convert-to-with-mf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-to-with-mf.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/convert-to-with-mf/convert-to-with-mf.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAG5C,yCAAqE;AACrE,mEAA8D;AAC9D,+BAOe;AAEf,SAA8B,eAAe,CAAC,IAAU,EAAE,MAAc;;QACtE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,IAAA,iCAAc,EAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAEjE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YACjC,MAAM,IAAI,KAAK,CACb,2BAA2B,MAAM,CAAC,OAAO,iIAAiI,CAC3K,CAAC;SACH;QAED,MAAM,OAAO,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,mBAAmB,GAAG,IAAA,0BAAoB,EAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1E,MAAM,UAAU,GAAG,IAAA,6BAAuB,EAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC;QAEtE,IAAI,CAAC,IAAA,uCAAiC,EAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;YAClE,MAAM,IAAI,KAAK,CACb,iCAAiC,MAAM,CAAC,OAAO;wCACb,mBAAmB,gCAAgC,CACtF,CAAC;SACH;QAED,IAAI,CAAC,IAAA,yCAAmC,EAAC,UAAU,CAAC,EAAE;YACpD,MAAM,IAAI,KAAK,CACb,iCAAiC,MAAM,CAAC,OAAO;6FACwC,mBAAmB,IAAI,CAC/G,CAAC;SACH;QAED,eAAM,CAAC,IAAI,CACT,gEAAgE,MAAM,CAAC,OAAO,wLAAwL,CACvQ,CAAC;QAEF,MAAM,oBAAoB,GAAG,IAAA,2BAAqB,EAChD,UAAU,EACV,IAAA,wBAAkB,EAAC,UAAU,CAAC,EAC9B,MAAM,CAAC,OAAO,CACf,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;QAEtD,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA;AAvCD,kCAuCC"}
@@ -0,0 +1,5 @@
1
+ export declare const STANDARD_HOST_MFE_CONFIG = "const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');\nconst mf = require('@angular-architects/module-federation/webpack');\nconst path = require('path');\nconst share = mf.share;\n\n/**\n * We use the NX_TSCONFIG_PATH environment variable when using the @nrwl/angular:webpack-browser\n * builder as it will generate a temporary tsconfig file which contains any required remappings of\n * shared libraries.\n * A remapping will occur when a library is buildable, as webpack needs to know the location of the\n * built files for the buildable library.\n * This NX_TSCONFIG_PATH environment variable is set by the @nrwl/angular:webpack-browser and it contains\n * the location of the generated temporary tsconfig file.\n */\nconst tsConfigPath =\n process.env.NX_TSCONFIG_PATH ??\n path.join(__dirname, '../../tsconfig.base.json');\n\nconst workspaceRootPath = path.join(__dirname, '../../');\nconst sharedMappings = new mf.SharedMappings();\nsharedMappings.register(\n tsConfigPath,\n [\n /* mapped paths to share */\n ],\n workspaceRootPath\n);\n\nmodule.exports = {\n output: {\n uniqueName: 'host1',\n publicPath: 'auto',\n },\n optimization: {\n runtimeChunk: false,\n },\n experiments: {\n outputModule: true,\n },\n resolve: {\n alias: {\n ...sharedMappings.getAliases(),\n },\n },\n plugins: [\n new ModuleFederationPlugin({\n remotes: {\n remote1: 'http://localhost:4201/remoteEntry.mjs',\n },\n shared: share({\n '@angular/core': {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n '@angular/common': {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n '@angular/common/http': {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n '@angular/router': {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n rxjs: {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n ...sharedMappings.getDescriptors(),\n }),\n library: {\n type: 'module',\n },\n }),\n sharedMappings.getPlugin(),\n ],\n};\n";
2
+ export declare const STANDARD_REMOTE_MFE_CONFIG = "const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');\nconst mf = require('@angular-architects/module-federation/webpack');\nconst path = require('path');\nconst share = mf.share;\n\n/**\n * We use the NX_TSCONFIG_PATH environment variable when using the @nrwl/angular:webpack-browser\n * builder as it will generate a temporary tsconfig file which contains any required remappings of\n * shared libraries.\n * A remapping will occur when a library is buildable, as webpack needs to know the location of the\n * built files for the buildable library.\n * This NX_TSCONFIG_PATH environment variable is set by the @nrwl/angular:webpack-browser and it contains\n * the location of the generated temporary tsconfig file.\n */\nconst tsConfigPath =\n process.env.NX_TSCONFIG_PATH ??\n path.join(__dirname, '../../tsconfig.base.json');\n\nconst workspaceRootPath = path.join(__dirname, '../../');\nconst sharedMappings = new mf.SharedMappings();\nsharedMappings.register(\n tsConfigPath,\n [\n /* mapped paths to share */\n ],\n workspaceRootPath\n);\n\nmodule.exports = {\n output: {\n uniqueName: 'remote1',\n publicPath: 'auto',\n },\n optimization: {\n runtimeChunk: false,\n },\n experiments: {\n outputModule: true,\n },\n resolve: {\n alias: {\n ...sharedMappings.getAliases(),\n },\n },\n plugins: [\n new ModuleFederationPlugin({\n name: 'remote1',\n filename: 'remoteEntry.js',\n exposes: {\n './Module': 'apps/remote1/src/app/remote-entry/entry.module.ts',\n },\n shared: share({\n '@angular/core': {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n '@angular/common': {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n '@angular/common/http': {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n '@angular/router': {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n rxjs: {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n ...sharedMappings.getDescriptors(),\n }),\n library: {\n type: 'module',\n },\n }),\n sharedMappings.getPlugin(),\n ],\n};\n";
3
+ export declare const OLD_OBJECT_SHARED_SYNTAX = "const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');\nconst mf = require('@angular-architects/module-federation/webpack');\nconst path = require('path');\nconst share = mf.share;\n\n/**\n * We use the NX_TSCONFIG_PATH environment variable when using the @nrwl/angular:webpack-browser\n * builder as it will generate a temporary tsconfig file which contains any required remappings of\n * shared libraries.\n * A remapping will occur when a library is buildable, as webpack needs to know the location of the\n * built files for the buildable library.\n * This NX_TSCONFIG_PATH environment variable is set by the @nrwl/angular:webpack-browser and it contains\n * the location of the generated temporary tsconfig file.\n */\nconst tsConfigPath =\n process.env.NX_TSCONFIG_PATH ??\n path.join(__dirname, '../../tsconfig.base.json');\n\nconst workspaceRootPath = path.join(__dirname, '../../');\nconst sharedMappings = new mf.SharedMappings();\nsharedMappings.register(\n tsConfigPath,\n [\n /* mapped paths to share */\n ],\n workspaceRootPath\n);\n\nmodule.exports = {\n output: {\n uniqueName: 'remote1',\n publicPath: 'auto',\n },\n optimization: {\n runtimeChunk: false,\n },\n experiments: {\n outputModule: true,\n },\n resolve: {\n alias: {\n ...sharedMappings.getAliases(),\n },\n },\n plugins: [\n new ModuleFederationPlugin({\n name: 'remote1',\n filename: 'remoteEntry.js',\n exposes: {\n './Module': 'apps/remote1/src/app/remote-entry/entry.module.ts',\n },\n shared: {\n '@angular/core': {\n singleton: true,\n strictVersion: true,\n },\n '@angular/common': {\n singleton: true,\n strictVersion: true,\n },\n '@angular/common/http': {\n singleton: true,\n strictVersion: true,\n },\n '@angular/router': {\n singleton: true,\n strictVersion: true,\n },\n rxjs: {\n singleton: true,\n strictVersion: true,\n },\n ...sharedMappings.getDescriptors(),\n },\n library: {\n type: 'module',\n },\n }),\n sharedMappings.getPlugin(),\n ],\n};";
4
+ export declare const ERROR_NAME_DOESNT_MATCH = "const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');\nconst mf = require('@angular-architects/module-federation/webpack');\nconst path = require('path');\nconst share = mf.share;\n\n/**\n * We use the NX_TSCONFIG_PATH environment variable when using the @nrwl/angular:webpack-browser\n * builder as it will generate a temporary tsconfig file which contains any required remappings of\n * shared libraries.\n * A remapping will occur when a library is buildable, as webpack needs to know the location of the\n * built files for the buildable library.\n * This NX_TSCONFIG_PATH environment variable is set by the @nrwl/angular:webpack-browser and it contains\n * the location of the generated temporary tsconfig file.\n */\nconst tsConfigPath =\n process.env.NX_TSCONFIG_PATH ??\n path.join(__dirname, '../../tsconfig.base.json');\n\nconst workspaceRootPath = path.join(__dirname, '../../');\nconst sharedMappings = new mf.SharedMappings();\nsharedMappings.register(\n tsConfigPath,\n [\n /* mapped paths to share */\n ],\n workspaceRootPath\n);\n\nmodule.exports = {\n output: {\n uniqueName: 'somethingelse',\n publicPath: 'auto',\n },\n optimization: {\n runtimeChunk: false,\n },\n experiments: {\n outputModule: true,\n },\n resolve: {\n alias: {\n ...sharedMappings.getAliases(),\n },\n },\n plugins: [\n new ModuleFederationPlugin({\n name: 'remote1',\n filename: 'remoteEntry.js',\n exposes: {\n './Module': 'apps/remote1/src/app/remote-entry/entry.module.ts',\n },\n shared: share({\n '@angular/core': {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n '@angular/common': {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n '@angular/common/http': {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n '@angular/router': {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n rxjs: {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n ...sharedMappings.getDescriptors(),\n }),\n library: {\n type: 'module',\n },\n }),\n sharedMappings.getPlugin(),\n ],\n};\n";
5
+ export declare const ERROR_SHARED_PACKAGES_DOESNT_MATCH = "const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');\nconst mf = require('@angular-architects/module-federation/webpack');\nconst path = require('path');\nconst share = mf.share;\n\n/**\n * We use the NX_TSCONFIG_PATH environment variable when using the @nrwl/angular:webpack-browser\n * builder as it will generate a temporary tsconfig file which contains any required remappings of\n * shared libraries.\n * A remapping will occur when a library is buildable, as webpack needs to know the location of the\n * built files for the buildable library.\n * This NX_TSCONFIG_PATH environment variable is set by the @nrwl/angular:webpack-browser and it contains\n * the location of the generated temporary tsconfig file.\n */\nconst tsConfigPath =\n process.env.NX_TSCONFIG_PATH ??\n path.join(__dirname, '../../tsconfig.base.json');\n\nconst workspaceRootPath = path.join(__dirname, '../../');\nconst sharedMappings = new mf.SharedMappings();\nsharedMappings.register(\n tsConfigPath,\n [\n /* mapped paths to share */\n ],\n workspaceRootPath\n);\n\nmodule.exports = {\n output: {\n uniqueName: 'host1',\n publicPath: 'auto',\n },\n optimization: {\n runtimeChunk: false,\n },\n experiments: {\n outputModule: true,\n },\n resolve: {\n alias: {\n ...sharedMappings.getAliases(),\n },\n },\n plugins: [\n new ModuleFederationPlugin({\n remotes: {\n remote1: 'http://localhost:4201/remoteEntry.mjs',\n },\n shared: share({\n '@angular/core': {\n singleton: true,\n strictVersion: true,\n requiredVersion: '13.0.0',\n includeSecondaries: true,\n },\n '@angular/common': {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n '@angular/common/http': {\n singleton: true,\n strictVersion: false,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n '@angular/router': {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n rxjs: {\n singleton: true,\n strictVersion: true,\n requiredVersion: 'auto',\n includeSecondaries: true,\n },\n ...sharedMappings.getDescriptors(),\n }),\n library: {\n type: 'module',\n },\n }),\n sharedMappings.getPlugin(),\n ],\n};\n";
@@ -0,0 +1,449 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERROR_SHARED_PACKAGES_DOESNT_MATCH = exports.ERROR_NAME_DOESNT_MATCH = exports.OLD_OBJECT_SHARED_SYNTAX = exports.STANDARD_REMOTE_MFE_CONFIG = exports.STANDARD_HOST_MFE_CONFIG = void 0;
4
+ exports.STANDARD_HOST_MFE_CONFIG = `const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');
5
+ const mf = require('@angular-architects/module-federation/webpack');
6
+ const path = require('path');
7
+ const share = mf.share;
8
+
9
+ /**
10
+ * We use the NX_TSCONFIG_PATH environment variable when using the @nrwl/angular:webpack-browser
11
+ * builder as it will generate a temporary tsconfig file which contains any required remappings of
12
+ * shared libraries.
13
+ * A remapping will occur when a library is buildable, as webpack needs to know the location of the
14
+ * built files for the buildable library.
15
+ * This NX_TSCONFIG_PATH environment variable is set by the @nrwl/angular:webpack-browser and it contains
16
+ * the location of the generated temporary tsconfig file.
17
+ */
18
+ const tsConfigPath =
19
+ process.env.NX_TSCONFIG_PATH ??
20
+ path.join(__dirname, '../../tsconfig.base.json');
21
+
22
+ const workspaceRootPath = path.join(__dirname, '../../');
23
+ const sharedMappings = new mf.SharedMappings();
24
+ sharedMappings.register(
25
+ tsConfigPath,
26
+ [
27
+ /* mapped paths to share */
28
+ ],
29
+ workspaceRootPath
30
+ );
31
+
32
+ module.exports = {
33
+ output: {
34
+ uniqueName: 'host1',
35
+ publicPath: 'auto',
36
+ },
37
+ optimization: {
38
+ runtimeChunk: false,
39
+ },
40
+ experiments: {
41
+ outputModule: true,
42
+ },
43
+ resolve: {
44
+ alias: {
45
+ ...sharedMappings.getAliases(),
46
+ },
47
+ },
48
+ plugins: [
49
+ new ModuleFederationPlugin({
50
+ remotes: {
51
+ remote1: 'http://localhost:4201/remoteEntry.mjs',
52
+ },
53
+ shared: share({
54
+ '@angular/core': {
55
+ singleton: true,
56
+ strictVersion: true,
57
+ requiredVersion: 'auto',
58
+ includeSecondaries: true,
59
+ },
60
+ '@angular/common': {
61
+ singleton: true,
62
+ strictVersion: true,
63
+ requiredVersion: 'auto',
64
+ includeSecondaries: true,
65
+ },
66
+ '@angular/common/http': {
67
+ singleton: true,
68
+ strictVersion: true,
69
+ requiredVersion: 'auto',
70
+ includeSecondaries: true,
71
+ },
72
+ '@angular/router': {
73
+ singleton: true,
74
+ strictVersion: true,
75
+ requiredVersion: 'auto',
76
+ includeSecondaries: true,
77
+ },
78
+ rxjs: {
79
+ singleton: true,
80
+ strictVersion: true,
81
+ requiredVersion: 'auto',
82
+ includeSecondaries: true,
83
+ },
84
+ ...sharedMappings.getDescriptors(),
85
+ }),
86
+ library: {
87
+ type: 'module',
88
+ },
89
+ }),
90
+ sharedMappings.getPlugin(),
91
+ ],
92
+ };
93
+ `;
94
+ exports.STANDARD_REMOTE_MFE_CONFIG = `const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');
95
+ const mf = require('@angular-architects/module-federation/webpack');
96
+ const path = require('path');
97
+ const share = mf.share;
98
+
99
+ /**
100
+ * We use the NX_TSCONFIG_PATH environment variable when using the @nrwl/angular:webpack-browser
101
+ * builder as it will generate a temporary tsconfig file which contains any required remappings of
102
+ * shared libraries.
103
+ * A remapping will occur when a library is buildable, as webpack needs to know the location of the
104
+ * built files for the buildable library.
105
+ * This NX_TSCONFIG_PATH environment variable is set by the @nrwl/angular:webpack-browser and it contains
106
+ * the location of the generated temporary tsconfig file.
107
+ */
108
+ const tsConfigPath =
109
+ process.env.NX_TSCONFIG_PATH ??
110
+ path.join(__dirname, '../../tsconfig.base.json');
111
+
112
+ const workspaceRootPath = path.join(__dirname, '../../');
113
+ const sharedMappings = new mf.SharedMappings();
114
+ sharedMappings.register(
115
+ tsConfigPath,
116
+ [
117
+ /* mapped paths to share */
118
+ ],
119
+ workspaceRootPath
120
+ );
121
+
122
+ module.exports = {
123
+ output: {
124
+ uniqueName: 'remote1',
125
+ publicPath: 'auto',
126
+ },
127
+ optimization: {
128
+ runtimeChunk: false,
129
+ },
130
+ experiments: {
131
+ outputModule: true,
132
+ },
133
+ resolve: {
134
+ alias: {
135
+ ...sharedMappings.getAliases(),
136
+ },
137
+ },
138
+ plugins: [
139
+ new ModuleFederationPlugin({
140
+ name: 'remote1',
141
+ filename: 'remoteEntry.js',
142
+ exposes: {
143
+ './Module': 'apps/remote1/src/app/remote-entry/entry.module.ts',
144
+ },
145
+ shared: share({
146
+ '@angular/core': {
147
+ singleton: true,
148
+ strictVersion: true,
149
+ requiredVersion: 'auto',
150
+ includeSecondaries: true,
151
+ },
152
+ '@angular/common': {
153
+ singleton: true,
154
+ strictVersion: true,
155
+ requiredVersion: 'auto',
156
+ includeSecondaries: true,
157
+ },
158
+ '@angular/common/http': {
159
+ singleton: true,
160
+ strictVersion: true,
161
+ requiredVersion: 'auto',
162
+ includeSecondaries: true,
163
+ },
164
+ '@angular/router': {
165
+ singleton: true,
166
+ strictVersion: true,
167
+ requiredVersion: 'auto',
168
+ includeSecondaries: true,
169
+ },
170
+ rxjs: {
171
+ singleton: true,
172
+ strictVersion: true,
173
+ requiredVersion: 'auto',
174
+ includeSecondaries: true,
175
+ },
176
+ ...sharedMappings.getDescriptors(),
177
+ }),
178
+ library: {
179
+ type: 'module',
180
+ },
181
+ }),
182
+ sharedMappings.getPlugin(),
183
+ ],
184
+ };
185
+ `;
186
+ exports.OLD_OBJECT_SHARED_SYNTAX = `const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');
187
+ const mf = require('@angular-architects/module-federation/webpack');
188
+ const path = require('path');
189
+ const share = mf.share;
190
+
191
+ /**
192
+ * We use the NX_TSCONFIG_PATH environment variable when using the @nrwl/angular:webpack-browser
193
+ * builder as it will generate a temporary tsconfig file which contains any required remappings of
194
+ * shared libraries.
195
+ * A remapping will occur when a library is buildable, as webpack needs to know the location of the
196
+ * built files for the buildable library.
197
+ * This NX_TSCONFIG_PATH environment variable is set by the @nrwl/angular:webpack-browser and it contains
198
+ * the location of the generated temporary tsconfig file.
199
+ */
200
+ const tsConfigPath =
201
+ process.env.NX_TSCONFIG_PATH ??
202
+ path.join(__dirname, '../../tsconfig.base.json');
203
+
204
+ const workspaceRootPath = path.join(__dirname, '../../');
205
+ const sharedMappings = new mf.SharedMappings();
206
+ sharedMappings.register(
207
+ tsConfigPath,
208
+ [
209
+ /* mapped paths to share */
210
+ ],
211
+ workspaceRootPath
212
+ );
213
+
214
+ module.exports = {
215
+ output: {
216
+ uniqueName: 'remote1',
217
+ publicPath: 'auto',
218
+ },
219
+ optimization: {
220
+ runtimeChunk: false,
221
+ },
222
+ experiments: {
223
+ outputModule: true,
224
+ },
225
+ resolve: {
226
+ alias: {
227
+ ...sharedMappings.getAliases(),
228
+ },
229
+ },
230
+ plugins: [
231
+ new ModuleFederationPlugin({
232
+ name: 'remote1',
233
+ filename: 'remoteEntry.js',
234
+ exposes: {
235
+ './Module': 'apps/remote1/src/app/remote-entry/entry.module.ts',
236
+ },
237
+ shared: {
238
+ '@angular/core': {
239
+ singleton: true,
240
+ strictVersion: true,
241
+ },
242
+ '@angular/common': {
243
+ singleton: true,
244
+ strictVersion: true,
245
+ },
246
+ '@angular/common/http': {
247
+ singleton: true,
248
+ strictVersion: true,
249
+ },
250
+ '@angular/router': {
251
+ singleton: true,
252
+ strictVersion: true,
253
+ },
254
+ rxjs: {
255
+ singleton: true,
256
+ strictVersion: true,
257
+ },
258
+ ...sharedMappings.getDescriptors(),
259
+ },
260
+ library: {
261
+ type: 'module',
262
+ },
263
+ }),
264
+ sharedMappings.getPlugin(),
265
+ ],
266
+ };`;
267
+ exports.ERROR_NAME_DOESNT_MATCH = `const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');
268
+ const mf = require('@angular-architects/module-federation/webpack');
269
+ const path = require('path');
270
+ const share = mf.share;
271
+
272
+ /**
273
+ * We use the NX_TSCONFIG_PATH environment variable when using the @nrwl/angular:webpack-browser
274
+ * builder as it will generate a temporary tsconfig file which contains any required remappings of
275
+ * shared libraries.
276
+ * A remapping will occur when a library is buildable, as webpack needs to know the location of the
277
+ * built files for the buildable library.
278
+ * This NX_TSCONFIG_PATH environment variable is set by the @nrwl/angular:webpack-browser and it contains
279
+ * the location of the generated temporary tsconfig file.
280
+ */
281
+ const tsConfigPath =
282
+ process.env.NX_TSCONFIG_PATH ??
283
+ path.join(__dirname, '../../tsconfig.base.json');
284
+
285
+ const workspaceRootPath = path.join(__dirname, '../../');
286
+ const sharedMappings = new mf.SharedMappings();
287
+ sharedMappings.register(
288
+ tsConfigPath,
289
+ [
290
+ /* mapped paths to share */
291
+ ],
292
+ workspaceRootPath
293
+ );
294
+
295
+ module.exports = {
296
+ output: {
297
+ uniqueName: 'somethingelse',
298
+ publicPath: 'auto',
299
+ },
300
+ optimization: {
301
+ runtimeChunk: false,
302
+ },
303
+ experiments: {
304
+ outputModule: true,
305
+ },
306
+ resolve: {
307
+ alias: {
308
+ ...sharedMappings.getAliases(),
309
+ },
310
+ },
311
+ plugins: [
312
+ new ModuleFederationPlugin({
313
+ name: 'remote1',
314
+ filename: 'remoteEntry.js',
315
+ exposes: {
316
+ './Module': 'apps/remote1/src/app/remote-entry/entry.module.ts',
317
+ },
318
+ shared: share({
319
+ '@angular/core': {
320
+ singleton: true,
321
+ strictVersion: true,
322
+ requiredVersion: 'auto',
323
+ includeSecondaries: true,
324
+ },
325
+ '@angular/common': {
326
+ singleton: true,
327
+ strictVersion: true,
328
+ requiredVersion: 'auto',
329
+ includeSecondaries: true,
330
+ },
331
+ '@angular/common/http': {
332
+ singleton: true,
333
+ strictVersion: true,
334
+ requiredVersion: 'auto',
335
+ includeSecondaries: true,
336
+ },
337
+ '@angular/router': {
338
+ singleton: true,
339
+ strictVersion: true,
340
+ requiredVersion: 'auto',
341
+ includeSecondaries: true,
342
+ },
343
+ rxjs: {
344
+ singleton: true,
345
+ strictVersion: true,
346
+ requiredVersion: 'auto',
347
+ includeSecondaries: true,
348
+ },
349
+ ...sharedMappings.getDescriptors(),
350
+ }),
351
+ library: {
352
+ type: 'module',
353
+ },
354
+ }),
355
+ sharedMappings.getPlugin(),
356
+ ],
357
+ };
358
+ `;
359
+ exports.ERROR_SHARED_PACKAGES_DOESNT_MATCH = `const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');
360
+ const mf = require('@angular-architects/module-federation/webpack');
361
+ const path = require('path');
362
+ const share = mf.share;
363
+
364
+ /**
365
+ * We use the NX_TSCONFIG_PATH environment variable when using the @nrwl/angular:webpack-browser
366
+ * builder as it will generate a temporary tsconfig file which contains any required remappings of
367
+ * shared libraries.
368
+ * A remapping will occur when a library is buildable, as webpack needs to know the location of the
369
+ * built files for the buildable library.
370
+ * This NX_TSCONFIG_PATH environment variable is set by the @nrwl/angular:webpack-browser and it contains
371
+ * the location of the generated temporary tsconfig file.
372
+ */
373
+ const tsConfigPath =
374
+ process.env.NX_TSCONFIG_PATH ??
375
+ path.join(__dirname, '../../tsconfig.base.json');
376
+
377
+ const workspaceRootPath = path.join(__dirname, '../../');
378
+ const sharedMappings = new mf.SharedMappings();
379
+ sharedMappings.register(
380
+ tsConfigPath,
381
+ [
382
+ /* mapped paths to share */
383
+ ],
384
+ workspaceRootPath
385
+ );
386
+
387
+ module.exports = {
388
+ output: {
389
+ uniqueName: 'host1',
390
+ publicPath: 'auto',
391
+ },
392
+ optimization: {
393
+ runtimeChunk: false,
394
+ },
395
+ experiments: {
396
+ outputModule: true,
397
+ },
398
+ resolve: {
399
+ alias: {
400
+ ...sharedMappings.getAliases(),
401
+ },
402
+ },
403
+ plugins: [
404
+ new ModuleFederationPlugin({
405
+ remotes: {
406
+ remote1: 'http://localhost:4201/remoteEntry.mjs',
407
+ },
408
+ shared: share({
409
+ '@angular/core': {
410
+ singleton: true,
411
+ strictVersion: true,
412
+ requiredVersion: '13.0.0',
413
+ includeSecondaries: true,
414
+ },
415
+ '@angular/common': {
416
+ singleton: true,
417
+ strictVersion: true,
418
+ requiredVersion: 'auto',
419
+ includeSecondaries: true,
420
+ },
421
+ '@angular/common/http': {
422
+ singleton: true,
423
+ strictVersion: false,
424
+ requiredVersion: 'auto',
425
+ includeSecondaries: true,
426
+ },
427
+ '@angular/router': {
428
+ singleton: true,
429
+ strictVersion: true,
430
+ requiredVersion: 'auto',
431
+ includeSecondaries: true,
432
+ },
433
+ rxjs: {
434
+ singleton: true,
435
+ strictVersion: true,
436
+ requiredVersion: 'auto',
437
+ includeSecondaries: true,
438
+ },
439
+ ...sharedMappings.getDescriptors(),
440
+ }),
441
+ library: {
442
+ type: 'module',
443
+ },
444
+ }),
445
+ sharedMappings.getPlugin(),
446
+ ],
447
+ };
448
+ `;
449
+ //# sourceMappingURL=convert-to-with-mf.test-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert-to-with-mf.test-data.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/generators/convert-to-with-mf/convert-to-with-mf.test-data.ts"],"names":[],"mappings":";;;AAAa,QAAA,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyFvC,CAAC;AAEW,QAAA,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2FzC,CAAC;AAEW,QAAA,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFrC,CAAC;AAES,QAAA,uBAAuB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2FtC,CAAC;AAEW,QAAA,kCAAkC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyFjD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { SourceFile } from 'typescript';
2
+ export declare function checkOutputNameMatchesProjectName(ast: SourceFile, projectName: string): boolean;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkOutputNameMatchesProjectName = void 0;
4
+ const tsquery_1 = require("@phenomnomnominal/tsquery");
5
+ function checkOutputNameMatchesProjectName(ast, projectName) {
6
+ const OUTPUT_SELECTOR = 'PropertyAssignment:has(Identifier[name=output]) > ObjectLiteralExpression:has(PropertyAssignment:has(Identifier[name=uniqueName]))';
7
+ const UNIQUENAME_SELECTOR = 'ObjectLiteralExpression > PropertyAssignment:has(Identifier[name=uniqueName]) > StringLiteral';
8
+ const outputNodes = (0, tsquery_1.tsquery)(ast, OUTPUT_SELECTOR, { visitAllChildren: true });
9
+ if (outputNodes.length === 0) {
10
+ // If the output isnt set in the config, then we can still set the project name correctly
11
+ return true;
12
+ }
13
+ const uniqueNameNodes = (0, tsquery_1.tsquery)(outputNodes[0], UNIQUENAME_SELECTOR, {
14
+ visitAllChildren: true,
15
+ });
16
+ if (uniqueNameNodes.length === 0) {
17
+ // If the uniqeName isnt set in the config, then we can still set the project name correctly
18
+ return true;
19
+ }
20
+ const uniqueName = uniqueNameNodes[0].getText().replace(/'/g, '');
21
+ return uniqueName === projectName;
22
+ }
23
+ exports.checkOutputNameMatchesProjectName = checkOutputNameMatchesProjectName;
24
+ //# sourceMappingURL=check-name-matches.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-name-matches.js","sourceRoot":"","sources":["../../../../../../../packages/angular/src/generators/convert-to-with-mf/lib/check-name-matches.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AAEpD,SAAgB,iCAAiC,CAC/C,GAAe,EACf,WAAmB;IAEnB,MAAM,eAAe,GACnB,oIAAoI,CAAC;IACvI,MAAM,mBAAmB,GACvB,+FAA+F,CAAC;IAElG,MAAM,WAAW,GAAG,IAAA,iBAAO,EAAC,GAAG,EAAE,eAAe,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,yFAAyF;QACzF,OAAO,IAAI,CAAC;KACb;IAED,MAAM,eAAe,GAAG,IAAA,iBAAO,EAAC,WAAW,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE;QACnE,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IACH,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;QAChC,4FAA4F;QAC5F,OAAO,IAAI,CAAC;KACb;IACD,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAElE,OAAO,UAAU,KAAK,WAAW,CAAC;AACpC,CAAC;AAzBD,8EAyBC"}
@@ -0,0 +1,2 @@
1
+ import type { SourceFile } from 'typescript';
2
+ export declare function checkSharedNpmPackagesMatchExpected(ast: SourceFile): boolean;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.checkSharedNpmPackagesMatchExpected = void 0;
4
+ const tsquery_1 = require("@phenomnomnominal/tsquery");
5
+ function checkSharedNpmPackagesMatchExpected(ast) {
6
+ const SHARE_HELPER_SELECTOR = 'PropertyAssignment:has(Identifier[name=shared]) > CallExpression:has(Identifier[name=share])';
7
+ const SHARED_PACKAGE_CONFIG_SELECTOR = 'ObjectLiteralExpression > PropertyAssignment > ObjectLiteralExpression';
8
+ const shareHelperNodes = (0, tsquery_1.tsquery)(ast, SHARE_HELPER_SELECTOR, {
9
+ visitAllChildren: true,
10
+ });
11
+ let sharedPackageConfigNodes;
12
+ let settingsToMatch = [];
13
+ if (shareHelperNodes.length === 0) {
14
+ // if we arent sharing using share helper, check for standard object sharing syntax
15
+ const SHARED_OBJECT_SELECTOR = 'PropertyAssignment:has(Identifier[name=shared]) > ObjectLiteralExpression';
16
+ const sharedObjectNodes = (0, tsquery_1.tsquery)(ast, SHARED_OBJECT_SELECTOR, {
17
+ visitAllChildren: true,
18
+ });
19
+ if (sharedObjectNodes.length === 0) {
20
+ // nothing is being shared, we're safe to continue
21
+ return true;
22
+ }
23
+ sharedPackageConfigNodes = (0, tsquery_1.tsquery)(sharedObjectNodes[0], SHARED_PACKAGE_CONFIG_SELECTOR, { visitAllChildren: true });
24
+ settingsToMatch = [`singleton: true`, `strictVersion: true`];
25
+ }
26
+ else {
27
+ sharedPackageConfigNodes = (0, tsquery_1.tsquery)(shareHelperNodes[0], SHARED_PACKAGE_CONFIG_SELECTOR, { visitAllChildren: true });
28
+ settingsToMatch = [
29
+ `singleton: true`,
30
+ `strictVersion: true`,
31
+ `requiredVersion: 'auto'`,
32
+ ];
33
+ }
34
+ if (sharedPackageConfigNodes.length === 0) {
35
+ // we arent sharing configs with the share helper, so we can safely continue
36
+ return true;
37
+ }
38
+ let packagesMatch = true;
39
+ for (const configNode of sharedPackageConfigNodes) {
40
+ const configText = configNode.getText();
41
+ packagesMatch = settingsToMatch.every((setting) => configText.includes(setting));
42
+ if (!packagesMatch) {
43
+ break;
44
+ }
45
+ }
46
+ return packagesMatch;
47
+ }
48
+ exports.checkSharedNpmPackagesMatchExpected = checkSharedNpmPackagesMatchExpected;
49
+ //# sourceMappingURL=check-shared-npm-packages.js.map