@nx/angular 21.3.0-canary.20250625-fe687a0 → 21.3.0-canary.20250627-07233f0

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.
@@ -1,4 +1,76 @@
1
- import { extname } from 'node:path';
1
+ // Helper function to extract file extension from a path
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
+ }
2
74
 
3
75
  let resolveRemoteUrl;
4
76
  /**
@@ -106,15 +178,7 @@ async function loadRemoteContainer(remoteName) {
106
178
  const remoteUrl = remoteUrlDefinitions
107
179
  ? remoteUrlDefinitions[remoteName]
108
180
  : await resolveRemoteUrl(remoteName);
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;
181
+ const containerUrl = processRuntimeRemoteUrl(remoteUrl, 'mjs');
118
182
  const container = await loadModule(containerUrl);
119
183
  await container.init(__webpack_share_scopes__.default);
120
184
  remoteContainerMap.set(remoteName, container);
@@ -1 +1 @@
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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"}
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/angular",
3
- "version": "21.3.0-canary.20250625-fe687a0",
3
+ "version": "21.3.0-canary.20250627-07233f0",
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-canary.20250625-fe687a0",
62
- "@nx/eslint": "21.3.0-canary.20250625-fe687a0",
63
- "@nx/js": "21.3.0-canary.20250625-fe687a0",
64
- "@nx/module-federation": "21.3.0-canary.20250625-fe687a0",
65
- "@nx/rspack": "21.3.0-canary.20250625-fe687a0",
66
- "@nx/web": "21.3.0-canary.20250625-fe687a0",
67
- "@nx/webpack": "21.3.0-canary.20250625-fe687a0",
68
- "@nx/workspace": "21.3.0-canary.20250625-fe687a0",
61
+ "@nx/devkit": "21.3.0-canary.20250627-07233f0",
62
+ "@nx/eslint": "21.3.0-canary.20250627-07233f0",
63
+ "@nx/js": "21.3.0-canary.20250627-07233f0",
64
+ "@nx/module-federation": "21.3.0-canary.20250627-07233f0",
65
+ "@nx/rspack": "21.3.0-canary.20250627-07233f0",
66
+ "@nx/web": "21.3.0-canary.20250627-07233f0",
67
+ "@nx/webpack": "21.3.0-canary.20250627-07233f0",
68
+ "@nx/workspace": "21.3.0-canary.20250627-07233f0",
69
69
  "@phenomnomnominal/tsquery": "~5.0.1",
70
70
  "@typescript-eslint/type-utils": "^8.0.0",
71
71
  "enquirer": "~2.3.6",
@@ -456,7 +456,7 @@
456
456
  "additionalProperties": false
457
457
  },
458
458
  "indexHtmlTransformer": {
459
- "description": "Path to transformer function to transform the index.html",
459
+ "description": "Path to a file containing a function to transform the index.html. The function should have the signature: `(target: Target, indexHtml: string) => string`, where `target` is the build target configuration and `indexHtml` is the original HTML content.",
460
460
  "type": "string",
461
461
  "alias": "indexFileTransformer"
462
462
  },
@@ -24,6 +24,7 @@ export interface NormalizedSchema {
24
24
  skipModule?: boolean;
25
25
  skipPackageJson?: boolean;
26
26
  skipPostInstall?: boolean;
27
+ skipTsConfig?: boolean;
27
28
  standalone?: boolean;
28
29
  linter: Linter | LinterType;
29
30
  unitTestRunner: UnitTestRunner;
@@ -11,9 +11,12 @@ function updateTsConfigFiles(tree, options) {
11
11
  (0, js_1.extractTsConfigBase)(tree);
12
12
  updateProjectConfig(tree, options);
13
13
  updateProjectIvyConfig(tree, options);
14
- (0, js_1.addTsConfigPath)(tree, options.importPath, [
15
- (0, devkit_1.joinPathFragments)(options.projectRoot, './src', 'index.ts'),
16
- ]);
14
+ // Only add tsconfig path mapping if skipTsConfig is not true
15
+ if (!options.skipTsConfig) {
16
+ (0, js_1.addTsConfigPath)(tree, options.importPath, [
17
+ (0, devkit_1.joinPathFragments)(options.projectRoot, './src', 'index.ts'),
18
+ ]);
19
+ }
17
20
  const compilerOptions = {
18
21
  skipLibCheck: true,
19
22
  experimentalDecorators: true,
@@ -38,4 +38,5 @@ export interface Schema {
38
38
  selector?: string;
39
39
  skipSelector?: boolean;
40
40
  addPlugin?: boolean;
41
+ skipTsConfig?: boolean;
41
42
  }