@nrwl/angular 14.0.0-beta.0 → 14.0.0-beta.3

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 (117) hide show
  1. package/.eslintrc.json +26 -0
  2. package/executors.json +20 -0
  3. package/generators.d.ts +2 -2
  4. package/generators.js +2 -2
  5. package/generators.js.map +1 -1
  6. package/generators.json +16 -20
  7. package/migrations.json +6 -0
  8. package/ng-package.json +2 -0
  9. package/package.json +9 -6
  10. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.d.ts +6 -0
  11. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js +44 -0
  12. package/src/builders/module-federation-dev-server/module-federation-dev-server.impl.js.map +1 -0
  13. package/src/builders/module-federation-dev-server/schema.d.ts +21 -0
  14. package/src/builders/module-federation-dev-server/schema.json +115 -0
  15. package/src/executors/file-server/compat.d.ts +2 -0
  16. package/src/executors/file-server/compat.js +6 -0
  17. package/src/executors/file-server/compat.js.map +1 -0
  18. package/src/executors/file-server/file-server.impl.d.ts +8 -0
  19. package/src/executors/file-server/file-server.impl.js +161 -0
  20. package/src/executors/file-server/file-server.impl.js.map +1 -0
  21. package/src/executors/file-server/schema.d.ts +14 -0
  22. package/src/executors/file-server/schema.json +67 -0
  23. package/src/generators/application/files/tsconfig.editor.json__tpl__ +1 -7
  24. package/src/generators/application/lib/update-editor-tsconfig.d.ts +1 -1
  25. package/src/generators/application/lib/update-editor-tsconfig.js +14 -2
  26. package/src/generators/application/lib/update-editor-tsconfig.js.map +1 -1
  27. package/src/generators/application/schema.json +5 -5
  28. package/src/generators/convert-to-with-mf/convert-to-with-mf.js +4 -4
  29. package/src/generators/convert-to-with-mf/convert-to-with-mf.js.map +1 -1
  30. package/src/generators/convert-to-with-mf/lib/write-new-webpack-config.js +1 -1
  31. package/src/generators/{mfe-host/mfe-host.compat.d.ts → host/host.compat.d.ts} +0 -0
  32. package/src/generators/host/host.compat.js +6 -0
  33. package/src/generators/host/host.compat.js.map +1 -0
  34. package/src/generators/host/host.d.ts +3 -0
  35. package/src/generators/host/host.js +34 -0
  36. package/src/generators/host/host.js.map +1 -0
  37. package/src/generators/{mfe-host → host}/schema.d.ts +0 -0
  38. package/src/generators/{mfe-host → host}/schema.json +5 -5
  39. package/src/generators/karma/karma.js +1 -0
  40. package/src/generators/karma/karma.js.map +1 -1
  41. package/src/generators/library/library.js +2 -7
  42. package/src/generators/library/library.js.map +1 -1
  43. package/src/generators/ng-add/migrate-from-angular-cli.js +9 -6
  44. package/src/generators/ng-add/migrate-from-angular-cli.js.map +1 -1
  45. package/src/generators/ng-add/schema.d.ts +0 -1
  46. package/src/generators/ng-add/schema.json +0 -7
  47. package/src/generators/ng-add/utilities/app.migrator.d.ts +1 -3
  48. package/src/generators/ng-add/utilities/app.migrator.js +27 -58
  49. package/src/generators/ng-add/utilities/app.migrator.js.map +1 -1
  50. package/src/generators/ng-add/utilities/{e2e-project.migrator.d.ts → e2e.migrator.d.ts} +0 -0
  51. package/src/generators/ng-add/utilities/{e2e-project.migrator.js → e2e.migrator.js} +32 -11
  52. package/src/generators/ng-add/utilities/e2e.migrator.js.map +1 -0
  53. package/src/generators/ng-add/utilities/lib.migrator.d.ts +26 -0
  54. package/src/generators/ng-add/utilities/lib.migrator.js +351 -0
  55. package/src/generators/ng-add/utilities/lib.migrator.js.map +1 -0
  56. package/src/generators/ng-add/utilities/normalize-options.js +5 -2
  57. package/src/generators/ng-add/utilities/normalize-options.js.map +1 -1
  58. package/src/generators/ng-add/utilities/project.migrator.d.ts +11 -2
  59. package/src/generators/ng-add/utilities/project.migrator.js +82 -4
  60. package/src/generators/ng-add/utilities/project.migrator.js.map +1 -1
  61. package/src/generators/ng-add/utilities/types.d.ts +9 -1
  62. package/src/generators/ng-add/utilities/validate-projects.d.ts +2 -0
  63. package/src/generators/ng-add/utilities/validate-projects.js +46 -0
  64. package/src/generators/ng-add/utilities/validate-projects.js.map +1 -0
  65. package/src/generators/ng-add/utilities/validation-logging.d.ts +2 -0
  66. package/src/generators/ng-add/utilities/validation-logging.js +20 -0
  67. package/src/generators/ng-add/utilities/validation-logging.js.map +1 -0
  68. package/src/generators/ng-add/utilities/workspace.d.ts +1 -1
  69. package/src/generators/ng-add/utilities/workspace.js +13 -17
  70. package/src/generators/ng-add/utilities/workspace.js.map +1 -1
  71. package/src/generators/{mfe-remote/mfe-remote.compat.d.ts → remote/remote.compat.d.ts} +0 -0
  72. package/src/generators/remote/remote.compat.js +6 -0
  73. package/src/generators/remote/remote.compat.js.map +1 -0
  74. package/src/generators/remote/remote.d.ts +3 -0
  75. package/src/generators/remote/remote.js +76 -0
  76. package/src/generators/remote/remote.js.map +1 -0
  77. package/src/generators/{mfe-remote → remote}/schema.d.ts +0 -0
  78. package/src/generators/{mfe-remote → remote}/schema.json +5 -5
  79. package/src/generators/setup-mfe/files/webpack/{mfe.config.js__tmpl__ → module-federation.config.js__tmpl__} +0 -0
  80. package/src/generators/setup-mfe/files/webpack/webpack.config.js__tmpl__ +1 -1
  81. package/src/generators/setup-mfe/files/webpack/webpack.prod.config.js__tmpl__ +1 -1
  82. package/src/generators/setup-mfe/lib/add-remote-to-host.js +10 -10
  83. package/src/generators/setup-mfe/lib/add-remote-to-host.js.map +1 -1
  84. package/src/generators/setup-mfe/lib/fix-bootstrap.js +3 -3
  85. package/src/generators/setup-mfe/lib/fix-bootstrap.js.map +1 -1
  86. package/src/generators/setup-mfe/lib/generate-config.js +1 -1
  87. package/src/generators/setup-mfe/lib/generate-config.js.map +1 -1
  88. package/src/generators/setup-mfe/lib/setup-host-if-dynamic.js +3 -3
  89. package/src/generators/setup-mfe/lib/setup-host-if-dynamic.js.map +1 -1
  90. package/src/generators/setup-mfe/lib/setup-serve-target.js +18 -19
  91. package/src/generators/setup-mfe/lib/setup-serve-target.js.map +1 -1
  92. package/src/generators/utils/dependencies.d.ts +2 -0
  93. package/src/generators/utils/dependencies.js +15 -0
  94. package/src/generators/utils/dependencies.js.map +1 -0
  95. package/src/migrations/update-13-8-1/add-cypress-mfe-workaround.js +2 -2
  96. package/src/migrations/update-13-8-1/add-cypress-mfe-workaround.js.map +1 -1
  97. package/src/migrations/update-14-0-0/rename-mf-config.d.ts +2 -0
  98. package/src/migrations/update-14-0-0/rename-mf-config.js +27 -0
  99. package/src/migrations/update-14-0-0/rename-mf-config.js.map +1 -0
  100. package/src/utils/{get-mfe-projects.d.ts → get-mf-projects.d.ts} +1 -1
  101. package/src/utils/{get-mfe-projects.js → get-mf-projects.js} +4 -4
  102. package/src/utils/get-mf-projects.js.map +1 -0
  103. package/src/utils/mfe/mfe-webpack.js +45 -8
  104. package/src/utils/mfe/mfe-webpack.js.map +1 -1
  105. package/src/utils/versions.js +1 -1
  106. package/src/generators/mfe-host/mfe-host.compat.js +0 -6
  107. package/src/generators/mfe-host/mfe-host.compat.js.map +0 -1
  108. package/src/generators/mfe-host/mfe-host.d.ts +0 -3
  109. package/src/generators/mfe-host/mfe-host.js +0 -22
  110. package/src/generators/mfe-host/mfe-host.js.map +0 -1
  111. package/src/generators/mfe-remote/mfe-remote.compat.js +0 -6
  112. package/src/generators/mfe-remote/mfe-remote.compat.js.map +0 -1
  113. package/src/generators/mfe-remote/mfe-remote.d.ts +0 -3
  114. package/src/generators/mfe-remote/mfe-remote.js +0 -31
  115. package/src/generators/mfe-remote/mfe-remote.js.map +0 -1
  116. package/src/generators/ng-add/utilities/e2e-project.migrator.js.map +0 -1
  117. package/src/utils/get-mfe-projects.js.map +0 -1
package/.eslintrc.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "extends": "../../.eslintrc",
3
+ "rules": {},
4
+ "ignorePatterns": ["!**/*"],
5
+ "overrides": [
6
+ {
7
+ "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
8
+ "rules": {}
9
+ },
10
+ {
11
+ "files": ["*.ts", "*.tsx"],
12
+ "rules": {}
13
+ },
14
+ {
15
+ "files": ["*.js", "*.jsx"],
16
+ "rules": {}
17
+ },
18
+ {
19
+ "files": ["**/*.ts"],
20
+ "excludedFiles": ["./src/migrations/**"],
21
+ "rules": {
22
+ "no-restricted-imports": ["error", "@nrwl/workspace"]
23
+ }
24
+ }
25
+ ]
26
+ }
package/executors.json CHANGED
@@ -24,6 +24,16 @@
24
24
  "implementation": "./src/builders/webpack-server/webpack-server.impl",
25
25
  "schema": "./src/builders/webpack-server/schema.json",
26
26
  "description": "The `webpack-server` executor is very similar to the standard `dev-server` builder provided by the Angular Devkit. It is usually used in tandem with `@nrwl/angular:webpack-browser` when your Angular application uses a custom webpack configuration."
27
+ },
28
+ "module-federation-dev-server": {
29
+ "implementation": "./src/builders/module-federation-dev-server/module-federation-dev-server.impl",
30
+ "schema": "./src/builders/module-federation-dev-server/schema.json",
31
+ "description": "The module-federation-dev-server executor is reserved exclusively for use with host Module Federation applications. It allows the user to specify which remote applications should be served with the host."
32
+ },
33
+ "file-server": {
34
+ "implementation": "./src/executors/file-server/file-server.impl",
35
+ "schema": "./src/executors/file-server/schema.json",
36
+ "description": "Serve a web application from a folder."
27
37
  }
28
38
  },
29
39
  "builders": {
@@ -51,6 +61,16 @@
51
61
  "implementation": "./src/builders/webpack-server/webpack-server.impl",
52
62
  "schema": "./src/builders/webpack-server/schema.json",
53
63
  "description": "The `webpack-server` executor is very similar to the standard `dev-server` builder provided by the Angular Devkit. It is usually used in tandem with `@nrwl/angular:webpack-browser` when your Angular application uses a custom webpack configuration."
64
+ },
65
+ "module-federation-dev-server": {
66
+ "implementation": "./src/builders/module-federation-dev-server/module-federation-dev-server.impl",
67
+ "schema": "./src/builders/module-federation-dev-server/schema.json",
68
+ "description": "The module-federation-dev-server executor is reserved exclusively for use with host Module Federation applications. It allows the user to specify which remote applications should be served with the host."
69
+ },
70
+ "file-server": {
71
+ "implementation": "./src/executors/file-server/compat",
72
+ "schema": "./src/executors/file-server/schema.json",
73
+ "description": "Serve a web application from a folder."
54
74
  }
55
75
  }
56
76
  }
package/generators.d.ts CHANGED
@@ -13,7 +13,7 @@ export * from './src/generators/stories/stories';
13
13
  export * from './src/generators/storybook-configuration/storybook-configuration';
14
14
  export * from './src/generators/upgrade-module/upgrade-module';
15
15
  export * from './src/generators/setup-mfe/setup-mfe';
16
- export * from './src/generators/mfe-host/mfe-host';
16
+ export * from './src/generators/host/host';
17
17
  export * from './src/generators/scam/scam';
18
18
  export * from './src/generators/scam-directive/scam-directive';
19
19
  export * from './src/generators/scam-pipe/scam-pipe';
@@ -21,4 +21,4 @@ export * from './src/generators/add-linting/add-linting';
21
21
  export * from './src/generators/component-cypress-spec/component-cypress-spec';
22
22
  export * from './src/generators/component-story/component-story';
23
23
  export * from './src/generators/web-worker/web-worker';
24
- export * from './src/generators/mfe-remote/mfe-remote';
24
+ export * from './src/generators/remote/remote';
package/generators.js CHANGED
@@ -16,7 +16,7 @@ tslib_1.__exportStar(require("./src/generators/stories/stories"), exports);
16
16
  tslib_1.__exportStar(require("./src/generators/storybook-configuration/storybook-configuration"), exports);
17
17
  tslib_1.__exportStar(require("./src/generators/upgrade-module/upgrade-module"), exports);
18
18
  tslib_1.__exportStar(require("./src/generators/setup-mfe/setup-mfe"), exports);
19
- tslib_1.__exportStar(require("./src/generators/mfe-host/mfe-host"), exports);
19
+ tslib_1.__exportStar(require("./src/generators/host/host"), exports);
20
20
  tslib_1.__exportStar(require("./src/generators/scam/scam"), exports);
21
21
  tslib_1.__exportStar(require("./src/generators/scam-directive/scam-directive"), exports);
22
22
  tslib_1.__exportStar(require("./src/generators/scam-pipe/scam-pipe"), exports);
@@ -24,5 +24,5 @@ tslib_1.__exportStar(require("./src/generators/add-linting/add-linting"), export
24
24
  tslib_1.__exportStar(require("./src/generators/component-cypress-spec/component-cypress-spec"), exports);
25
25
  tslib_1.__exportStar(require("./src/generators/component-story/component-story"), exports);
26
26
  tslib_1.__exportStar(require("./src/generators/web-worker/web-worker"), exports);
27
- tslib_1.__exportStar(require("./src/generators/mfe-remote/mfe-remote"), exports);
27
+ tslib_1.__exportStar(require("./src/generators/remote/remote"), exports);
28
28
  //# sourceMappingURL=generators.js.map
package/generators.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"generators.js","sourceRoot":"","sources":["../../../packages/angular/generators.ts"],"names":[],"mappings":";;;AAAA,mFAAyD;AACzD,6GAAmF;AACnF,6FAAmE;AACnE,qEAA2C;AAC3C,uEAA6C;AAC7C,uFAA6D;AAC7D,2EAAiD;AACjD,uHAA6F;AAC7F,qEAA2C;AAC3C,qEAA2C;AAC3C,yFAA+D;AAC/D,2EAAiD;AACjD,2GAAiF;AACjF,yFAA+D;AAC/D,+EAAqD;AACrD,6EAAmD;AACnD,qEAA2C;AAC3C,yFAA+D;AAC/D,+EAAqD;AACrD,mFAAyD;AACzD,yGAA+E;AAC/E,2FAAiE;AACjE,iFAAuD;AACvD,iFAAuD"}
1
+ {"version":3,"file":"generators.js","sourceRoot":"","sources":["../../../packages/angular/generators.ts"],"names":[],"mappings":";;;AAAA,mFAAyD;AACzD,6GAAmF;AACnF,6FAAmE;AACnE,qEAA2C;AAC3C,uEAA6C;AAC7C,uFAA6D;AAC7D,2EAAiD;AACjD,uHAA6F;AAC7F,qEAA2C;AAC3C,qEAA2C;AAC3C,yFAA+D;AAC/D,2EAAiD;AACjD,2GAAiF;AACjF,yFAA+D;AAC/D,+EAAqD;AACrD,qEAA2C;AAC3C,qEAA2C;AAC3C,yFAA+D;AAC/D,+EAAqD;AACrD,mFAAyD;AACzD,yGAA+E;AAC/E,2FAAiE;AACjE,iFAAuD;AACvD,yEAA+C"}
package/generators.json CHANGED
@@ -71,11 +71,10 @@
71
71
  "aliases": ["secondary-entry-point", "entry-point"],
72
72
  "description": "Creates a secondary entry point for an Angular publishable library."
73
73
  },
74
- "mfe-remote": {
75
- "factory": "./src/generators/mfe-remote/mfe-remote.compat",
76
- "schema": "./src/generators/mfe-remote/schema.json",
77
- "aliases": ["remote"],
78
- "description": "Generate a Remote Angular Micro-Frontend Application."
74
+ "remote": {
75
+ "factory": "./src/generators/remote/remote.compat",
76
+ "schema": "./src/generators/remote/schema.json",
77
+ "description": "Generate a Remote Angular Module Federation Application."
79
78
  },
80
79
  "move": {
81
80
  "factory": "./src/generators/move/move#angularMoveSchematic",
@@ -88,11 +87,10 @@
88
87
  "schema": "./src/generators/convert-to-with-mf/schema.json",
89
88
  "description": "Converts an old micro frontend configuration to use the new `withModuleFederation` helper. It will run successfully if the following conditions are met: \n - Is either a host or remote application \n - Shared npm package configurations have not been modified \n - Name used to identify the Micro Frontend application matches the project name \n\n _**Note:** This generator will overwrite your webpack config. If you have additional custom configuration in your config file, it will be lost!_"
90
89
  },
91
- "mfe-host": {
92
- "factory": "./src/generators/mfe-host/mfe-host.compat",
93
- "schema": "./src/generators/mfe-host/schema.json",
94
- "aliases": ["host"],
95
- "description": "Generate a Host Angular Micro Frontend Application."
90
+ "host": {
91
+ "factory": "./src/generators/host/host.compat",
92
+ "schema": "./src/generators/host/schema.json",
93
+ "description": "Generate a Host Angular Module Federation Application."
96
94
  },
97
95
  "ng-add": {
98
96
  "factory": "./src/generators/ng-add/compat",
@@ -220,11 +218,10 @@
220
218
  "aliases": ["secondary-entry-point", "entry-point"],
221
219
  "description": "Creates a secondary entry point for an Angular publishable library."
222
220
  },
223
- "mfe-remote": {
224
- "factory": "./src/generators/mfe-remote/mfe-remote",
225
- "schema": "./src/generators/mfe-remote/schema.json",
226
- "aliases": ["remote"],
227
- "description": "Generate a Remote Angular Micro-Frontend Application."
221
+ "remote": {
222
+ "factory": "./src/generators/remote/remote",
223
+ "schema": "./src/generators/remote/schema.json",
224
+ "description": "Generate a Remote Angular Module Federation Application."
228
225
  },
229
226
  "move": {
230
227
  "factory": "./src/generators/move/move#angularMoveGenerator",
@@ -237,11 +234,10 @@
237
234
  "schema": "./src/generators/convert-to-with-mf/schema.json",
238
235
  "description": "Converts an old micro frontend configuration to use the new withModuleFederation helper. It will run successfully if the following conditions are met: \n - Is either a host or remote application \n - Shared npm package configurations have not been modified \n - Name used to identify the Micro Frontend application matches the project name \n\n _**Note:** This generator will overwrite your webpack config. If you have additional custom configuration in your config file, it will be lost!_"
239
236
  },
240
- "mfe-host": {
241
- "factory": "./src/generators/mfe-host/mfe-host",
242
- "schema": "./src/generators/mfe-host/schema.json",
243
- "aliases": ["host"],
244
- "description": "Generate a Host Angular Micro Frontend Application."
237
+ "host": {
238
+ "factory": "./src/generators/host/host",
239
+ "schema": "./src/generators/host/schema.json",
240
+ "description": "Generate a Host Angular Module Federation Application."
245
241
  },
246
242
  "ng-add": {
247
243
  "factory": "./src/generators/ng-add/ng-add",
package/migrations.json CHANGED
@@ -106,6 +106,12 @@
106
106
  "version": "13.9.0-beta.4",
107
107
  "description": "Set buildLibsFromSource property to false to not break existing usage.",
108
108
  "factory": "./src/migrations/update-13-9-0/set-build-libs-from-source"
109
+ },
110
+ "rename-module-federation-config": {
111
+ "cli": "nx",
112
+ "version": "14.0.0-beta.1",
113
+ "description": "Rename mfe.config.js to module-federation.config.js for consistent terminology.",
114
+ "factory": "./src/migrations/update-14-0-0/rename-mf-config"
109
115
  }
110
116
  },
111
117
  "packageJsonUpdates": {
package/ng-package.json CHANGED
@@ -9,6 +9,8 @@
9
9
  "@angular-eslint/",
10
10
  "@schematics",
11
11
  "@phenomnomnominal/tsquery",
12
+ "chalk",
13
+ "chokidar",
12
14
  "ignore",
13
15
  "jasmine-marbles",
14
16
  "rxjs-for-await",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nrwl/angular",
3
- "version": "14.0.0-beta.0",
3
+ "version": "14.0.0-beta.3",
4
4
  "description": "The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: \n\n- Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Cypress, Karma, and Protractor. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Upgrading AngularJS applications \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -65,13 +65,16 @@
65
65
  },
66
66
  "dependencies": {
67
67
  "@angular-devkit/schematics": "~13.3.0",
68
- "@nrwl/cypress": "14.0.0-beta.0",
69
- "@nrwl/devkit": "14.0.0-beta.0",
70
- "@nrwl/jest": "14.0.0-beta.0",
71
- "@nrwl/linter": "14.0.0-beta.0",
72
- "@nrwl/storybook": "14.0.0-beta.0",
68
+ "@nrwl/cypress": "14.0.0-beta.3",
69
+ "@nrwl/devkit": "14.0.0-beta.3",
70
+ "@nrwl/jest": "14.0.0-beta.3",
71
+ "@nrwl/linter": "14.0.0-beta.3",
72
+ "@nrwl/storybook": "14.0.0-beta.3",
73
+ "@nrwl/workspace": "14.0.0-beta.3",
73
74
  "@schematics/angular": "~13.3.0",
74
75
  "@phenomnomnominal/tsquery": "4.1.1",
76
+ "chalk": "4.1.0",
77
+ "chokidar": "^3.5.1",
75
78
  "ignore": "^5.0.4",
76
79
  "jasmine-marbles": "~0.8.4",
77
80
  "rxjs-for-await": "0.0.2",
@@ -0,0 +1,6 @@
1
+ import type { Schema } from './schema';
2
+ import { BuilderContext } from '@angular-devkit/architect';
3
+ import { JsonObject } from '@angular-devkit/core';
4
+ export declare function moduleFederationDevServer(schema: Schema, context: BuilderContext): import("rxjs").Observable<import("@angular-devkit/build-angular").DevServerBuilderOutput>;
5
+ declare const _default: import("@angular-devkit/architect/src/internal").Builder<JsonObject & Schema>;
6
+ export default _default;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.moduleFederationDevServer = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nrwl/devkit");
6
+ const ngcli_adapter_1 = require("nx/src/adapter/ngcli-adapter");
7
+ const architect_1 = require("@angular-devkit/architect");
8
+ const path_1 = require("path");
9
+ const webpack_server_impl_1 = require("../webpack-server/webpack-server.impl");
10
+ function moduleFederationDevServer(schema, context) {
11
+ const workspaces = new devkit_1.Workspaces(context.workspaceRoot);
12
+ const workspaceConfig = workspaces.readWorkspaceConfiguration();
13
+ const p = workspaceConfig.projects[context.target.project];
14
+ const mfConfigPath = (0, path_1.join)(context.workspaceRoot, p.root, 'module-federation.config.js');
15
+ let mfeConfig;
16
+ try {
17
+ mfeConfig = require(mfConfigPath);
18
+ }
19
+ catch (_a) {
20
+ throw new Error(`Could not load ${mfConfigPath}. Was this project generated with "@nrwl/angular:host"?`);
21
+ }
22
+ const options = tslib_1.__rest(schema, []);
23
+ const unparsedRemotes = mfeConfig.remotes.length > 0 ? mfeConfig.remotes : [];
24
+ const remotes = unparsedRemotes.map((a) => (Array.isArray(a) ? a[0] : a));
25
+ const devServeRemotes = !options.devRemotes
26
+ ? []
27
+ : Array.isArray(options.devRemotes)
28
+ ? options.devRemotes
29
+ : [options.devRemotes];
30
+ for (const remote of remotes) {
31
+ const isDev = devServeRemotes.includes(remote);
32
+ (0, ngcli_adapter_1.scheduleTarget)(context.workspaceRoot, {
33
+ project: remote,
34
+ target: isDev ? 'serve' : 'serve-static',
35
+ configuration: context.target.configuration,
36
+ runOptions: {},
37
+ executor: context.builder.builderName,
38
+ }, options.verbose);
39
+ }
40
+ return (0, webpack_server_impl_1.webpackServer)(options, context);
41
+ }
42
+ exports.moduleFederationDevServer = moduleFederationDevServer;
43
+ exports.default = (0, architect_1.createBuilder)(moduleFederationDevServer);
44
+ //# sourceMappingURL=module-federation-dev-server.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-federation-dev-server.impl.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/builders/module-federation-dev-server/module-federation-dev-server.impl.ts"],"names":[],"mappings":";;;;AACA,yCAA0C;AAC1C,gEAA8D;AAC9D,yDAA0E;AAE1E,+BAA4B;AAC5B,+EAAsE;AAEtE,SAAgB,yBAAyB,CACvC,MAAc,EACd,OAAuB;IAEvB,MAAM,UAAU,GAAG,IAAI,mBAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,UAAU,CAAC,0BAA0B,EAAE,CAAC;IAEhE,MAAM,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE3D,MAAM,YAAY,GAAG,IAAA,WAAI,EACvB,OAAO,CAAC,aAAa,EACrB,CAAC,CAAC,IAAI,EACN,6BAA6B,CAC9B,CAAC;IAEF,IAAI,SAAgC,CAAC;IACrC,IAAI;QACF,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;KACnC;IAAC,WAAM;QACN,MAAM,IAAI,KAAK,CACb,kBAAkB,YAAY,yDAAyD,CACxF,CAAC;KACH;IAED,MAAW,OAAO,kBAAK,MAAM,EAAvB,EAAc,CAAS,CAAC;IAC9B,MAAM,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1E,MAAM,eAAe,GAAG,CAAC,OAAO,CAAC,UAAU;QACzC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;YACnC,CAAC,CAAC,OAAO,CAAC,UAAU;YACpB,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAEzB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAA,8BAAc,EACZ,OAAO,CAAC,aAAa,EACrB;YACE,OAAO,EAAE,MAAM;YACf,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc;YACxC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa;YAC3C,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;SACtC,EACD,OAAO,CAAC,OAAO,CAChB,CAAC;KACH;IAED,OAAO,IAAA,mCAAa,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC;AAlDD,8DAkDC;AAED,kBAAe,IAAA,yBAAa,EAAsB,yBAAyB,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ export interface Schema {
2
+ browserTarget: string;
3
+ port: number;
4
+ host: string;
5
+ proxyConfig?: string;
6
+ ssl: boolean;
7
+ sslKey?: string;
8
+ sslCert?: string;
9
+ headers?: Record<string, string>;
10
+ open: boolean;
11
+ verbose?: boolean;
12
+ liveReload: boolean;
13
+ publicHost?: string;
14
+ allowedHosts?: string[];
15
+ servePath?: string;
16
+ disableHostCheck?: boolean;
17
+ hmr?: boolean;
18
+ watch?: boolean;
19
+ poll?: number;
20
+ devRemotes?: string[];
21
+ }
@@ -0,0 +1,115 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema",
3
+ "title": "Schema for Module Federation Dev Server",
4
+ "description": "The module-federation-dev-server executor is reserved exclusively for use with host Module Federation applications. It allows the user to specify which remote applications should be served with the host.",
5
+ "type": "object",
6
+ "presets": [
7
+ {
8
+ "name": "Using a Different Port",
9
+ "keys": ["browserTarget", "port"]
10
+ }
11
+ ],
12
+ "properties": {
13
+ "browserTarget": {
14
+ "type": "string",
15
+ "description": "A browser builder target to serve in the format of `project:target[:configuration]`. You can also pass in more than one configuration name as a comma-separated list. Example: `project:target:production,staging`.",
16
+ "pattern": "^[^:\\s]+:[^:\\s]+(:[^\\s]+)?$"
17
+ },
18
+ "port": {
19
+ "type": "number",
20
+ "description": "Port to listen on.",
21
+ "default": 4200
22
+ },
23
+ "host": {
24
+ "type": "string",
25
+ "description": "Host to listen on.",
26
+ "default": "localhost"
27
+ },
28
+ "proxyConfig": {
29
+ "type": "string",
30
+ "description": "Proxy configuration file. For more information, see https://angular.io/guide/build#proxying-to-a-backend-server."
31
+ },
32
+ "ssl": {
33
+ "type": "boolean",
34
+ "description": "Serve using HTTPS.",
35
+ "default": false
36
+ },
37
+ "sslKey": {
38
+ "type": "string",
39
+ "description": "SSL key to use for serving HTTPS."
40
+ },
41
+ "sslCert": {
42
+ "type": "string",
43
+ "description": "SSL certificate to use for serving HTTPS."
44
+ },
45
+ "headers": {
46
+ "type": "object",
47
+ "description": "Custom HTTP headers to be added to all responses.",
48
+ "propertyNames": {
49
+ "pattern": "^[-_A-Za-z0-9]+$"
50
+ },
51
+ "additionalProperties": {
52
+ "type": "string"
53
+ }
54
+ },
55
+ "open": {
56
+ "type": "boolean",
57
+ "description": "Opens the url in default browser.",
58
+ "default": false,
59
+ "alias": "o"
60
+ },
61
+ "verbose": {
62
+ "type": "boolean",
63
+ "description": "Adds more details to output logging."
64
+ },
65
+ "liveReload": {
66
+ "type": "boolean",
67
+ "description": "Whether to reload the page on change, using live-reload.",
68
+ "default": true
69
+ },
70
+ "publicHost": {
71
+ "type": "string",
72
+ "description": "The URL that the browser client (or live-reload client, if enabled) should use to connect to the development server. Use for a complex dev server setup, such as one with reverse proxies."
73
+ },
74
+ "allowedHosts": {
75
+ "type": "array",
76
+ "description": "List of hosts that are allowed to access the dev server.",
77
+ "default": [],
78
+ "items": {
79
+ "type": "string"
80
+ }
81
+ },
82
+ "servePath": {
83
+ "type": "string",
84
+ "description": "The pathname where the app will be served."
85
+ },
86
+ "disableHostCheck": {
87
+ "type": "boolean",
88
+ "description": "Don't verify connected clients are part of allowed hosts.",
89
+ "default": false
90
+ },
91
+ "hmr": {
92
+ "type": "boolean",
93
+ "description": "Enable hot module replacement.",
94
+ "default": false
95
+ },
96
+ "watch": {
97
+ "type": "boolean",
98
+ "description": "Rebuild on change.",
99
+ "default": true
100
+ },
101
+ "poll": {
102
+ "type": "number",
103
+ "description": "Enable and define the file watching poll time period in milliseconds."
104
+ },
105
+ "devRemotes": {
106
+ "type": "array",
107
+ "items": {
108
+ "type": "string"
109
+ },
110
+ "description": "List of remote applications to run in development mode (i.e. using serve target)."
111
+ }
112
+ },
113
+ "additionalProperties": false,
114
+ "required": ["browserTarget"]
115
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: 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 file_server_impl_1 = require("./file-server.impl");
5
+ exports.default = (0, devkit_1.convertNxExecutor)(file_server_impl_1.default);
6
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/executors/file-server/compat.ts"],"names":[],"mappings":";;AAAA,yCAAiD;AAEjD,yDAAoD;AAEpD,kBAAe,IAAA,0BAAiB,EAAC,0BAAkB,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { ExecutorContext } from '@nrwl/devkit';
2
+ import { Schema } from './schema';
3
+ export default function fileServerExecutor(options: Schema, context: ExecutorContext): AsyncGenerator<{
4
+ success: boolean;
5
+ baseUrl: string;
6
+ }, {
7
+ success: boolean;
8
+ }, unknown>;
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const child_process_1 = require("child_process");
5
+ const devkit_1 = require("@nrwl/devkit");
6
+ const ignore_1 = require("ignore");
7
+ const fs_1 = require("fs");
8
+ const chokidar_1 = require("chokidar");
9
+ const os_1 = require("os");
10
+ // platform specific command name
11
+ const pmCmd = (0, os_1.platform)() === 'win32' ? `npx.cmd` : 'npx';
12
+ function getHttpServerArgs(options) {
13
+ const args = ['-c-1'];
14
+ if (options.port) {
15
+ args.push(`-p=${options.port}`);
16
+ }
17
+ if (options.host) {
18
+ args.push(`-a=${options.host}`);
19
+ }
20
+ if (options.ssl) {
21
+ args.push(`-S`);
22
+ }
23
+ if (options.sslCert) {
24
+ args.push(`-C=${options.sslCert}`);
25
+ }
26
+ if (options.sslKey) {
27
+ args.push(`-K=${options.sslKey}`);
28
+ }
29
+ if (options.proxyUrl) {
30
+ args.push(`-P=${options.proxyUrl}`);
31
+ }
32
+ if (options.proxyOptions) {
33
+ Object.keys(options.proxyOptions).forEach((key) => {
34
+ args.push(`--proxy-options.${key}=options.proxyOptions[key]`);
35
+ });
36
+ }
37
+ args.push('--cors');
38
+ return args;
39
+ }
40
+ function getBuildTargetCommand(options) {
41
+ const cmd = ['nx', 'run', options.buildTarget];
42
+ if (options.withDeps) {
43
+ cmd.push(`--with-deps`);
44
+ }
45
+ if (options.parallel) {
46
+ cmd.push(`--parallel`);
47
+ }
48
+ if (options.maxParallel) {
49
+ cmd.push(`--maxParallel=${options.maxParallel}`);
50
+ }
51
+ return cmd;
52
+ }
53
+ function getBuildTargetOutputPath(options, context) {
54
+ let buildOptions;
55
+ try {
56
+ const [project, target, config] = options.buildTarget.split(':');
57
+ const buildTarget = context.workspace.projects[project].targets[target];
58
+ buildOptions = config
59
+ ? Object.assign(Object.assign({}, buildTarget.options), buildTarget.configurations[config]) : buildTarget.options;
60
+ }
61
+ catch (e) {
62
+ throw new Error(`Invalid buildTarget: ${options.buildTarget}`);
63
+ }
64
+ // TODO: vsavkin we should also check outputs
65
+ const outputPath = buildOptions.outputPath;
66
+ if (!outputPath) {
67
+ throw new Error(`Invalid buildTarget: ${options.buildTarget}. The target must contain outputPath property.`);
68
+ }
69
+ return outputPath;
70
+ }
71
+ function getIgnoredGlobs(root) {
72
+ const ig = (0, ignore_1.default)();
73
+ try {
74
+ ig.add((0, fs_1.readFileSync)(`${root}/.gitignore`, 'utf-8'));
75
+ }
76
+ catch (_a) { }
77
+ try {
78
+ ig.add((0, fs_1.readFileSync)(`${root}/.nxignore`, 'utf-8'));
79
+ }
80
+ catch (_b) { }
81
+ return ig;
82
+ }
83
+ function createFileWatcher(root, changeHandler) {
84
+ const ignoredGlobs = getIgnoredGlobs(root);
85
+ const layout = (0, devkit_1.workspaceLayout)();
86
+ const watcher = (0, chokidar_1.watch)([
87
+ (0, devkit_1.joinPathFragments)(layout.appsDir, '**'),
88
+ (0, devkit_1.joinPathFragments)(layout.libsDir, '**'),
89
+ ], {
90
+ cwd: root,
91
+ ignoreInitial: true,
92
+ });
93
+ watcher.on('all', (_event, path) => {
94
+ if (ignoredGlobs.ignores(path))
95
+ return;
96
+ changeHandler();
97
+ });
98
+ return () => watcher.close();
99
+ }
100
+ function fileServerExecutor(options, context) {
101
+ return tslib_1.__asyncGenerator(this, arguments, function* fileServerExecutor_1() {
102
+ let running = false;
103
+ const run = () => {
104
+ if (!running) {
105
+ running = true;
106
+ try {
107
+ const args = getBuildTargetCommand(options);
108
+ (0, child_process_1.execFileSync)(pmCmd, args, {
109
+ stdio: [0, 1, 2],
110
+ });
111
+ }
112
+ catch (_a) { }
113
+ running = false;
114
+ }
115
+ };
116
+ let disposeWatch;
117
+ if (options.watch) {
118
+ disposeWatch = createFileWatcher(context.root, run);
119
+ }
120
+ // perform initial run
121
+ run();
122
+ const outputPath = getBuildTargetOutputPath(options, context);
123
+ const args = getHttpServerArgs(options);
124
+ const serve = (0, child_process_1.execFile)(pmCmd, ['http-server', outputPath, ...args], {
125
+ cwd: context.root,
126
+ env: Object.assign({ FORCE_COLOR: 'true' }, process.env),
127
+ });
128
+ const processExitListener = () => {
129
+ serve.kill();
130
+ if (disposeWatch) {
131
+ disposeWatch();
132
+ }
133
+ };
134
+ process.on('exit', processExitListener);
135
+ process.on('SIGTERM', processExitListener);
136
+ serve.stdout.on('data', (chunk) => {
137
+ if (chunk.toString().indexOf('GET') === -1) {
138
+ process.stdout.write(chunk);
139
+ }
140
+ });
141
+ serve.stderr.on('data', (chunk) => {
142
+ process.stderr.write(chunk);
143
+ });
144
+ yield yield tslib_1.__await({
145
+ success: true,
146
+ baseUrl: `${options.ssl ? 'https' : 'http'}://${options.host}:${options.port}`,
147
+ });
148
+ return yield tslib_1.__await(new Promise((res) => {
149
+ serve.on('exit', (code) => {
150
+ if (code == 0) {
151
+ res({ success: true });
152
+ }
153
+ else {
154
+ res({ success: false });
155
+ }
156
+ });
157
+ }));
158
+ });
159
+ }
160
+ exports.default = fileServerExecutor;
161
+ //# sourceMappingURL=file-server.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-server.impl.js","sourceRoot":"","sources":["../../../../../../packages/angular/src/executors/file-server/file-server.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface Schema {
2
+ host: string;
3
+ port: number;
4
+ ssl: boolean;
5
+ sslKey?: string;
6
+ sslCert?: string;
7
+ proxyUrl?: string;
8
+ buildTarget: string;
9
+ parallel: boolean;
10
+ maxParallel?: number;
11
+ withDeps: boolean;
12
+ proxyOptions?: object;
13
+ watch?: boolean;
14
+ }