@angular-architects/native-federation 18.2.0 → 18.2.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 (104) hide show
  1. package/config.js +5 -0
  2. package/config.js.map +1 -0
  3. package/package.json +4 -3
  4. package/src/builders/build/builder.d.ts +5 -0
  5. package/src/builders/build/builder.js +255 -0
  6. package/src/builders/build/builder.js.map +1 -0
  7. package/src/config.d.ts +2 -0
  8. package/src/config.js +10 -0
  9. package/src/config.js.map +1 -0
  10. package/src/executors/build/executor.d.ts +4 -0
  11. package/src/executors/build/executor.js +13 -0
  12. package/src/executors/build/executor.js.map +1 -0
  13. package/src/generators/native-federation/generator.d.ts +3 -0
  14. package/src/generators/native-federation/generator.js +44 -0
  15. package/src/generators/native-federation/generator.js.map +1 -0
  16. package/src/index.js +1 -0
  17. package/src/index.js.map +1 -0
  18. package/src/patch-angular-build.d.ts +1 -0
  19. package/src/patch-angular-build.js +7 -0
  20. package/src/patch-angular-build.js.map +1 -0
  21. package/src/plugin/dev-externals-mixin.d.ts +1 -0
  22. package/src/plugin/dev-externals-mixin.js +30 -0
  23. package/src/plugin/dev-externals-mixin.js.map +1 -0
  24. package/src/plugin/externals-skip-list.d.ts +2 -0
  25. package/src/plugin/externals-skip-list.js +9 -0
  26. package/src/plugin/externals-skip-list.js.map +1 -0
  27. package/src/plugin/index.d.ts +2 -0
  28. package/src/plugin/index.js +107 -0
  29. package/src/plugin/index.js.map +1 -0
  30. package/src/schematics/appbuilder/schematic.d.ts +4 -0
  31. package/src/schematics/appbuilder/schematic.js +95 -0
  32. package/src/schematics/appbuilder/schematic.js.map +1 -0
  33. package/src/schematics/init/schematic.d.ts +6 -0
  34. package/src/schematics/init/schematic.js +316 -0
  35. package/src/schematics/init/schematic.js.map +1 -0
  36. package/src/schematics/remove/schematic.d.ts +4 -0
  37. package/src/schematics/remove/schematic.js +119 -0
  38. package/src/schematics/remove/schematic.js.map +1 -0
  39. package/src/schematics/update18/schematic.d.ts +2 -0
  40. package/src/schematics/update18/schematic.js +14 -0
  41. package/src/schematics/update18/schematic.js.map +1 -0
  42. package/src/utils/angular-esbuild-adapter.d.ts +9 -0
  43. package/src/utils/angular-esbuild-adapter.js +274 -0
  44. package/src/utils/angular-esbuild-adapter.js.map +1 -0
  45. package/src/utils/create-compiler-options.d.ts +4 -0
  46. package/src/utils/create-compiler-options.js +45 -0
  47. package/src/utils/create-compiler-options.js.map +1 -0
  48. package/src/utils/dev-server.d.ts +7 -0
  49. package/src/utils/dev-server.js +94 -0
  50. package/src/utils/dev-server.js.map +1 -0
  51. package/src/utils/event-sorce.d.ts +9 -0
  52. package/src/utils/event-sorce.js +20 -0
  53. package/src/utils/event-sorce.js.map +1 -0
  54. package/src/utils/mem-resuts.d.ts +29 -0
  55. package/src/utils/mem-resuts.js +58 -0
  56. package/src/utils/mem-resuts.js.map +1 -0
  57. package/src/utils/patch-angular-build.d.ts +3 -0
  58. package/src/utils/patch-angular-build.js +36 -0
  59. package/src/utils/patch-angular-build.js.map +1 -0
  60. package/src/utils/rebuild-events.d.ts +7 -0
  61. package/src/utils/rebuild-events.js +11 -0
  62. package/src/utils/rebuild-events.js.map +1 -0
  63. package/src/utils/shared-mappings-plugin.d.ts +3 -0
  64. package/src/utils/shared-mappings-plugin.js +31 -0
  65. package/src/utils/shared-mappings-plugin.js.map +1 -0
  66. package/src/utils/updateIndexHtml.d.ts +4 -0
  67. package/src/utils/updateIndexHtml.js +34 -0
  68. package/src/utils/updateIndexHtml.js.map +1 -0
  69. package/.eslintrc.json +0 -25
  70. package/docs/migrate.md +0 -173
  71. package/docs/share-faq.md +0 -57
  72. package/docs/update18.md +0 -19
  73. package/example.png +0 -0
  74. package/jest.config.ts +0 -11
  75. package/post-build.js +0 -10
  76. package/project.json +0 -80
  77. package/src/builders/build/builder.ts +0 -370
  78. package/src/config.ts +0 -6
  79. package/src/executors/build/executor.spec.ts +0 -11
  80. package/src/executors/build/executor.ts +0 -12
  81. package/src/generators/native-federation/generator.spec.ts +0 -20
  82. package/src/generators/native-federation/generator.ts +0 -76
  83. package/src/patch-angular-build.ts +0 -8
  84. package/src/plugin/dev-externals-mixin.ts +0 -34
  85. package/src/plugin/externals-skip-list.ts +0 -5
  86. package/src/plugin/index.ts +0 -123
  87. package/src/schematics/appbuilder/schematic.ts +0 -148
  88. package/src/schematics/init/schematic.ts +0 -463
  89. package/src/schematics/remove/schematic.ts +0 -179
  90. package/src/schematics/update18/schematic.ts +0 -10
  91. package/src/utils/angular-esbuild-adapter.ts +0 -438
  92. package/src/utils/create-compiler-options.ts +0 -68
  93. package/src/utils/dev-server.ts +0 -117
  94. package/src/utils/event-sorce.ts +0 -18
  95. package/src/utils/mem-resuts.ts +0 -67
  96. package/src/utils/patch-angular-build.ts +0 -47
  97. package/src/utils/rebuild-events.ts +0 -9
  98. package/src/utils/shared-mappings-plugin.ts +0 -35
  99. package/src/utils/updateIndexHtml.ts +0 -55
  100. package/tsconfig.json +0 -23
  101. package/tsconfig.lib.json +0 -11
  102. package/tsconfig.spec.json +0 -15
  103. /package/{config.ts → config.d.ts} +0 -0
  104. /package/src/{index.ts → index.d.ts} +0 -0
package/config.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./src/config"), exports);
5
+ //# sourceMappingURL=config.js.map
package/config.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../libs/native-federation/config.ts"],"names":[],"mappings":";;;AAAA,uDAA6B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular-architects/native-federation",
3
- "version": "18.2.0",
3
+ "version": "18.2.2",
4
4
  "main": "src/index.js",
5
5
  "generators": "./collection.json",
6
6
  "builders": "./builders.json",
@@ -29,5 +29,6 @@
29
29
  "npmlog": "^6.0.2",
30
30
  "process": "0.11.10"
31
31
  },
32
- "peerDependencies": {}
33
- }
32
+ "peerDependencies": {},
33
+ "types": "./src/index.d.ts"
34
+ }
@@ -0,0 +1,5 @@
1
+ import { BuilderContext, BuilderOutput } from '@angular-devkit/architect';
2
+ import { NfBuilderSchema } from './schema';
3
+ export declare function runBuilder(nfOptions: NfBuilderSchema, context: BuilderContext): AsyncIterable<BuilderOutput>;
4
+ declare const _default: any;
5
+ export default _default;
@@ -0,0 +1,255 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.runBuilder = runBuilder;
4
+ const tslib_1 = require("tslib");
5
+ const path = tslib_1.__importStar(require("path"));
6
+ const fs = tslib_1.__importStar(require("fs"));
7
+ const mrmime = tslib_1.__importStar(require("mrmime"));
8
+ const build_1 = require("@angular/build");
9
+ const private_1 = require("@angular/build/private");
10
+ const architect_1 = require("@angular-devkit/architect");
11
+ const options_1 = require("@angular-devkit/build-angular/src/builders/dev-server/options");
12
+ const build_2 = require("@softarc/native-federation/build");
13
+ const build_3 = require("@softarc/native-federation/build");
14
+ const angular_esbuild_adapter_1 = require("../../utils/angular-esbuild-adapter");
15
+ const build_4 = require("@softarc/native-federation/build");
16
+ const build_5 = require("@softarc/native-federation/build");
17
+ const build_6 = require("@softarc/native-federation/build");
18
+ const architect_2 = require("@angular-devkit/architect");
19
+ const dev_server_1 = require("../../utils/dev-server");
20
+ const rebuild_events_1 = require("../../utils/rebuild-events");
21
+ const updateIndexHtml_1 = require("../../utils/updateIndexHtml");
22
+ const fs_1 = require("fs");
23
+ const mem_resuts_1 = require("../../utils/mem-resuts");
24
+ const shared_mappings_plugin_1 = require("../../utils/shared-mappings-plugin");
25
+ function _buildApplication(options, context, pluginsOrExtensions) {
26
+ let extensions;
27
+ if (pluginsOrExtensions && Array.isArray(pluginsOrExtensions)) {
28
+ extensions = {
29
+ codePlugins: pluginsOrExtensions,
30
+ };
31
+ }
32
+ else {
33
+ extensions = pluginsOrExtensions;
34
+ }
35
+ return (0, private_1.buildApplicationInternal)(options, context, extensions);
36
+ }
37
+ function runBuilder(nfOptions, context) {
38
+ return tslib_1.__asyncGenerator(this, arguments, function* runBuilder_1() {
39
+ var _a, e_1, _b, _c;
40
+ let target = (0, architect_2.targetFromTargetString)(nfOptions.target);
41
+ let _options = (yield tslib_1.__await(context.getTargetOptions(target)));
42
+ let builder = yield tslib_1.__await(context.getBuilderNameForTarget(target));
43
+ if (builder === '@angular-devkit/build-angular:browser-esbuild') {
44
+ build_2.logger.info('.: NATIVE FEDERATION - UPDATE NEEDED :.');
45
+ build_2.logger.info('');
46
+ build_2.logger.info("Since version 17.1, Native Federation uses Angular's");
47
+ build_2.logger.info('Application-Builder and its Dev-Server.');
48
+ build_2.logger.info('');
49
+ build_2.logger.info('If you are sill on Angular 17.0.x, please update to');
50
+ build_2.logger.info('Angular 17.1.x or downgrade to Native Federation 17.0.x.');
51
+ build_2.logger.info('');
52
+ build_2.logger.info('For working with Native Federation 17.1.x (recommented), ');
53
+ build_2.logger.info('please update your project config, e.g. in angular.json');
54
+ build_2.logger.info('');
55
+ build_2.logger.info('This command performs the needed update for default configs:');
56
+ build_2.logger.info('');
57
+ build_2.logger.info('\tng g @angular-architects/native-federation:appbuilder');
58
+ build_2.logger.info('');
59
+ build_2.logger.info('You need to run it once per application to migrate');
60
+ build_2.logger.info('Please find more information here: https://shorturl.at/gADJW');
61
+ return yield tslib_1.__await(void 0);
62
+ }
63
+ let options = (yield tslib_1.__await(context.validateOptions(_options, builder)));
64
+ const outerOptions = options;
65
+ const normOuterOptions = nfOptions.dev
66
+ ? yield tslib_1.__await((0, options_1.normalizeOptions)(context, context.target.project, outerOptions))
67
+ : null;
68
+ if (nfOptions.dev) {
69
+ target = (0, architect_2.targetFromTargetString)(outerOptions.buildTarget);
70
+ _options = (yield tslib_1.__await(context.getTargetOptions(target)));
71
+ builder = yield tslib_1.__await(context.getBuilderNameForTarget(target));
72
+ options = (yield tslib_1.__await(context.validateOptions(_options, builder)));
73
+ }
74
+ const runServer = !!nfOptions.port;
75
+ const write = !runServer;
76
+ const watch = !!runServer || nfOptions.watch;
77
+ options.watch = watch;
78
+ if (nfOptions.baseHref) {
79
+ options.baseHref = nfOptions.baseHref;
80
+ }
81
+ const rebuildEvents = new rebuild_events_1.RebuildHubs();
82
+ const adapter = (0, angular_esbuild_adapter_1.createAngularBuildAdapter)(options, context, rebuildEvents);
83
+ (0, build_3.setBuildAdapter)(adapter);
84
+ (0, build_2.setLogLevel)(options.verbose ? 'verbose' : 'info');
85
+ const outputPath = options.outputPath;
86
+ const outputOptions = Object.assign(Object.assign({ browser: 'browser', server: 'server', media: 'media' }, (typeof outputPath === 'string' ? undefined : outputPath)), { base: typeof outputPath === 'string' ? outputPath : outputPath.base });
87
+ const browserOutputPath = path.join(outputOptions.base, outputOptions.browser);
88
+ const fedOptions = {
89
+ workspaceRoot: context.workspaceRoot,
90
+ outputPath: browserOutputPath,
91
+ federationConfig: infereConfigPath(options.tsConfig),
92
+ tsConfig: options.tsConfig,
93
+ verbose: options.verbose,
94
+ watch: false, // options.watch,
95
+ dev: !!nfOptions.dev,
96
+ };
97
+ const config = yield tslib_1.__await((0, build_5.loadFederationConfig)(fedOptions));
98
+ const externals = (0, build_4.getExternals)(config);
99
+ const plugins = [
100
+ (0, shared_mappings_plugin_1.createSharedMappingsPlugin)(config.sharedMappings),
101
+ {
102
+ name: 'externals',
103
+ setup(build) {
104
+ if (build.initialOptions.platform !== 'node') {
105
+ build.initialOptions.external = externals.filter((e) => e !== 'tslib');
106
+ }
107
+ },
108
+ },
109
+ ];
110
+ const middleware = [
111
+ (req, res, next) => {
112
+ const url = removeBaseHref(req, options.baseHref);
113
+ const fileName = path.join(fedOptions.workspaceRoot, fedOptions.outputPath, url);
114
+ const exists = fs.existsSync(fileName);
115
+ if (url !== '/' && url !== '' && exists) {
116
+ const lookup = mrmime.lookup;
117
+ const mimeType = lookup(path.extname(fileName)) || 'text/javascript';
118
+ const rawBody = fs.readFileSync(fileName, 'utf-8');
119
+ const body = addDebugInformation(url, rawBody);
120
+ res.writeHead(200, {
121
+ 'Content-Type': mimeType,
122
+ 'Access-Control-Allow-Origin': '*',
123
+ 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE',
124
+ 'Access-Control-Allow-Headers': 'Content-Type',
125
+ });
126
+ res.end(body);
127
+ }
128
+ else {
129
+ next();
130
+ }
131
+ },
132
+ ];
133
+ const memResults = new mem_resuts_1.MemResults();
134
+ let first = true;
135
+ let lastResult;
136
+ if ((0, fs_1.existsSync)(fedOptions.outputPath)) {
137
+ (0, fs_1.rmSync)(fedOptions.outputPath, { recursive: true });
138
+ }
139
+ if (!(0, fs_1.existsSync)(fedOptions.outputPath)) {
140
+ (0, fs_1.mkdirSync)(fedOptions.outputPath, { recursive: true });
141
+ }
142
+ if (!write) {
143
+ (0, angular_esbuild_adapter_1.setMemResultHandler)((outFiles, outDir) => {
144
+ const fullOutDir = outDir
145
+ ? path.join(fedOptions.workspaceRoot, outDir)
146
+ : null;
147
+ memResults.add(outFiles.map((f) => new mem_resuts_1.EsBuildResult(f, fullOutDir)));
148
+ });
149
+ }
150
+ try {
151
+ yield tslib_1.__await((0, build_6.buildForFederation)(config, fedOptions, externals));
152
+ }
153
+ catch (e) {
154
+ process.exit(1);
155
+ }
156
+ options.deleteOutputPath = false;
157
+ // TODO: Clarify how DevServer needs to be executed. Not sure if its right.
158
+ // TODO: Clarify if buildApplication is needed `executeDevServerBuilder` seems to choose the correct DevServer
159
+ const appBuilderName = '@angular-devkit/build-angular:application';
160
+ const builderRun = nfOptions.dev
161
+ ? (0, private_1.serveWithVite)(normOuterOptions, appBuilderName, _buildApplication, context, nfOptions.skipHtmlTransform
162
+ ? {}
163
+ : { indexHtml: transformIndexHtml(nfOptions) }, {
164
+ buildPlugins: plugins,
165
+ middleware,
166
+ })
167
+ : (0, build_1.buildApplication)(options, context, plugins);
168
+ try {
169
+ // builderRun.output.subscribe(async (output) => {
170
+ for (var _d = true, builderRun_1 = tslib_1.__asyncValues(builderRun), builderRun_1_1; builderRun_1_1 = yield tslib_1.__await(builderRun_1.next()), _a = builderRun_1_1.done, !_a; _d = true) {
171
+ _c = builderRun_1_1.value;
172
+ _d = false;
173
+ const output = _c;
174
+ lastResult = output;
175
+ if (!output.success) {
176
+ (0, dev_server_1.setError)('Compilation Error');
177
+ (0, dev_server_1.reloadBrowser)();
178
+ continue;
179
+ }
180
+ else {
181
+ (0, dev_server_1.setError)(null);
182
+ }
183
+ if (!write && output.outputFiles) {
184
+ memResults.add(output.outputFiles.map((file) => new mem_resuts_1.EsBuildResult(file)));
185
+ }
186
+ if (!write && output.assetFiles) {
187
+ memResults.add(output.assetFiles.map((file) => new mem_resuts_1.NgCliAssetResult(file)));
188
+ }
189
+ if (write && !nfOptions.dev && !nfOptions.skipHtmlTransform) {
190
+ (0, updateIndexHtml_1.updateIndexHtml)(fedOptions, nfOptions);
191
+ }
192
+ // if (first && runServer) {
193
+ // startServer(nfOptions, fedOptions.outputPath, memResults);
194
+ // }
195
+ // if (!first && runServer) {
196
+ // reloadBrowser();
197
+ // }
198
+ if (!runServer) {
199
+ yield yield tslib_1.__await(output);
200
+ }
201
+ if (!first && nfOptions.dev) {
202
+ setTimeout(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
203
+ // logger.info('Rebuilding federation artefacts ...');
204
+ // await Promise.all([rebuildEvents.rebuild.emit()]);
205
+ yield (0, build_6.buildForFederation)(config, fedOptions, externals);
206
+ build_2.logger.info('Done!');
207
+ if (runServer) {
208
+ setTimeout(() => (0, dev_server_1.reloadShell)(nfOptions.shell), 0);
209
+ }
210
+ }), nfOptions.rebuildDelay);
211
+ }
212
+ first = false;
213
+ }
214
+ }
215
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
216
+ finally {
217
+ try {
218
+ if (!_d && !_a && (_b = builderRun_1.return)) yield tslib_1.__await(_b.call(builderRun_1));
219
+ }
220
+ finally { if (e_1) throw e_1.error; }
221
+ }
222
+ yield yield tslib_1.__await(lastResult || { success: false });
223
+ });
224
+ }
225
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
226
+ exports.default = (0, architect_1.createBuilder)(runBuilder);
227
+ function removeBaseHref(req, baseHref) {
228
+ let url = req.url;
229
+ if (baseHref && url.startsWith(baseHref)) {
230
+ url = url.substr(baseHref.length);
231
+ }
232
+ return url;
233
+ }
234
+ function infereConfigPath(tsConfig) {
235
+ const relProjectPath = path.dirname(tsConfig);
236
+ const relConfigPath = path.join(relProjectPath, 'federation.config.js');
237
+ return relConfigPath;
238
+ }
239
+ function transformIndexHtml(nfOptions) {
240
+ return (content) => Promise.resolve((0, updateIndexHtml_1.updateScriptTags)(content, 'main.js', 'polyfills.js', nfOptions));
241
+ }
242
+ function addDebugInformation(fileName, rawBody) {
243
+ if (fileName !== '/remoteEntry.json') {
244
+ return rawBody;
245
+ }
246
+ const remoteEntry = JSON.parse(rawBody);
247
+ const shared = remoteEntry.shared;
248
+ if (!shared) {
249
+ return rawBody;
250
+ }
251
+ const sharedForVite = shared.map((s) => (Object.assign(Object.assign({}, s), { packageName: `/@id/${s.packageName}` })));
252
+ remoteEntry.shared = [...shared, ...sharedForVite];
253
+ return JSON.stringify(remoteEntry, null, 2);
254
+ }
255
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../../../libs/native-federation/src/builders/build/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { withNativeFederation } from '@softarc/native-federation/build';
2
+ export { findRootTsConfigJson, share, shareAll, } from '@softarc/native-federation/build';
package/src/config.js ADDED
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shareAll = exports.share = exports.findRootTsConfigJson = exports.withNativeFederation = void 0;
4
+ var build_1 = require("@softarc/native-federation/build");
5
+ Object.defineProperty(exports, "withNativeFederation", { enumerable: true, get: function () { return build_1.withNativeFederation; } });
6
+ var build_2 = require("@softarc/native-federation/build");
7
+ Object.defineProperty(exports, "findRootTsConfigJson", { enumerable: true, get: function () { return build_2.findRootTsConfigJson; } });
8
+ Object.defineProperty(exports, "share", { enumerable: true, get: function () { return build_2.share; } });
9
+ Object.defineProperty(exports, "shareAll", { enumerable: true, get: function () { return build_2.shareAll; } });
10
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../libs/native-federation/src/config.ts"],"names":[],"mappings":";;;AAAA,0DAAwE;AAA/D,6GAAA,oBAAoB,OAAA;AAC7B,0DAI0C;AAHxC,6GAAA,oBAAoB,OAAA;AACpB,8FAAA,KAAK,OAAA;AACL,iGAAA,QAAQ,OAAA"}
@@ -0,0 +1,4 @@
1
+ import { BuildExecutorSchema } from './schema';
2
+ export default function runExecutor(options: BuildExecutorSchema, nowos: unknown): Promise<{
3
+ success: boolean;
4
+ }>;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = runExecutor;
4
+ const tslib_1 = require("tslib");
5
+ function runExecutor(options, nowos) {
6
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
7
+ console.log('Executor ran for Build', options, nowos);
8
+ return {
9
+ success: true,
10
+ };
11
+ });
12
+ }
13
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../libs/native-federation/src/executors/build/executor.ts"],"names":[],"mappings":";;AAEA,8BASC;;AATD,SAA8B,WAAW,CACvC,OAA4B,EAC5B,KAAc;;QAEd,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAEtD,OAAO;YACL,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;CAAA"}
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import { NativeFederationGeneratorSchema } from './schema';
3
+ export default function (tree: Tree, options: NativeFederationGeneratorSchema): Promise<void>;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = default_1;
4
+ const tslib_1 = require("tslib");
5
+ const devkit_1 = require("@nx/devkit");
6
+ const path = tslib_1.__importStar(require("path"));
7
+ function normalizeOptions(tree, options) {
8
+ const name = (0, devkit_1.names)(options.name).fileName;
9
+ const projectDirectory = options.directory
10
+ ? `${(0, devkit_1.names)(options.directory).fileName}/${name}`
11
+ : name;
12
+ const projectName = projectDirectory.replace(new RegExp('/', 'g'), '-');
13
+ const projectRoot = `${(0, devkit_1.getWorkspaceLayout)(tree).libsDir}/${projectDirectory}`;
14
+ const parsedTags = options.tags
15
+ ? options.tags.split(',').map((s) => s.trim())
16
+ : [];
17
+ return Object.assign(Object.assign({}, options), { projectName,
18
+ projectRoot,
19
+ projectDirectory,
20
+ parsedTags });
21
+ }
22
+ function addFiles(tree, options) {
23
+ const templateOptions = Object.assign(Object.assign(Object.assign({}, options), (0, devkit_1.names)(options.name)), { offsetFromRoot: (0, devkit_1.offsetFromRoot)(options.projectRoot), template: '' });
24
+ (0, devkit_1.generateFiles)(tree, path.join(__dirname, 'files'), options.projectRoot, templateOptions);
25
+ }
26
+ function default_1(tree, options) {
27
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
28
+ const normalizedOptions = normalizeOptions(tree, options);
29
+ (0, devkit_1.addProjectConfiguration)(tree, normalizedOptions.projectName, {
30
+ root: normalizedOptions.projectRoot,
31
+ projectType: 'library',
32
+ sourceRoot: `${normalizedOptions.projectRoot}/src`,
33
+ targets: {
34
+ build: {
35
+ executor: '@angular-architects/native-federation:build',
36
+ },
37
+ },
38
+ tags: normalizedOptions.parsedTags,
39
+ });
40
+ addFiles(tree, normalizedOptions);
41
+ yield (0, devkit_1.formatFiles)(tree);
42
+ });
43
+ }
44
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../libs/native-federation/src/generators/native-federation/generator.ts"],"names":[],"mappings":";;AAyDA,4BAkBC;;AA3ED,uCAQoB;AACpB,mDAA6B;AAU7B,SAAS,gBAAgB,CACvB,IAAU,EACV,OAAwC;IAExC,MAAM,IAAI,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;IAC1C,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS;QACxC,CAAC,CAAC,GAAG,IAAA,cAAK,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE;QAChD,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,GAAG,IAAA,2BAAkB,EAAC,IAAI,CAAC,CAAC,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAC9E,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI;QAC7B,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9C,CAAC,CAAC,EAAE,CAAC;IAEP,uCACK,OAAO,KACV,WAAW;QACX,WAAW;QACX,gBAAgB;QAChB,UAAU,IACV;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAU,EAAE,OAAyB;IACrD,MAAM,eAAe,iDAChB,OAAO,GACP,IAAA,cAAK,EAAC,OAAO,CAAC,IAAI,CAAC,KACtB,cAAc,EAAE,IAAA,uBAAc,EAAC,OAAO,CAAC,WAAW,CAAC,EACnD,QAAQ,EAAE,EAAE,GACb,CAAC;IACF,IAAA,sBAAa,EACX,IAAI,EACJ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,WAAW,EACnB,eAAe,CAChB,CAAC;AACJ,CAAC;AAED,mBACE,IAAU,EACV,OAAwC;;QAExC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1D,IAAA,gCAAuB,EAAC,IAAI,EAAE,iBAAiB,CAAC,WAAW,EAAE;YAC3D,IAAI,EAAE,iBAAiB,CAAC,WAAW;YACnC,WAAW,EAAE,SAAS;YACtB,UAAU,EAAE,GAAG,iBAAiB,CAAC,WAAW,MAAM;YAClD,OAAO,EAAE;gBACP,KAAK,EAAE;oBACL,QAAQ,EAAE,6CAA6C;iBACxD;aACF;YACD,IAAI,EAAE,iBAAiB,CAAC,UAAU;SACnC,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;QAClC,MAAM,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;CAAA"}
package/src/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from '@softarc/native-federation-runtime';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/native-federation/src/index.ts"],"names":[],"mappings":";;;AAAA,6EAAmD"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ // import { patchAngularBuild } from './utils/patch-angular-build';
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ // const workspaceRoot = process.cwd();
5
+ // patchAngularBuild(workspaceRoot);
6
+ console.log('Please remove the postbuild task calling patch-angular-build. This is not needed since Native Federation 18.1 anymore!');
7
+ //# sourceMappingURL=patch-angular-build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch-angular-build.js","sourceRoot":"","sources":["../../../../libs/native-federation/src/patch-angular-build.ts"],"names":[],"mappings":";AAAA,mEAAmE;;AAEnE,uCAAuC;AACvC,oCAAoC;AAEpC,OAAO,CAAC,GAAG,CACT,wHAAwH,CACzH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const devExternalsMixin: any;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.devExternalsMixin = void 0;
4
+ const build_1 = require("@softarc/native-federation/build");
5
+ const externals_skip_list_1 = require("./externals-skip-list");
6
+ // see: https://github.com/vitejs/vite/issues/6393#issuecomment-1006819717
7
+ exports.devExternalsMixin = {
8
+ enforce: 'pre',
9
+ config(config) {
10
+ var _a, _b, _c;
11
+ config.optimizeDeps = Object.assign(Object.assign({}, ((_a = config.optimizeDeps) !== null && _a !== void 0 ? _a : {})), { exclude: [
12
+ ...((_c = (_b = config.optimizeDeps) === null || _b === void 0 ? void 0 : _b.exclude) !== null && _c !== void 0 ? _c : []),
13
+ ...(0, externals_skip_list_1.filterExternals)(build_1.federationBuilder.externals),
14
+ ] });
15
+ },
16
+ configResolved(resolvedConfig) {
17
+ const VALID_ID_PREFIX = `/@id/`;
18
+ const reg = new RegExp(`${VALID_ID_PREFIX}(${build_1.federationBuilder.externals.join('|')})`, 'g');
19
+ resolvedConfig.plugins.push({
20
+ name: 'vite-plugin-ignore-static-import-replace-idprefix',
21
+ transform: (code) => reg.test(code) ? code.replace(reg, (m, s1) => s1) : code,
22
+ });
23
+ },
24
+ resolveId: (id) => {
25
+ if ((0, externals_skip_list_1.filterExternals)(build_1.federationBuilder.externals).includes(id)) {
26
+ return { id, external: true };
27
+ }
28
+ },
29
+ };
30
+ //# sourceMappingURL=dev-externals-mixin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev-externals-mixin.js","sourceRoot":"","sources":["../../../../../libs/native-federation/src/plugin/dev-externals-mixin.ts"],"names":[],"mappings":";;;AAAA,4DAAqE;AACrE,+DAAwD;AAExD,0EAA0E;AAE7D,QAAA,iBAAiB,GAAG;IAC/B,OAAO,EAAE,KAAK;IACd,MAAM,CAAC,MAAM;;QACX,MAAM,CAAC,YAAY,mCACd,CAAC,MAAA,MAAM,CAAC,YAAY,mCAAI,EAAE,CAAC,KAC9B,OAAO,EAAE;gBACP,GAAG,CAAC,MAAA,MAAA,MAAM,CAAC,YAAY,0CAAE,OAAO,mCAAI,EAAE,CAAC;gBACvC,GAAG,IAAA,qCAAe,EAAC,yBAAiB,CAAC,SAAS,CAAC;aAChD,GACF,CAAC;IACJ,CAAC;IACD,cAAc,CAAC,cAAc;QAC3B,MAAM,eAAe,GAAG,OAAO,CAAC;QAChC,MAAM,GAAG,GAAG,IAAI,MAAM,CACpB,GAAG,eAAe,IAAI,yBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAC9D,GAAG,CACJ,CAAC;QACF,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;YAC1B,IAAI,EAAE,mDAAmD;YACzD,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,CAClB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;SAC3D,CAAC,CAAC;IACL,CAAC;IACD,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE;QAChB,IAAI,IAAA,qCAAe,EAAC,yBAAiB,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9D,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;CACK,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const externalsSkipList: Set<string>;
2
+ export declare function filterExternals(deps: string[]): string[];
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.externalsSkipList = void 0;
4
+ exports.filterExternals = filterExternals;
5
+ exports.externalsSkipList = new Set(['tslib']);
6
+ function filterExternals(deps) {
7
+ return deps.filter((d) => !exports.externalsSkipList.has(d));
8
+ }
9
+ //# sourceMappingURL=externals-skip-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"externals-skip-list.js","sourceRoot":"","sources":["../../../../../libs/native-federation/src/plugin/externals-skip-list.ts"],"names":[],"mappings":";;;AAEA,0CAEC;AAJY,QAAA,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AAEpD,SAAgB,eAAe,CAAC,IAAc;IAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,yBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { BuildHelperParams } from '@softarc/native-federation/build';
2
+ export declare const federation: (params: BuildHelperParams) => any;
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.federation = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const fs = tslib_1.__importStar(require("fs"));
6
+ const path = tslib_1.__importStar(require("path"));
7
+ const mrmime_1 = require("mrmime");
8
+ const dev_externals_mixin_1 = require("./dev-externals-mixin");
9
+ const externals_skip_list_1 = require("./externals-skip-list");
10
+ const build_1 = require("@softarc/native-federation/build");
11
+ const federation = (params) => {
12
+ return Object.assign(Object.assign({}, dev_externals_mixin_1.devExternalsMixin), { name: '@module-federation/vite', // required, will show up in warnings and errors
13
+ config(...args) {
14
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
15
+ yield build_1.federationBuilder.init(params);
16
+ dev_externals_mixin_1.devExternalsMixin.config(...args);
17
+ });
18
+ },
19
+ options(o) {
20
+ o['external'] = (0, externals_skip_list_1.filterExternals)(build_1.federationBuilder.externals);
21
+ },
22
+ closeBundle() {
23
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
24
+ yield build_1.federationBuilder.build();
25
+ });
26
+ },
27
+ configureServer(server) {
28
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
29
+ const fedInfoRef = {
30
+ federationInfo: build_1.federationBuilder.federationInfo,
31
+ };
32
+ yield configureDevServer(server, params, fedInfoRef);
33
+ });
34
+ },
35
+ transformIndexHtml(html) {
36
+ const fragment = '<script src="polyfills.js" type="module-shim">';
37
+ const updated = `
38
+ <script type="esms-options">
39
+ {
40
+ "shimMode": true
41
+ }
42
+ </script>
43
+ <script src="polyfills.js" type="module">
44
+ `;
45
+ html = html.replace(/type="module"/g, 'type="module-shim"');
46
+ return html.replace(fragment, updated);
47
+ } });
48
+ };
49
+ exports.federation = federation;
50
+ const configureDevServer = (server, params, fedInfo) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
51
+ yield build_1.federationBuilder.build();
52
+ const op = params.options;
53
+ const dist = path.join(op.workspaceRoot, op.outputPath);
54
+ server.middlewares.use(serveFromDist(dist, fedInfo));
55
+ });
56
+ const serveFromDist = (dist, fedInfoRef) => {
57
+ const fedFiles = new Set([
58
+ ...fedInfoRef.federationInfo.shared.map((s) => path.join('/', s.outFileName)),
59
+ ...fedInfoRef.federationInfo.exposes.map((e) => path.join('/', e.outFileName)),
60
+ '/remoteEntry.json',
61
+ ]);
62
+ return (req, res, next) => {
63
+ if (!req.url || req.url.endsWith('/index.html') || !fedFiles.has(req.url)) {
64
+ next();
65
+ return;
66
+ }
67
+ const file = path.join(dist, req.url);
68
+ if (fs.existsSync(file) && fs.lstatSync(file).isFile()) {
69
+ res.setHeader('Access-Control-Allow-Origin', '*');
70
+ const type = (0, mrmime_1.lookup)(req.url) || '';
71
+ res.setHeader('Content-Type', type);
72
+ const content = fs.readFileSync(file, 'utf-8');
73
+ // const modified = enhanceFile(file, content);
74
+ const modified = content;
75
+ res.write(modified);
76
+ res.end();
77
+ return;
78
+ }
79
+ next();
80
+ };
81
+ };
82
+ // TODO: Unused, to delete?
83
+ // const enhanceFile = (fileName: string, src: string): string => {
84
+ // if (fileName.endsWith('remoteEntry.json')) {
85
+ // let remoteEntry = JSON.parse(fs.readFileSync(fileName, 'utf-8'));
86
+ // remoteEntry = {
87
+ // ...remoteEntry,
88
+ // shared: (remoteEntry.shared || []).map((el) => ({
89
+ // ...el,
90
+ // outFileName: el.dev?.entryPoint.includes('/node_modules/')
91
+ // ? el.outFileName
92
+ // : normalize(path.join('@fs', el.dev?.entryPoint || '')),
93
+ // })),
94
+ // exposes: (remoteEntry.exposes || []).map((el) => ({
95
+ // ...el,
96
+ // outFileName: normalize(path.join('@fs', el.dev?.entryPoint || '')),
97
+ // })),
98
+ // };
99
+ // return JSON.stringify(remoteEntry, null, 2);
100
+ // }
101
+ // return src;
102
+ // };
103
+ // TODO: Unused, to delete?
104
+ // const normalize = (path: string): string => {
105
+ // return path.replace(/\\/g, '/');
106
+ // };
107
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/native-federation/src/plugin/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { Rule, Tree } from '@angular-devkit/schematics';
2
+ import { MfSchematicSchema } from './schema';
3
+ export default function remove(options: MfSchematicSchema): Rule;
4
+ export declare function getWorkspaceFileName(tree: Tree): string;