@nx/angular 21.3.0-beta.5 → 21.3.0-canary.20250613-18155f4
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.
- package/fesm2022/nx-angular-mf.mjs +10 -74
- package/fesm2022/nx-angular-mf.mjs.map +1 -1
- package/migrations.json +0 -74
- package/package.json +9 -9
- package/plugins/component-testing.js +14 -6
- package/src/builders/utilities/module-federation.js +3 -4
- package/src/builders/webpack-browser/schema.json +1 -1
- package/src/executors/application/schema.json +2 -4
- package/src/executors/application/utils/validate-options.js +0 -10
- package/src/executors/utilities/ng-packagr/pre-v19/stylesheet-processor.js +2 -5
- package/src/generators/application/application.js +2 -8
- package/src/generators/host/lib/update-ssr-setup.js +4 -4
- package/src/generators/library/lib/create-files.js +1 -2
- package/src/generators/library/lib/normalized-schema.d.ts +0 -1
- package/src/generators/library/lib/update-tsconfig-files.js +3 -6
- package/src/generators/library/library.js +0 -4
- package/src/generators/library/schema.d.ts +0 -1
- package/src/generators/library/schema.json +1 -2
- package/src/generators/move/lib/update-module-name.js +5 -7
- package/src/generators/ngrx/files/__directory__/__fileName__.facade.spec.ts__tmpl__ +9 -13
- package/src/generators/ngrx/lib/generate-files.js +0 -1
- package/src/generators/ngrx/lib/normalize-options.d.ts +0 -1
- package/src/generators/ngrx/lib/normalize-options.js +0 -3
- package/src/generators/ngrx-feature-store/files/__directory__/__fileName__.facade.spec.ts__tmpl__ +9 -13
- package/src/generators/ngrx-feature-store/lib/generate-files.js +0 -1
- package/src/generators/ngrx-feature-store/lib/normalize-options.d.ts +0 -1
- package/src/generators/ngrx-feature-store/lib/normalize-options.js +0 -3
- package/src/generators/ngrx-root-store/lib/normalize-options.js +4 -5
- package/src/generators/remote/lib/update-ssr-setup.js +4 -4
- package/src/generators/setup-mf/lib/add-cypress-workaround.js +1 -2
- package/src/generators/setup-mf/lib/add-remote-to-host.js +7 -9
- package/src/generators/setup-mf/lib/remove-dead-code-from-remote.js +6 -8
- package/src/generators/setup-ssr/lib/add-dependencies.js +1 -2
- package/src/generators/setup-ssr/lib/add-hydration.js +3 -5
- package/src/generators/setup-ssr/lib/add-server-file.js +1 -2
- package/src/generators/setup-ssr/lib/generate-files.js +1 -2
- package/src/generators/setup-ssr/lib/update-project-config.js +2 -3
- package/src/generators/setup-tailwind/lib/add-tailwind-config.js +1 -2
- package/src/generators/setup-tailwind/lib/update-application-styles.js +4 -6
- package/src/generators/utils/app-components-info.js +4 -6
- package/src/generators/utils/testing.js +1 -2
- package/src/migrations/update-16-2-0/switch-data-persistence-operators-imports-to-ngrx-router-store.js +2 -2
- package/src/migrations/update-17-1-0/replace-nguniversal-engines.js +3 -4
- package/src/migrations/update-17-1-0/update-zone-js-deep-import.js +3 -3
- package/src/migrations/update-20-2-0/disable-angular-eslint-prefer-standalone.js +2 -3
- package/src/migrations/update-20-2-0/remove-angular-eslint-rules.js +2 -3
- package/src/migrations/update-20-2-0/update-angular-ssr-imports-to-use-node-entry-point.js +3 -3
- package/src/migrations/update-21-0-0/change-data-persistence-operators-imports-to-ngrx-router-store-data-persistence.js +2 -2
- package/src/migrations/update-21-2-0/migrate-provide-server-rendering-import.js +3 -3
- package/src/migrations/update-21-2-0/replace-provide-server-routing.js +3 -3
- package/src/migrations/update-21-2-0/update-module-resolution.js +3 -3
- package/src/migrations/utils/projects.d.ts +5 -2
- package/src/migrations/utils/projects.js +5 -2
- package/src/utils/backward-compatible-versions.js +0 -2
- package/src/utils/nx-devkit/ast-utils.js +2 -3
- package/src/utils/versions.d.ts +4 -5
- package/src/utils/versions.js +5 -6
- package/src/migrations/update-21-3-0/update-angular-cli.d.ts +0 -3
- package/src/migrations/update-21-3-0/update-angular-cli.js +0 -23
@@ -1,76 +1,4 @@
|
|
1
|
-
|
2
|
-
function extname(path) {
|
3
|
-
const lastDot = path.lastIndexOf('.');
|
4
|
-
const lastSlash = Math.max(path.lastIndexOf('/'), path.lastIndexOf('\\'));
|
5
|
-
if (lastDot === -1 || lastDot < lastSlash) {
|
6
|
-
return '';
|
7
|
-
}
|
8
|
-
return path.slice(lastDot);
|
9
|
-
}
|
10
|
-
/**
|
11
|
-
* Checks if a URL string is absolute (has protocol)
|
12
|
-
*/
|
13
|
-
function isAbsoluteUrl(url) {
|
14
|
-
try {
|
15
|
-
new URL(url);
|
16
|
-
return true;
|
17
|
-
}
|
18
|
-
catch {
|
19
|
-
return false;
|
20
|
-
}
|
21
|
-
}
|
22
|
-
/**
|
23
|
-
* Safely processes remote locations, handling both relative and absolute URLs
|
24
|
-
* while preserving query parameters and hash fragments for absolute URLs
|
25
|
-
*/
|
26
|
-
function processRemoteLocation(remoteLocation, remoteEntryExt) {
|
27
|
-
// Handle promise-based remotes as-is
|
28
|
-
if (remoteLocation.startsWith('promise new Promise')) {
|
29
|
-
return remoteLocation;
|
30
|
-
}
|
31
|
-
if (isAbsoluteUrl(remoteLocation)) {
|
32
|
-
// Use new URL parsing for absolute URLs (supports query params/hash)
|
33
|
-
const url = new URL(remoteLocation);
|
34
|
-
const ext = extname(url.pathname);
|
35
|
-
const needsRemoteEntry = !['.js', '.mjs', '.json'].includes(ext);
|
36
|
-
if (needsRemoteEntry) {
|
37
|
-
url.pathname = url.pathname.endsWith('/')
|
38
|
-
? `${url.pathname}remoteEntry.${remoteEntryExt}`
|
39
|
-
: `${url.pathname}/remoteEntry.${remoteEntryExt}`;
|
40
|
-
}
|
41
|
-
return url.href;
|
42
|
-
}
|
43
|
-
else {
|
44
|
-
// Use string manipulation for relative URLs (backward compatibility)
|
45
|
-
const ext = extname(remoteLocation);
|
46
|
-
const needsRemoteEntry = !['.js', '.mjs', '.json'].includes(ext);
|
47
|
-
if (needsRemoteEntry) {
|
48
|
-
const baseRemote = remoteLocation.endsWith('/')
|
49
|
-
? remoteLocation.slice(0, -1)
|
50
|
-
: remoteLocation;
|
51
|
-
return `${baseRemote}/remoteEntry.${remoteEntryExt}`;
|
52
|
-
}
|
53
|
-
return remoteLocation;
|
54
|
-
}
|
55
|
-
}
|
56
|
-
/**
|
57
|
-
* Processes remote URLs for runtime environments, resolving relative URLs against window.location.origin
|
58
|
-
*/
|
59
|
-
function processRuntimeRemoteUrl(remoteUrl, remoteEntryExt) {
|
60
|
-
if (isAbsoluteUrl(remoteUrl)) {
|
61
|
-
return processRemoteLocation(remoteUrl, remoteEntryExt);
|
62
|
-
}
|
63
|
-
else {
|
64
|
-
// For runtime relative URLs, resolve against current origin
|
65
|
-
const baseUrl = typeof globalThis !== 'undefined' &&
|
66
|
-
typeof globalThis.window !== 'undefined' &&
|
67
|
-
globalThis.window.location
|
68
|
-
? globalThis.window.location.origin
|
69
|
-
: 'http://localhost';
|
70
|
-
const absoluteUrl = new URL(remoteUrl, baseUrl).href;
|
71
|
-
return processRemoteLocation(absoluteUrl, remoteEntryExt);
|
72
|
-
}
|
73
|
-
}
|
1
|
+
import { extname } from 'node:path';
|
74
2
|
|
75
3
|
let resolveRemoteUrl;
|
76
4
|
/**
|
@@ -178,7 +106,15 @@ async function loadRemoteContainer(remoteName) {
|
|
178
106
|
const remoteUrl = remoteUrlDefinitions
|
179
107
|
? remoteUrlDefinitions[remoteName]
|
180
108
|
: await resolveRemoteUrl(remoteName);
|
181
|
-
const
|
109
|
+
const url = new URL(remoteUrl);
|
110
|
+
const ext = extname(url.pathname);
|
111
|
+
const needsRemoteEntry = !['.js', '.mjs', '.json'].includes(ext);
|
112
|
+
if (needsRemoteEntry) {
|
113
|
+
url.pathname = url.pathname.endsWith('/')
|
114
|
+
? `${url.pathname}remoteEntry.mjs`
|
115
|
+
: `${url.pathname}/remoteEntry.mjs`;
|
116
|
+
}
|
117
|
+
const containerUrl = url.href;
|
182
118
|
const container = await loadModule(containerUrl);
|
183
119
|
await container.init(__webpack_share_scopes__.default);
|
184
120
|
remoteContainerMap.set(remoteName, container);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"nx-angular-mf.mjs","sources":["../tmp-esm2022/mf/url-helpers.js","../tmp-esm2022/mf/mf.js","../tmp-esm2022/mf/nx-angular-mf.js"],"sourcesContent":["// Helper function to extract file extension from a path\nfunction extname(path) {\n const lastDot = path.lastIndexOf('.');\n const lastSlash = Math.max(path.lastIndexOf('/'), path.lastIndexOf('\\\\'));\n if (lastDot === -1 || lastDot < lastSlash) {\n return '';\n }\n return path.slice(lastDot);\n}\n/**\n * Checks if a URL string is absolute (has protocol)\n */\nexport function isAbsoluteUrl(url) {\n try {\n new URL(url);\n return true;\n }\n catch {\n return false;\n }\n}\n/**\n * Safely processes remote locations, handling both relative and absolute URLs\n * while preserving query parameters and hash fragments for absolute URLs\n */\nexport function processRemoteLocation(remoteLocation, remoteEntryExt) {\n // Handle promise-based remotes as-is\n if (remoteLocation.startsWith('promise new Promise')) {\n return remoteLocation;\n }\n if (isAbsoluteUrl(remoteLocation)) {\n // Use new URL parsing for absolute URLs (supports query params/hash)\n const url = new URL(remoteLocation);\n const ext = extname(url.pathname);\n const needsRemoteEntry = !['.js', '.mjs', '.json'].includes(ext);\n if (needsRemoteEntry) {\n url.pathname = url.pathname.endsWith('/')\n ? `${url.pathname}remoteEntry.${remoteEntryExt}`\n : `${url.pathname}/remoteEntry.${remoteEntryExt}`;\n }\n return url.href;\n }\n else {\n // Use string manipulation for relative URLs (backward compatibility)\n const ext = extname(remoteLocation);\n const needsRemoteEntry = !['.js', '.mjs', '.json'].includes(ext);\n if (needsRemoteEntry) {\n const baseRemote = remoteLocation.endsWith('/')\n ? remoteLocation.slice(0, -1)\n : remoteLocation;\n return `${baseRemote}/remoteEntry.${remoteEntryExt}`;\n }\n return remoteLocation;\n }\n}\n/**\n * Processes remote URLs for runtime environments, resolving relative URLs against window.location.origin\n */\nexport function processRuntimeRemoteUrl(remoteUrl, remoteEntryExt) {\n if (isAbsoluteUrl(remoteUrl)) {\n return processRemoteLocation(remoteUrl, remoteEntryExt);\n }\n else {\n // For runtime relative URLs, resolve against current origin\n const baseUrl = typeof globalThis !== 'undefined' &&\n typeof globalThis.window !== 'undefined' &&\n globalThis.window.location\n ? globalThis.window.location.origin\n : 'http://localhost';\n const absoluteUrl = new URL(remoteUrl, baseUrl).href;\n return processRemoteLocation(absoluteUrl, remoteEntryExt);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLWhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL21mL3VybC1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdEQUF3RDtBQUN4RCxTQUFTLE9BQU8sQ0FBQyxJQUFZO0lBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxRSxJQUFJLE9BQU8sS0FBSyxDQUFDLENBQUMsSUFBSSxPQUFPLEdBQUcsU0FBUyxFQUFFLENBQUM7UUFDMUMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsR0FBVztJQUN2QyxJQUFJLENBQUM7UUFDSCxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNiLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ25DLGNBQXNCLEVBQ3RCLGNBQTRCO0lBRTVCLHFDQUFxQztJQUNyQyxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1FBQ3JELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQ2xDLHFFQUFxRTtRQUNyRSxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwQyxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWpFLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUNyQixHQUFHLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsZUFBZSxjQUFjLEVBQUU7Z0JBQ2hELENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLGdCQUFnQixjQUFjLEVBQUUsQ0FBQztRQUN0RCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ2xCLENBQUM7U0FBTSxDQUFDO1FBQ04scUVBQXFFO1FBQ3JFLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVqRSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Z0JBQzdDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUNuQixPQUFPLEdBQUcsVUFBVSxnQkFBZ0IsY0FBYyxFQUFFLENBQUM7UUFDdkQsQ0FBQztRQUVELE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQ3JDLFNBQWlCLEVBQ2pCLGNBQTRCO0lBRTVCLElBQUksYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDMUQsQ0FBQztTQUFNLENBQUM7UUFDTiw0REFBNEQ7UUFDNUQsTUFBTSxPQUFPLEdBQ1gsT0FBTyxVQUFVLEtBQUssV0FBVztZQUNqQyxPQUFRLFVBQWtCLENBQUMsTUFBTSxLQUFLLFdBQVc7WUFDaEQsVUFBa0IsQ0FBQyxNQUFNLENBQUMsUUFBUTtZQUNqQyxDQUFDLENBQUUsVUFBa0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU07WUFDNUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1FBQ3pCLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDckQsT0FBTyxxQkFBcUIsQ0FBQyxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBIZWxwZXIgZnVuY3Rpb24gdG8gZXh0cmFjdCBmaWxlIGV4dGVuc2lvbiBmcm9tIGEgcGF0aFxuZnVuY3Rpb24gZXh0bmFtZShwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBsYXN0RG90ID0gcGF0aC5sYXN0SW5kZXhPZignLicpO1xuICBjb25zdCBsYXN0U2xhc2ggPSBNYXRoLm1heChwYXRoLmxhc3RJbmRleE9mKCcvJyksIHBhdGgubGFzdEluZGV4T2YoJ1xcXFwnKSk7XG4gIGlmIChsYXN0RG90ID09PSAtMSB8fCBsYXN0RG90IDwgbGFzdFNsYXNoKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIHJldHVybiBwYXRoLnNsaWNlKGxhc3REb3QpO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBhIFVSTCBzdHJpbmcgaXMgYWJzb2x1dGUgKGhhcyBwcm90b2NvbClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQWJzb2x1dGVVcmwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBuZXcgVVJMKHVybCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFNhZmVseSBwcm9jZXNzZXMgcmVtb3RlIGxvY2F0aW9ucywgaGFuZGxpbmcgYm90aCByZWxhdGl2ZSBhbmQgYWJzb2x1dGUgVVJMc1xuICogd2hpbGUgcHJlc2VydmluZyBxdWVyeSBwYXJhbWV0ZXJzIGFuZCBoYXNoIGZyYWdtZW50cyBmb3IgYWJzb2x1dGUgVVJMc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvY2Vzc1JlbW90ZUxvY2F0aW9uKFxuICByZW1vdGVMb2NhdGlvbjogc3RyaW5nLFxuICByZW1vdGVFbnRyeUV4dDogJ2pzJyB8ICdtanMnXG4pOiBzdHJpbmcge1xuICAvLyBIYW5kbGUgcHJvbWlzZS1iYXNlZCByZW1vdGVzIGFzLWlzXG4gIGlmIChyZW1vdGVMb2NhdGlvbi5zdGFydHNXaXRoKCdwcm9taXNlIG5ldyBQcm9taXNlJykpIHtcbiAgICByZXR1cm4gcmVtb3RlTG9jYXRpb247XG4gIH1cblxuICBpZiAoaXNBYnNvbHV0ZVVybChyZW1vdGVMb2NhdGlvbikpIHtcbiAgICAvLyBVc2UgbmV3IFVSTCBwYXJzaW5nIGZvciBhYnNvbHV0ZSBVUkxzIChzdXBwb3J0cyBxdWVyeSBwYXJhbXMvaGFzaClcbiAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHJlbW90ZUxvY2F0aW9uKTtcbiAgICBjb25zdCBleHQgPSBleHRuYW1lKHVybC5wYXRobmFtZSk7XG4gICAgY29uc3QgbmVlZHNSZW1vdGVFbnRyeSA9ICFbJy5qcycsICcubWpzJywgJy5qc29uJ10uaW5jbHVkZXMoZXh0KTtcblxuICAgIGlmIChuZWVkc1JlbW90ZUVudHJ5KSB7XG4gICAgICB1cmwucGF0aG5hbWUgPSB1cmwucGF0aG5hbWUuZW5kc1dpdGgoJy8nKVxuICAgICAgICA/IGAke3VybC5wYXRobmFtZX1yZW1vdGVFbnRyeS4ke3JlbW90ZUVudHJ5RXh0fWBcbiAgICAgICAgOiBgJHt1cmwucGF0aG5hbWV9L3JlbW90ZUVudHJ5LiR7cmVtb3RlRW50cnlFeHR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdXJsLmhyZWY7XG4gIH0gZWxzZSB7XG4gICAgLy8gVXNlIHN0cmluZyBtYW5pcHVsYXRpb24gZm9yIHJlbGF0aXZlIFVSTHMgKGJhY2t3YXJkIGNvbXBhdGliaWxpdHkpXG4gICAgY29uc3QgZXh0ID0gZXh0bmFtZShyZW1vdGVMb2NhdGlvbik7XG4gICAgY29uc3QgbmVlZHNSZW1vdGVFbnRyeSA9ICFbJy5qcycsICcubWpzJywgJy5qc29uJ10uaW5jbHVkZXMoZXh0KTtcblxuICAgIGlmIChuZWVkc1JlbW90ZUVudHJ5KSB7XG4gICAgICBjb25zdCBiYXNlUmVtb3RlID0gcmVtb3RlTG9jYXRpb24uZW5kc1dpdGgoJy8nKVxuICAgICAgICA/IHJlbW90ZUxvY2F0aW9uLnNsaWNlKDAsIC0xKVxuICAgICAgICA6IHJlbW90ZUxvY2F0aW9uO1xuICAgICAgcmV0dXJuIGAke2Jhc2VSZW1vdGV9L3JlbW90ZUVudHJ5LiR7cmVtb3RlRW50cnlFeHR9YDtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVtb3RlTG9jYXRpb247XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9jZXNzZXMgcmVtb3RlIFVSTHMgZm9yIHJ1bnRpbWUgZW52aXJvbm1lbnRzLCByZXNvbHZpbmcgcmVsYXRpdmUgVVJMcyBhZ2FpbnN0IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NSdW50aW1lUmVtb3RlVXJsKFxuICByZW1vdGVVcmw6IHN0cmluZyxcbiAgcmVtb3RlRW50cnlFeHQ6ICdqcycgfCAnbWpzJ1xuKTogc3RyaW5nIHtcbiAgaWYgKGlzQWJzb2x1dGVVcmwocmVtb3RlVXJsKSkge1xuICAgIHJldHVybiBwcm9jZXNzUmVtb3RlTG9jYXRpb24ocmVtb3RlVXJsLCByZW1vdGVFbnRyeUV4dCk7XG4gIH0gZWxzZSB7XG4gICAgLy8gRm9yIHJ1bnRpbWUgcmVsYXRpdmUgVVJMcywgcmVzb2x2ZSBhZ2FpbnN0IGN1cnJlbnQgb3JpZ2luXG4gICAgY29uc3QgYmFzZVVybCA9XG4gICAgICB0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgIHR5cGVvZiAoZ2xvYmFsVGhpcyBhcyBhbnkpLndpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgIChnbG9iYWxUaGlzIGFzIGFueSkud2luZG93LmxvY2F0aW9uXG4gICAgICAgID8gKGdsb2JhbFRoaXMgYXMgYW55KS53aW5kb3cubG9jYXRpb24ub3JpZ2luXG4gICAgICAgIDogJ2h0dHA6Ly9sb2NhbGhvc3QnO1xuICAgIGNvbnN0IGFic29sdXRlVXJsID0gbmV3IFVSTChyZW1vdGVVcmwsIGJhc2VVcmwpLmhyZWY7XG4gICAgcmV0dXJuIHByb2Nlc3NSZW1vdGVMb2NhdGlvbihhYnNvbHV0ZVVybCwgcmVtb3RlRW50cnlFeHQpO1xuICB9XG59XG4iXX0=","import { processRuntimeRemoteUrl } from './url-helpers';\nlet resolveRemoteUrl;\n/**\n * @deprecated Use Runtime Helpers from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.\n */\nexport function setRemoteUrlResolver(_resolveRemoteUrl) {\n resolveRemoteUrl = _resolveRemoteUrl;\n}\nlet remoteUrlDefinitions;\n/**\n * @deprecated Use init() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.\n * If you have a remote app called `my-remote-app` and you want to use the `http://localhost:4201/mf-manifest.json` as the remote url, you should change it from:\n * ```ts\n * import { setRemoteDefinitions } from '@nx/angular/mf';\n *\n * setRemoteDefinitions({\n * 'my-remote-app': 'http://localhost:4201/mf-manifest.json'\n * });\n * ```\n * to use init():\n * ```ts\n * import { init } from '@module-federation/enhanced/runtime';\n *\n * init({\n * name: 'host',\n * remotes: [{\n * name: 'my-remote-app',\n * entry: 'http://localhost:4201/mf-manifest.json'\n * }]\n * });\n * ```\n */\nexport function setRemoteDefinitions(definitions) {\n remoteUrlDefinitions = definitions;\n}\n/**\n * @deprecated Use registerRemotes() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.\n * If you set a remote app with `setRemoteDefinition` such as:\n * ```ts\n * import { setRemoteDefinition } from '@nx/angular/mf';\n *\n * setRemoteDefinition(\n * 'my-remote-app',\n * 'http://localhost:4201/mf-manifest.json'\n * );\n * ```\n * change it to use registerRemotes():\n * ```ts\n * import { registerRemotes } from '@module-federation/enhanced/runtime';\n *\n * registerRemotes([\n * {\n * name: 'my-remote-app',\n * entry: 'http://localhost:4201/mf-manifest.json'\n * }\n * ]);\n * ```\n */\nexport function setRemoteDefinition(remoteName, remoteUrl) {\n remoteUrlDefinitions ??= {};\n remoteUrlDefinitions[remoteName] = remoteUrl;\n}\nlet remoteModuleMap = new Map();\nlet remoteContainerMap = new Map();\n/**\n * @deprecated Use loadRemote() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.\n * If you set a load a remote with `loadRemoteModule` such as:\n * ```ts\n * import { loadRemoteModule } from '@nx/angular/mf';\n *\n * loadRemoteModule('my-remote-app', './Module').then(m => m.RemoteEntryModule);\n * ```\n * change it to use loadRemote():\n * ```ts\n * import { loadRemote } from '@module-federation/enhanced/runtime';\n *\n * loadRemote<typeof import('my-remote-app/Module')>('my-remote-app/Module').then(m => m.RemoteEntryModule);\n * ```\n */\nexport async function loadRemoteModule(remoteName, moduleName) {\n const remoteModuleKey = `${remoteName}:${moduleName}`;\n if (remoteModuleMap.has(remoteModuleKey)) {\n return remoteModuleMap.get(remoteModuleKey);\n }\n const container = remoteContainerMap.has(remoteName)\n ? remoteContainerMap.get(remoteName)\n : await loadRemoteContainer(remoteName);\n const factory = await container.get(moduleName);\n const Module = factory();\n remoteModuleMap.set(remoteModuleKey, Module);\n return Module;\n}\nfunction loadModule(url) {\n return import(/* webpackIgnore:true */ url);\n}\nlet initialSharingScopeCreated = false;\nasync function loadRemoteContainer(remoteName) {\n if (!resolveRemoteUrl && !remoteUrlDefinitions) {\n throw new Error('Call setRemoteDefinitions or setRemoteUrlResolver to allow Dynamic Federation to find the remote apps correctly.');\n }\n if (!initialSharingScopeCreated) {\n initialSharingScopeCreated = true;\n await __webpack_init_sharing__('default');\n }\n const remoteUrl = remoteUrlDefinitions\n ? remoteUrlDefinitions[remoteName]\n : await resolveRemoteUrl(remoteName);\n const containerUrl = processRuntimeRemoteUrl(remoteUrl, 'mjs');\n const container = await loadModule(containerUrl);\n await container.init(__webpack_share_scopes__.default);\n remoteContainerMap.set(remoteName, container);\n return container;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL21mL21mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVN4RCxJQUFJLGdCQUEwQyxDQUFDO0FBRS9DOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxpQkFBMkM7SUFFM0MsZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUM7QUFDdkMsQ0FBQztBQUVELElBQUksb0JBQTRDLENBQUM7QUFFakQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsV0FBbUM7SUFDdEUsb0JBQW9CLEdBQUcsV0FBVyxDQUFDO0FBQ3JDLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxVQUFrQixFQUFFLFNBQWlCO0lBQ3ZFLG9CQUFvQixLQUFLLEVBQUUsQ0FBQztJQUM1QixvQkFBb0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxTQUFTLENBQUM7QUFDL0MsQ0FBQztBQUVELElBQUksZUFBZSxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO0FBQ2pELElBQUksa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7QUFFcEQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUFDLFVBQWtCLEVBQUUsVUFBa0I7SUFDM0UsTUFBTSxlQUFlLEdBQUcsR0FBRyxVQUFVLElBQUksVUFBVSxFQUFFLENBQUM7SUFDdEQsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDekMsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ2xELENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRCxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUV6QixlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUU3QyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsR0FBVztJQUM3QixPQUFPLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsSUFBSSwwQkFBMEIsR0FBRyxLQUFLLENBQUM7QUFFdkMsS0FBSyxVQUFVLG1CQUFtQixDQUFDLFVBQWtCO0lBQ25ELElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FDYixrSEFBa0gsQ0FDbkgsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNoQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsb0JBQW9CO1FBQ3BDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUM7UUFDbEMsQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdkMsTUFBTSxZQUFZLEdBQUcsdUJBQXVCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRS9ELE1BQU0sU0FBUyxHQUFHLE1BQU0sVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV2RCxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9jZXNzUnVudGltZVJlbW90ZVVybCB9IGZyb20gJy4vdXJsLWhlbHBlcnMnO1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlUmVtb3RlVXJsRnVuY3Rpb24gPSAoXG4gIHJlbW90ZU5hbWU6IHN0cmluZ1xuKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz47XG5cbmRlY2xhcmUgY29uc3QgX193ZWJwYWNrX2luaXRfc2hhcmluZ19fOiAoc2NvcGU6ICdkZWZhdWx0JykgPT4gUHJvbWlzZTx2b2lkPjtcbmRlY2xhcmUgY29uc3QgX193ZWJwYWNrX3NoYXJlX3Njb3Blc19fOiB7IGRlZmF1bHQ6IHVua25vd24gfTtcblxubGV0IHJlc29sdmVSZW1vdGVVcmw6IFJlc29sdmVSZW1vdGVVcmxGdW5jdGlvbjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgUnVudGltZSBIZWxwZXJzIGZyb20gJ0Btb2R1bGUtZmVkZXJhdGlvbi9lbmhhbmNlZC9ydW50aW1lJyBpbnN0ZWFkLiBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBOeCAyMi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFJlbW90ZVVybFJlc29sdmVyKFxuICBfcmVzb2x2ZVJlbW90ZVVybDogUmVzb2x2ZVJlbW90ZVVybEZ1bmN0aW9uXG4pIHtcbiAgcmVzb2x2ZVJlbW90ZVVybCA9IF9yZXNvbHZlUmVtb3RlVXJsO1xufVxuXG5sZXQgcmVtb3RlVXJsRGVmaW5pdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGluaXQoKSBmcm9tICdAbW9kdWxlLWZlZGVyYXRpb24vZW5oYW5jZWQvcnVudGltZScgaW5zdGVhZC4gVGhpcyB3aWxsIGJlIHJlbW92ZWQgaW4gTnggMjIuXG4gKiBJZiB5b3UgaGF2ZSBhIHJlbW90ZSBhcHAgY2FsbGVkIGBteS1yZW1vdGUtYXBwYCBhbmQgeW91IHdhbnQgdG8gdXNlIHRoZSBgaHR0cDovL2xvY2FsaG9zdDo0MjAxL21mLW1hbmlmZXN0Lmpzb25gIGFzIHRoZSByZW1vdGUgdXJsLCB5b3Ugc2hvdWxkIGNoYW5nZSBpdCBmcm9tOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IHNldFJlbW90ZURlZmluaXRpb25zIH0gZnJvbSAnQG54L2FuZ3VsYXIvbWYnO1xuICpcbiAqIHNldFJlbW90ZURlZmluaXRpb25zKHtcbiAqICAgJ215LXJlbW90ZS1hcHAnOiAnaHR0cDovL2xvY2FsaG9zdDo0MjAxL21mLW1hbmlmZXN0Lmpzb24nXG4gKiB9KTtcbiAqIGBgYFxuICogdG8gdXNlIGluaXQoKTpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBpbml0IH0gZnJvbSAnQG1vZHVsZS1mZWRlcmF0aW9uL2VuaGFuY2VkL3J1bnRpbWUnO1xuICpcbiAqIGluaXQoe1xuICogICBuYW1lOiAnaG9zdCcsXG4gKiAgIHJlbW90ZXM6IFt7XG4gKiAgICAgbmFtZTogJ215LXJlbW90ZS1hcHAnLFxuICogICAgIGVudHJ5OiAnaHR0cDovL2xvY2FsaG9zdDo0MjAxL21mLW1hbmlmZXN0Lmpzb24nXG4gKiAgIH1dXG4gKiB9KTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0UmVtb3RlRGVmaW5pdGlvbnMoZGVmaW5pdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgcmVtb3RlVXJsRGVmaW5pdGlvbnMgPSBkZWZpbml0aW9ucztcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgcmVnaXN0ZXJSZW1vdGVzKCkgZnJvbSAnQG1vZHVsZS1mZWRlcmF0aW9uL2VuaGFuY2VkL3J1bnRpbWUnIGluc3RlYWQuIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIE54IDIyLlxuICogSWYgeW91IHNldCBhIHJlbW90ZSBhcHAgd2l0aCBgc2V0UmVtb3RlRGVmaW5pdGlvbmAgc3VjaCBhczpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBzZXRSZW1vdGVEZWZpbml0aW9uIH0gZnJvbSAnQG54L2FuZ3VsYXIvbWYnO1xuICpcbiAqIHNldFJlbW90ZURlZmluaXRpb24oXG4gKiAgICdteS1yZW1vdGUtYXBwJyxcbiAqICAgJ2h0dHA6Ly9sb2NhbGhvc3Q6NDIwMS9tZi1tYW5pZmVzdC5qc29uJ1xuICogKTtcbiAqIGBgYFxuICogY2hhbmdlIGl0IHRvIHVzZSByZWdpc3RlclJlbW90ZXMoKTpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyByZWdpc3RlclJlbW90ZXMgfSBmcm9tICdAbW9kdWxlLWZlZGVyYXRpb24vZW5oYW5jZWQvcnVudGltZSc7XG4gKlxuICogcmVnaXN0ZXJSZW1vdGVzKFtcbiAqICB7XG4gKiAgICAgbmFtZTogJ215LXJlbW90ZS1hcHAnLFxuICogICAgIGVudHJ5OiAnaHR0cDovL2xvY2FsaG9zdDo0MjAxL21mLW1hbmlmZXN0Lmpzb24nXG4gKiAgIH1cbiAqIF0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRSZW1vdGVEZWZpbml0aW9uKHJlbW90ZU5hbWU6IHN0cmluZywgcmVtb3RlVXJsOiBzdHJpbmcpIHtcbiAgcmVtb3RlVXJsRGVmaW5pdGlvbnMgPz89IHt9O1xuICByZW1vdGVVcmxEZWZpbml0aW9uc1tyZW1vdGVOYW1lXSA9IHJlbW90ZVVybDtcbn1cblxubGV0IHJlbW90ZU1vZHVsZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCB1bmtub3duPigpO1xubGV0IHJlbW90ZUNvbnRhaW5lck1hcCA9IG5ldyBNYXA8c3RyaW5nLCB1bmtub3duPigpO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBsb2FkUmVtb3RlKCkgZnJvbSAnQG1vZHVsZS1mZWRlcmF0aW9uL2VuaGFuY2VkL3J1bnRpbWUnIGluc3RlYWQuIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIE54IDIyLlxuICogSWYgeW91IHNldCBhIGxvYWQgYSByZW1vdGUgd2l0aCBgbG9hZFJlbW90ZU1vZHVsZWAgc3VjaCBhczpcbiAqIGBgYHRzXG4gKiBpbXBvcnQgeyBsb2FkUmVtb3RlTW9kdWxlIH0gZnJvbSAnQG54L2FuZ3VsYXIvbWYnO1xuICpcbiAqIGxvYWRSZW1vdGVNb2R1bGUoJ215LXJlbW90ZS1hcHAnLCAnLi9Nb2R1bGUnKS50aGVuKG0gPT4gbS5SZW1vdGVFbnRyeU1vZHVsZSk7XG4gKiBgYGBcbiAqIGNoYW5nZSBpdCB0byB1c2UgbG9hZFJlbW90ZSgpOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGxvYWRSZW1vdGUgfSBmcm9tICdAbW9kdWxlLWZlZGVyYXRpb24vZW5oYW5jZWQvcnVudGltZSc7XG4gKlxuICogbG9hZFJlbW90ZTx0eXBlb2YgaW1wb3J0KCdteS1yZW1vdGUtYXBwL01vZHVsZScpPignbXktcmVtb3RlLWFwcC9Nb2R1bGUnKS50aGVuKG0gPT4gbS5SZW1vdGVFbnRyeU1vZHVsZSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRSZW1vdGVNb2R1bGUocmVtb3RlTmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgcmVtb3RlTW9kdWxlS2V5ID0gYCR7cmVtb3RlTmFtZX06JHttb2R1bGVOYW1lfWA7XG4gIGlmIChyZW1vdGVNb2R1bGVNYXAuaGFzKHJlbW90ZU1vZHVsZUtleSkpIHtcbiAgICByZXR1cm4gcmVtb3RlTW9kdWxlTWFwLmdldChyZW1vdGVNb2R1bGVLZXkpO1xuICB9XG5cbiAgY29uc3QgY29udGFpbmVyID0gcmVtb3RlQ29udGFpbmVyTWFwLmhhcyhyZW1vdGVOYW1lKVxuICAgID8gcmVtb3RlQ29udGFpbmVyTWFwLmdldChyZW1vdGVOYW1lKVxuICAgIDogYXdhaXQgbG9hZFJlbW90ZUNvbnRhaW5lcihyZW1vdGVOYW1lKTtcblxuICBjb25zdCBmYWN0b3J5ID0gYXdhaXQgY29udGFpbmVyLmdldChtb2R1bGVOYW1lKTtcbiAgY29uc3QgTW9kdWxlID0gZmFjdG9yeSgpO1xuXG4gIHJlbW90ZU1vZHVsZU1hcC5zZXQocmVtb3RlTW9kdWxlS2V5LCBNb2R1bGUpO1xuXG4gIHJldHVybiBNb2R1bGU7XG59XG5cbmZ1bmN0aW9uIGxvYWRNb2R1bGUodXJsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGltcG9ydCgvKiB3ZWJwYWNrSWdub3JlOnRydWUgKi8gdXJsKTtcbn1cblxubGV0IGluaXRpYWxTaGFyaW5nU2NvcGVDcmVhdGVkID0gZmFsc2U7XG5cbmFzeW5jIGZ1bmN0aW9uIGxvYWRSZW1vdGVDb250YWluZXIocmVtb3RlTmFtZTogc3RyaW5nKSB7XG4gIGlmICghcmVzb2x2ZVJlbW90ZVVybCAmJiAhcmVtb3RlVXJsRGVmaW5pdGlvbnMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ2FsbCBzZXRSZW1vdGVEZWZpbml0aW9ucyBvciBzZXRSZW1vdGVVcmxSZXNvbHZlciB0byBhbGxvdyBEeW5hbWljIEZlZGVyYXRpb24gdG8gZmluZCB0aGUgcmVtb3RlIGFwcHMgY29ycmVjdGx5LidcbiAgICApO1xuICB9XG5cbiAgaWYgKCFpbml0aWFsU2hhcmluZ1Njb3BlQ3JlYXRlZCkge1xuICAgIGluaXRpYWxTaGFyaW5nU2NvcGVDcmVhdGVkID0gdHJ1ZTtcbiAgICBhd2FpdCBfX3dlYnBhY2tfaW5pdF9zaGFyaW5nX18oJ2RlZmF1bHQnKTtcbiAgfVxuXG4gIGNvbnN0IHJlbW90ZVVybCA9IHJlbW90ZVVybERlZmluaXRpb25zXG4gICAgPyByZW1vdGVVcmxEZWZpbml0aW9uc1tyZW1vdGVOYW1lXVxuICAgIDogYXdhaXQgcmVzb2x2ZVJlbW90ZVVybChyZW1vdGVOYW1lKTtcblxuICBjb25zdCBjb250YWluZXJVcmwgPSBwcm9jZXNzUnVudGltZVJlbW90ZVVybChyZW1vdGVVcmwsICdtanMnKTtcblxuICBjb25zdCBjb250YWluZXIgPSBhd2FpdCBsb2FkTW9kdWxlKGNvbnRhaW5lclVybCk7XG4gIGF3YWl0IGNvbnRhaW5lci5pbml0KF9fd2VicGFja19zaGFyZV9zY29wZXNfXy5kZWZhdWx0KTtcblxuICByZW1vdGVDb250YWluZXJNYXAuc2V0KHJlbW90ZU5hbWUsIGNvbnRhaW5lcik7XG4gIHJldHVybiBjb250YWluZXI7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtYW5ndWxhci1tZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbWYvbngtYW5ndWxhci1tZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"nx-angular-mf.mjs","sources":["../tmp-esm2022/mf/mf.js","../tmp-esm2022/mf/nx-angular-mf.js"],"sourcesContent":["import { extname } from 'node:path';\nlet resolveRemoteUrl;\n/**\n * @deprecated Use Runtime Helpers from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.\n */\nexport function setRemoteUrlResolver(_resolveRemoteUrl) {\n resolveRemoteUrl = _resolveRemoteUrl;\n}\nlet remoteUrlDefinitions;\n/**\n * @deprecated Use init() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.\n * If you have a remote app called `my-remote-app` and you want to use the `http://localhost:4201/mf-manifest.json` as the remote url, you should change it from:\n * ```ts\n * import { setRemoteDefinitions } from '@nx/angular/mf';\n *\n * setRemoteDefinitions({\n * 'my-remote-app': 'http://localhost:4201/mf-manifest.json'\n * });\n * ```\n * to use init():\n * ```ts\n * import { init } from '@module-federation/enhanced/runtime';\n *\n * init({\n * name: 'host',\n * remotes: [{\n * name: 'my-remote-app',\n * entry: 'http://localhost:4201/mf-manifest.json'\n * }]\n * });\n * ```\n */\nexport function setRemoteDefinitions(definitions) {\n remoteUrlDefinitions = definitions;\n}\n/**\n * @deprecated Use registerRemotes() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.\n * If you set a remote app with `setRemoteDefinition` such as:\n * ```ts\n * import { setRemoteDefinition } from '@nx/angular/mf';\n *\n * setRemoteDefinition(\n * 'my-remote-app',\n * 'http://localhost:4201/mf-manifest.json'\n * );\n * ```\n * change it to use registerRemotes():\n * ```ts\n * import { registerRemotes } from '@module-federation/enhanced/runtime';\n *\n * registerRemotes([\n * {\n * name: 'my-remote-app',\n * entry: 'http://localhost:4201/mf-manifest.json'\n * }\n * ]);\n * ```\n */\nexport function setRemoteDefinition(remoteName, remoteUrl) {\n remoteUrlDefinitions ??= {};\n remoteUrlDefinitions[remoteName] = remoteUrl;\n}\nlet remoteModuleMap = new Map();\nlet remoteContainerMap = new Map();\n/**\n * @deprecated Use loadRemote() from '@module-federation/enhanced/runtime' instead. This will be removed in Nx 22.\n * If you set a load a remote with `loadRemoteModule` such as:\n * ```ts\n * import { loadRemoteModule } from '@nx/angular/mf';\n *\n * loadRemoteModule('my-remote-app', './Module').then(m => m.RemoteEntryModule);\n * ```\n * change it to use loadRemote():\n * ```ts\n * import { loadRemote } from '@module-federation/enhanced/runtime';\n *\n * loadRemote<typeof import('my-remote-app/Module')>('my-remote-app/Module').then(m => m.RemoteEntryModule);\n * ```\n */\nexport async function loadRemoteModule(remoteName, moduleName) {\n const remoteModuleKey = `${remoteName}:${moduleName}`;\n if (remoteModuleMap.has(remoteModuleKey)) {\n return remoteModuleMap.get(remoteModuleKey);\n }\n const container = remoteContainerMap.has(remoteName)\n ? remoteContainerMap.get(remoteName)\n : await loadRemoteContainer(remoteName);\n const factory = await container.get(moduleName);\n const Module = factory();\n remoteModuleMap.set(remoteModuleKey, Module);\n return Module;\n}\nfunction loadModule(url) {\n return import(/* webpackIgnore:true */ url);\n}\nlet initialSharingScopeCreated = false;\nasync function loadRemoteContainer(remoteName) {\n if (!resolveRemoteUrl && !remoteUrlDefinitions) {\n throw new Error('Call setRemoteDefinitions or setRemoteUrlResolver to allow Dynamic Federation to find the remote apps correctly.');\n }\n if (!initialSharingScopeCreated) {\n initialSharingScopeCreated = true;\n await __webpack_init_sharing__('default');\n }\n const remoteUrl = remoteUrlDefinitions\n ? remoteUrlDefinitions[remoteName]\n : await resolveRemoteUrl(remoteName);\n const url = new URL(remoteUrl);\n const ext = extname(url.pathname);\n const needsRemoteEntry = !['.js', '.mjs', '.json'].includes(ext);\n if (needsRemoteEntry) {\n url.pathname = url.pathname.endsWith('/')\n ? `${url.pathname}remoteEntry.mjs`\n : `${url.pathname}/remoteEntry.mjs`;\n }\n const containerUrl = url.href;\n const container = await loadModule(containerUrl);\n await container.init(__webpack_share_scopes__.default);\n remoteContainerMap.set(remoteName, container);\n return container;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL21mL21mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFTcEMsSUFBSSxnQkFBMEMsQ0FBQztBQUUvQzs7R0FFRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FDbEMsaUJBQTJDO0lBRTNDLGdCQUFnQixHQUFHLGlCQUFpQixDQUFDO0FBQ3ZDLENBQUM7QUFFRCxJQUFJLG9CQUE0QyxDQUFDO0FBRWpEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFdBQW1DO0lBQ3RFLG9CQUFvQixHQUFHLFdBQVcsQ0FBQztBQUNyQyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsVUFBa0IsRUFBRSxTQUFpQjtJQUN2RSxvQkFBb0IsS0FBSyxFQUFFLENBQUM7SUFDNUIsb0JBQW9CLENBQUMsVUFBVSxDQUFDLEdBQUcsU0FBUyxDQUFDO0FBQy9DLENBQUM7QUFFRCxJQUFJLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztBQUNqRCxJQUFJLGtCQUFrQixHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO0FBRXBEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLFVBQWtCO0lBQzNFLE1BQU0sZUFBZSxHQUFHLEdBQUcsVUFBVSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQ3RELElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUNsRCxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUNwQyxDQUFDLENBQUMsTUFBTSxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUxQyxNQUFNLE9BQU8sR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEQsTUFBTSxNQUFNLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFFekIsZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFN0MsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEdBQVc7SUFDN0IsT0FBTyxNQUFNLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVELElBQUksMEJBQTBCLEdBQUcsS0FBSyxDQUFDO0FBRXZDLEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxVQUFrQjtJQUNuRCxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQy9DLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0hBQWtILENBQ25ILENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDaEMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLE1BQU0sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLG9CQUFvQjtRQUNwQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxNQUFNLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXZDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbEMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFakUsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxRQUFRLGlCQUFpQjtZQUNsQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUSxrQkFBa0IsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztJQUU5QixNQUFNLFNBQVMsR0FBRyxNQUFNLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxNQUFNLFNBQVMsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFdkQsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM5QyxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXh0bmFtZSB9IGZyb20gJ25vZGU6cGF0aCc7XG5cbmV4cG9ydCB0eXBlIFJlc29sdmVSZW1vdGVVcmxGdW5jdGlvbiA9IChcbiAgcmVtb3RlTmFtZTogc3RyaW5nXG4pID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPjtcblxuZGVjbGFyZSBjb25zdCBfX3dlYnBhY2tfaW5pdF9zaGFyaW5nX186IChzY29wZTogJ2RlZmF1bHQnKSA9PiBQcm9taXNlPHZvaWQ+O1xuZGVjbGFyZSBjb25zdCBfX3dlYnBhY2tfc2hhcmVfc2NvcGVzX186IHsgZGVmYXVsdDogdW5rbm93biB9O1xuXG5sZXQgcmVzb2x2ZVJlbW90ZVVybDogUmVzb2x2ZVJlbW90ZVVybEZ1bmN0aW9uO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBSdW50aW1lIEhlbHBlcnMgZnJvbSAnQG1vZHVsZS1mZWRlcmF0aW9uL2VuaGFuY2VkL3J1bnRpbWUnIGluc3RlYWQuIFRoaXMgd2lsbCBiZSByZW1vdmVkIGluIE54IDIyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2V0UmVtb3RlVXJsUmVzb2x2ZXIoXG4gIF9yZXNvbHZlUmVtb3RlVXJsOiBSZXNvbHZlUmVtb3RlVXJsRnVuY3Rpb25cbikge1xuICByZXNvbHZlUmVtb3RlVXJsID0gX3Jlc29sdmVSZW1vdGVVcmw7XG59XG5cbmxldCByZW1vdGVVcmxEZWZpbml0aW9uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgaW5pdCgpIGZyb20gJ0Btb2R1bGUtZmVkZXJhdGlvbi9lbmhhbmNlZC9ydW50aW1lJyBpbnN0ZWFkLiBUaGlzIHdpbGwgYmUgcmVtb3ZlZCBpbiBOeCAyMi5cbiAqIElmIHlvdSBoYXZlIGEgcmVtb3RlIGFwcCBjYWxsZWQgYG15LXJlbW90ZS1hcHBgIGFuZCB5b3Ugd2FudCB0byB1c2UgdGhlIGBodHRwOi8vbG9jYWxob3N0OjQyMDEvbWYtbWFuaWZlc3QuanNvbmAgYXMgdGhlIHJlbW90ZSB1cmwsIHlvdSBzaG91bGQgY2hhbmdlIGl0IGZyb206XG4gKiBgYGB0c1xuICogaW1wb3J0IHsgc2V0UmVtb3RlRGVmaW5pdGlvbnMgfSBmcm9tICdAbngvYW5ndWxhci9tZic7XG4gKlxuICogc2V0UmVtb3RlRGVmaW5pdGlvbnMoe1xuICogICAnbXktcmVtb3RlLWFwcCc6ICdodHRwOi8vbG9jYWxob3N0OjQyMDEvbWYtbWFuaWZlc3QuanNvbidcbiAqIH0pO1xuICogYGBgXG4gKiB0byB1c2UgaW5pdCgpOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGluaXQgfSBmcm9tICdAbW9kdWxlLWZlZGVyYXRpb24vZW5oYW5jZWQvcnVudGltZSc7XG4gKlxuICogaW5pdCh7XG4gKiAgIG5hbWU6ICdob3N0JyxcbiAqICAgcmVtb3RlczogW3tcbiAqICAgICBuYW1lOiAnbXktcmVtb3RlLWFwcCcsXG4gKiAgICAgZW50cnk6ICdodHRwOi8vbG9jYWxob3N0OjQyMDEvbWYtbWFuaWZlc3QuanNvbidcbiAqICAgfV1cbiAqIH0pO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzZXRSZW1vdGVEZWZpbml0aW9ucyhkZWZpbml0aW9uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPikge1xuICByZW1vdGVVcmxEZWZpbml0aW9ucyA9IGRlZmluaXRpb25zO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSByZWdpc3RlclJlbW90ZXMoKSBmcm9tICdAbW9kdWxlLWZlZGVyYXRpb24vZW5oYW5jZWQvcnVudGltZScgaW5zdGVhZC4gVGhpcyB3aWxsIGJlIHJlbW92ZWQgaW4gTnggMjIuXG4gKiBJZiB5b3Ugc2V0IGEgcmVtb3RlIGFwcCB3aXRoIGBzZXRSZW1vdGVEZWZpbml0aW9uYCBzdWNoIGFzOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IHNldFJlbW90ZURlZmluaXRpb24gfSBmcm9tICdAbngvYW5ndWxhci9tZic7XG4gKlxuICogc2V0UmVtb3RlRGVmaW5pdGlvbihcbiAqICAgJ215LXJlbW90ZS1hcHAnLFxuICogICAnaHR0cDovL2xvY2FsaG9zdDo0MjAxL21mLW1hbmlmZXN0Lmpzb24nXG4gKiApO1xuICogYGBgXG4gKiBjaGFuZ2UgaXQgdG8gdXNlIHJlZ2lzdGVyUmVtb3RlcygpOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IHJlZ2lzdGVyUmVtb3RlcyB9IGZyb20gJ0Btb2R1bGUtZmVkZXJhdGlvbi9lbmhhbmNlZC9ydW50aW1lJztcbiAqXG4gKiByZWdpc3RlclJlbW90ZXMoW1xuICogIHtcbiAqICAgICBuYW1lOiAnbXktcmVtb3RlLWFwcCcsXG4gKiAgICAgZW50cnk6ICdodHRwOi8vbG9jYWxob3N0OjQyMDEvbWYtbWFuaWZlc3QuanNvbidcbiAqICAgfVxuICogXSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldFJlbW90ZURlZmluaXRpb24ocmVtb3RlTmFtZTogc3RyaW5nLCByZW1vdGVVcmw6IHN0cmluZykge1xuICByZW1vdGVVcmxEZWZpbml0aW9ucyA/Pz0ge307XG4gIHJlbW90ZVVybERlZmluaXRpb25zW3JlbW90ZU5hbWVdID0gcmVtb3RlVXJsO1xufVxuXG5sZXQgcmVtb3RlTW9kdWxlTWFwID0gbmV3IE1hcDxzdHJpbmcsIHVua25vd24+KCk7XG5sZXQgcmVtb3RlQ29udGFpbmVyTWFwID0gbmV3IE1hcDxzdHJpbmcsIHVua25vd24+KCk7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVXNlIGxvYWRSZW1vdGUoKSBmcm9tICdAbW9kdWxlLWZlZGVyYXRpb24vZW5oYW5jZWQvcnVudGltZScgaW5zdGVhZC4gVGhpcyB3aWxsIGJlIHJlbW92ZWQgaW4gTnggMjIuXG4gKiBJZiB5b3Ugc2V0IGEgbG9hZCBhIHJlbW90ZSB3aXRoIGBsb2FkUmVtb3RlTW9kdWxlYCBzdWNoIGFzOlxuICogYGBgdHNcbiAqIGltcG9ydCB7IGxvYWRSZW1vdGVNb2R1bGUgfSBmcm9tICdAbngvYW5ndWxhci9tZic7XG4gKlxuICogbG9hZFJlbW90ZU1vZHVsZSgnbXktcmVtb3RlLWFwcCcsICcuL01vZHVsZScpLnRoZW4obSA9PiBtLlJlbW90ZUVudHJ5TW9kdWxlKTtcbiAqIGBgYFxuICogY2hhbmdlIGl0IHRvIHVzZSBsb2FkUmVtb3RlKCk6XG4gKiBgYGB0c1xuICogaW1wb3J0IHsgbG9hZFJlbW90ZSB9IGZyb20gJ0Btb2R1bGUtZmVkZXJhdGlvbi9lbmhhbmNlZC9ydW50aW1lJztcbiAqXG4gKiBsb2FkUmVtb3RlPHR5cGVvZiBpbXBvcnQoJ215LXJlbW90ZS1hcHAvTW9kdWxlJyk+KCdteS1yZW1vdGUtYXBwL01vZHVsZScpLnRoZW4obSA9PiBtLlJlbW90ZUVudHJ5TW9kdWxlKTtcbiAqIGBgYFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFJlbW90ZU1vZHVsZShyZW1vdGVOYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykge1xuICBjb25zdCByZW1vdGVNb2R1bGVLZXkgPSBgJHtyZW1vdGVOYW1lfToke21vZHVsZU5hbWV9YDtcbiAgaWYgKHJlbW90ZU1vZHVsZU1hcC5oYXMocmVtb3RlTW9kdWxlS2V5KSkge1xuICAgIHJldHVybiByZW1vdGVNb2R1bGVNYXAuZ2V0KHJlbW90ZU1vZHVsZUtleSk7XG4gIH1cblxuICBjb25zdCBjb250YWluZXIgPSByZW1vdGVDb250YWluZXJNYXAuaGFzKHJlbW90ZU5hbWUpXG4gICAgPyByZW1vdGVDb250YWluZXJNYXAuZ2V0KHJlbW90ZU5hbWUpXG4gICAgOiBhd2FpdCBsb2FkUmVtb3RlQ29udGFpbmVyKHJlbW90ZU5hbWUpO1xuXG4gIGNvbnN0IGZhY3RvcnkgPSBhd2FpdCBjb250YWluZXIuZ2V0KG1vZHVsZU5hbWUpO1xuICBjb25zdCBNb2R1bGUgPSBmYWN0b3J5KCk7XG5cbiAgcmVtb3RlTW9kdWxlTWFwLnNldChyZW1vdGVNb2R1bGVLZXksIE1vZHVsZSk7XG5cbiAgcmV0dXJuIE1vZHVsZTtcbn1cblxuZnVuY3Rpb24gbG9hZE1vZHVsZSh1cmw6IHN0cmluZykge1xuICByZXR1cm4gaW1wb3J0KC8qIHdlYnBhY2tJZ25vcmU6dHJ1ZSAqLyB1cmwpO1xufVxuXG5sZXQgaW5pdGlhbFNoYXJpbmdTY29wZUNyZWF0ZWQgPSBmYWxzZTtcblxuYXN5bmMgZnVuY3Rpb24gbG9hZFJlbW90ZUNvbnRhaW5lcihyZW1vdGVOYW1lOiBzdHJpbmcpIHtcbiAgaWYgKCFyZXNvbHZlUmVtb3RlVXJsICYmICFyZW1vdGVVcmxEZWZpbml0aW9ucykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdDYWxsIHNldFJlbW90ZURlZmluaXRpb25zIG9yIHNldFJlbW90ZVVybFJlc29sdmVyIHRvIGFsbG93IER5bmFtaWMgRmVkZXJhdGlvbiB0byBmaW5kIHRoZSByZW1vdGUgYXBwcyBjb3JyZWN0bHkuJ1xuICAgICk7XG4gIH1cblxuICBpZiAoIWluaXRpYWxTaGFyaW5nU2NvcGVDcmVhdGVkKSB7XG4gICAgaW5pdGlhbFNoYXJpbmdTY29wZUNyZWF0ZWQgPSB0cnVlO1xuICAgIGF3YWl0IF9fd2VicGFja19pbml0X3NoYXJpbmdfXygnZGVmYXVsdCcpO1xuICB9XG5cbiAgY29uc3QgcmVtb3RlVXJsID0gcmVtb3RlVXJsRGVmaW5pdGlvbnNcbiAgICA/IHJlbW90ZVVybERlZmluaXRpb25zW3JlbW90ZU5hbWVdXG4gICAgOiBhd2FpdCByZXNvbHZlUmVtb3RlVXJsKHJlbW90ZU5hbWUpO1xuXG4gIGNvbnN0IHVybCA9IG5ldyBVUkwocmVtb3RlVXJsKTtcbiAgY29uc3QgZXh0ID0gZXh0bmFtZSh1cmwucGF0aG5hbWUpO1xuXG4gIGNvbnN0IG5lZWRzUmVtb3RlRW50cnkgPSAhWycuanMnLCAnLm1qcycsICcuanNvbiddLmluY2x1ZGVzKGV4dCk7XG5cbiAgaWYgKG5lZWRzUmVtb3RlRW50cnkpIHtcbiAgICB1cmwucGF0aG5hbWUgPSB1cmwucGF0aG5hbWUuZW5kc1dpdGgoJy8nKVxuICAgICAgPyBgJHt1cmwucGF0aG5hbWV9cmVtb3RlRW50cnkubWpzYFxuICAgICAgOiBgJHt1cmwucGF0aG5hbWV9L3JlbW90ZUVudHJ5Lm1qc2A7XG4gIH1cblxuICBjb25zdCBjb250YWluZXJVcmwgPSB1cmwuaHJlZjtcblxuICBjb25zdCBjb250YWluZXIgPSBhd2FpdCBsb2FkTW9kdWxlKGNvbnRhaW5lclVybCk7XG4gIGF3YWl0IGNvbnRhaW5lci5pbml0KF9fd2VicGFja19zaGFyZV9zY29wZXNfXy5kZWZhdWx0KTtcblxuICByZW1vdGVDb250YWluZXJNYXAuc2V0KHJlbW90ZU5hbWUsIGNvbnRhaW5lcik7XG4gIHJldHVybiBjb250YWluZXI7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibngtYW5ndWxhci1tZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXIvbWYvbngtYW5ndWxhci1tZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
package/migrations.json
CHANGED
@@ -343,15 +343,6 @@
|
|
343
343
|
},
|
344
344
|
"description": "Update 'moduleResolution' to 'bundler' in TypeScript configurations. You can read more about this here: https://www.typescriptlang.org/tsconfig/#moduleResolution.",
|
345
345
|
"factory": "./src/migrations/update-21-2-0/update-module-resolution"
|
346
|
-
},
|
347
|
-
"update-angular-cli-version-20-1-0": {
|
348
|
-
"cli": "nx",
|
349
|
-
"version": "21.3.0-beta.4",
|
350
|
-
"requires": {
|
351
|
-
"@angular/core": ">=20.1.0"
|
352
|
-
},
|
353
|
-
"description": "Update the @angular/cli package version to ~20.1.0.",
|
354
|
-
"factory": "./src/migrations/update-21-3-0/update-angular-cli"
|
355
346
|
}
|
356
347
|
},
|
357
348
|
"packageJsonUpdates": {
|
@@ -1818,71 +1809,6 @@
|
|
1818
1809
|
"alwaysAddToPackageJson": false
|
1819
1810
|
}
|
1820
1811
|
}
|
1821
|
-
},
|
1822
|
-
"21.3.0": {
|
1823
|
-
"version": "21.3.0-beta.4",
|
1824
|
-
"x-prompt": "Do you want to update the Angular version to v20.1?",
|
1825
|
-
"requires": {
|
1826
|
-
"@angular/core": ">=20.0.0 <20.1.0"
|
1827
|
-
},
|
1828
|
-
"packages": {
|
1829
|
-
"@angular-devkit/build-angular": {
|
1830
|
-
"version": "~20.1.0",
|
1831
|
-
"alwaysAddToPackageJson": false
|
1832
|
-
},
|
1833
|
-
"@angular-devkit/core": {
|
1834
|
-
"version": "~20.1.0",
|
1835
|
-
"alwaysAddToPackageJson": false
|
1836
|
-
},
|
1837
|
-
"@angular-devkit/schematics": {
|
1838
|
-
"version": "~20.1.0",
|
1839
|
-
"alwaysAddToPackageJson": false
|
1840
|
-
},
|
1841
|
-
"@angular/build": {
|
1842
|
-
"version": "~20.1.0",
|
1843
|
-
"alwaysAddToPackageJson": false
|
1844
|
-
},
|
1845
|
-
"@angular/pwa": {
|
1846
|
-
"version": "~20.1.0",
|
1847
|
-
"alwaysAddToPackageJson": false
|
1848
|
-
},
|
1849
|
-
"@angular/ssr": {
|
1850
|
-
"version": "~20.1.0",
|
1851
|
-
"alwaysAddToPackageJson": false
|
1852
|
-
},
|
1853
|
-
"@schematics/angular": {
|
1854
|
-
"version": "~20.1.0",
|
1855
|
-
"alwaysAddToPackageJson": false
|
1856
|
-
},
|
1857
|
-
"@angular-devkit/architect": {
|
1858
|
-
"version": "~0.2001.0",
|
1859
|
-
"alwaysAddToPackageJson": false
|
1860
|
-
},
|
1861
|
-
"@angular-devkit/build-webpack": {
|
1862
|
-
"version": "~0.2001.0",
|
1863
|
-
"alwaysAddToPackageJson": false
|
1864
|
-
},
|
1865
|
-
"@angular/core": {
|
1866
|
-
"version": "~20.1.0",
|
1867
|
-
"alwaysAddToPackageJson": true
|
1868
|
-
},
|
1869
|
-
"@angular/material": {
|
1870
|
-
"version": "~20.1.0",
|
1871
|
-
"alwaysAddToPackageJson": false
|
1872
|
-
},
|
1873
|
-
"@angular/cdk": {
|
1874
|
-
"version": "~20.1.0",
|
1875
|
-
"alwaysAddToPackageJson": false
|
1876
|
-
},
|
1877
|
-
"@angular/google-maps": {
|
1878
|
-
"version": "~20.1.0",
|
1879
|
-
"alwaysAddToPackageJson": false
|
1880
|
-
},
|
1881
|
-
"ng-packagr": {
|
1882
|
-
"version": "~20.1.0",
|
1883
|
-
"alwaysAddToPackageJson": false
|
1884
|
-
}
|
1885
|
-
}
|
1886
1812
|
}
|
1887
1813
|
}
|
1888
1814
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nx/angular",
|
3
|
-
"version": "21.3.0-
|
3
|
+
"version": "21.3.0-canary.20250613-18155f4",
|
4
4
|
"private": false,
|
5
5
|
"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, Playwright and Cypress. \n\n- Generators to help scaffold code quickly (like: Micro Frontends, Libraries, both internal to your codebase and publishable to npm) \n\n- Single Component Application Modules (SCAMs) \n\n- NgRx helpers. \n\n- Utilities for automatic workspace refactoring.",
|
6
6
|
"repository": {
|
@@ -58,14 +58,14 @@
|
|
58
58
|
"migrations": "./migrations.json"
|
59
59
|
},
|
60
60
|
"dependencies": {
|
61
|
-
"@nx/devkit": "21.3.0-
|
62
|
-
"@nx/eslint": "21.3.0-
|
63
|
-
"@nx/js": "21.3.0-
|
64
|
-
"@nx/module-federation": "21.3.0-
|
65
|
-
"@nx/rspack": "21.3.0-
|
66
|
-
"@nx/web": "21.3.0-
|
67
|
-
"@nx/webpack": "21.3.0-
|
68
|
-
"@nx/workspace": "21.3.0-
|
61
|
+
"@nx/devkit": "21.3.0-canary.20250613-18155f4",
|
62
|
+
"@nx/eslint": "21.3.0-canary.20250613-18155f4",
|
63
|
+
"@nx/js": "21.3.0-canary.20250613-18155f4",
|
64
|
+
"@nx/module-federation": "21.3.0-canary.20250613-18155f4",
|
65
|
+
"@nx/rspack": "21.3.0-canary.20250613-18155f4",
|
66
|
+
"@nx/web": "21.3.0-canary.20250613-18155f4",
|
67
|
+
"@nx/webpack": "21.3.0-canary.20250613-18155f4",
|
68
|
+
"@nx/workspace": "21.3.0-canary.20250613-18155f4",
|
69
69
|
"@phenomnomnominal/tsquery": "~5.0.1",
|
70
70
|
"@typescript-eslint/type-utils": "^8.0.0",
|
71
71
|
"enquirer": "~2.3.6",
|
@@ -4,7 +4,6 @@ exports.nxComponentTestingPreset = nxComponentTestingPreset;
|
|
4
4
|
const cypress_preset_1 = require("@nx/cypress/plugins/cypress-preset");
|
5
5
|
const ct_helpers_1 = require("@nx/cypress/src/utils/ct-helpers");
|
6
6
|
const devkit_1 = require("@nx/devkit");
|
7
|
-
const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup");
|
8
7
|
const fs_1 = require("fs");
|
9
8
|
const path_1 = require("path");
|
10
9
|
const semver_1 = require("semver");
|
@@ -116,8 +115,7 @@ function normalizeBuildTargetOptions(buildContext, ctContext, offset) {
|
|
116
115
|
configuration: buildContext.configurationName,
|
117
116
|
}, buildContext);
|
118
117
|
const project = buildContext.projectsConfigurations.projects[buildContext.projectName];
|
119
|
-
const
|
120
|
-
const buildOptions = withSchemaDefaults(options, sourceRoot, buildContext.root);
|
118
|
+
const buildOptions = withSchemaDefaults(options, project, buildContext.root);
|
121
119
|
// cypress creates a tsconfig if one isn't preset
|
122
120
|
// that contains all the support required for angular and component tests
|
123
121
|
delete buildOptions.tsConfig;
|
@@ -191,9 +189,18 @@ function normalizeBuildTargetOptions(buildContext, ctContext, offset) {
|
|
191
189
|
buildOptions.scripts = [];
|
192
190
|
buildOptions.stylePreprocessorOptions = { includePaths: [] };
|
193
191
|
}
|
192
|
+
const config = buildContext.projectGraph.nodes[buildContext.projectName]?.data;
|
193
|
+
if (!config.sourceRoot) {
|
194
|
+
devkit_1.logger.warn((0, devkit_1.stripIndents) `Unable to find the 'sourceRoot' in the project configuration.
|
195
|
+
Will set 'sourceRoot' to '${config.root}/src'
|
196
|
+
Note: this may fail, setting the correct 'sourceRoot' for ${buildContext.projectName} in the project.json file will ensure the correct value is used.`);
|
197
|
+
config.sourceRoot = (0, devkit_1.joinPathFragments)(config.root, 'src');
|
198
|
+
}
|
194
199
|
return {
|
195
|
-
root: offset ? (0, devkit_1.joinPathFragments)(offset,
|
196
|
-
sourceRoot: offset
|
200
|
+
root: offset ? (0, devkit_1.joinPathFragments)(offset, config.root) : config.root,
|
201
|
+
sourceRoot: offset
|
202
|
+
? (0, devkit_1.joinPathFragments)(offset, config.sourceRoot)
|
203
|
+
: config.sourceRoot,
|
197
204
|
buildOptions: {
|
198
205
|
...buildOptions,
|
199
206
|
// this property is only valid for cy v12.9.0+
|
@@ -201,8 +208,9 @@ function normalizeBuildTargetOptions(buildContext, ctContext, offset) {
|
|
201
208
|
},
|
202
209
|
};
|
203
210
|
}
|
204
|
-
function withSchemaDefaults(options,
|
211
|
+
function withSchemaDefaults(options, project, workspaceRoot) {
|
205
212
|
if (!options.main && !options.browser) {
|
213
|
+
const sourceRoot = project.sourceRoot ?? (0, devkit_1.joinPathFragments)(project.root, 'src');
|
206
214
|
options.browser = (0, devkit_1.joinPathFragments)(sourceRoot, 'main.ts');
|
207
215
|
if (!(0, fs_1.existsSync)((0, path_1.join)(workspaceRoot, options.browser))) {
|
208
216
|
throw new Error('Missing executor options "main" and "browser"');
|
@@ -4,11 +4,10 @@ exports.getDynamicRemotes = getDynamicRemotes;
|
|
4
4
|
exports.getStaticRemotes = getStaticRemotes;
|
5
5
|
exports.validateDevRemotes = validateDevRemotes;
|
6
6
|
exports.getDynamicMfManifestFile = getDynamicMfManifestFile;
|
7
|
+
const path_1 = require("path");
|
8
|
+
const fs_1 = require("fs");
|
7
9
|
const devkit_1 = require("@nx/devkit");
|
8
10
|
const internal_1 = require("@nx/js/src/internal");
|
9
|
-
const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup");
|
10
|
-
const fs_1 = require("fs");
|
11
|
-
const path_1 = require("path");
|
12
11
|
function getDynamicRemotes(project, context, workspaceProjects, remotesToSkip, pathToManifestFile) {
|
13
12
|
pathToManifestFile ??= getDynamicMfManifestFile(project, context.workspaceRoot);
|
14
13
|
// check for dynamic remotes
|
@@ -106,6 +105,6 @@ function getDynamicMfManifestFile(project, workspaceRoot) {
|
|
106
105
|
// at the old path.
|
107
106
|
return [
|
108
107
|
(0, path_1.join)(workspaceRoot, project.root, 'public/module-federation.manifest.json'),
|
109
|
-
(0, path_1.join)(workspaceRoot,
|
108
|
+
(0, path_1.join)(workspaceRoot, project.sourceRoot, 'assets/module-federation.manifest.json'),
|
110
109
|
].find((path) => (0, fs_1.existsSync)(path));
|
111
110
|
}
|
@@ -456,7 +456,7 @@
|
|
456
456
|
"additionalProperties": false
|
457
457
|
},
|
458
458
|
"indexHtmlTransformer": {
|
459
|
-
"description": "Path to
|
459
|
+
"description": "Path to transformer function to transform the index.html",
|
460
460
|
"type": "string",
|
461
461
|
"alias": "indexFileTransformer"
|
462
462
|
},
|
@@ -278,12 +278,10 @@
|
|
278
278
|
]
|
279
279
|
},
|
280
280
|
"loader": {
|
281
|
-
"description": "Defines the type of loader to use with a specified file extension when used with a JavaScript `import`. `text` inlines the content as a string; `binary` inlines the content as a Uint8Array; `file` emits the file and provides the runtime location of the file; `
|
281
|
+
"description": "Defines the type of loader to use with a specified file extension when used with a JavaScript `import`. `text` inlines the content as a string; `binary` inlines the content as a Uint8Array; `file` emits the file and provides the runtime location of the file; `empty` considers the content to be empty and not include it in bundles.",
|
282
282
|
"type": "object",
|
283
283
|
"patternProperties": {
|
284
|
-
"^\\.\\S+$": {
|
285
|
-
"enum": ["text", "binary", "file", "dataurl", "base64", "empty"]
|
286
|
-
}
|
284
|
+
"^\\.\\S+$": { "enum": ["text", "binary", "file", "empty"] }
|
287
285
|
}
|
288
286
|
},
|
289
287
|
"define": {
|
@@ -32,14 +32,4 @@ function validateOptions(options) {
|
|
32
32
|
throw new Error(`The "conditions" option requires Angular version 20.0.0 or greater. You are currently using version ${angularVersion}.`);
|
33
33
|
}
|
34
34
|
}
|
35
|
-
if ((0, semver_1.lt)(angularVersion, '20.1.0')) {
|
36
|
-
if (options.loader) {
|
37
|
-
const invalidLoaders = Array.from(new Set(Object.values(options.loader).filter((l) => l === 'dataurl' || l === 'base64')));
|
38
|
-
if (invalidLoaders.length) {
|
39
|
-
throw new Error(`Using the ${invalidLoaders
|
40
|
-
.map((l) => `"${l}"`)
|
41
|
-
.join(' and ')} loader${invalidLoaders.length > 1 ? 's' : ''} requires Angular version 20.1.0 or greater. You are currently using version ${angularVersion}.`);
|
42
|
-
}
|
43
|
-
}
|
44
|
-
}
|
45
35
|
}
|
@@ -12,9 +12,8 @@ const tslib_1 = require("tslib");
|
|
12
12
|
const devkit_1 = require("@nx/devkit");
|
13
13
|
const browserslist_1 = tslib_1.__importDefault(require("browserslist"));
|
14
14
|
const fs_1 = require("fs");
|
15
|
+
const color_1 = require("ng-packagr/src/lib/utils/color");
|
15
16
|
const path_1 = require("path");
|
16
|
-
const ng_packagr_version_1 = require("../ng-packagr-version");
|
17
|
-
const package_imports_1 = require("../package-imports");
|
18
17
|
const maxWorkersVariable = process.env['NG_BUILD_MAX_WORKERS'];
|
19
18
|
const maxThreads = typeof maxWorkersVariable === 'string' && maxWorkersVariable !== ''
|
20
19
|
? +maxWorkersVariable
|
@@ -77,8 +76,6 @@ class StylesheetProcessor {
|
|
77
76
|
devkit_1.workspaceRoot,
|
78
77
|
]);
|
79
78
|
const tailwindConfigPath = findTailwindConfiguration(searchDirs);
|
80
|
-
const { major: ngPackagrMajorVersion } = (0, ng_packagr_version_1.getNgPackagrVersionInfo)();
|
81
|
-
const { colors } = (0, package_imports_1.importNgPackagrPath)('ng-packagr/src/lib/utils/color', ngPackagrMajorVersion);
|
82
79
|
const Piscina = getPiscina();
|
83
80
|
this.renderWorker = new Piscina({
|
84
81
|
filename: require.resolve('ng-packagr/lib/styles/stylesheet-processor-worker'),
|
@@ -86,7 +83,7 @@ class StylesheetProcessor {
|
|
86
83
|
recordTiming: false,
|
87
84
|
env: {
|
88
85
|
...process.env,
|
89
|
-
FORCE_COLOR: '' + colors.enabled,
|
86
|
+
FORCE_COLOR: '' + color_1.colors.enabled,
|
90
87
|
},
|
91
88
|
workerData: {
|
92
89
|
postcssConfiguration,
|
@@ -80,11 +80,10 @@ async function applicationGenerator(tree, schema) {
|
|
80
80
|
}
|
81
81
|
if (!options.skipPackageJson) {
|
82
82
|
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
83
|
-
const devDependencies = {};
|
84
|
-
const packageVersions = (0, version_utils_1.versions)(tree);
|
85
83
|
if (angularMajorVersion >= 20) {
|
86
84
|
const angularDevkitVersion = (0, version_utils_1.getInstalledAngularDevkitVersion)(tree) ??
|
87
|
-
|
85
|
+
(0, version_utils_1.versions)(tree).angularDevkitVersion;
|
86
|
+
const devDependencies = {};
|
88
87
|
if (options.bundler === 'esbuild') {
|
89
88
|
devDependencies['@angular/build'] = angularDevkitVersion;
|
90
89
|
}
|
@@ -95,11 +94,6 @@ async function applicationGenerator(tree, schema) {
|
|
95
94
|
else {
|
96
95
|
devDependencies['@angular-devkit/build-angular'] = angularDevkitVersion;
|
97
96
|
}
|
98
|
-
}
|
99
|
-
if (options.style === 'less') {
|
100
|
-
devDependencies['less'] = packageVersions.lessVersion;
|
101
|
-
}
|
102
|
-
if (Object.keys(devDependencies).length) {
|
103
97
|
(0, devkit_1.addDependenciesToPackageJson)(tree, {}, devDependencies, undefined, true);
|
104
98
|
}
|
105
99
|
}
|
@@ -2,16 +2,16 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.updateSsrSetup = updateSsrSetup;
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
5
|
-
const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup");
|
6
5
|
const path_1 = require("path");
|
7
6
|
const versions_1 = require("../../../utils/versions");
|
8
7
|
const version_utils_1 = require("../../utils/version-utils");
|
9
8
|
async function updateSsrSetup(tree, options, appName, typescriptConfiguration) {
|
10
9
|
const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
|
11
10
|
let project = (0, devkit_1.readProjectConfiguration)(tree, appName);
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
tree.rename((0, devkit_1.joinPathFragments)(project.sourceRoot, 'main.server.ts'), (0, devkit_1.joinPathFragments)(project.sourceRoot, 'bootstrap.server.ts'));
|
12
|
+
const pathToServerEntry = (0, devkit_1.joinPathFragments)(angularMajorVersion >= 19
|
13
|
+
? project.sourceRoot ?? (0, devkit_1.joinPathFragments)(project.root, 'src')
|
14
|
+
: project.root, 'server.ts');
|
15
15
|
tree.write(pathToServerEntry, `import('./${angularMajorVersion >= 19 ? '' : 'src/'}main.server');`);
|
16
16
|
(0, devkit_1.generateFiles)(tree, (0, path_1.join)(__dirname, '../files/common'), project.root, {
|
17
17
|
appName,
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createFiles = createFiles;
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
5
5
|
const js_1 = require("@nx/js");
|
6
|
-
const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup");
|
7
6
|
const semver_1 = require("semver");
|
8
7
|
const test_runners_1 = require("../../../utils/test-runners");
|
9
8
|
const version_utils_1 = require("../../utils/version-utils");
|
@@ -51,7 +50,7 @@ function createFiles(tree, options, project) {
|
|
51
50
|
}
|
52
51
|
}
|
53
52
|
if (!options.libraryOptions.routing) {
|
54
|
-
tree.delete((0, devkit_1.joinPathFragments)(
|
53
|
+
tree.delete((0, devkit_1.joinPathFragments)(project.sourceRoot, `lib/lib.routes.ts`));
|
55
54
|
}
|
56
55
|
if (!options.libraryOptions.buildable &&
|
57
56
|
!options.libraryOptions.publishable) {
|
@@ -11,12 +11,9 @@ function updateTsConfigFiles(tree, options) {
|
|
11
11
|
(0, js_1.extractTsConfigBase)(tree);
|
12
12
|
updateProjectConfig(tree, options);
|
13
13
|
updateProjectIvyConfig(tree, options);
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
(0, devkit_1.joinPathFragments)(options.projectRoot, './src', 'index.ts'),
|
18
|
-
]);
|
19
|
-
}
|
14
|
+
(0, js_1.addTsConfigPath)(tree, options.importPath, [
|
15
|
+
(0, devkit_1.joinPathFragments)(options.projectRoot, './src', 'index.ts'),
|
16
|
+
]);
|
20
17
|
const compilerOptions = {
|
21
18
|
skipLibCheck: true,
|
22
19
|
experimentalDecorators: true,
|
@@ -33,10 +33,6 @@ async function libraryGenerator(tree, schema) {
|
|
33
33
|
if (schema.publishable === true && !schema.importPath) {
|
34
34
|
throw new Error(`For publishable libs you have to provide a proper "--importPath" which needs to be a valid npm package name (e.g. my-awesome-lib or @myorg/my-lib)`);
|
35
35
|
}
|
36
|
-
if (schema.simpleName !== undefined && schema.simpleName !== false) {
|
37
|
-
// TODO(v22): Remove simpleName as user should be using name.
|
38
|
-
devkit_1.logger.warn(`The "--simpleName" option is deprecated and will be removed in Nx 22. Please use the "--name" option to provide the exact name you want for the library.`);
|
39
|
-
}
|
40
36
|
if (schema.addTailwind && !schema.buildable && !schema.publishable) {
|
41
37
|
throw new Error(`To use "--addTailwind" option, you have to set either "--buildable" or "--publishable".`);
|
42
38
|
}
|
@@ -47,8 +47,7 @@
|
|
47
47
|
"simpleName": {
|
48
48
|
"description": "Don't include the directory in the name of the module or standalone component entry of the library.",
|
49
49
|
"type": "boolean",
|
50
|
-
"default": false
|
51
|
-
"x-deprecated": "Use the --name option to provide the exact name instead. This option will be removed in Nx 22."
|
50
|
+
"default": false
|
52
51
|
},
|
53
52
|
"addModuleSpec": {
|
54
53
|
"description": "Add a module spec file.",
|
@@ -2,7 +2,6 @@
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.updateModuleName = updateModuleName;
|
4
4
|
const devkit_1 = require("@nx/devkit");
|
5
|
-
const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup");
|
6
5
|
/**
|
7
6
|
* Updates the Angular module name (including the spec file and index.ts)
|
8
7
|
*
|
@@ -41,15 +40,14 @@ function updateModuleName(tree, { oldProjectName, newProjectName }) {
|
|
41
40
|
to: `${unscopedNewProjectName}-module`,
|
42
41
|
},
|
43
42
|
];
|
44
|
-
const sourceRoot = (0, ts_solution_setup_1.getProjectSourceRoot)(project, tree);
|
45
43
|
const filesToRename = moduleFiles.flatMap((moduleFile) => [
|
46
44
|
{
|
47
|
-
from: `${sourceRoot}/lib/${moduleFile.from}.ts`,
|
48
|
-
to: `${sourceRoot}/lib/${moduleFile.to}.ts`,
|
45
|
+
from: `${project.sourceRoot}/lib/${moduleFile.from}.ts`,
|
46
|
+
to: `${project.sourceRoot}/lib/${moduleFile.to}.ts`,
|
49
47
|
},
|
50
48
|
{
|
51
|
-
from: `${sourceRoot}/lib/${moduleFile.from}.spec.ts`,
|
52
|
-
to: `${sourceRoot}/lib/${moduleFile.to}.spec.ts`,
|
49
|
+
from: `${project.sourceRoot}/lib/${moduleFile.from}.spec.ts`,
|
50
|
+
to: `${project.sourceRoot}/lib/${moduleFile.to}.spec.ts`,
|
53
51
|
},
|
54
52
|
].filter((rename) => rename.from !== rename.to));
|
55
53
|
if (filesToRename.length === 0) {
|
@@ -73,7 +71,7 @@ function updateModuleName(tree, { oldProjectName, newProjectName }) {
|
|
73
71
|
}
|
74
72
|
});
|
75
73
|
// update index file
|
76
|
-
const indexFile = (0, devkit_1.joinPathFragments)(sourceRoot, 'index.ts');
|
74
|
+
const indexFile = (0, devkit_1.joinPathFragments)(project.sourceRoot, 'index.ts');
|
77
75
|
if (tree.exists(indexFile)) {
|
78
76
|
updateFileContent(tree, replacements, indexFile);
|
79
77
|
}
|