@nx/angular 19.7.3 → 19.7.5

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/esm2022/mf/mf.mjs CHANGED
@@ -2,11 +2,12 @@ let resolveRemoteUrl;
2
2
  export function setRemoteUrlResolver(_resolveRemoteUrl) {
3
3
  resolveRemoteUrl = _resolveRemoteUrl;
4
4
  }
5
- let remoteUrlDefinitions = {};
5
+ let remoteUrlDefinitions;
6
6
  export function setRemoteDefinitions(definitions) {
7
7
  remoteUrlDefinitions = definitions;
8
8
  }
9
9
  export function setRemoteDefinition(remoteName, remoteUrl) {
10
+ remoteUrlDefinitions ??= {};
10
11
  remoteUrlDefinitions[remoteName] = remoteUrl;
11
12
  }
12
13
  let remoteModuleMap = new Map();
@@ -48,4 +49,4 @@ async function loadRemoteContainer(remoteName) {
48
49
  remoteContainerMap.set(remoteName, container);
49
50
  return container;
50
51
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL21mL21mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUksZ0JBQTBDLENBQUM7QUFDL0MsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxpQkFBMkM7SUFFM0MsZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUM7QUFDdkMsQ0FBQztBQUVELElBQUksb0JBQW9CLEdBQTJCLEVBQUUsQ0FBQztBQUN0RCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsV0FBbUM7SUFDdEUsb0JBQW9CLEdBQUcsV0FBVyxDQUFDO0FBQ3JDLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsVUFBa0IsRUFBRSxTQUFpQjtJQUN2RSxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsR0FBRyxTQUFTLENBQUM7QUFDL0MsQ0FBQztBQUVELElBQUksZUFBZSxHQUFHLElBQUksR0FBRyxFQUFtQixDQUFDO0FBQ2pELElBQUksa0JBQWtCLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7QUFDcEQsTUFBTSxDQUFDLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxVQUFrQixFQUFFLFVBQWtCO0lBQzNFLE1BQU0sZUFBZSxHQUFHLEdBQUcsVUFBVSxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQ3RELElBQUksZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3pDLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUNsRCxDQUFDLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQztRQUNwQyxDQUFDLENBQUMsTUFBTSxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUxQyxNQUFNLE9BQU8sR0FBRyxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEQsTUFBTSxNQUFNLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFFekIsZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFN0MsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEdBQVc7SUFDN0IsT0FBTyxNQUFNLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVELElBQUksMEJBQTBCLEdBQUcsS0FBSyxDQUFDO0FBQ3ZDLEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxVQUFrQjtJQUNuRCxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQy9DLE1BQU0sSUFBSSxLQUFLLENBQ2Isa0hBQWtILENBQ25ILENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDaEMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLE1BQU0sd0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLG9CQUFvQjtRQUNwQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxNQUFNLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXZDLElBQUksWUFBWSxHQUFHLFNBQVMsQ0FBQztJQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM5RCxZQUFZLEdBQUcsR0FBRyxTQUFTLEdBQ3pCLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FDakMsaUJBQWlCLENBQUM7SUFDcEIsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV2RCxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBSZXNvbHZlUmVtb3RlVXJsRnVuY3Rpb24gPSAoXG4gIHJlbW90ZU5hbWU6IHN0cmluZ1xuKSA9PiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz47XG5cbmRlY2xhcmUgY29uc3QgX193ZWJwYWNrX2luaXRfc2hhcmluZ19fOiAoc2NvcGU6ICdkZWZhdWx0JykgPT4gUHJvbWlzZTx2b2lkPjtcbmRlY2xhcmUgY29uc3QgX193ZWJwYWNrX3NoYXJlX3Njb3Blc19fOiB7IGRlZmF1bHQ6IHVua25vd24gfTtcblxubGV0IHJlc29sdmVSZW1vdGVVcmw6IFJlc29sdmVSZW1vdGVVcmxGdW5jdGlvbjtcbmV4cG9ydCBmdW5jdGlvbiBzZXRSZW1vdGVVcmxSZXNvbHZlcihcbiAgX3Jlc29sdmVSZW1vdGVVcmw6IFJlc29sdmVSZW1vdGVVcmxGdW5jdGlvblxuKSB7XG4gIHJlc29sdmVSZW1vdGVVcmwgPSBfcmVzb2x2ZVJlbW90ZVVybDtcbn1cblxubGV0IHJlbW90ZVVybERlZmluaXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG5leHBvcnQgZnVuY3Rpb24gc2V0UmVtb3RlRGVmaW5pdGlvbnMoZGVmaW5pdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgcmVtb3RlVXJsRGVmaW5pdGlvbnMgPSBkZWZpbml0aW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlbW90ZURlZmluaXRpb24ocmVtb3RlTmFtZTogc3RyaW5nLCByZW1vdGVVcmw6IHN0cmluZykge1xuICByZW1vdGVVcmxEZWZpbml0aW9uc1tyZW1vdGVOYW1lXSA9IHJlbW90ZVVybDtcbn1cblxubGV0IHJlbW90ZU1vZHVsZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCB1bmtub3duPigpO1xubGV0IHJlbW90ZUNvbnRhaW5lck1hcCA9IG5ldyBNYXA8c3RyaW5nLCB1bmtub3duPigpO1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRSZW1vdGVNb2R1bGUocmVtb3RlTmFtZTogc3RyaW5nLCBtb2R1bGVOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgcmVtb3RlTW9kdWxlS2V5ID0gYCR7cmVtb3RlTmFtZX06JHttb2R1bGVOYW1lfWA7XG4gIGlmIChyZW1vdGVNb2R1bGVNYXAuaGFzKHJlbW90ZU1vZHVsZUtleSkpIHtcbiAgICByZXR1cm4gcmVtb3RlTW9kdWxlTWFwLmdldChyZW1vdGVNb2R1bGVLZXkpO1xuICB9XG5cbiAgY29uc3QgY29udGFpbmVyID0gcmVtb3RlQ29udGFpbmVyTWFwLmhhcyhyZW1vdGVOYW1lKVxuICAgID8gcmVtb3RlQ29udGFpbmVyTWFwLmdldChyZW1vdGVOYW1lKVxuICAgIDogYXdhaXQgbG9hZFJlbW90ZUNvbnRhaW5lcihyZW1vdGVOYW1lKTtcblxuICBjb25zdCBmYWN0b3J5ID0gYXdhaXQgY29udGFpbmVyLmdldChtb2R1bGVOYW1lKTtcbiAgY29uc3QgTW9kdWxlID0gZmFjdG9yeSgpO1xuXG4gIHJlbW90ZU1vZHVsZU1hcC5zZXQocmVtb3RlTW9kdWxlS2V5LCBNb2R1bGUpO1xuXG4gIHJldHVybiBNb2R1bGU7XG59XG5cbmZ1bmN0aW9uIGxvYWRNb2R1bGUodXJsOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGltcG9ydCgvKiB3ZWJwYWNrSWdub3JlOnRydWUgKi8gdXJsKTtcbn1cblxubGV0IGluaXRpYWxTaGFyaW5nU2NvcGVDcmVhdGVkID0gZmFsc2U7XG5hc3luYyBmdW5jdGlvbiBsb2FkUmVtb3RlQ29udGFpbmVyKHJlbW90ZU5hbWU6IHN0cmluZykge1xuICBpZiAoIXJlc29sdmVSZW1vdGVVcmwgJiYgIXJlbW90ZVVybERlZmluaXRpb25zKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0NhbGwgc2V0UmVtb3RlRGVmaW5pdGlvbnMgb3Igc2V0UmVtb3RlVXJsUmVzb2x2ZXIgdG8gYWxsb3cgRHluYW1pYyBGZWRlcmF0aW9uIHRvIGZpbmQgdGhlIHJlbW90ZSBhcHBzIGNvcnJlY3RseS4nXG4gICAgKTtcbiAgfVxuXG4gIGlmICghaW5pdGlhbFNoYXJpbmdTY29wZUNyZWF0ZWQpIHtcbiAgICBpbml0aWFsU2hhcmluZ1Njb3BlQ3JlYXRlZCA9IHRydWU7XG4gICAgYXdhaXQgX193ZWJwYWNrX2luaXRfc2hhcmluZ19fKCdkZWZhdWx0Jyk7XG4gIH1cblxuICBjb25zdCByZW1vdGVVcmwgPSByZW1vdGVVcmxEZWZpbml0aW9uc1xuICAgID8gcmVtb3RlVXJsRGVmaW5pdGlvbnNbcmVtb3RlTmFtZV1cbiAgICA6IGF3YWl0IHJlc29sdmVSZW1vdGVVcmwocmVtb3RlTmFtZSk7XG5cbiAgbGV0IGNvbnRhaW5lclVybCA9IHJlbW90ZVVybDtcbiAgaWYgKCFyZW1vdGVVcmwuZW5kc1dpdGgoJy5tanMnKSAmJiAhcmVtb3RlVXJsLmVuZHNXaXRoKCcuanMnKSkge1xuICAgIGNvbnRhaW5lclVybCA9IGAke3JlbW90ZVVybH0ke1xuICAgICAgcmVtb3RlVXJsLmVuZHNXaXRoKCcvJykgPyAnJyA6ICcvJ1xuICAgIH1yZW1vdGVFbnRyeS5tanNgO1xuICB9XG5cbiAgY29uc3QgY29udGFpbmVyID0gYXdhaXQgbG9hZE1vZHVsZShjb250YWluZXJVcmwpO1xuICBhd2FpdCBjb250YWluZXIuaW5pdChfX3dlYnBhY2tfc2hhcmVfc2NvcGVzX18uZGVmYXVsdCk7XG5cbiAgcmVtb3RlQ29udGFpbmVyTWFwLnNldChyZW1vdGVOYW1lLCBjb250YWluZXIpO1xuICByZXR1cm4gY29udGFpbmVyO1xufVxuIl19
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmd1bGFyL21mL21mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUksZ0JBQTBDLENBQUM7QUFFL0MsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxpQkFBMkM7SUFFM0MsZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUM7QUFDdkMsQ0FBQztBQUVELElBQUksb0JBQTRDLENBQUM7QUFFakQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFdBQW1DO0lBQ3RFLG9CQUFvQixHQUFHLFdBQVcsQ0FBQztBQUNyQyxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLFVBQWtCLEVBQUUsU0FBaUI7SUFDdkUsb0JBQW9CLEtBQUssRUFBRSxDQUFDO0lBQzVCLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsSUFBSSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7QUFDakQsSUFBSSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztBQUVwRCxNQUFNLENBQUMsS0FBSyxVQUFVLGdCQUFnQixDQUFDLFVBQWtCLEVBQUUsVUFBa0I7SUFDM0UsTUFBTSxlQUFlLEdBQUcsR0FBRyxVQUFVLElBQUksVUFBVSxFQUFFLENBQUM7SUFDdEQsSUFBSSxlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDekMsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxNQUFNLFNBQVMsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ2xELENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTFDLE1BQU0sT0FBTyxHQUFHLE1BQU0sU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRCxNQUFNLE1BQU0sR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUV6QixlQUFlLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUU3QyxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsR0FBVztJQUM3QixPQUFPLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsSUFBSSwwQkFBMEIsR0FBRyxLQUFLLENBQUM7QUFFdkMsS0FBSyxVQUFVLG1CQUFtQixDQUFDLFVBQWtCO0lBQ25ELElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FDYixrSEFBa0gsQ0FDbkgsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNoQywwQkFBMEIsR0FBRyxJQUFJLENBQUM7UUFDbEMsTUFBTSx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsb0JBQW9CO1FBQ3BDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUM7UUFDbEMsQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFdkMsSUFBSSxZQUFZLEdBQUcsU0FBUyxDQUFDO0lBQzdCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzlELFlBQVksR0FBRyxHQUFHLFNBQVMsR0FDekIsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUNqQyxpQkFBaUIsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakQsTUFBTSxTQUFTLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXZELGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDOUMsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIFJlc29sdmVSZW1vdGVVcmxGdW5jdGlvbiA9IChcbiAgcmVtb3RlTmFtZTogc3RyaW5nXG4pID0+IHN0cmluZyB8IFByb21pc2U8c3RyaW5nPjtcblxuZGVjbGFyZSBjb25zdCBfX3dlYnBhY2tfaW5pdF9zaGFyaW5nX186IChzY29wZTogJ2RlZmF1bHQnKSA9PiBQcm9taXNlPHZvaWQ+O1xuZGVjbGFyZSBjb25zdCBfX3dlYnBhY2tfc2hhcmVfc2NvcGVzX186IHsgZGVmYXVsdDogdW5rbm93biB9O1xuXG5sZXQgcmVzb2x2ZVJlbW90ZVVybDogUmVzb2x2ZVJlbW90ZVVybEZ1bmN0aW9uO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0UmVtb3RlVXJsUmVzb2x2ZXIoXG4gIF9yZXNvbHZlUmVtb3RlVXJsOiBSZXNvbHZlUmVtb3RlVXJsRnVuY3Rpb25cbikge1xuICByZXNvbHZlUmVtb3RlVXJsID0gX3Jlc29sdmVSZW1vdGVVcmw7XG59XG5cbmxldCByZW1vdGVVcmxEZWZpbml0aW9uczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFJlbW90ZURlZmluaXRpb25zKGRlZmluaXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSB7XG4gIHJlbW90ZVVybERlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRSZW1vdGVEZWZpbml0aW9uKHJlbW90ZU5hbWU6IHN0cmluZywgcmVtb3RlVXJsOiBzdHJpbmcpIHtcbiAgcmVtb3RlVXJsRGVmaW5pdGlvbnMgPz89IHt9O1xuICByZW1vdGVVcmxEZWZpbml0aW9uc1tyZW1vdGVOYW1lXSA9IHJlbW90ZVVybDtcbn1cblxubGV0IHJlbW90ZU1vZHVsZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCB1bmtub3duPigpO1xubGV0IHJlbW90ZUNvbnRhaW5lck1hcCA9IG5ldyBNYXA8c3RyaW5nLCB1bmtub3duPigpO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZFJlbW90ZU1vZHVsZShyZW1vdGVOYW1lOiBzdHJpbmcsIG1vZHVsZU5hbWU6IHN0cmluZykge1xuICBjb25zdCByZW1vdGVNb2R1bGVLZXkgPSBgJHtyZW1vdGVOYW1lfToke21vZHVsZU5hbWV9YDtcbiAgaWYgKHJlbW90ZU1vZHVsZU1hcC5oYXMocmVtb3RlTW9kdWxlS2V5KSkge1xuICAgIHJldHVybiByZW1vdGVNb2R1bGVNYXAuZ2V0KHJlbW90ZU1vZHVsZUtleSk7XG4gIH1cblxuICBjb25zdCBjb250YWluZXIgPSByZW1vdGVDb250YWluZXJNYXAuaGFzKHJlbW90ZU5hbWUpXG4gICAgPyByZW1vdGVDb250YWluZXJNYXAuZ2V0KHJlbW90ZU5hbWUpXG4gICAgOiBhd2FpdCBsb2FkUmVtb3RlQ29udGFpbmVyKHJlbW90ZU5hbWUpO1xuXG4gIGNvbnN0IGZhY3RvcnkgPSBhd2FpdCBjb250YWluZXIuZ2V0KG1vZHVsZU5hbWUpO1xuICBjb25zdCBNb2R1bGUgPSBmYWN0b3J5KCk7XG5cbiAgcmVtb3RlTW9kdWxlTWFwLnNldChyZW1vdGVNb2R1bGVLZXksIE1vZHVsZSk7XG5cbiAgcmV0dXJuIE1vZHVsZTtcbn1cblxuZnVuY3Rpb24gbG9hZE1vZHVsZSh1cmw6IHN0cmluZykge1xuICByZXR1cm4gaW1wb3J0KC8qIHdlYnBhY2tJZ25vcmU6dHJ1ZSAqLyB1cmwpO1xufVxuXG5sZXQgaW5pdGlhbFNoYXJpbmdTY29wZUNyZWF0ZWQgPSBmYWxzZTtcblxuYXN5bmMgZnVuY3Rpb24gbG9hZFJlbW90ZUNvbnRhaW5lcihyZW1vdGVOYW1lOiBzdHJpbmcpIHtcbiAgaWYgKCFyZXNvbHZlUmVtb3RlVXJsICYmICFyZW1vdGVVcmxEZWZpbml0aW9ucykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdDYWxsIHNldFJlbW90ZURlZmluaXRpb25zIG9yIHNldFJlbW90ZVVybFJlc29sdmVyIHRvIGFsbG93IER5bmFtaWMgRmVkZXJhdGlvbiB0byBmaW5kIHRoZSByZW1vdGUgYXBwcyBjb3JyZWN0bHkuJ1xuICAgICk7XG4gIH1cblxuICBpZiAoIWluaXRpYWxTaGFyaW5nU2NvcGVDcmVhdGVkKSB7XG4gICAgaW5pdGlhbFNoYXJpbmdTY29wZUNyZWF0ZWQgPSB0cnVlO1xuICAgIGF3YWl0IF9fd2VicGFja19pbml0X3NoYXJpbmdfXygnZGVmYXVsdCcpO1xuICB9XG5cbiAgY29uc3QgcmVtb3RlVXJsID0gcmVtb3RlVXJsRGVmaW5pdGlvbnNcbiAgICA/IHJlbW90ZVVybERlZmluaXRpb25zW3JlbW90ZU5hbWVdXG4gICAgOiBhd2FpdCByZXNvbHZlUmVtb3RlVXJsKHJlbW90ZU5hbWUpO1xuXG4gIGxldCBjb250YWluZXJVcmwgPSByZW1vdGVVcmw7XG4gIGlmICghcmVtb3RlVXJsLmVuZHNXaXRoKCcubWpzJykgJiYgIXJlbW90ZVVybC5lbmRzV2l0aCgnLmpzJykpIHtcbiAgICBjb250YWluZXJVcmwgPSBgJHtyZW1vdGVVcmx9JHtcbiAgICAgIHJlbW90ZVVybC5lbmRzV2l0aCgnLycpID8gJycgOiAnLydcbiAgICB9cmVtb3RlRW50cnkubWpzYDtcbiAgfVxuXG4gIGNvbnN0IGNvbnRhaW5lciA9IGF3YWl0IGxvYWRNb2R1bGUoY29udGFpbmVyVXJsKTtcbiAgYXdhaXQgY29udGFpbmVyLmluaXQoX193ZWJwYWNrX3NoYXJlX3Njb3Blc19fLmRlZmF1bHQpO1xuXG4gIHJlbW90ZUNvbnRhaW5lck1hcC5zZXQocmVtb3RlTmFtZSwgY29udGFpbmVyKTtcbiAgcmV0dXJuIGNvbnRhaW5lcjtcbn1cbiJdfQ==
@@ -2,11 +2,12 @@ let resolveRemoteUrl;
2
2
  function setRemoteUrlResolver(_resolveRemoteUrl) {
3
3
  resolveRemoteUrl = _resolveRemoteUrl;
4
4
  }
5
- let remoteUrlDefinitions = {};
5
+ let remoteUrlDefinitions;
6
6
  function setRemoteDefinitions(definitions) {
7
7
  remoteUrlDefinitions = definitions;
8
8
  }
9
9
  function setRemoteDefinition(remoteName, remoteUrl) {
10
+ remoteUrlDefinitions ??= {};
10
11
  remoteUrlDefinitions[remoteName] = remoteUrl;
11
12
  }
12
13
  let remoteModuleMap = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"nx-angular-mf.mjs","sources":["../../../../packages/angular/mf/mf.ts","../../../../packages/angular/mf/nx-angular-mf.ts"],"sourcesContent":["export type ResolveRemoteUrlFunction = (\n remoteName: string\n) => string | Promise<string>;\n\ndeclare const __webpack_init_sharing__: (scope: 'default') => Promise<void>;\ndeclare const __webpack_share_scopes__: { default: unknown };\n\nlet resolveRemoteUrl: ResolveRemoteUrlFunction;\nexport function setRemoteUrlResolver(\n _resolveRemoteUrl: ResolveRemoteUrlFunction\n) {\n resolveRemoteUrl = _resolveRemoteUrl;\n}\n\nlet remoteUrlDefinitions: Record<string, string> = {};\nexport function setRemoteDefinitions(definitions: Record<string, string>) {\n remoteUrlDefinitions = definitions;\n}\n\nexport function setRemoteDefinition(remoteName: string, remoteUrl: string) {\n remoteUrlDefinitions[remoteName] = remoteUrl;\n}\n\nlet remoteModuleMap = new Map<string, unknown>();\nlet remoteContainerMap = new Map<string, unknown>();\nexport async function loadRemoteModule(remoteName: string, moduleName: string) {\n const remoteModuleKey = `${remoteName}:${moduleName}`;\n if (remoteModuleMap.has(remoteModuleKey)) {\n return remoteModuleMap.get(remoteModuleKey);\n }\n\n const container = remoteContainerMap.has(remoteName)\n ? remoteContainerMap.get(remoteName)\n : await loadRemoteContainer(remoteName);\n\n const factory = await container.get(moduleName);\n const Module = factory();\n\n remoteModuleMap.set(remoteModuleKey, Module);\n\n return Module;\n}\n\nfunction loadModule(url: string) {\n return import(/* webpackIgnore:true */ url);\n}\n\nlet initialSharingScopeCreated = false;\nasync function loadRemoteContainer(remoteName: string) {\n if (!resolveRemoteUrl && !remoteUrlDefinitions) {\n throw new Error(\n 'Call setRemoteDefinitions or setRemoteUrlResolver to allow Dynamic Federation to find the remote apps correctly.'\n );\n }\n\n if (!initialSharingScopeCreated) {\n initialSharingScopeCreated = true;\n await __webpack_init_sharing__('default');\n }\n\n const remoteUrl = remoteUrlDefinitions\n ? remoteUrlDefinitions[remoteName]\n : await resolveRemoteUrl(remoteName);\n\n let containerUrl = remoteUrl;\n if (!remoteUrl.endsWith('.mjs') && !remoteUrl.endsWith('.js')) {\n containerUrl = `${remoteUrl}${\n remoteUrl.endsWith('/') ? '' : '/'\n }remoteEntry.mjs`;\n }\n\n const container = await loadModule(containerUrl);\n await container.init(__webpack_share_scopes__.default);\n\n remoteContainerMap.set(remoteName, container);\n return container;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAOA,IAAI,gBAA0C,CAAC;AACzC,SAAU,oBAAoB,CAClC,iBAA2C,EAAA;IAE3C,gBAAgB,GAAG,iBAAiB,CAAC;AACvC,CAAC;AAED,IAAI,oBAAoB,GAA2B,EAAE,CAAC;AAChD,SAAU,oBAAoB,CAAC,WAAmC,EAAA;IACtE,oBAAoB,GAAG,WAAW,CAAC;AACrC,CAAC;AAEe,SAAA,mBAAmB,CAAC,UAAkB,EAAE,SAAiB,EAAA;AACvE,IAAA,oBAAoB,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;AAC/C,CAAC;AAED,IAAI,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;AACjD,IAAI,kBAAkB,GAAG,IAAI,GAAG,EAAmB,CAAC;AAC7C,eAAe,gBAAgB,CAAC,UAAkB,EAAE,UAAkB,EAAA;AAC3E,IAAA,MAAM,eAAe,GAAG,CAAA,EAAG,UAAU,CAAI,CAAA,EAAA,UAAU,EAAE,CAAC;AACtD,IAAA,IAAI,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AACxC,QAAA,OAAO,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;KAC7C;AAED,IAAA,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;AAClD,UAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;AACpC,UAAE,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAE1C,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChD,IAAA,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;AAEzB,IAAA,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAE7C,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAA;AAC7B,IAAA,OAAO,gCAAgC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,IAAI,0BAA0B,GAAG,KAAK,CAAC;AACvC,eAAe,mBAAmB,CAAC,UAAkB,EAAA;AACnD,IAAA,IAAI,CAAC,gBAAgB,IAAI,CAAC,oBAAoB,EAAE;AAC9C,QAAA,MAAM,IAAI,KAAK,CACb,kHAAkH,CACnH,CAAC;KACH;IAED,IAAI,CAAC,0BAA0B,EAAE;QAC/B,0BAA0B,GAAG,IAAI,CAAC;AAClC,QAAA,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC;KAC3C;IAED,MAAM,SAAS,GAAG,oBAAoB;AACpC,UAAE,oBAAoB,CAAC,UAAU,CAAC;AAClC,UAAE,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAEvC,IAAI,YAAY,GAAG,SAAS,CAAC;AAC7B,IAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC7D,QAAA,YAAY,GAAG,CAAG,EAAA,SAAS,GACzB,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GACjC,iBAAiB,CAAC;KACnB;AAED,IAAA,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAEvD,IAAA,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAC9C,IAAA,OAAO,SAAS,CAAC;AACnB;;AC5EA;;AAEG;;;;"}
1
+ {"version":3,"file":"nx-angular-mf.mjs","sources":["../../../../packages/angular/mf/mf.ts","../../../../packages/angular/mf/nx-angular-mf.ts"],"sourcesContent":["export type ResolveRemoteUrlFunction = (\n remoteName: string\n) => string | Promise<string>;\n\ndeclare const __webpack_init_sharing__: (scope: 'default') => Promise<void>;\ndeclare const __webpack_share_scopes__: { default: unknown };\n\nlet resolveRemoteUrl: ResolveRemoteUrlFunction;\n\nexport function setRemoteUrlResolver(\n _resolveRemoteUrl: ResolveRemoteUrlFunction\n) {\n resolveRemoteUrl = _resolveRemoteUrl;\n}\n\nlet remoteUrlDefinitions: Record<string, string>;\n\nexport function setRemoteDefinitions(definitions: Record<string, string>) {\n remoteUrlDefinitions = definitions;\n}\n\nexport function setRemoteDefinition(remoteName: string, remoteUrl: string) {\n remoteUrlDefinitions ??= {};\n remoteUrlDefinitions[remoteName] = remoteUrl;\n}\n\nlet remoteModuleMap = new Map<string, unknown>();\nlet remoteContainerMap = new Map<string, unknown>();\n\nexport async function loadRemoteModule(remoteName: string, moduleName: string) {\n const remoteModuleKey = `${remoteName}:${moduleName}`;\n if (remoteModuleMap.has(remoteModuleKey)) {\n return remoteModuleMap.get(remoteModuleKey);\n }\n\n const container = remoteContainerMap.has(remoteName)\n ? remoteContainerMap.get(remoteName)\n : await loadRemoteContainer(remoteName);\n\n const factory = await container.get(moduleName);\n const Module = factory();\n\n remoteModuleMap.set(remoteModuleKey, Module);\n\n return Module;\n}\n\nfunction loadModule(url: string) {\n return import(/* webpackIgnore:true */ url);\n}\n\nlet initialSharingScopeCreated = false;\n\nasync function loadRemoteContainer(remoteName: string) {\n if (!resolveRemoteUrl && !remoteUrlDefinitions) {\n throw new Error(\n 'Call setRemoteDefinitions or setRemoteUrlResolver to allow Dynamic Federation to find the remote apps correctly.'\n );\n }\n\n if (!initialSharingScopeCreated) {\n initialSharingScopeCreated = true;\n await __webpack_init_sharing__('default');\n }\n\n const remoteUrl = remoteUrlDefinitions\n ? remoteUrlDefinitions[remoteName]\n : await resolveRemoteUrl(remoteName);\n\n let containerUrl = remoteUrl;\n if (!remoteUrl.endsWith('.mjs') && !remoteUrl.endsWith('.js')) {\n containerUrl = `${remoteUrl}${\n remoteUrl.endsWith('/') ? '' : '/'\n }remoteEntry.mjs`;\n }\n\n const container = await loadModule(containerUrl);\n await container.init(__webpack_share_scopes__.default);\n\n remoteContainerMap.set(remoteName, container);\n return container;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAOA,IAAI,gBAA0C,CAAC;AAEzC,SAAU,oBAAoB,CAClC,iBAA2C,EAAA;IAE3C,gBAAgB,GAAG,iBAAiB,CAAC;AACvC,CAAC;AAED,IAAI,oBAA4C,CAAC;AAE3C,SAAU,oBAAoB,CAAC,WAAmC,EAAA;IACtE,oBAAoB,GAAG,WAAW,CAAC;AACrC,CAAC;AAEe,SAAA,mBAAmB,CAAC,UAAkB,EAAE,SAAiB,EAAA;IACvE,oBAAoB,KAAK,EAAE,CAAC;AAC5B,IAAA,oBAAoB,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;AAC/C,CAAC;AAED,IAAI,eAAe,GAAG,IAAI,GAAG,EAAmB,CAAC;AACjD,IAAI,kBAAkB,GAAG,IAAI,GAAG,EAAmB,CAAC;AAE7C,eAAe,gBAAgB,CAAC,UAAkB,EAAE,UAAkB,EAAA;AAC3E,IAAA,MAAM,eAAe,GAAG,CAAA,EAAG,UAAU,CAAI,CAAA,EAAA,UAAU,EAAE,CAAC;AACtD,IAAA,IAAI,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;AACxC,QAAA,OAAO,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;KAC7C;AAED,IAAA,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;AAClD,UAAE,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC;AACpC,UAAE,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAE1C,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChD,IAAA,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;AAEzB,IAAA,eAAe,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAE7C,IAAA,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,GAAW,EAAA;AAC7B,IAAA,OAAO,gCAAgC,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,IAAI,0BAA0B,GAAG,KAAK,CAAC;AAEvC,eAAe,mBAAmB,CAAC,UAAkB,EAAA;AACnD,IAAA,IAAI,CAAC,gBAAgB,IAAI,CAAC,oBAAoB,EAAE;AAC9C,QAAA,MAAM,IAAI,KAAK,CACb,kHAAkH,CACnH,CAAC;KACH;IAED,IAAI,CAAC,0BAA0B,EAAE;QAC/B,0BAA0B,GAAG,IAAI,CAAC;AAClC,QAAA,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC;KAC3C;IAED,MAAM,SAAS,GAAG,oBAAoB;AACpC,UAAE,oBAAoB,CAAC,UAAU,CAAC;AAClC,UAAE,MAAM,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAEvC,IAAI,YAAY,GAAG,SAAS,CAAC;AAC7B,IAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC7D,QAAA,YAAY,GAAG,CAAG,EAAA,SAAS,GACzB,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GACjC,iBAAiB,CAAC;KACnB;AAED,IAAA,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAEvD,IAAA,kBAAkB,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAC9C,IAAA,OAAO,SAAS,CAAC;AACnB;;ACjFA;;AAEG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nx/angular",
3
- "version": "19.7.3",
3
+ "version": "19.7.5",
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": {
@@ -79,14 +79,14 @@
79
79
  "webpack-merge": "^5.8.0",
80
80
  "webpack": "^5.88.0",
81
81
  "@module-federation/enhanced": "~0.6.0",
82
- "@nx/devkit": "19.7.3",
83
- "@nx/js": "19.7.3",
84
- "@nx/eslint": "19.7.3",
85
- "@nx/webpack": "19.7.3",
86
- "@nx/web": "19.7.3",
87
- "@nx/workspace": "19.7.3",
82
+ "@nx/devkit": "19.7.5",
83
+ "@nx/js": "19.7.5",
84
+ "@nx/eslint": "19.7.5",
85
+ "@nx/webpack": "19.7.5",
86
+ "@nx/web": "19.7.5",
87
+ "@nx/workspace": "19.7.5",
88
88
  "piscina": "^4.4.0",
89
- "@nrwl/angular": "19.7.3"
89
+ "@nrwl/angular": "19.7.5"
90
90
  },
91
91
  "peerDependencies": {
92
92
  "@angular-devkit/build-angular": ">= 16.0.0 < 19.0.0",
@@ -43,7 +43,8 @@ async function applicationGeneratorInternal(tree, schema) {
43
43
  }
44
44
  await (0, lib_1.addLinting)(tree, options);
45
45
  await (0, lib_1.addUnitTestRunner)(tree, options);
46
- await (0, lib_1.addE2e)(tree, options);
46
+ const e2ePort = await (0, lib_1.addE2e)(tree, options);
47
+ (0, lib_1.addServeStaticTarget)(tree, options, options.e2eTestRunner !== 'none' ? e2ePort : options.port);
47
48
  (0, lib_1.updateEditorTsConfig)(tree, options);
48
49
  (0, lib_1.setGeneratorDefaults)(tree, options);
49
50
  if (options.rootProject) {
@@ -1,3 +1,3 @@
1
1
  import { Tree } from '@nx/devkit';
2
2
  import type { NormalizedSchema } from './normalized-schema';
3
- export declare function addE2e(tree: Tree, options: NormalizedSchema): Promise<void>;
3
+ export declare function addE2e(tree: Tree, options: NormalizedSchema): Promise<number>;
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.addE2e = addE2e;
4
4
  const devkit_1 = require("@nx/devkit");
5
5
  const versions_1 = require("../../../utils/versions");
6
- const version_utils_1 = require("../../utils/version-utils");
7
6
  const target_defaults_utils_1 = require("@nx/devkit/src/generators/target-defaults-utils");
8
7
  async function addE2e(tree, options) {
9
8
  // since e2e are separate projects, default to adding plugins
@@ -11,8 +10,6 @@ async function addE2e(tree, options) {
11
10
  const addPlugin = process.env.NX_ADD_PLUGINS !== 'false' &&
12
11
  nxJson.useInferencePlugins !== false;
13
12
  const e2eWebServerInfo = getAngularE2EWebServerInfo(tree, options.name, options.port);
14
- // TODO: This can call `@nx/web:static-config` generator when ready
15
- addFileServerTarget(tree, options, 'serve-static', e2eWebServerInfo.e2ePort);
16
13
  if (options.e2eTestRunner === 'cypress') {
17
14
  const { configurationGenerator } = (0, devkit_1.ensurePackage)('@nx/cypress', versions_1.nxVersion);
18
15
  (0, devkit_1.addProjectConfiguration)(tree, options.e2eProjectName, {
@@ -70,26 +67,7 @@ async function addE2e(tree, options) {
70
67
  await (0, target_defaults_utils_1.addE2eCiTargetDefaults)(tree, '@nx/playwright/plugin', '^build', (0, devkit_1.joinPathFragments)(options.e2eProjectRoot, 'playwright.config.ts'));
71
68
  }
72
69
  }
73
- }
74
- function addFileServerTarget(tree, options, targetName, e2ePort) {
75
- if (!options.skipPackageJson) {
76
- (0, devkit_1.addDependenciesToPackageJson)(tree, {}, { '@nx/web': versions_1.nxVersion });
77
- }
78
- const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
79
- const isUsingApplicationBuilder = angularMajorVersion >= 17 && options.bundler === 'esbuild';
80
- const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.name);
81
- projectConfig.targets[targetName] = {
82
- executor: '@nx/web:file-server',
83
- options: {
84
- buildTarget: `${options.name}:build`,
85
- port: e2ePort,
86
- staticFilePath: isUsingApplicationBuilder
87
- ? (0, devkit_1.joinPathFragments)(options.outputPath, 'browser')
88
- : undefined,
89
- spa: true,
90
- },
91
- };
92
- (0, devkit_1.updateProjectConfiguration)(tree, options.name, projectConfig);
70
+ return e2eWebServerInfo.e2ePort;
93
71
  }
94
72
  function getAngularE2EWebServerInfo(tree, projectName, portOverride) {
95
73
  const nxJson = (0, devkit_1.readNxJson)(tree);
@@ -0,0 +1,3 @@
1
+ import { Tree } from '@nx/devkit';
2
+ import type { NormalizedSchema } from './normalized-schema';
3
+ export declare function addServeStaticTarget(tree: Tree, options: NormalizedSchema, port: number): void;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addServeStaticTarget = addServeStaticTarget;
4
+ const devkit_1 = require("@nx/devkit");
5
+ const versions_1 = require("../../../utils/versions");
6
+ const version_utils_1 = require("../../utils/version-utils");
7
+ function addServeStaticTarget(tree, options, port) {
8
+ addFileServerTarget(tree, options, 'serve-static', port);
9
+ }
10
+ function addFileServerTarget(tree, options, targetName, e2ePort) {
11
+ if (!options.skipPackageJson) {
12
+ (0, devkit_1.addDependenciesToPackageJson)(tree, {}, { '@nx/web': versions_1.nxVersion });
13
+ }
14
+ const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree);
15
+ const isUsingApplicationBuilder = angularMajorVersion >= 17 && options.bundler === 'esbuild';
16
+ const projectConfig = (0, devkit_1.readProjectConfiguration)(tree, options.name);
17
+ projectConfig.targets[targetName] = {
18
+ executor: '@nx/web:file-server',
19
+ options: {
20
+ buildTarget: `${options.name}:build`,
21
+ port: e2ePort,
22
+ staticFilePath: isUsingApplicationBuilder
23
+ ? (0, devkit_1.joinPathFragments)(options.outputPath, 'browser')
24
+ : undefined,
25
+ spa: true,
26
+ },
27
+ };
28
+ (0, devkit_1.updateProjectConfiguration)(tree, options.name, projectConfig);
29
+ }
@@ -10,3 +10,4 @@ export * from './normalized-schema';
10
10
  export * from './set-app-strict-default';
11
11
  export * from './set-generator-defaults';
12
12
  export * from './update-editor-tsconfig';
13
+ export * from './add-serve-static-target';
@@ -13,3 +13,4 @@ tslib_1.__exportStar(require("./normalized-schema"), exports);
13
13
  tslib_1.__exportStar(require("./set-app-strict-default"), exports);
14
14
  tslib_1.__exportStar(require("./set-generator-defaults"), exports);
15
15
  tslib_1.__exportStar(require("./update-editor-tsconfig"), exports);
16
+ tslib_1.__exportStar(require("./add-serve-static-target"), exports);
@@ -6,12 +6,14 @@ function addMfEnvToTargetDefaultInputs(tree) {
6
6
  const nxJson = (0, devkit_1.readNxJson)(tree);
7
7
  const webpackExecutor = '@nx/angular:webpack-browser';
8
8
  const mfEnvVar = 'NX_MF_DEV_REMOTES';
9
+ const inputs = [
10
+ ...(nxJson.namedInputs && 'production' in nxJson.namedInputs
11
+ ? ['production', '^production']
12
+ : ['default', '^default']),
13
+ ];
9
14
  nxJson.targetDefaults ??= {};
10
15
  nxJson.targetDefaults[webpackExecutor] ??= {};
11
- nxJson.targetDefaults[webpackExecutor].inputs ??= [
12
- 'production',
13
- '^production',
14
- ];
16
+ nxJson.targetDefaults[webpackExecutor].inputs ??= inputs;
15
17
  nxJson.targetDefaults[webpackExecutor].dependsOn ??= ['^build'];
16
18
  let mfEnvVarExists = false;
17
19
  for (const input of nxJson.targetDefaults[webpackExecutor].inputs) {
@@ -20,12 +20,18 @@ async function default_1(tree) {
20
20
  }
21
21
  const nxJson = (0, devkit_1.readNxJson)(tree);
22
22
  const nxMFDevRemotesEnvVar = 'NX_MF_DEV_REMOTES';
23
+ const inputs = [
24
+ ...(nxJson.namedInputs && 'production' in nxJson.namedInputs
25
+ ? ['production', '^production']
26
+ : ['default', '^default']),
27
+ { env: nxMFDevRemotesEnvVar },
28
+ ];
23
29
  if (!nxJson.targetDefaults ||
24
30
  !nxJson.targetDefaults?.['@nx/angular:webpack-browser']) {
25
31
  nxJson.targetDefaults ??= {};
26
32
  nxJson.targetDefaults['@nx/angular:webpack-browser'] = {
27
33
  cache: true,
28
- inputs: ['production', '^production', { env: nxMFDevRemotesEnvVar }],
34
+ inputs,
29
35
  dependsOn: ['^build'],
30
36
  };
31
37
  }