@react-native-windows/cli 0.81.0 → 0.82.0-preview.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"createRnwApp.test.js","sourceRoot":"","sources":["../../src/e2etest/createRnwApp.test.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,kEAA0C;AAC1C,2CAA6B;AAC7B,iDAAuC;AAEvC;;GAEG;AACH,SAAS,sBAAsB;IAC7B,IAAI;QACF,OAAO,IAAA,wBAAQ,EAAC,uCAAuC,EAAE;YACvD,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC,IAAI,EAAE,CAAC;KACX;IAAC,OAAO,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,mDAAmD,KAAK,EAAE,CAAC,CAAC;KAC7E;AACH,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB;IAC9B,IAAI;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,IAAA,wBAAQ,EAAC,+CAA+C,EAAE;YACxD,QAAQ,EAAE,MAAM;SACjB,CAAC,CACS,CAAC;QACd,wDAAwD;QACxD,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;KAC5D;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;QAClE,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED,MAAM,qBAAqB,GAAG,sBAAsB,EAAE,CAAC;AACvD,MAAM,sBAAsB,GAAG,uBAAuB,EAAE,CAAC;AAEzD,4CAA4C;AAC5C,IAAI,CAAC,qBAAqB,EAAE;IAC1B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;CACnE;AACD,IAAI,CAAC,sBAAsB,EAAE;IAC3B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;CACpE;AAED;;GAEG;AACH,MAAM,WAAW,GAAG,CAAC,sBAA8B,EAAE,OAAe,EAAE,EAAE;IACtE,IAAI,sBAAsB,KAAK,wBAAwB,OAAO,EAAE,EAAE;QAChE,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,eAAe,EAAE;gBACf,cAAc,EAAE,SAAS;aAC1B;YACD,YAAY,EAAE;gBACZ,6BAA6B,EAAE,SAAS;aACzC;SACF,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,8CAA8C;AAC9C,QAAQ,CAAC,mDAAmD,EAAE,GAAG,EAAE;IACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAClC,QAAQ,EACR,gCAAgC,CACjC,CAAC;IACF,MAAM,WAAW,GAAG,qBAAqB,CAAC;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,6CAA6C;QAC7C,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErD,0CAA0C;QAC1C,MAAM,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAChE,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAErD,MAAM,aAAa,GAAG,YAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YAElE,6CAA6C;YAC7C,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC9C,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;YAC1D,MAAM,aAAa,GAAG,YAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YAElE,uDAAuD;YACvD,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;YACnE,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;YACpE,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC9D,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YAC9D,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;YAC7D,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC7D,+DAA+D;YAC/D,sEAAsE;YACtE,MAAM,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;YAEjC,0EAA0E;YAC1E,MAAM,WAAW,GAAG,WAAW,CAC7B,wBAAwB,WAAW,EAAE,EACrC,WAAW,CACZ,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;YACjC,MAAM,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACpE,MAAM,WAAW,GAAG,WAAW,CAC7B,wBAAwB,WAAW,EAAE,EACrC,WAAW,CACZ,CAAC;YAEF,kEAAkE;YAClE,MAAM,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,eAAe,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YACpE,MAAM,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,CAAC,CAAC,cAAc,CAC9C,6BAA6B,CAC9B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC5C,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACvE,oDAAoD;YACpD,8CAA8C;YAC9C,MAAM,eAAe,GAAG,6CAA6C,CAAC;YAEtE,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAClD,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,yCAAyC;QACxF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gEAAgE,EAAE,GAAG,EAAE;YAC1E,oDAAoD;YACpD,iEAAiE;YACjE,MAAM,eAAe,GAAG,gEAAgE,CAAC;YAEzF,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAClD,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACxD,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC3D,sDAAsD;YACtD,MAAM,YAAY,GAAG,cAAc,CAAC;YACpC,MAAM,cAAc,GAAG,wBAAwB,CAAC;YAEhD,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1C,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACtD,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACvE,MAAM,QAAQ,GAAG;gBACf,MAAM,EAAE,yBAAyB,WAAW,gBAAgB;gBAC5D,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,cAAc;gBAC1B,YAAY,EAAE,wBAAwB;aACvC,CAAC;YAEF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC/C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjD,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACvE,MAAM,QAAQ,GAAG;gBACf,MAAM,EAAE,yBAAyB,WAAW,kCAAkC;gBAC9E,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,cAAc;gBAC1B,YAAY,EAAE,wBAAwB;aACvC,CAAC;YAEF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC/C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACxD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAClD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjD,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACpD,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACtE,MAAM,SAAS,GAAG;gBAChB,KAAK,EAAE,mCAAmC;gBAC1C,KAAK,EAAE;oBACL,yBAAyB,WAAW,gBAAgB;oBACpD,oCAAoC;oBACpC,kCAAkC;oBAClC,4CAA4C;iBAC7C;aACF,CAAC;YAEF,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACnD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACrD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACtE,MAAM,SAAS,GAAG;gBAChB,KAAK,EAAE,sCAAsC;gBAC7C,KAAK,EAAE;oBACL,yBAAyB,WAAW,mCAAmC;oBACvE,oCAAoC;oBACpC,kCAAkC;oBAClC,4CAA4C;iBAC7C;aACF,CAAC;YAEF,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAC3D,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACnD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACrD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oDAAoD,EAAE,GAAG,EAAE;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IAC3D,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAClC,QAAQ,EACR,gCAAgC,CACjC,CAAC;IACF,MAAM,WAAW,GAAG,sBAAsB,CAAC;IAE3C,SAAS,CAAC,GAAG,EAAE;QACb,6CAA6C;QAC7C,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErD,2CAA2C;QAC3C,MAAM,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;QACjC,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;QAC/C,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAChE,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAErD,MAAM,aAAa,GAAG,YAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YAElE,6CAA6C;YAC7C,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC9C,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;YAC1D,MAAM,aAAa,GAAG,YAAE,CAAC,YAAY,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC;YAElE,uDAAuD;YACvD,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC3D,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAC;YACnE,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;YACpE,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC9D,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YAC9D,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;YAC7D,MAAM,CAAC,YAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC7D,+DAA+D;YAC/D,sEAAsE;YACtE,MAAM,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;YAEjC,0EAA0E;YAC1E,MAAM,WAAW,GAAG,WAAW,CAC7B,wBAAwB,WAAW,EAAE,EACrC,WAAW,CACZ,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,CAAC;YACjC,MAAM,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0DAA0D,EAAE,GAAG,EAAE;YACpE,MAAM,WAAW,GAAG,WAAW,CAC7B,wBAAwB,WAAW,EAAE,EACrC,WAAW,CACZ,CAAC;YAEF,kEAAkE;YAClE,MAAM,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,eAAe,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YACpE,MAAM,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY,CAAC,CAAC,cAAc,CAC9C,6BAA6B,CAC9B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC5C,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACvE,oDAAoD;YACpD,8CAA8C;YAC9C,MAAM,eAAe,GAAG,6CAA6C,CAAC;YAEtE,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAClD,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,yCAAyC;QACxF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gEAAgE,EAAE,GAAG,EAAE;YAC1E,oDAAoD;YACpD,iEAAiE;YACjE,MAAM,eAAe,GAAG,gEAAgE,CAAC;YAEzF,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAClD,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACxD,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;YAC3D,sDAAsD;YACtD,MAAM,YAAY,GAAG,cAAc,CAAC;YACpC,MAAM,cAAc,GAAG,wBAAwB,CAAC;YAEhD,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1C,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACtD,MAAM,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACvE,MAAM,QAAQ,GAAG;gBACf,MAAM,EAAE,yBAAyB,WAAW,gBAAgB;gBAC5D,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,cAAc;gBAC1B,YAAY,EAAE,wBAAwB;aACvC,CAAC;YAEF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC/C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACnD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjD,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACvE,MAAM,QAAQ,GAAG;gBACf,MAAM,EAAE,yBAAyB,WAAW,kCAAkC;gBAC9E,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,cAAc;gBAC1B,YAAY,EAAE,wBAAwB;aACvC,CAAC;YAEF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC/C,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YACxD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAClD,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACjD,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;QACpD,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACtE,MAAM,SAAS,GAAG;gBAChB,KAAK,EAAE,mCAAmC;gBAC1C,KAAK,EAAE;oBACL,yBAAyB,WAAW,gBAAgB;oBACpD,oCAAoC;oBACpC,kCAAkC;oBAClC,4CAA4C;iBAC7C;aACF,CAAC;YAEF,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACnD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACrD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACtE,MAAM,SAAS,GAAG;gBAChB,KAAK,EAAE,sCAAsC;gBAC7C,KAAK,EAAE;oBACL,yBAAyB,WAAW,mCAAmC;oBACvE,oCAAoC;oBACpC,kCAAkC;oBAClC,4CAA4C;iBAC7C;aACF,CAAC;YAEF,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;YAC3D,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YACnD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACrD,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n * @format\n */\n\nimport fs from '@react-native-windows/fs';\nimport * as path from 'path';\nimport {execSync} from 'child_process';\n\n/**\n * Get latest stable version from npm\n */\nfunction getLatestStableVersion(): string {\n try {\n return execSync('npm view react-native-windows version', {\n encoding: 'utf8',\n }).trim();\n } catch (error) {\n throw new Error(`Could not fetch latest stable version from npm: ${error}`);\n }\n}\n\n/**\n * Get latest preview version from npm\n */\nfunction getLatestPreviewVersion(): string | undefined {\n try {\n const versions = JSON.parse(\n execSync('npm view react-native-windows versions --json', {\n encoding: 'utf8',\n }),\n ) as string[];\n // Preview versions usually have \"preview\" in the string\n return versions.reverse().find(v => v.includes('preview'));\n } catch (error) {\n console.warn('Could not fetch preview versions from npm:', error);\n return undefined;\n }\n}\n\nconst LATEST_STABLE_VERSION = getLatestStableVersion();\nconst LATEST_PREVIEW_VERSION = getLatestPreviewVersion();\n\n// Ensure we have valid versions for testing\nif (!LATEST_STABLE_VERSION) {\n throw new Error('Could not fetch latest stable version from npm');\n}\nif (!LATEST_PREVIEW_VERSION) {\n throw new Error('Could not fetch latest preview version from npm');\n}\n\n/**\n * Mock NPM registry response for version check\n */\nconst mockNpmShow = (packageNameWithVersion: string, version: string) => {\n if (packageNameWithVersion === `react-native-windows@${version}`) {\n const rnVersion = `^${version.split('-')[0]}`;\n return {\n version: version,\n devDependencies: {\n 'react-native': rnVersion,\n },\n dependencies: {\n '@react-native-community/cli': '^17.0.0',\n },\n };\n }\n return null;\n};\n\n// Test suites for stable and preview versions\ndescribe('creaternwapp Configuration Tests - Stable Version', () => {\n const repoRoot = path.resolve(__dirname, '../../../../..');\n const createRnwAppScript = path.join(\n repoRoot,\n 'vnext/Scripts/creaternwapp.cmd',\n );\n const RNW_VERSION = LATEST_STABLE_VERSION;\n\n beforeAll(() => {\n // Verify the script exists in the repository\n expect(fs.existsSync(createRnwAppScript)).toBe(true);\n\n // Verify we have a stable version to test\n expect(RNW_VERSION).toBeTruthy();\n expect(RNW_VERSION).not.toContain('preview');\n });\n\n describe('Script Configuration Validation', () => {\n test('creaternwapp.cmd script should exist and be readable', () => {\n expect(fs.existsSync(createRnwAppScript)).toBe(true);\n\n const scriptContent = fs.readFileSync(createRnwAppScript, 'utf8');\n\n // Verify script contains expected parameters\n expect(scriptContent).toContain('/rnw');\n expect(scriptContent).toContain('/t');\n expect(scriptContent).toContain('/verdaccio');\n expect(scriptContent).toContain('cpp-app');\n });\n\n test('should validate fabric template is the default', () => {\n const scriptContent = fs.readFileSync(createRnwAppScript, 'utf8');\n\n // Default template should be cpp-app (fabric/new arch)\n expect(scriptContent).toContain('set RNW_TEMPLATE_TYPE=cpp-app');\n });\n\n test('should validate old UWP templates are available', () => {\n const oldTemplatesDir = path.join(repoRoot, 'vnext/templates/old');\n expect(fs.existsSync(oldTemplatesDir)).toBe(true);\n\n const uwpCppAppTemplate = path.join(oldTemplatesDir, 'uwp-cpp-app');\n expect(fs.existsSync(uwpCppAppTemplate)).toBe(true);\n });\n\n test('should validate new fabric templates are available', () => {\n const newTemplatesDir = path.join(repoRoot, 'vnext/template');\n expect(fs.existsSync(newTemplatesDir)).toBe(true);\n\n const cppAppTemplate = path.join(newTemplatesDir, 'cpp-app');\n expect(fs.existsSync(cppAppTemplate)).toBe(true);\n });\n });\n\n describe('Version Configuration Tests', () => {\n test('should validate target version is available', async () => {\n // This test validates that the specified version exists in npm\n // In a real environment, this would use npm show to check the version\n expect(RNW_VERSION).toBeTruthy();\n\n // Mock version validation - in actual Windows CI this would call npm show\n const versionInfo = mockNpmShow(\n `react-native-windows@${RNW_VERSION}`,\n RNW_VERSION,\n );\n expect(versionInfo).toBeTruthy();\n expect(versionInfo?.version).toBe(RNW_VERSION);\n });\n\n test('should validate required dependencies for target version', () => {\n const versionInfo = mockNpmShow(\n `react-native-windows@${RNW_VERSION}`,\n RNW_VERSION,\n );\n\n // Validate that the version has the expected dependency structure\n expect(versionInfo?.devDependencies).toHaveProperty('react-native');\n expect(versionInfo?.dependencies).toHaveProperty(\n '@react-native-community/cli',\n );\n });\n });\n\n describe('Template Configuration Tests', () => {\n test('should validate new architecture (fabric) command structure', () => {\n // Test the command that would be used for new arch:\n // creaternwapp.cmd /rnw preview test-app-name\n const expectedCommand = `creaternwapp.cmd /rnw preview test-app-name`;\n\n expect(expectedCommand).toContain('/rnw preview');\n expect(expectedCommand).toContain('test-app-name');\n expect(expectedCommand).not.toContain('/t'); // No template specified = default fabric\n });\n\n test('should validate old architecture (paper/UWP) command structure', () => {\n // Test the command that would be used for old arch:\n // creaternwapp.cmd /rnw preview /t old/uwp-cpp-app test-app-name\n const expectedCommand = `creaternwapp.cmd /rnw preview /t old/uwp-cpp-app test-app-name`;\n\n expect(expectedCommand).toContain('/rnw preview');\n expect(expectedCommand).toContain('/t old/uwp-cpp-app');\n expect(expectedCommand).toContain('test-app-name');\n });\n\n test('should validate yarn windows command variations', () => {\n // Test the commands that would be used to build apps:\n const debugCommand = 'yarn windows';\n const releaseCommand = 'yarn windows --release';\n\n expect(debugCommand).toBe('yarn windows');\n expect(releaseCommand).toBe('yarn windows --release');\n expect(releaseCommand).toContain('--release');\n });\n });\n\n describe('Workflow Integration Tests', () => {\n test('should validate complete new architecture workflow commands', () => {\n const workflow = {\n create: `creaternwapp.cmd /rnw ${RNW_VERSION} TestAppFabric`,\n start: 'yarn start',\n buildDebug: 'yarn windows',\n buildRelease: 'yarn windows --release',\n };\n\n expect(workflow.create).toContain(RNW_VERSION);\n expect(workflow.create).toContain('TestAppFabric');\n expect(workflow.start).toBe('yarn start');\n expect(workflow.buildDebug).toBe('yarn windows');\n expect(workflow.buildRelease).toBe('yarn windows --release');\n });\n\n test('should validate complete old architecture workflow commands', () => {\n const workflow = {\n create: `creaternwapp.cmd /rnw ${RNW_VERSION} /t old/uwp-cpp-app TestAppPaper`,\n start: 'yarn start',\n buildDebug: 'yarn windows',\n buildRelease: 'yarn windows --release',\n };\n\n expect(workflow.create).toContain(RNW_VERSION);\n expect(workflow.create).toContain('/t old/uwp-cpp-app');\n expect(workflow.create).toContain('TestAppPaper');\n expect(workflow.start).toBe('yarn start');\n expect(workflow.buildDebug).toBe('yarn windows');\n expect(workflow.buildRelease).toBe('yarn windows --release');\n });\n });\n\n describe('Documentation and Example Validation', () => {\n test('should document the testing procedure for new architecture', () => {\n const procedure = {\n title: 'New Architecture (Fabric) Testing',\n steps: [\n `creaternwapp.cmd /rnw ${RNW_VERSION} test-app-name`,\n 'yarn start (in test-app-name path)',\n 'cd test-app-name && yarn windows',\n 'cd test-app-name && yarn windows --release',\n ],\n };\n\n expect(procedure.steps[0]).toContain(RNW_VERSION);\n expect(procedure.steps[1]).toContain('yarn start');\n expect(procedure.steps[2]).toContain('yarn windows');\n expect(procedure.steps[3]).toContain('yarn windows --release');\n });\n\n test('should document the testing procedure for old architecture', () => {\n const procedure = {\n title: 'Old Architecture (Paper/UWP) Testing',\n steps: [\n `creaternwapp.cmd /rnw ${RNW_VERSION} /t old/uwp-cpp-app test-app-name`,\n 'yarn start (in test-app-name path)',\n 'cd test-app-name && yarn windows',\n 'cd test-app-name && yarn windows --release',\n ],\n };\n\n expect(procedure.steps[0]).toContain(RNW_VERSION);\n expect(procedure.steps[0]).toContain('/t old/uwp-cpp-app');\n expect(procedure.steps[1]).toContain('yarn start');\n expect(procedure.steps[2]).toContain('yarn windows');\n expect(procedure.steps[3]).toContain('yarn windows --release');\n });\n });\n});\n\ndescribe('creaternwapp Configuration Tests - Preview Version', () => {\n const repoRoot = path.resolve(__dirname, '../../../../..');\n const createRnwAppScript = path.join(\n repoRoot,\n 'vnext/Scripts/creaternwapp.cmd',\n );\n const RNW_VERSION = LATEST_PREVIEW_VERSION;\n\n beforeAll(() => {\n // Verify the script exists in the repository\n expect(fs.existsSync(createRnwAppScript)).toBe(true);\n\n // Verify we have a preview version to test\n expect(RNW_VERSION).toBeTruthy();\n expect(RNW_VERSION).toContain('preview');\n });\n\n describe('Script Configuration Validation', () => {\n test('creaternwapp.cmd script should exist and be readable', () => {\n expect(fs.existsSync(createRnwAppScript)).toBe(true);\n\n const scriptContent = fs.readFileSync(createRnwAppScript, 'utf8');\n\n // Verify script contains expected parameters\n expect(scriptContent).toContain('/rnw');\n expect(scriptContent).toContain('/t');\n expect(scriptContent).toContain('/verdaccio');\n expect(scriptContent).toContain('cpp-app');\n });\n\n test('should validate fabric template is the default', () => {\n const scriptContent = fs.readFileSync(createRnwAppScript, 'utf8');\n\n // Default template should be cpp-app (fabric/new arch)\n expect(scriptContent).toContain('set RNW_TEMPLATE_TYPE=cpp-app');\n });\n\n test('should validate old UWP templates are available', () => {\n const oldTemplatesDir = path.join(repoRoot, 'vnext/templates/old');\n expect(fs.existsSync(oldTemplatesDir)).toBe(true);\n\n const uwpCppAppTemplate = path.join(oldTemplatesDir, 'uwp-cpp-app');\n expect(fs.existsSync(uwpCppAppTemplate)).toBe(true);\n });\n\n test('should validate new fabric templates are available', () => {\n const newTemplatesDir = path.join(repoRoot, 'vnext/template');\n expect(fs.existsSync(newTemplatesDir)).toBe(true);\n\n const cppAppTemplate = path.join(newTemplatesDir, 'cpp-app');\n expect(fs.existsSync(cppAppTemplate)).toBe(true);\n });\n });\n\n describe('Version Configuration Tests', () => {\n test('should validate target version is available', async () => {\n // This test validates that the specified version exists in npm\n // In a real environment, this would use npm show to check the version\n expect(RNW_VERSION).toBeTruthy();\n\n // Mock version validation - in actual Windows CI this would call npm show\n const versionInfo = mockNpmShow(\n `react-native-windows@${RNW_VERSION}`,\n RNW_VERSION,\n );\n expect(versionInfo).toBeTruthy();\n expect(versionInfo?.version).toBe(RNW_VERSION);\n });\n\n test('should validate required dependencies for target version', () => {\n const versionInfo = mockNpmShow(\n `react-native-windows@${RNW_VERSION}`,\n RNW_VERSION,\n );\n\n // Validate that the version has the expected dependency structure\n expect(versionInfo?.devDependencies).toHaveProperty('react-native');\n expect(versionInfo?.dependencies).toHaveProperty(\n '@react-native-community/cli',\n );\n });\n });\n\n describe('Template Configuration Tests', () => {\n test('should validate new architecture (fabric) command structure', () => {\n // Test the command that would be used for new arch:\n // creaternwapp.cmd /rnw preview test-app-name\n const expectedCommand = `creaternwapp.cmd /rnw preview test-app-name`;\n\n expect(expectedCommand).toContain('/rnw preview');\n expect(expectedCommand).toContain('test-app-name');\n expect(expectedCommand).not.toContain('/t'); // No template specified = default fabric\n });\n\n test('should validate old architecture (paper/UWP) command structure', () => {\n // Test the command that would be used for old arch:\n // creaternwapp.cmd /rnw preview /t old/uwp-cpp-app test-app-name\n const expectedCommand = `creaternwapp.cmd /rnw preview /t old/uwp-cpp-app test-app-name`;\n\n expect(expectedCommand).toContain('/rnw preview');\n expect(expectedCommand).toContain('/t old/uwp-cpp-app');\n expect(expectedCommand).toContain('test-app-name');\n });\n\n test('should validate yarn windows command variations', () => {\n // Test the commands that would be used to build apps:\n const debugCommand = 'yarn windows';\n const releaseCommand = 'yarn windows --release';\n\n expect(debugCommand).toBe('yarn windows');\n expect(releaseCommand).toBe('yarn windows --release');\n expect(releaseCommand).toContain('--release');\n });\n });\n\n describe('Workflow Integration Tests', () => {\n test('should validate complete new architecture workflow commands', () => {\n const workflow = {\n create: `creaternwapp.cmd /rnw ${RNW_VERSION} TestAppFabric`,\n start: 'yarn start',\n buildDebug: 'yarn windows',\n buildRelease: 'yarn windows --release',\n };\n\n expect(workflow.create).toContain(RNW_VERSION);\n expect(workflow.create).toContain('TestAppFabric');\n expect(workflow.start).toBe('yarn start');\n expect(workflow.buildDebug).toBe('yarn windows');\n expect(workflow.buildRelease).toBe('yarn windows --release');\n });\n\n test('should validate complete old architecture workflow commands', () => {\n const workflow = {\n create: `creaternwapp.cmd /rnw ${RNW_VERSION} /t old/uwp-cpp-app TestAppPaper`,\n start: 'yarn start',\n buildDebug: 'yarn windows',\n buildRelease: 'yarn windows --release',\n };\n\n expect(workflow.create).toContain(RNW_VERSION);\n expect(workflow.create).toContain('/t old/uwp-cpp-app');\n expect(workflow.create).toContain('TestAppPaper');\n expect(workflow.start).toBe('yarn start');\n expect(workflow.buildDebug).toBe('yarn windows');\n expect(workflow.buildRelease).toBe('yarn windows --release');\n });\n });\n\n describe('Documentation and Example Validation', () => {\n test('should document the testing procedure for new architecture', () => {\n const procedure = {\n title: 'New Architecture (Fabric) Testing',\n steps: [\n `creaternwapp.cmd /rnw ${RNW_VERSION} test-app-name`,\n 'yarn start (in test-app-name path)',\n 'cd test-app-name && yarn windows',\n 'cd test-app-name && yarn windows --release',\n ],\n };\n\n expect(procedure.steps[0]).toContain(RNW_VERSION);\n expect(procedure.steps[1]).toContain('yarn start');\n expect(procedure.steps[2]).toContain('yarn windows');\n expect(procedure.steps[3]).toContain('yarn windows --release');\n });\n\n test('should document the testing procedure for old architecture', () => {\n const procedure = {\n title: 'Old Architecture (Paper/UWP) Testing',\n steps: [\n `creaternwapp.cmd /rnw ${RNW_VERSION} /t old/uwp-cpp-app test-app-name`,\n 'yarn start (in test-app-name path)',\n 'cd test-app-name && yarn windows',\n 'cd test-app-name && yarn windows --release',\n ],\n };\n\n expect(procedure.steps[0]).toContain(RNW_VERSION);\n expect(procedure.steps[0]).toContain('/t old/uwp-cpp-app');\n expect(procedure.steps[1]).toContain('yarn start');\n expect(procedure.steps[2]).toContain('yarn windows');\n expect(procedure.steps[3]).toContain('yarn windows --release');\n });\n });\n});\n"]}
1
+ {"version":3,"file":"createRnwApp.test.js","sourceRoot":"","sources":["../../src/e2etest/createRnwApp.test.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n * @format\n */\n\nimport fs from '@react-native-windows/fs';\nimport * as path from 'path';\nimport {execSync} from 'child_process';\n\n/**\n * Get latest stable version from npm\n */\nfunction getLatestStableVersion(): string {\n try {\n return execSync('npm view react-native-windows version', {\n encoding: 'utf8',\n }).trim();\n } catch (error) {\n throw new Error(`Could not fetch latest stable version from npm: ${error}`);\n }\n}\n\n/**\n * Get latest preview version from npm\n */\nfunction getLatestPreviewVersion(): string | undefined {\n try {\n const versions = JSON.parse(\n execSync('npm view react-native-windows versions --json', {\n encoding: 'utf8',\n }),\n ) as string[];\n // Preview versions usually have \"preview\" in the string\n return versions.reverse().find(v => v.includes('preview'));\n } catch (error) {\n console.warn('Could not fetch preview versions from npm:', error);\n return undefined;\n }\n}\n\nconst LATEST_STABLE_VERSION = getLatestStableVersion();\nconst LATEST_PREVIEW_VERSION = getLatestPreviewVersion();\n\n// Ensure we have valid versions for testing\nif (!LATEST_STABLE_VERSION) {\n throw new Error('Could not fetch latest stable version from npm');\n}\nif (!LATEST_PREVIEW_VERSION) {\n throw new Error('Could not fetch latest preview version from npm');\n}\n\n/**\n * Mock NPM registry response for version check\n */\nconst mockNpmShow = (packageNameWithVersion: string, version: string) => {\n if (packageNameWithVersion === `react-native-windows@${version}`) {\n const rnVersion = `^${version.split('-')[0]}`;\n return {\n version: version,\n devDependencies: {\n 'react-native': rnVersion,\n },\n dependencies: {\n '@react-native-community/cli': '^17.0.0',\n },\n };\n }\n return null;\n};\n\n// Test suites for stable and preview versions\ndescribe('creaternwapp Configuration Tests - Stable Version', () => {\n const repoRoot = path.resolve(__dirname, '../../../../..');\n const createRnwAppScript = path.join(\n repoRoot,\n 'vnext/Scripts/creaternwapp.cmd',\n );\n const RNW_VERSION = LATEST_STABLE_VERSION;\n\n beforeAll(() => {\n // Verify the script exists in the repository\n expect(fs.existsSync(createRnwAppScript)).toBe(true);\n\n // Verify we have a stable version to test\n expect(RNW_VERSION).toBeTruthy();\n expect(RNW_VERSION).not.toContain('preview');\n });\n\n describe('Script Configuration Validation', () => {\n test('creaternwapp.cmd script should exist and be readable', () => {\n expect(fs.existsSync(createRnwAppScript)).toBe(true);\n\n const scriptContent = fs.readFileSync(createRnwAppScript, 'utf8');\n\n // Verify script contains expected parameters\n expect(scriptContent).toContain('/rnw');\n expect(scriptContent).toContain('/t');\n expect(scriptContent).toContain('/verdaccio');\n expect(scriptContent).toContain('cpp-app');\n });\n\n test('should validate fabric template is the default', () => {\n const scriptContent = fs.readFileSync(createRnwAppScript, 'utf8');\n\n // Default template should be cpp-app (fabric/new arch)\n expect(scriptContent).toContain('set RNW_TEMPLATE_TYPE=cpp-app');\n });\n\n test('should validate new fabric templates are available', () => {\n const newTemplatesDir = path.join(repoRoot, 'vnext/templates');\n expect(fs.existsSync(newTemplatesDir)).toBe(true);\n\n const cppAppTemplate = path.join(newTemplatesDir, 'cpp-app');\n expect(fs.existsSync(cppAppTemplate)).toBe(true);\n });\n });\n\n describe('Version Configuration Tests', () => {\n test('should validate target version is available', async () => {\n // This test validates that the specified version exists in npm\n // In a real environment, this would use npm show to check the version\n expect(RNW_VERSION).toBeTruthy();\n\n // Mock version validation - in actual Windows CI this would call npm show\n const versionInfo = mockNpmShow(\n `react-native-windows@${RNW_VERSION}`,\n RNW_VERSION,\n );\n expect(versionInfo).toBeTruthy();\n expect(versionInfo?.version).toBe(RNW_VERSION);\n });\n\n test('should validate required dependencies for target version', () => {\n const versionInfo = mockNpmShow(\n `react-native-windows@${RNW_VERSION}`,\n RNW_VERSION,\n );\n\n // Validate that the version has the expected dependency structure\n expect(versionInfo?.devDependencies).toHaveProperty('react-native');\n expect(versionInfo?.dependencies).toHaveProperty(\n '@react-native-community/cli',\n );\n });\n });\n\n describe('Template Configuration Tests', () => {\n test('should validate new architecture (fabric) command structure', () => {\n // Test the command that would be used for new arch:\n // creaternwapp.cmd /rnw preview test-app-name\n const expectedCommand = `creaternwapp.cmd /rnw preview test-app-name`;\n\n expect(expectedCommand).toContain('/rnw preview');\n expect(expectedCommand).toContain('test-app-name');\n expect(expectedCommand).not.toContain('/t'); // No template specified = default fabric\n });\n\n test('should validate yarn windows command variations', () => {\n // Test the commands that would be used to build apps:\n const debugCommand = 'yarn windows';\n const releaseCommand = 'yarn windows --release';\n\n expect(debugCommand).toBe('yarn windows');\n expect(releaseCommand).toBe('yarn windows --release');\n expect(releaseCommand).toContain('--release');\n });\n });\n\n describe('Workflow Integration Tests', () => {\n test('should validate complete new architecture workflow commands', () => {\n const workflow = {\n create: `creaternwapp.cmd /rnw ${RNW_VERSION} TestAppFabric`,\n start: 'yarn start',\n buildDebug: 'yarn windows',\n buildRelease: 'yarn windows --release',\n };\n\n expect(workflow.create).toContain(RNW_VERSION);\n expect(workflow.create).toContain('TestAppFabric');\n expect(workflow.start).toBe('yarn start');\n expect(workflow.buildDebug).toBe('yarn windows');\n expect(workflow.buildRelease).toBe('yarn windows --release');\n });\n });\n\n describe('Documentation and Example Validation', () => {\n test('should document the testing procedure for new architecture', () => {\n const procedure = {\n title: 'New Architecture (Fabric) Testing',\n steps: [\n `creaternwapp.cmd /rnw ${RNW_VERSION} test-app-name`,\n 'yarn start (in test-app-name path)',\n 'cd test-app-name && yarn windows',\n 'cd test-app-name && yarn windows --release',\n ],\n };\n\n expect(procedure.steps[0]).toContain(RNW_VERSION);\n expect(procedure.steps[1]).toContain('yarn start');\n expect(procedure.steps[2]).toContain('yarn windows');\n expect(procedure.steps[3]).toContain('yarn windows --release');\n });\n });\n});\n\ndescribe('creaternwapp Configuration Tests - Preview Version', () => {\n const repoRoot = path.resolve(__dirname, '../../../../..');\n const createRnwAppScript = path.join(\n repoRoot,\n 'vnext/Scripts/creaternwapp.cmd',\n );\n const RNW_VERSION = LATEST_PREVIEW_VERSION;\n\n beforeAll(() => {\n // Verify the script exists in the repository\n expect(fs.existsSync(createRnwAppScript)).toBe(true);\n\n // Verify we have a preview version to test\n expect(RNW_VERSION).toBeTruthy();\n expect(RNW_VERSION).toContain('preview');\n });\n\n describe('Script Configuration Validation', () => {\n test('creaternwapp.cmd script should exist and be readable', () => {\n expect(fs.existsSync(createRnwAppScript)).toBe(true);\n\n const scriptContent = fs.readFileSync(createRnwAppScript, 'utf8');\n\n // Verify script contains expected parameters\n expect(scriptContent).toContain('/rnw');\n expect(scriptContent).toContain('/t');\n expect(scriptContent).toContain('/verdaccio');\n expect(scriptContent).toContain('cpp-app');\n });\n\n test('should validate fabric template is the default', () => {\n const scriptContent = fs.readFileSync(createRnwAppScript, 'utf8');\n\n // Default template should be cpp-app (fabric/new arch)\n expect(scriptContent).toContain('set RNW_TEMPLATE_TYPE=cpp-app');\n });\n\n test('should validate new fabric templates are available', () => {\n const newTemplatesDir = path.join(repoRoot, 'vnext/templates');\n expect(fs.existsSync(newTemplatesDir)).toBe(true);\n\n const cppAppTemplate = path.join(newTemplatesDir, 'cpp-app');\n expect(fs.existsSync(cppAppTemplate)).toBe(true);\n });\n });\n\n describe('Version Configuration Tests', () => {\n test('should validate target version is available', async () => {\n // This test validates that the specified version exists in npm\n // In a real environment, this would use npm show to check the version\n expect(RNW_VERSION).toBeTruthy();\n\n // Mock version validation - in actual Windows CI this would call npm show\n const versionInfo = mockNpmShow(\n `react-native-windows@${RNW_VERSION}`,\n RNW_VERSION,\n );\n expect(versionInfo).toBeTruthy();\n expect(versionInfo?.version).toBe(RNW_VERSION);\n });\n\n test('should validate required dependencies for target version', () => {\n const versionInfo = mockNpmShow(\n `react-native-windows@${RNW_VERSION}`,\n RNW_VERSION,\n );\n\n // Validate that the version has the expected dependency structure\n expect(versionInfo?.devDependencies).toHaveProperty('react-native');\n expect(versionInfo?.dependencies).toHaveProperty(\n '@react-native-community/cli',\n );\n });\n });\n\n describe('Template Configuration Tests', () => {\n test('should validate new architecture (fabric) command structure', () => {\n // Test the command that would be used for new arch:\n // creaternwapp.cmd /rnw preview test-app-name\n const expectedCommand = `creaternwapp.cmd /rnw preview test-app-name`;\n\n expect(expectedCommand).toContain('/rnw preview');\n expect(expectedCommand).toContain('test-app-name');\n expect(expectedCommand).not.toContain('/t'); // No template specified = default fabric\n });\n\n test('should validate yarn windows command variations', () => {\n // Test the commands that would be used to build apps:\n const debugCommand = 'yarn windows';\n const releaseCommand = 'yarn windows --release';\n\n expect(debugCommand).toBe('yarn windows');\n expect(releaseCommand).toBe('yarn windows --release');\n expect(releaseCommand).toContain('--release');\n });\n });\n\n describe('Workflow Integration Tests', () => {\n test('should validate complete new architecture workflow commands', () => {\n const workflow = {\n create: `creaternwapp.cmd /rnw ${RNW_VERSION} TestAppFabric`,\n start: 'yarn start',\n buildDebug: 'yarn windows',\n buildRelease: 'yarn windows --release',\n };\n\n expect(workflow.create).toContain(RNW_VERSION);\n expect(workflow.create).toContain('TestAppFabric');\n expect(workflow.start).toBe('yarn start');\n expect(workflow.buildDebug).toBe('yarn windows');\n expect(workflow.buildRelease).toBe('yarn windows --release');\n });\n });\n\n describe('Documentation and Example Validation', () => {\n test('should document the testing procedure for new architecture', () => {\n const procedure = {\n title: 'New Architecture (Fabric) Testing',\n steps: [\n `creaternwapp.cmd /rnw ${RNW_VERSION} test-app-name`,\n 'yarn start (in test-app-name path)',\n 'cd test-app-name && yarn windows',\n 'cd test-app-name && yarn windows --release',\n ],\n };\n\n expect(procedure.steps[0]).toContain(RNW_VERSION);\n expect(procedure.steps[1]).toContain('yarn start');\n expect(procedure.steps[2]).toContain('yarn windows');\n expect(procedure.steps[3]).toContain('yarn windows --release');\n });\n });\n});\n"]}
@@ -38,30 +38,10 @@ const projects = [
38
38
  projectGuidUpper: projectConfig_utils_1.testProjectGuid,
39
39
  projectGuidLower: projectConfig_utils_1.testProjectGuid.toLowerCase(),
40
40
  };
41
- await (0, generator_common_1.copyAndReplace)(path_1.default.join(projectConfig_utils_1.templateRoot, 'cpp-lib/proj/MyLib.sln'), path_1.default.join(windowsDir, 'SimpleCppLib.sln'), replacements, null);
41
+ await (0, generator_common_1.copyAndReplace)(path_1.default.join(projectConfig_utils_1.templateRoot, 'cpp-lib/windows/MyLib.sln'), path_1.default.join(windowsDir, 'SimpleCppLib.sln'), replacements, null);
42
42
  const projDir = path_1.default.join(windowsDir, 'SimpleCppLib');
43
43
  await (0, projectConfig_utils_1.tryMkdir)(projDir);
44
- await (0, generator_common_1.copyAndReplace)(path_1.default.join(projectConfig_utils_1.templateRoot, 'cpp-lib/proj/MyLib.vcxproj'), path_1.default.join(projDir, 'SimpleCppLib.vcxproj'), replacements, null);
45
- }),
46
- // New C# app project based on the template
47
- project('SimpleCSharpApp', async (folder) => {
48
- await (0, projectConfig_utils_1.ensureCSharpAppProject)(folder, 'SimpleCSharpApp');
49
- }),
50
- // New C# project based on the template
51
- project('SimpleCSharpLib', async (folder) => {
52
- const windowsDir = path_1.default.join(folder, 'windows');
53
- await (0, projectConfig_utils_1.tryMkdir)(windowsDir);
54
- const replacements = {
55
- name: 'SimpleCSharpLib',
56
- namespace: 'SimpleCSharpLib',
57
- useMustache: true,
58
- projectGuidUpper: projectConfig_utils_1.testProjectGuid,
59
- projectGuidLower: projectConfig_utils_1.testProjectGuid.toLowerCase(),
60
- };
61
- await (0, generator_common_1.copyAndReplace)(path_1.default.join(projectConfig_utils_1.templateRoot, 'cs-lib/proj/MyLib.sln'), path_1.default.join(windowsDir, 'SimpleCSharpLib.sln'), replacements, null);
62
- const projDir = path_1.default.join(windowsDir, 'SimpleCSharpLib');
63
- await (0, projectConfig_utils_1.tryMkdir)(projDir);
64
- await (0, generator_common_1.copyAndReplace)(path_1.default.join(projectConfig_utils_1.templateRoot, 'cs-lib/proj/MyLib.csproj'), path_1.default.join(projDir, 'SimpleCSharpLib.csproj'), replacements, null);
44
+ await (0, generator_common_1.copyAndReplace)(path_1.default.join(projectConfig_utils_1.templateRoot, 'cpp-lib/windows/MyLib/MyLib.vcxproj'), path_1.default.join(projDir, 'SimpleCppLib.vcxproj'), replacements, null);
65
45
  }),
66
46
  project('WithIndirectDependency'),
67
47
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"dependencyConfig.test.js","sourceRoot":"","sources":["../../src/e2etest/dependencyConfig.test.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;AAEH,gDAAwB;AAExB,0EAG6C;AAE7C,+DAM+B;AAE/B,0DAAmD;AAInD,SAAS,OAAO,CACd,IAAY,EACZ,KAAyC;IAEzC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,QAAQ,GAAoB;IAChC,mDAAmD;IACnD,OAAO,CAAC,UAAU,CAAC;IACnB,+BAA+B;IAC/B,OAAO,CAAC,wBAAwB,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAChD,MAAM,IAAA,8BAAQ,EAAC,UAAU,CAAC,CAAC;IAC7B,CAAC,CAAC;IACF,4CAA4C;IAC5C,OAAO,CAAC,cAAc,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;QAC/C,MAAM,IAAA,yCAAmB,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpD,CAAC,CAAC;IACF,wCAAwC;IACxC,OAAO,CAAC,cAAc,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;QAC/C,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAChD,MAAM,IAAA,8BAAQ,EAAC,UAAU,CAAC,CAAC;QAE3B,MAAM,YAAY,GAAG;YACnB,IAAI,EAAE,cAAc;YACpB,SAAS,EAAE,cAAc;YACzB,WAAW,EAAE,IAAI;YACjB,gBAAgB,EAAE,qCAAe;YACjC,gBAAgB,EAAE,qCAAe,CAAC,WAAW,EAAE;SAChD,CAAC;QAEF,MAAM,IAAA,iCAAc,EAClB,cAAI,CAAC,IAAI,CAAC,kCAAY,EAAE,wBAAwB,CAAC,EACjD,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,EACzC,YAAY,EACZ,IAAI,CACL,CAAC;QAEF,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACtD,MAAM,IAAA,8BAAQ,EAAC,OAAO,CAAC,CAAC;QAExB,MAAM,IAAA,iCAAc,EAClB,cAAI,CAAC,IAAI,CAAC,kCAAY,EAAE,4BAA4B,CAAC,EACrD,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,EAC1C,YAAY,EACZ,IAAI,CACL,CAAC;IACJ,CAAC,CAAC;IACF,2CAA2C;IAC3C,OAAO,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;QAClD,MAAM,IAAA,4CAAsB,EAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,uCAAuC;IACvC,OAAO,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;QAClD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAChD,MAAM,IAAA,8BAAQ,EAAC,UAAU,CAAC,CAAC;QAE3B,MAAM,YAAY,GAAG;YACnB,IAAI,EAAE,iBAAiB;YACvB,SAAS,EAAE,iBAAiB;YAC5B,WAAW,EAAE,IAAI;YACjB,gBAAgB,EAAE,qCAAe;YACjC,gBAAgB,EAAE,qCAAe,CAAC,WAAW,EAAE;SAChD,CAAC;QAEF,MAAM,IAAA,iCAAc,EAClB,cAAI,CAAC,IAAI,CAAC,kCAAY,EAAE,uBAAuB,CAAC,EAChD,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,EAC5C,YAAY,EACZ,IAAI,CACL,CAAC;QAEF,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;QACzD,MAAM,IAAA,8BAAQ,EAAC,OAAO,CAAC,CAAC;QAExB,MAAM,IAAA,iCAAc,EAClB,cAAI,CAAC,IAAI,CAAC,kCAAY,EAAE,0BAA0B,CAAC,EACnD,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,EAC5C,YAAY,EACZ,IAAI,CACL,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,CAAC,wBAAwB,CAAC;CAClC,CAAC;AAEF,sEAAsE;AACtE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CACjB,4CAA4C,EAC5C,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IACpB,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;IAE3D,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;KACrB;IAED,MAAM,UAAU,GAAG,IAAI,CAAC;IAExB,MAAM,CAAC,IAAA,0CAAuB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AACjE,CAAC,CACF,CAAC;AAEF,4EAA4E;AAC5E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CACjB,oDAAoD,EACpD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IACpB,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAEjE,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;KACrB;IAED,MAAM,UAAU,GACd,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC;IAEnC,IAAI,IAAI,KAAK,UAAU,EAAE;QACvB,MAAM,CAAC,IAAA,0CAAuB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;KACvE;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC/B,MAAM,CAAC,IAAA,0CAAuB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;YAClE,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACrC,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC;gBAC/B,MAAM,CAAC,gBAAgB,CAAC;oBACtB,WAAW,EAAE,MAAM,CAAC,cAAc,CAChC,yCAAyC,CAC1C;iBACF,CAAC;aACH,CAAC;SACH,CAAC,CAAC;KACJ;SAAM;QACL,MAAM,CAAC,IAAA,0CAAuB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;YAClE,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;SACtC,CAAC,CAAC;KACJ;AACH,CAAC,CACF,CAAC;AAEF,oFAAoF;AACpF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CACjB,uDAAuD,EACvD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IACpB,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;IAE3D,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;KACrB;IAED,MAAM,UAAU,GAAqC,EAAE,CAAC;IAExD,IAAI,IAAI,KAAK,UAAU,EAAE;QACvB,MAAM,CAAC,IAAA,0CAAuB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;KACvE;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC/B,MAAM,CAAC,IAAA,0CAAuB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;YAClE,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACrC,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC;gBAC/B,MAAM,CAAC,gBAAgB,CAAC;oBACtB,WAAW,EAAE,MAAM,CAAC,cAAc,CAChC,yCAAyC,CAC1C;iBACF,CAAC;aACH,CAAC;SACH,CAAC,CAAC;KACJ;SAAM;QACL,MAAM,CAAC,IAAA,0CAAuB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;YAClE,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;SACtC,CAAC,CAAC;KACJ;AACH,CAAC,CACF,CAAC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n * @format\n */\n\nimport path from 'path';\n\nimport {\n dependencyConfigWindows,\n WindowsDependencyConfig,\n} from '../commands/config/dependencyConfig';\n\nimport {\n ensureCppAppProject,\n ensureCSharpAppProject,\n tryMkdir,\n templateRoot,\n testProjectGuid,\n} from './projectConfig.utils';\n\nimport {copyAndReplace} from '../generator-common';\n\ntype TargetProject = [string, ((folder: string) => Promise<void>)?];\n\nfunction project(\n name: string,\n setup?: (folder: string) => Promise<void>,\n): TargetProject {\n return [name, setup];\n}\n\nconst projects: TargetProject[] = [\n // Nothing but a react-native.config.js, with nulls\n project('BlankLib'),\n // Nothing but a windows folder\n project('MissingProjectFilesLib', async (folder: string) => {\n const windowsDir = path.join(folder, 'windows');\n await tryMkdir(windowsDir);\n }),\n // New C++ app project based on the template\n project('SimpleCppApp', async (folder: string) => {\n await ensureCppAppProject(folder, 'SimpleCppApp');\n }),\n // New C++ project based on the template\n project('SimpleCppLib', async (folder: string) => {\n const windowsDir = path.join(folder, 'windows');\n await tryMkdir(windowsDir);\n\n const replacements = {\n name: 'SimpleCppLib',\n namespace: 'SimpleCppLib',\n useMustache: true,\n projectGuidUpper: testProjectGuid,\n projectGuidLower: testProjectGuid.toLowerCase(),\n };\n\n await copyAndReplace(\n path.join(templateRoot, 'cpp-lib/proj/MyLib.sln'),\n path.join(windowsDir, 'SimpleCppLib.sln'),\n replacements,\n null,\n );\n\n const projDir = path.join(windowsDir, 'SimpleCppLib');\n await tryMkdir(projDir);\n\n await copyAndReplace(\n path.join(templateRoot, 'cpp-lib/proj/MyLib.vcxproj'),\n path.join(projDir, 'SimpleCppLib.vcxproj'),\n replacements,\n null,\n );\n }),\n // New C# app project based on the template\n project('SimpleCSharpApp', async (folder: string) => {\n await ensureCSharpAppProject(folder, 'SimpleCSharpApp');\n }),\n // New C# project based on the template\n project('SimpleCSharpLib', async (folder: string) => {\n const windowsDir = path.join(folder, 'windows');\n await tryMkdir(windowsDir);\n\n const replacements = {\n name: 'SimpleCSharpLib',\n namespace: 'SimpleCSharpLib',\n useMustache: true,\n projectGuidUpper: testProjectGuid,\n projectGuidLower: testProjectGuid.toLowerCase(),\n };\n\n await copyAndReplace(\n path.join(templateRoot, 'cs-lib/proj/MyLib.sln'),\n path.join(windowsDir, 'SimpleCSharpLib.sln'),\n replacements,\n null,\n );\n\n const projDir = path.join(windowsDir, 'SimpleCSharpLib');\n await tryMkdir(projDir);\n\n await copyAndReplace(\n path.join(templateRoot, 'cs-lib/proj/MyLib.csproj'),\n path.join(projDir, 'SimpleCSharpLib.csproj'),\n replacements,\n null,\n );\n }),\n project('WithIndirectDependency'),\n];\n\n// Tests that given userConfig is null, the result will always be null\ntest.each(projects)(\n 'dependencyConfig - %s (userConfig is null)',\n async (name, setup) => {\n const folder = path.resolve('src/e2etest/projects/', name);\n\n if (setup !== undefined) {\n await setup(folder);\n }\n\n const userConfig = null;\n\n expect(dependencyConfigWindows(folder, userConfig)).toBeNull();\n },\n);\n\n// Tests the result given a windows project config in react-native.config.js\ntest.each(projects)(\n 'dependencyConfig - %s (Use react-native.config.js)',\n async (name, setup) => {\n const folder = path.resolve('src/e2etest/projects/', name);\n const rnc = require(path.join(folder, 'react-native.config.js'));\n\n if (setup !== undefined) {\n await setup(folder);\n }\n\n const userConfig: Partial<WindowsDependencyConfig> =\n rnc.dependency.platforms.windows;\n\n if (name === 'BlankLib') {\n expect(dependencyConfigWindows(folder, userConfig)).toMatchSnapshot();\n } else if (name.endsWith('App')) {\n expect(dependencyConfigWindows(folder, userConfig)).toMatchSnapshot({\n folder: expect.stringContaining(name),\n projects: expect.arrayContaining([\n expect.objectContaining({\n projectFile: expect.stringMatching(\n /Error: .*\\.(?:cs|vcx)proj is type '\\w+'/,\n ),\n }),\n ]),\n });\n } else {\n expect(dependencyConfigWindows(folder, userConfig)).toMatchSnapshot({\n folder: expect.stringContaining(name),\n });\n }\n },\n);\n\n// Tests the result of ignoring the windows project config in react-native.config.js\ntest.each(projects)(\n 'dependencyConfig - %s (Ignore react-native.config.js)',\n async (name, setup) => {\n const folder = path.resolve('src/e2etest/projects/', name);\n\n if (setup !== undefined) {\n await setup(folder);\n }\n\n const userConfig: Partial<WindowsDependencyConfig> = {};\n\n if (name === 'BlankLib') {\n expect(dependencyConfigWindows(folder, userConfig)).toMatchSnapshot();\n } else if (name.endsWith('App')) {\n expect(dependencyConfigWindows(folder, userConfig)).toMatchSnapshot({\n folder: expect.stringContaining(name),\n projects: expect.arrayContaining([\n expect.objectContaining({\n projectFile: expect.stringMatching(\n /Error: .*\\.(?:cs|vcx)proj is type '\\w+'/,\n ),\n }),\n ]),\n });\n } else {\n expect(dependencyConfigWindows(folder, userConfig)).toMatchSnapshot({\n folder: expect.stringContaining(name),\n });\n }\n },\n);\n"]}
1
+ {"version":3,"file":"dependencyConfig.test.js","sourceRoot":"","sources":["../../src/e2etest/dependencyConfig.test.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n * @format\n */\n\nimport path from 'path';\n\nimport {\n dependencyConfigWindows,\n WindowsDependencyConfig,\n} from '../commands/config/dependencyConfig';\n\nimport {\n ensureCppAppProject,\n tryMkdir,\n templateRoot,\n testProjectGuid,\n} from './projectConfig.utils';\n\nimport {copyAndReplace} from '../generator-common';\n\ntype TargetProject = [string, ((folder: string) => Promise<void>)?];\n\nfunction project(\n name: string,\n setup?: (folder: string) => Promise<void>,\n): TargetProject {\n return [name, setup];\n}\n\nconst projects: TargetProject[] = [\n // Nothing but a react-native.config.js, with nulls\n project('BlankLib'),\n // Nothing but a windows folder\n project('MissingProjectFilesLib', async (folder: string) => {\n const windowsDir = path.join(folder, 'windows');\n await tryMkdir(windowsDir);\n }),\n // New C++ app project based on the template\n project('SimpleCppApp', async (folder: string) => {\n await ensureCppAppProject(folder, 'SimpleCppApp');\n }),\n // New C++ project based on the template\n project('SimpleCppLib', async (folder: string) => {\n const windowsDir = path.join(folder, 'windows');\n await tryMkdir(windowsDir);\n\n const replacements = {\n name: 'SimpleCppLib',\n namespace: 'SimpleCppLib',\n useMustache: true,\n projectGuidUpper: testProjectGuid,\n projectGuidLower: testProjectGuid.toLowerCase(),\n };\n\n await copyAndReplace(\n path.join(templateRoot, 'cpp-lib/windows/MyLib.sln'),\n path.join(windowsDir, 'SimpleCppLib.sln'),\n replacements,\n null,\n );\n\n const projDir = path.join(windowsDir, 'SimpleCppLib');\n await tryMkdir(projDir);\n\n await copyAndReplace(\n path.join(templateRoot, 'cpp-lib/windows/MyLib/MyLib.vcxproj'),\n path.join(projDir, 'SimpleCppLib.vcxproj'),\n replacements,\n null,\n );\n }),\n project('WithIndirectDependency'),\n];\n\n// Tests that given userConfig is null, the result will always be null\ntest.each(projects)(\n 'dependencyConfig - %s (userConfig is null)',\n async (name, setup) => {\n const folder = path.resolve('src/e2etest/projects/', name);\n\n if (setup !== undefined) {\n await setup(folder);\n }\n\n const userConfig = null;\n\n expect(dependencyConfigWindows(folder, userConfig)).toBeNull();\n },\n);\n\n// Tests the result given a windows project config in react-native.config.js\ntest.each(projects)(\n 'dependencyConfig - %s (Use react-native.config.js)',\n async (name, setup) => {\n const folder = path.resolve('src/e2etest/projects/', name);\n const rnc = require(path.join(folder, 'react-native.config.js'));\n\n if (setup !== undefined) {\n await setup(folder);\n }\n\n const userConfig: Partial<WindowsDependencyConfig> =\n rnc.dependency.platforms.windows;\n\n if (name === 'BlankLib') {\n expect(dependencyConfigWindows(folder, userConfig)).toMatchSnapshot();\n } else if (name.endsWith('App')) {\n expect(dependencyConfigWindows(folder, userConfig)).toMatchSnapshot({\n folder: expect.stringContaining(name),\n projects: expect.arrayContaining([\n expect.objectContaining({\n projectFile: expect.stringMatching(\n /Error: .*\\.(?:cs|vcx)proj is type '\\w+'/,\n ),\n }),\n ]),\n });\n } else {\n expect(dependencyConfigWindows(folder, userConfig)).toMatchSnapshot({\n folder: expect.stringContaining(name),\n });\n }\n },\n);\n\n// Tests the result of ignoring the windows project config in react-native.config.js\ntest.each(projects)(\n 'dependencyConfig - %s (Ignore react-native.config.js)',\n async (name, setup) => {\n const folder = path.resolve('src/e2etest/projects/', name);\n\n if (setup !== undefined) {\n await setup(folder);\n }\n\n const userConfig: Partial<WindowsDependencyConfig> = {};\n\n if (name === 'BlankLib') {\n expect(dependencyConfigWindows(folder, userConfig)).toMatchSnapshot();\n } else if (name.endsWith('App')) {\n expect(dependencyConfigWindows(folder, userConfig)).toMatchSnapshot({\n folder: expect.stringContaining(name),\n projects: expect.arrayContaining([\n expect.objectContaining({\n projectFile: expect.stringMatching(\n /Error: .*\\.(?:cs|vcx)proj is type '\\w+'/,\n ),\n }),\n ]),\n });\n } else {\n expect(dependencyConfigWindows(folder, userConfig)).toMatchSnapshot({\n folder: expect.stringContaining(name),\n });\n }\n },\n);\n"]}
@@ -28,10 +28,6 @@ const projects = [
28
28
  project('SimpleCppApp', async (folder) => {
29
29
  await (0, projectConfig_utils_1.ensureCppAppProject)(folder, 'SimpleCppApp');
30
30
  }),
31
- // New C# project based on the template
32
- project('SimpleCSharpApp', async (folder) => {
33
- await (0, projectConfig_utils_1.ensureCSharpAppProject)(folder, 'SimpleCSharpApp');
34
- }),
35
31
  project('WithWinUI3', async (folder) => {
36
32
  await (0, projectConfig_utils_1.ensureWinUI3Project)(folder);
37
33
  }),
@@ -89,7 +85,7 @@ test.each(projects)('projectConfig - %s (Ignore react-native.config.js)', async
89
85
  test.skip('useWinUI3=true in react-native.config.js, UseWinUI3=false in ExperimentalFeatures.props', async () => {
90
86
  const folder = path_1.default.resolve('src/e2etest/projects/WithWinUI3');
91
87
  // Create project with UseWinUI3 == false in ExperimentalFeatures.props
92
- await (0, projectConfig_utils_1.ensureCppAppProject)(folder, 'WithWinUI3', false, false, false);
88
+ await (0, projectConfig_utils_1.ensureCppAppProject)(folder, 'WithWinUI3', false, false);
93
89
  const rnc = require(path_1.default.join(folder, 'react-native.config.js'));
94
90
  const config = (0, projectConfig_1.projectConfigWindows)(folder, rnc.project.windows);
95
91
  // Set useWinUI3=true in react-native.config.js
@@ -1 +1 @@
1
- {"version":3,"file":"projectConfig.test.js","sourceRoot":"","sources":["../../src/e2etest/projectConfig.test.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n * @format\n */\n\nimport fs from '@react-native-windows/fs';\nimport path from 'path';\n\nimport {\n projectConfigWindows,\n WindowsProjectConfig,\n} from '../commands/config/projectConfig';\n\nimport {AutoLinkWindows} from '../commands/autolinkWindows/autolinkWindows';\nimport {\n ensureCppAppProject,\n ensureCSharpAppProject,\n ensureWinUI3Project,\n ensureHermesProject,\n ensureExperimentalNuGetProject,\n tryMkdir,\n} from './projectConfig.utils';\n\ntype TargetProject = [string, ((folder: string) => Promise<void>)?];\n\nfunction project(\n name: string,\n setup?: (folder: string) => Promise<void>,\n): TargetProject {\n return [name, setup];\n}\n\nconst projects: TargetProject[] = [\n // Nothing but a react-native.config.js, with nulls\n project('BlankApp'),\n // Nothing but a windows folder\n project('MissingProjectFilesApp', async (folder: string) => {\n const windowsDir = path.join(folder, 'windows');\n await tryMkdir(windowsDir);\n }),\n // New C++ project based on the template\n project('SimpleCppApp', async (folder: string) => {\n await ensureCppAppProject(folder, 'SimpleCppApp');\n }),\n // New C# project based on the template\n project('SimpleCSharpApp', async (folder: string) => {\n await ensureCSharpAppProject(folder, 'SimpleCSharpApp');\n }),\n project('WithWinUI3', async (folder: string) => {\n await ensureWinUI3Project(folder);\n }),\n project('WithHermes', async (folder: string) => {\n await ensureHermesProject(folder);\n }),\n project('WithExperimentalNuget', async (folder: string) => {\n await ensureExperimentalNuGetProject(folder);\n }),\n project('WithIndirectDependency'),\n];\n\n// Tests that given userConfig is null, the result will always be null\ntest.each(projects)(\n 'projectConfig - %s (userConfig is null)',\n async (name, setup) => {\n const folder = path.resolve('src/e2etest/projects/', name);\n\n if (setup !== undefined) {\n await setup(folder);\n }\n\n const userConfig = null;\n\n expect(projectConfigWindows(folder, userConfig)).toBeNull();\n },\n);\n\n// Tests the result given a windows project config in react-native.config.js\ntest.each(projects)(\n 'projectConfig - %s (Use react-native.config.js)',\n async (name, setup) => {\n const folder = path.resolve('src/e2etest/projects/', name);\n const rnc = require(path.join(folder, 'react-native.config.js'));\n\n if (setup !== undefined) {\n await setup(folder);\n }\n\n const userConfig: Partial<WindowsProjectConfig> = rnc.project.windows;\n\n if (name === 'BlankApp') {\n expect(projectConfigWindows(folder, userConfig)).toMatchSnapshot();\n } else {\n expect(projectConfigWindows(folder, userConfig)).toMatchSnapshot({\n folder: expect.stringContaining(name),\n });\n }\n },\n);\n\n// Tests the result of ignoring the windows project config in react-native.config.js\ntest.each(projects)(\n 'projectConfig - %s (Ignore react-native.config.js)',\n async (name, setup) => {\n const folder = path.resolve('src/e2etest/projects/', name);\n\n if (setup !== undefined) {\n await setup(folder);\n }\n\n const userConfig: Partial<WindowsProjectConfig> = {};\n\n if (name === 'BlankApp') {\n expect(projectConfigWindows(folder, userConfig)).toMatchSnapshot();\n } else {\n expect(projectConfigWindows(folder, userConfig)).toMatchSnapshot({\n folder: expect.stringContaining(name),\n });\n }\n },\n);\n\n// Skipping this test as the feature is broken and needs to be removed, see https://github.com/microsoft/react-native-windows/issues/14601\ntest.skip('useWinUI3=true in react-native.config.js, UseWinUI3=false in ExperimentalFeatures.props', async () => {\n const folder = path.resolve('src/e2etest/projects/WithWinUI3');\n\n // Create project with UseWinUI3 == false in ExperimentalFeatures.props\n await ensureCppAppProject(folder, 'WithWinUI3', false, false, false);\n\n const rnc = require(path.join(folder, 'react-native.config.js'));\n\n const config = projectConfigWindows(folder, rnc.project.windows)!;\n // Set useWinUI3=true in react-native.config.js\n config.useWinUI3 = true;\n\n const experimentalFeaturesPropsFile = path.join(\n folder,\n 'windows/ExperimentalFeatures.props',\n );\n\n // Verify starting props file\n const startingExperimentalFeatures = (\n await fs.readFile(experimentalFeaturesPropsFile)\n ).toString();\n expect(startingExperimentalFeatures.replace(/\\r/g, '')).toMatchSnapshot();\n\n // Run Autolink to sync the files\n const al = new AutoLinkWindows(\n {windows: config},\n {},\n {\n check: false,\n logging: false,\n },\n );\n\n const exd = await al.ensureXAMLDialect();\n expect(exd).toBeTruthy();\n\n // Verify ending props file\n const finalExperimentalFeatures = (\n await fs.readFile(experimentalFeaturesPropsFile)\n ).toString();\n\n expect(finalExperimentalFeatures.replace(/\\r/g, '')).toMatchSnapshot();\n});\n"]}
1
+ {"version":3,"file":"projectConfig.test.js","sourceRoot":"","sources":["../../src/e2etest/projectConfig.test.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;AAEH,kEAA0C;AAC1C,gDAAwB;AAExB,oEAG0C;AAE1C,iFAA4E;AAC5E,+DAM+B;AAI/B,SAAS,OAAO,CACd,IAAY,EACZ,KAAyC;IAEzC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,QAAQ,GAAoB;IAChC,mDAAmD;IACnD,OAAO,CAAC,UAAU,CAAC;IACnB,+BAA+B;IAC/B,OAAO,CAAC,wBAAwB,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;QACzD,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAChD,MAAM,IAAA,8BAAQ,EAAC,UAAU,CAAC,CAAC;IAC7B,CAAC,CAAC;IACF,wCAAwC;IACxC,OAAO,CAAC,cAAc,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;QAC/C,MAAM,IAAA,yCAAmB,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpD,CAAC,CAAC;IACF,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;QAC7C,MAAM,IAAA,yCAAmB,EAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;QAC7C,MAAM,IAAA,yCAAmB,EAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC;IACF,OAAO,CAAC,uBAAuB,EAAE,KAAK,EAAE,MAAc,EAAE,EAAE;QACxD,MAAM,IAAA,oDAA8B,EAAC,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC;IACF,OAAO,CAAC,wBAAwB,CAAC;CAClC,CAAC;AAEF,sEAAsE;AACtE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CACjB,yCAAyC,EACzC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IACpB,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;IAE3D,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;KACrB;IAED,MAAM,UAAU,GAAG,IAAI,CAAC;IAExB,MAAM,CAAC,IAAA,oCAAoB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAC9D,CAAC,CACF,CAAC;AAEF,4EAA4E;AAC5E,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CACjB,iDAAiD,EACjD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IACpB,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAEjE,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;KACrB;IAED,MAAM,UAAU,GAAkC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;IAEtE,IAAI,IAAI,KAAK,UAAU,EAAE;QACvB,MAAM,CAAC,IAAA,oCAAoB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;KACpE;SAAM;QACL,MAAM,CAAC,IAAA,oCAAoB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;YAC/D,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;SACtC,CAAC,CAAC;KACJ;AACH,CAAC,CACF,CAAC;AAEF,oFAAoF;AACpF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CACjB,oDAAoD,EACpD,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IACpB,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;IAE3D,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;KACrB;IAED,MAAM,UAAU,GAAkC,EAAE,CAAC;IAErD,IAAI,IAAI,KAAK,UAAU,EAAE;QACvB,MAAM,CAAC,IAAA,oCAAoB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;KACpE;SAAM;QACL,MAAM,CAAC,IAAA,oCAAoB,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC;YAC/D,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC;SACtC,CAAC,CAAC;KACJ;AACH,CAAC,CACF,CAAC;AAEF,0IAA0I;AAC1I,IAAI,CAAC,IAAI,CAAC,yFAAyF,EAAE,KAAK,IAAI,EAAE;IAC9G,MAAM,MAAM,GAAG,cAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IAE/D,uEAAuE;IACvE,MAAM,IAAA,yCAAmB,EAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAE9D,MAAM,GAAG,GAAG,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAC;IAEjE,MAAM,MAAM,GAAG,IAAA,oCAAoB,EAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;IAClE,+CAA+C;IAC/C,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;IAExB,MAAM,6BAA6B,GAAG,cAAI,CAAC,IAAI,CAC7C,MAAM,EACN,oCAAoC,CACrC,CAAC;IAEF,6BAA6B;IAC7B,MAAM,4BAA4B,GAAG,CACnC,MAAM,YAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CACjD,CAAC,QAAQ,EAAE,CAAC;IACb,MAAM,CAAC,4BAA4B,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAE1E,iCAAiC;IACjC,MAAM,EAAE,GAAG,IAAI,iCAAe,CAC5B,EAAC,OAAO,EAAE,MAAM,EAAC,EACjB,EAAE,EACF;QACE,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,KAAK;KACf,CACF,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,iBAAiB,EAAE,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;IAEzB,2BAA2B;IAC3B,MAAM,yBAAyB,GAAG,CAChC,MAAM,YAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC,CACjD,CAAC,QAAQ,EAAE,CAAC;IAEb,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;AACzE,CAAC,CAAC,CAAC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n * @format\n */\n\nimport fs from '@react-native-windows/fs';\nimport path from 'path';\n\nimport {\n projectConfigWindows,\n WindowsProjectConfig,\n} from '../commands/config/projectConfig';\n\nimport {AutoLinkWindows} from '../commands/autolinkWindows/autolinkWindows';\nimport {\n ensureCppAppProject,\n ensureWinUI3Project,\n ensureHermesProject,\n ensureExperimentalNuGetProject,\n tryMkdir,\n} from './projectConfig.utils';\n\ntype TargetProject = [string, ((folder: string) => Promise<void>)?];\n\nfunction project(\n name: string,\n setup?: (folder: string) => Promise<void>,\n): TargetProject {\n return [name, setup];\n}\n\nconst projects: TargetProject[] = [\n // Nothing but a react-native.config.js, with nulls\n project('BlankApp'),\n // Nothing but a windows folder\n project('MissingProjectFilesApp', async (folder: string) => {\n const windowsDir = path.join(folder, 'windows');\n await tryMkdir(windowsDir);\n }),\n // New C++ project based on the template\n project('SimpleCppApp', async (folder: string) => {\n await ensureCppAppProject(folder, 'SimpleCppApp');\n }),\n project('WithWinUI3', async (folder: string) => {\n await ensureWinUI3Project(folder);\n }),\n project('WithHermes', async (folder: string) => {\n await ensureHermesProject(folder);\n }),\n project('WithExperimentalNuget', async (folder: string) => {\n await ensureExperimentalNuGetProject(folder);\n }),\n project('WithIndirectDependency'),\n];\n\n// Tests that given userConfig is null, the result will always be null\ntest.each(projects)(\n 'projectConfig - %s (userConfig is null)',\n async (name, setup) => {\n const folder = path.resolve('src/e2etest/projects/', name);\n\n if (setup !== undefined) {\n await setup(folder);\n }\n\n const userConfig = null;\n\n expect(projectConfigWindows(folder, userConfig)).toBeNull();\n },\n);\n\n// Tests the result given a windows project config in react-native.config.js\ntest.each(projects)(\n 'projectConfig - %s (Use react-native.config.js)',\n async (name, setup) => {\n const folder = path.resolve('src/e2etest/projects/', name);\n const rnc = require(path.join(folder, 'react-native.config.js'));\n\n if (setup !== undefined) {\n await setup(folder);\n }\n\n const userConfig: Partial<WindowsProjectConfig> = rnc.project.windows;\n\n if (name === 'BlankApp') {\n expect(projectConfigWindows(folder, userConfig)).toMatchSnapshot();\n } else {\n expect(projectConfigWindows(folder, userConfig)).toMatchSnapshot({\n folder: expect.stringContaining(name),\n });\n }\n },\n);\n\n// Tests the result of ignoring the windows project config in react-native.config.js\ntest.each(projects)(\n 'projectConfig - %s (Ignore react-native.config.js)',\n async (name, setup) => {\n const folder = path.resolve('src/e2etest/projects/', name);\n\n if (setup !== undefined) {\n await setup(folder);\n }\n\n const userConfig: Partial<WindowsProjectConfig> = {};\n\n if (name === 'BlankApp') {\n expect(projectConfigWindows(folder, userConfig)).toMatchSnapshot();\n } else {\n expect(projectConfigWindows(folder, userConfig)).toMatchSnapshot({\n folder: expect.stringContaining(name),\n });\n }\n },\n);\n\n// Skipping this test as the feature is broken and needs to be removed, see https://github.com/microsoft/react-native-windows/issues/14601\ntest.skip('useWinUI3=true in react-native.config.js, UseWinUI3=false in ExperimentalFeatures.props', async () => {\n const folder = path.resolve('src/e2etest/projects/WithWinUI3');\n\n // Create project with UseWinUI3 == false in ExperimentalFeatures.props\n await ensureCppAppProject(folder, 'WithWinUI3', false, false);\n\n const rnc = require(path.join(folder, 'react-native.config.js'));\n\n const config = projectConfigWindows(folder, rnc.project.windows)!;\n // Set useWinUI3=true in react-native.config.js\n config.useWinUI3 = true;\n\n const experimentalFeaturesPropsFile = path.join(\n folder,\n 'windows/ExperimentalFeatures.props',\n );\n\n // Verify starting props file\n const startingExperimentalFeatures = (\n await fs.readFile(experimentalFeaturesPropsFile)\n ).toString();\n expect(startingExperimentalFeatures.replace(/\\r/g, '')).toMatchSnapshot();\n\n // Run Autolink to sync the files\n const al = new AutoLinkWindows(\n {windows: config},\n {},\n {\n check: false,\n logging: false,\n },\n );\n\n const exd = await al.ensureXAMLDialect();\n expect(exd).toBeTruthy();\n\n // Verify ending props file\n const finalExperimentalFeatures = (\n await fs.readFile(experimentalFeaturesPropsFile)\n ).toString();\n\n expect(finalExperimentalFeatures.replace(/\\r/g, '')).toMatchSnapshot();\n});\n"]}
@@ -1,8 +1,8 @@
1
1
  export declare const templateRoot: string;
2
+ export declare const sharedRoot: string;
2
3
  export declare const testProjectGuid = "{416476D5-974A-4EE2-8145-4E331297247E}";
3
4
  export declare function tryMkdir(dir: string): Promise<void>;
4
- export declare function ensureCppAppProject(folder: string, name: string, useWinUI3?: boolean, useHermes?: boolean, useExperimentalNuget?: boolean): Promise<void>;
5
- export declare function ensureCSharpAppProject(folder: string, name: string, useWinUI3?: boolean, useHermes?: boolean, useExperimentalNuget?: boolean): Promise<void>;
5
+ export declare function ensureCppAppProject(folder: string, name: string, useWinUI3?: boolean, useExperimentalNuget?: boolean): Promise<void>;
6
6
  export declare function ensureWinUI3Project(folder: string): Promise<void>;
7
7
  export declare function ensureHermesProject(folder: string): Promise<void>;
8
8
  export declare function ensureExperimentalNuGetProject(folder: string): Promise<void>;
@@ -3,11 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ensureExperimentalNuGetProject = exports.ensureHermesProject = exports.ensureWinUI3Project = exports.ensureCSharpAppProject = exports.ensureCppAppProject = exports.tryMkdir = exports.testProjectGuid = exports.templateRoot = void 0;
6
+ exports.ensureExperimentalNuGetProject = exports.ensureHermesProject = exports.ensureWinUI3Project = exports.ensureCppAppProject = exports.tryMkdir = exports.testProjectGuid = exports.sharedRoot = exports.templateRoot = void 0;
7
7
  const fs_1 = __importDefault(require("@react-native-windows/fs"));
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const generator_common_1 = require("../generator-common");
10
- exports.templateRoot = path_1.default.resolve('../../../vnext/template');
10
+ exports.templateRoot = path_1.default.resolve('../../../vnext/templates');
11
+ exports.sharedRoot = path_1.default.resolve('../../../vnext/template/shared-lib');
11
12
  exports.testProjectGuid = '{416476D5-974A-4EE2-8145-4E331297247E}';
12
13
  async function tryMkdir(dir) {
13
14
  try {
@@ -16,7 +17,7 @@ async function tryMkdir(dir) {
16
17
  catch (err) { }
17
18
  }
18
19
  exports.tryMkdir = tryMkdir;
19
- async function ensureCppAppProject(folder, name, useWinUI3, useHermes, useExperimentalNuget) {
20
+ async function ensureCppAppProject(folder, name, useWinUI3, useExperimentalNuget) {
20
21
  const windowsDir = path_1.default.join(folder, 'windows');
21
22
  if (fs_1.default.existsSync(windowsDir)) {
22
23
  await fs_1.default.rmdir(windowsDir, { recursive: true });
@@ -29,49 +30,25 @@ async function ensureCppAppProject(folder, name, useWinUI3, useHermes, useExperi
29
30
  projectGuidUpper: exports.testProjectGuid,
30
31
  projectGuidLower: exports.testProjectGuid.toLowerCase(),
31
32
  useWinUI3: !!useWinUI3,
32
- useHermes: !!useHermes,
33
33
  useExperimentalNuget: !!useExperimentalNuget,
34
34
  };
35
- await (0, generator_common_1.copyAndReplace)(path_1.default.join(exports.templateRoot, 'cpp-app/proj/MyApp.sln'), path_1.default.join(windowsDir, `${name}.sln`), replacements, null);
35
+ await (0, generator_common_1.copyAndReplace)(path_1.default.join(exports.templateRoot, 'cpp-app/windows/MyApp.sln'), path_1.default.join(windowsDir, `${name}.sln`), replacements, null);
36
36
  const projDir = path_1.default.join(windowsDir, name);
37
37
  await tryMkdir(projDir);
38
- await (0, generator_common_1.copyAndReplace)(path_1.default.join(exports.templateRoot, 'cpp-app/proj/MyApp.vcxproj'), path_1.default.join(projDir, `${name}.vcxproj`), replacements, null);
39
- await (0, generator_common_1.copyAndReplace)(path_1.default.join(exports.templateRoot, 'shared-app/proj/ExperimentalFeatures.props'), path_1.default.join(windowsDir, 'ExperimentalFeatures.props'), replacements, null);
38
+ await (0, generator_common_1.copyAndReplace)(path_1.default.join(exports.templateRoot, 'cpp-app/windows/MyApp/MyApp.vcxproj'), path_1.default.join(projDir, `${name}.vcxproj`), replacements, null);
39
+ await (0, generator_common_1.copyAndReplace)(path_1.default.join(exports.sharedRoot, 'proj/ExperimentalFeatures.props'), path_1.default.join(windowsDir, 'ExperimentalFeatures.props'), replacements, null);
40
40
  }
41
41
  exports.ensureCppAppProject = ensureCppAppProject;
42
- async function ensureCSharpAppProject(folder, name, useWinUI3, useHermes, useExperimentalNuget) {
43
- const windowsDir = path_1.default.join(folder, 'windows');
44
- if (fs_1.default.existsSync(windowsDir)) {
45
- await fs_1.default.rmdir(windowsDir, { recursive: true });
46
- }
47
- await tryMkdir(windowsDir);
48
- const replacements = {
49
- name,
50
- namespace: name,
51
- useMustache: true,
52
- projectGuidUpper: exports.testProjectGuid,
53
- projectGuidLower: exports.testProjectGuid.toLowerCase(),
54
- useWinUI3: !!useWinUI3,
55
- useHermes: !!useHermes,
56
- useExperimentalNuget: !!useExperimentalNuget,
57
- };
58
- await (0, generator_common_1.copyAndReplace)(path_1.default.join(exports.templateRoot, 'cs-app/proj/MyApp.sln'), path_1.default.join(windowsDir, `${name}.sln`), replacements, null);
59
- const projDir = path_1.default.join(windowsDir, name);
60
- await tryMkdir(projDir);
61
- await (0, generator_common_1.copyAndReplace)(path_1.default.join(exports.templateRoot, 'cs-app/proj/MyApp.csproj'), path_1.default.join(projDir, `${name}.csproj`), replacements, null);
62
- await (0, generator_common_1.copyAndReplace)(path_1.default.join(exports.templateRoot, 'shared-app/proj/ExperimentalFeatures.props'), path_1.default.join(windowsDir, 'ExperimentalFeatures.props'), replacements, null);
63
- }
64
- exports.ensureCSharpAppProject = ensureCSharpAppProject;
65
42
  async function ensureWinUI3Project(folder) {
66
- await ensureCppAppProject(folder, 'WithWinUI3', true, false, false);
43
+ await ensureCppAppProject(folder, 'WithWinUI3', true, false);
67
44
  }
68
45
  exports.ensureWinUI3Project = ensureWinUI3Project;
69
46
  async function ensureHermesProject(folder) {
70
- await ensureCppAppProject(folder, 'WithHermes', false, true, false);
47
+ await ensureCppAppProject(folder, 'WithHermes', false, false);
71
48
  }
72
49
  exports.ensureHermesProject = ensureHermesProject;
73
50
  async function ensureExperimentalNuGetProject(folder) {
74
- await ensureCppAppProject(folder, 'WithExperimentalNuGet', false, false, true);
51
+ await ensureCppAppProject(folder, 'WithExperimentalNuGet', false, true);
75
52
  }
76
53
  exports.ensureExperimentalNuGetProject = ensureExperimentalNuGetProject;
77
54
  //# sourceMappingURL=projectConfig.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projectConfig.utils.js","sourceRoot":"","sources":["../../src/e2etest/projectConfig.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from '@react-native-windows/fs'\nimport path from 'path';\nimport { copyAndReplace } from '../generator-common';\n\nexport const templateRoot = path.resolve('../../../vnext/template');\n\nexport const testProjectGuid = '{416476D5-974A-4EE2-8145-4E331297247E}';\n\nexport async function tryMkdir(dir: string): Promise<void> {\n try {\n await fs.mkdir(dir, {recursive: true});\n } catch (err) {}\n}\n\nexport async function ensureCppAppProject(folder: string, name: string, useWinUI3?: boolean, useHermes?: boolean, useExperimentalNuget?: boolean) {\n const windowsDir = path.join(folder, 'windows');\n if (fs.existsSync(windowsDir)) {\n await fs.rmdir(windowsDir, {recursive: true});\n }\n await tryMkdir(windowsDir);\n\n const replacements = {\n name,\n namespace: name,\n useMustache: true,\n projectGuidUpper: testProjectGuid,\n projectGuidLower: testProjectGuid.toLowerCase(),\n useWinUI3: !!useWinUI3,\n useHermes: !!useHermes,\n useExperimentalNuget: !!useExperimentalNuget,\n };\n\n await copyAndReplace(\n path.join(templateRoot, 'cpp-app/proj/MyApp.sln'),\n path.join(windowsDir, `${name}.sln`),\n replacements,\n null\n );\n\n const projDir = path.join(windowsDir, name);\n await tryMkdir(projDir);\n\n await copyAndReplace(\n path.join(templateRoot, 'cpp-app/proj/MyApp.vcxproj'),\n path.join(projDir, `${name}.vcxproj`),\n replacements,\n null\n );\n\n await copyAndReplace(\n path.join(templateRoot, 'shared-app/proj/ExperimentalFeatures.props'),\n path.join(windowsDir, 'ExperimentalFeatures.props'),\n replacements,\n null\n );\n}\n\nexport async function ensureCSharpAppProject(folder: string, name: string, useWinUI3?: boolean, useHermes?: boolean, useExperimentalNuget?: boolean) {\n const windowsDir = path.join(folder, 'windows');\n if (fs.existsSync(windowsDir)) {\n await fs.rmdir(windowsDir, {recursive: true});\n }\n await tryMkdir(windowsDir);\n\n const replacements = {\n name,\n namespace: name,\n useMustache: true,\n projectGuidUpper: testProjectGuid,\n projectGuidLower: testProjectGuid.toLowerCase(),\n useWinUI3: !!useWinUI3,\n useHermes: !!useHermes,\n useExperimentalNuget: !!useExperimentalNuget,\n };\n\n await copyAndReplace(\n path.join(templateRoot, 'cs-app/proj/MyApp.sln'),\n path.join(windowsDir, `${name}.sln`),\n replacements,\n null\n );\n\n const projDir = path.join(windowsDir, name);\n await tryMkdir(projDir);\n\n await copyAndReplace(\n path.join(templateRoot, 'cs-app/proj/MyApp.csproj'),\n path.join(projDir, `${name}.csproj`),\n replacements,\n null\n );\n\n await copyAndReplace(\n path.join(templateRoot, 'shared-app/proj/ExperimentalFeatures.props'),\n path.join(windowsDir, 'ExperimentalFeatures.props'),\n replacements,\n null\n );\n}\n\nexport async function ensureWinUI3Project(folder: string) {\n await ensureCppAppProject(folder, 'WithWinUI3', true, false, false);\n}\n\nexport async function ensureHermesProject(folder: string) {\n await ensureCppAppProject(folder, 'WithHermes', false, true, false);\n}\n\nexport async function ensureExperimentalNuGetProject(folder: string) {\n await ensureCppAppProject(folder, 'WithExperimentalNuGet', false, false, true);\n}"]}
1
+ {"version":3,"file":"projectConfig.utils.js","sourceRoot":"","sources":["../../src/e2etest/projectConfig.utils.ts"],"names":[],"mappings":";;;;;;AAAA,kEAAyC;AACzC,gDAAwB;AACxB,0DAAqD;AAExC,QAAA,YAAY,GAAG,cAAI,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;AACxD,QAAA,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;AAEhE,QAAA,eAAe,GAAG,wCAAwC,CAAC;AAEjE,KAAK,UAAU,QAAQ,CAAC,GAAW;IACxC,IAAI;QACF,MAAM,YAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KAC1C;IAAC,OAAO,GAAG,EAAE,GAAG;AACnB,CAAC;AAJD,4BAIC;AAEM,KAAK,UAAU,mBAAmB,CAAC,MAAc,EAAE,IAAY,EAAE,SAAmB,EAAE,oBAA8B;IACzH,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAChD,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;QAC7B,MAAM,YAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KACjD;IACD,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;IAE3B,MAAM,YAAY,GAAG;QACnB,IAAI;QACJ,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,gBAAgB,EAAE,uBAAe;QACjC,gBAAgB,EAAE,uBAAe,CAAC,WAAW,EAAE;QAC/C,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,oBAAoB,EAAE,CAAC,CAAC,oBAAoB;KAC7C,CAAC;IAEF,MAAM,IAAA,iCAAc,EAClB,cAAI,CAAC,IAAI,CAAC,oBAAY,EAAE,2BAA2B,CAAC,EACpD,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,MAAM,CAAC,EACpC,YAAY,EACZ,IAAI,CACL,CAAC;IAEF,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5C,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;IAExB,MAAM,IAAA,iCAAc,EAClB,cAAI,CAAC,IAAI,CAAC,oBAAY,EAAE,qCAAqC,CAAC,EAC9D,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,UAAU,CAAC,EACrC,YAAY,EACZ,IAAI,CACL,CAAC;IAEF,MAAM,IAAA,iCAAc,EAClB,cAAI,CAAC,IAAI,CAAC,kBAAU,EAAE,iCAAiC,CAAC,EACxD,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,4BAA4B,CAAC,EACnD,YAAY,EACZ,IAAI,CACL,CAAC;AACJ,CAAC;AAxCD,kDAwCC;AAEM,KAAK,UAAU,mBAAmB,CAAC,MAAc;IACtD,MAAM,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC;AAFD,kDAEC;AAEM,KAAK,UAAU,mBAAmB,CAAC,MAAc;IACtD,MAAM,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC;AAFD,kDAEC;AAEM,KAAK,UAAU,8BAA8B,CAAC,MAAc;IACjE,MAAM,mBAAmB,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC;AAFD,wEAEC","sourcesContent":["import fs from '@react-native-windows/fs'\nimport path from 'path';\nimport { copyAndReplace } from '../generator-common';\n\nexport const templateRoot = path.resolve('../../../vnext/templates');\nexport const sharedRoot = path.resolve('../../../vnext/template/shared-lib');\n\nexport const testProjectGuid = '{416476D5-974A-4EE2-8145-4E331297247E}';\n\nexport async function tryMkdir(dir: string): Promise<void> {\n try {\n await fs.mkdir(dir, { recursive: true });\n } catch (err) { }\n}\n\nexport async function ensureCppAppProject(folder: string, name: string, useWinUI3?: boolean, useExperimentalNuget?: boolean) {\n const windowsDir = path.join(folder, 'windows');\n if (fs.existsSync(windowsDir)) {\n await fs.rmdir(windowsDir, { recursive: true });\n }\n await tryMkdir(windowsDir);\n\n const replacements = {\n name,\n namespace: name,\n useMustache: true,\n projectGuidUpper: testProjectGuid,\n projectGuidLower: testProjectGuid.toLowerCase(),\n useWinUI3: !!useWinUI3,\n useExperimentalNuget: !!useExperimentalNuget,\n };\n\n await copyAndReplace(\n path.join(templateRoot, 'cpp-app/windows/MyApp.sln'),\n path.join(windowsDir, `${name}.sln`),\n replacements,\n null\n );\n\n const projDir = path.join(windowsDir, name);\n await tryMkdir(projDir);\n\n await copyAndReplace(\n path.join(templateRoot, 'cpp-app/windows/MyApp/MyApp.vcxproj'),\n path.join(projDir, `${name}.vcxproj`),\n replacements,\n null\n );\n\n await copyAndReplace(\n path.join(sharedRoot, 'proj/ExperimentalFeatures.props'),\n path.join(windowsDir, 'ExperimentalFeatures.props'),\n replacements,\n null\n );\n}\n\nexport async function ensureWinUI3Project(folder: string) {\n await ensureCppAppProject(folder, 'WithWinUI3', true, false);\n}\n\nexport async function ensureHermesProject(folder: string) {\n await ensureCppAppProject(folder, 'WithHermes', false, false);\n}\n\nexport async function ensureExperimentalNuGetProject(folder: string) {\n await ensureCppAppProject(folder, 'WithExperimentalNuGet', false, true);\n}"]}
@@ -18,7 +18,6 @@ function validateOptionName(name, optionName) {
18
18
  case 'emulator':
19
19
  case 'device':
20
20
  case 'target':
21
- case 'remoteDebugging':
22
21
  case 'logging':
23
22
  case 'packager':
24
23
  case 'bundle':
@@ -1 +1 @@
1
- {"version":3,"file":"runWindows.test.js","sourceRoot":"","sources":["../../src/e2etest/runWindows.test.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAEH,+DAA0E;AAE1E,gFAGkD;AAElD,sCAAsC;AACtC,SAAS,kBAAkB,CACzB,IAAY,EACZ,UAAmC;IAEnC,yEAAyE;IACzE,QAAQ,UAAU,EAAE;QAClB,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,YAAY,CAAC;QAClB,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,iBAAiB,CAAC;QACvB,KAAK,SAAS,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,kBAAkB,CAAC;QACxB,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,cAAc,CAAC;QACpB,KAAK,mBAAmB,CAAC;QACzB,KAAK,MAAM,CAAC;QACZ,KAAK,iBAAiB,CAAC;QACvB,KAAK,WAAW;YACd,OAAO,IAAI,CAAC;KACf;IACD,MAAM,IAAI,KAAK,CACb,kBAAkB,UAAU,cAAc,IAAI,yBAAyB,CACxE,CAAC;AACJ,CAAC;AAED,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAChD,KAAK,MAAM,aAAa,IAAI,qCAAiB,EAAE;QAC7C,iBAAiB;QACjB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3D,oBAAoB;QACpB,IACE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YACzC,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EACzC;YACA,gFAAgF;YAChF,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;SAC/C;QAED,uBAAuB;QACvB,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjD,MAAM,CAAC,aAAa,CAAC,WAAY,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,WAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3E,gEAAgE;QAChE,MAAM,UAAU,GAAG,IAAA,qCAAyB,EAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CACJ,kBAAkB,CAChB,aAAa,CAAC,IAAI,EAClB,UAAqC,CACtC,CACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACd;AACH,CAAC,CAAC,CAAC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n * @format\n */\n\nimport {commanderNameToOptionName} from '@react-native-windows/telemetry';\n\nimport {\n runWindowsOptions,\n RunWindowsOptions,\n} from '../commands/runWindows/runWindowsOptions';\n\n// eslint-disable-next-line complexity\nfunction validateOptionName(\n name: string,\n optionName: keyof RunWindowsOptions,\n): boolean {\n // Do not add a default case here. Every item must explicitly return true\n switch (optionName) {\n case 'release':\n case 'root':\n case 'arch':\n case 'singleproc':\n case 'emulator':\n case 'device':\n case 'target':\n case 'remoteDebugging':\n case 'logging':\n case 'packager':\n case 'bundle':\n case 'launch':\n case 'autolink':\n case 'build':\n case 'deploy':\n case 'deployFromLayout':\n case 'sln':\n case 'proj':\n case 'msbuildprops':\n case 'buildLogDirectory':\n case 'info':\n case 'directDebugging':\n case 'telemetry':\n return true;\n }\n throw new Error(\n `Unable to find ${optionName} to match '${name}' in RunWindowsOptions.`,\n );\n}\n\ntest('runWindowsOptions - validate options', () => {\n for (const commandOption of runWindowsOptions) {\n // Validate names\n expect(commandOption.name).not.toBeNull();\n expect(commandOption.name.startsWith('--')).toBe(true);\n expect(commandOption.name).toBe(commandOption.name.trim());\n\n // Validate defaults\n if (\n !commandOption.name.endsWith(' [string]') &&\n !commandOption.name.endsWith(' [number]')\n ) {\n // Commander ignores defaults for flags, so leave undefined to prevent confusion\n expect(commandOption.default).toBeUndefined();\n }\n\n // Validate description\n expect(commandOption.description).not.toBeNull();\n expect(commandOption.description!).toBe(commandOption.description!.trim());\n\n // Validate all command options are present in RunWindowsOptions\n const optionName = commanderNameToOptionName(commandOption.name);\n expect(\n validateOptionName(\n commandOption.name,\n optionName as keyof RunWindowsOptions,\n ),\n ).toBe(true);\n }\n});\n"]}
1
+ {"version":3,"file":"runWindows.test.js","sourceRoot":"","sources":["../../src/e2etest/runWindows.test.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAEH,+DAA0E;AAE1E,gFAGkD;AAElD,sCAAsC;AACtC,SAAS,kBAAkB,CACzB,IAAY,EACZ,UAAmC;IAEnC,yEAAyE;IACzE,QAAQ,UAAU,EAAE;QAClB,KAAK,SAAS,CAAC;QACf,KAAK,MAAM,CAAC;QACZ,KAAK,MAAM,CAAC;QACZ,KAAK,YAAY,CAAC;QAClB,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,SAAS,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO,CAAC;QACb,KAAK,QAAQ,CAAC;QACd,KAAK,kBAAkB,CAAC;QACxB,KAAK,KAAK,CAAC;QACX,KAAK,MAAM,CAAC;QACZ,KAAK,cAAc,CAAC;QACpB,KAAK,mBAAmB,CAAC;QACzB,KAAK,MAAM,CAAC;QACZ,KAAK,iBAAiB,CAAC;QACvB,KAAK,WAAW;YACd,OAAO,IAAI,CAAC;KACf;IACD,MAAM,IAAI,KAAK,CACb,kBAAkB,UAAU,cAAc,IAAI,yBAAyB,CACxE,CAAC;AACJ,CAAC;AAED,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAChD,KAAK,MAAM,aAAa,IAAI,qCAAiB,EAAE;QAC7C,iBAAiB;QACjB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3D,oBAAoB;QACpB,IACE,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;YACzC,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EACzC;YACA,gFAAgF;YAChF,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;SAC/C;QAED,uBAAuB;QACvB,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACjD,MAAM,CAAC,aAAa,CAAC,WAAY,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,WAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QAE3E,gEAAgE;QAChE,MAAM,UAAU,GAAG,IAAA,qCAAyB,EAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACjE,MAAM,CACJ,kBAAkB,CAChB,aAAa,CAAC,IAAI,EAClB,UAAqC,CACtC,CACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACd;AACH,CAAC,CAAC,CAAC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n * @format\n */\n\nimport {commanderNameToOptionName} from '@react-native-windows/telemetry';\n\nimport {\n runWindowsOptions,\n RunWindowsOptions,\n} from '../commands/runWindows/runWindowsOptions';\n\n// eslint-disable-next-line complexity\nfunction validateOptionName(\n name: string,\n optionName: keyof RunWindowsOptions,\n): boolean {\n // Do not add a default case here. Every item must explicitly return true\n switch (optionName) {\n case 'release':\n case 'root':\n case 'arch':\n case 'singleproc':\n case 'emulator':\n case 'device':\n case 'target':\n case 'logging':\n case 'packager':\n case 'bundle':\n case 'launch':\n case 'autolink':\n case 'build':\n case 'deploy':\n case 'deployFromLayout':\n case 'sln':\n case 'proj':\n case 'msbuildprops':\n case 'buildLogDirectory':\n case 'info':\n case 'directDebugging':\n case 'telemetry':\n return true;\n }\n throw new Error(\n `Unable to find ${optionName} to match '${name}' in RunWindowsOptions.`,\n );\n}\n\ntest('runWindowsOptions - validate options', () => {\n for (const commandOption of runWindowsOptions) {\n // Validate names\n expect(commandOption.name).not.toBeNull();\n expect(commandOption.name.startsWith('--')).toBe(true);\n expect(commandOption.name).toBe(commandOption.name.trim());\n\n // Validate defaults\n if (\n !commandOption.name.endsWith(' [string]') &&\n !commandOption.name.endsWith(' [number]')\n ) {\n // Commander ignores defaults for flags, so leave undefined to prevent confusion\n expect(commandOption.default).toBeUndefined();\n }\n\n // Validate description\n expect(commandOption.description).not.toBeNull();\n expect(commandOption.description!).toBe(commandOption.description!.trim());\n\n // Validate all command options are present in RunWindowsOptions\n const optionName = commanderNameToOptionName(commandOption.name);\n expect(\n validateOptionName(\n commandOption.name,\n optionName as keyof RunWindowsOptions,\n ),\n ).toBe(true);\n }\n});\n"]}
@@ -94,15 +94,6 @@ async function copyProjectTemplateAndReplace(srcRootPath, destPath, newProjectNa
94
94
  if (options.experimentalNuGetDependency) {
95
95
  console.log('Using experimental NuGet dependency.');
96
96
  }
97
- const experimentalPropsPath = path_1.default.join(destPath, windowsDir, 'ExperimentalFeatures.props');
98
- let existingUseHermes = null;
99
- if (fs_1.default.existsSync(experimentalPropsPath)) {
100
- existingUseHermes = (0, configUtils_1.tryFindPropertyValueAsBoolean)((0, configUtils_1.readProjectFile)(experimentalPropsPath), 'UseHermes');
101
- }
102
- if (existingUseHermes === false) {
103
- console.warn('Hermes is now the default JS engine and will be enabled for this project. Support for Chakra will be deprecated in the future. To disable Hermes and keep using Chakra for now, see https://microsoft.github.io/react-native-windows/docs/hermes#disabling-hermes.');
104
- }
105
- options.useHermes = true;
106
97
  if (options.useWinUI3) {
107
98
  throw new telemetry_1.CodedError('IncompatibleOptions', 'Experimental WinUI 3 project has been deprecated.');
108
99
  }
@@ -152,7 +143,6 @@ async function copyProjectTemplateAndReplace(srcRootPath, destPath, newProjectNa
152
143
  nuGetADOFeed: true || nugetVersion.startsWith('0.0.0-'),
153
144
  // cpp template variables
154
145
  useWinUI3: options.useWinUI3,
155
- useHermes: options.useHermes,
156
146
  cppNugetPackages: cppNugetPackages,
157
147
  // cs template variables
158
148
  csNugetPackages: csNugetPackages,