@react-native-windows/cli 0.0.0-canary.11 → 0.0.0-canary.113

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +49 -0
  2. package/lib-commonjs/config/configUtils.d.ts +25 -2
  3. package/lib-commonjs/config/configUtils.js +119 -30
  4. package/lib-commonjs/config/configUtils.js.map +1 -1
  5. package/lib-commonjs/config/dependencyConfig.js +101 -44
  6. package/lib-commonjs/config/dependencyConfig.js.map +1 -1
  7. package/lib-commonjs/config/projectConfig.d.ts +4 -1
  8. package/lib-commonjs/config/projectConfig.js +68 -12
  9. package/lib-commonjs/config/projectConfig.js.map +1 -1
  10. package/lib-commonjs/e2etest/autolink.test.d.ts +6 -0
  11. package/lib-commonjs/e2etest/autolink.test.js +435 -0
  12. package/lib-commonjs/e2etest/autolink.test.js.map +1 -0
  13. package/lib-commonjs/e2etest/dependencyConfig.test.d.ts +6 -0
  14. package/lib-commonjs/e2etest/dependencyConfig.test.js +162 -0
  15. package/lib-commonjs/e2etest/dependencyConfig.test.js.map +1 -0
  16. package/lib-commonjs/e2etest/projectConfig.test.d.ts +6 -0
  17. package/lib-commonjs/e2etest/projectConfig.test.js +123 -0
  18. package/lib-commonjs/e2etest/projectConfig.test.js.map +1 -0
  19. package/lib-commonjs/e2etest/projectConfig.utils.d.ts +4 -0
  20. package/lib-commonjs/e2etest/projectConfig.utils.js +56 -0
  21. package/lib-commonjs/e2etest/projectConfig.utils.js.map +1 -0
  22. package/lib-commonjs/e2etest/runWindows.test.d.ts +6 -0
  23. package/lib-commonjs/e2etest/runWindows.test.js +61 -0
  24. package/lib-commonjs/e2etest/runWindows.test.js.map +1 -0
  25. package/lib-commonjs/generator-common/index.d.ts +16 -0
  26. package/lib-commonjs/generator-common/index.js +65 -44
  27. package/lib-commonjs/generator-common/index.js.map +1 -1
  28. package/lib-commonjs/generator-windows/index.d.ts +2 -2
  29. package/lib-commonjs/generator-windows/index.js +248 -155
  30. package/lib-commonjs/generator-windows/index.js.map +1 -1
  31. package/lib-commonjs/healthChecks.d.ts +2 -0
  32. package/lib-commonjs/healthChecks.js +88 -0
  33. package/lib-commonjs/healthChecks.js.map +1 -0
  34. package/lib-commonjs/index.d.ts +5 -0
  35. package/lib-commonjs/index.js +24 -8
  36. package/lib-commonjs/index.js.map +1 -1
  37. package/lib-commonjs/runWindows/runWindows.js +211 -53
  38. package/lib-commonjs/runWindows/runWindows.js.map +1 -1
  39. package/lib-commonjs/runWindows/runWindowsOptions.d.ts +14 -10
  40. package/lib-commonjs/runWindows/runWindowsOptions.js +16 -12
  41. package/lib-commonjs/runWindows/runWindowsOptions.js.map +1 -1
  42. package/lib-commonjs/runWindows/utils/autolink.d.ts +88 -1
  43. package/lib-commonjs/runWindows/utils/autolink.js +596 -265
  44. package/lib-commonjs/runWindows/utils/autolink.js.map +1 -1
  45. package/lib-commonjs/runWindows/utils/build.d.ts +1 -2
  46. package/lib-commonjs/runWindows/utils/build.js +25 -32
  47. package/lib-commonjs/runWindows/utils/build.js.map +1 -1
  48. package/lib-commonjs/runWindows/utils/checkRequirements.js +12 -8
  49. package/lib-commonjs/runWindows/utils/checkRequirements.js.map +1 -1
  50. package/lib-commonjs/runWindows/utils/commandWithProgress.d.ts +11 -3
  51. package/lib-commonjs/runWindows/utils/commandWithProgress.js +60 -25
  52. package/lib-commonjs/runWindows/utils/commandWithProgress.js.map +1 -1
  53. package/lib-commonjs/runWindows/utils/deploy.d.ts +1 -1
  54. package/lib-commonjs/runWindows/utils/deploy.js +167 -85
  55. package/lib-commonjs/runWindows/utils/deploy.js.map +1 -1
  56. package/lib-commonjs/runWindows/utils/info.js +5 -2
  57. package/lib-commonjs/runWindows/utils/info.js.map +1 -1
  58. package/lib-commonjs/runWindows/utils/msbuildtools.d.ts +10 -5
  59. package/lib-commonjs/runWindows/utils/msbuildtools.js +98 -61
  60. package/lib-commonjs/runWindows/utils/msbuildtools.js.map +1 -1
  61. package/lib-commonjs/runWindows/utils/telemetryHelpers.d.ts +29 -0
  62. package/lib-commonjs/runWindows/utils/telemetryHelpers.js +109 -0
  63. package/lib-commonjs/runWindows/utils/telemetryHelpers.js.map +1 -0
  64. package/lib-commonjs/runWindows/utils/version.d.ts +4 -4
  65. package/lib-commonjs/runWindows/utils/version.js +1 -1
  66. package/lib-commonjs/runWindows/utils/version.js.map +1 -1
  67. package/lib-commonjs/runWindows/utils/vsInstalls.d.ts +4 -1
  68. package/lib-commonjs/runWindows/utils/vsInstalls.js +22 -7
  69. package/lib-commonjs/runWindows/utils/vsInstalls.js.map +1 -1
  70. package/lib-commonjs/runWindows/utils/vstools.d.ts +1 -0
  71. package/lib-commonjs/runWindows/utils/vstools.js +42 -29
  72. package/lib-commonjs/runWindows/utils/vstools.js.map +1 -1
  73. package/lib-commonjs/runWindows/utils/winappdeploytool.d.ts +3 -3
  74. package/lib-commonjs/runWindows/utils/winappdeploytool.js +19 -16
  75. package/lib-commonjs/runWindows/utils/winappdeploytool.js.map +1 -1
  76. package/package.json +42 -25
  77. package/powershell/Add-AppDevPackage.ps1 +2 -2
  78. package/powershell/WindowsStoreAppUtils.ps1 +10 -0
  79. package/CHANGELOG.json +0 -170
  80. package/CHANGELOG.md +0 -85
@@ -4,20 +4,24 @@
4
4
  * Licensed under the MIT License.
5
5
  * @format
6
6
  */
7
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
7
10
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.copyAndReplaceAll = exports.copyAndReplaceWithChangedCallback = exports.createDir = exports.resolveContents = void 0;
9
- const fs = require("fs");
10
- const chalk = require("chalk");
11
- const inquirer = require("inquirer");
12
- const path = require("path");
13
- const mustache = require("mustache");
11
+ exports.copyAndReplaceAll = exports.copyAndReplaceWithChangedCallback = exports.createDir = exports.copyAndReplace = exports.resolveContents = void 0;
12
+ const fs_1 = __importDefault(require("@react-native-windows/fs"));
13
+ const chalk_1 = __importDefault(require("chalk"));
14
+ const prompts_1 = __importDefault(require("prompts"));
15
+ const path_1 = __importDefault(require("path"));
16
+ const mustache_1 = __importDefault(require("mustache"));
17
+ const telemetry_1 = require("@react-native-windows/telemetry");
14
18
  function walk(current) {
15
- if (!fs.lstatSync(current).isDirectory()) {
19
+ if (!fs_1.default.lstatSync(current).isDirectory()) {
16
20
  return [current];
17
21
  }
18
- const files = fs
22
+ const files = fs_1.default
19
23
  .readdirSync(current)
20
- .map(child => walk(path.join(current, child)));
24
+ .map((child) => walk(path_1.default.join(current, child)));
21
25
  const result = [];
22
26
  return result.concat.apply([current], files);
23
27
  }
@@ -28,15 +32,31 @@ function walk(current) {
28
32
  * @return The contents of the file with the replacements applied.
29
33
  */
30
34
  function resolveContents(srcPath, replacements) {
31
- let content = fs.readFileSync(srcPath, 'utf8');
35
+ let content = fs_1.default.readFileSync(srcPath, 'utf8');
36
+ if (content.includes('\r\n')) {
37
+ // CRLF file, make sure multiline replacements are also CRLF
38
+ for (const key of Object.keys(replacements)) {
39
+ if (typeof replacements[key] === 'string') {
40
+ replacements[key] = replacements[key].replace(/(?<!\r)\n/g, '\r\n');
41
+ }
42
+ }
43
+ }
44
+ else {
45
+ // LF file, make sure multiline replacements are also LF
46
+ for (const key of Object.keys(replacements)) {
47
+ if (typeof replacements[key] === 'string') {
48
+ replacements[key] = replacements[key].replace(/\r\n/g, '\n');
49
+ }
50
+ }
51
+ }
32
52
  if (replacements.useMustache) {
33
- content = mustache.render(content, replacements);
34
- (replacements.regExpPatternsToRemove || []).forEach(regexPattern => {
53
+ content = mustache_1.default.render(content, replacements);
54
+ (replacements.regExpPatternsToRemove || []).forEach((regexPattern) => {
35
55
  content = content.replace(new RegExp(regexPattern, 'g'), '');
36
56
  });
37
57
  }
38
58
  else {
39
- Object.keys(replacements).forEach(regex => {
59
+ Object.keys(replacements).forEach((regex) => {
40
60
  content = content.replace(new RegExp(regex, 'g'), replacements[regex]);
41
61
  });
42
62
  }
@@ -58,22 +78,22 @@ const binaryExtensions = ['.png', '.jar', '.keystore'];
58
78
  * Function(path, 'identical' | 'changed' | 'new') => 'keep' | 'overwrite'
59
79
  */
60
80
  async function copyAndReplace(srcPath, destPath, replacements, contentChangedCallback) {
61
- if (fs.lstatSync(srcPath).isDirectory()) {
62
- if (!fs.existsSync(destPath)) {
63
- fs.mkdirSync(destPath);
81
+ if (fs_1.default.lstatSync(srcPath).isDirectory()) {
82
+ if (!fs_1.default.existsSync(destPath)) {
83
+ fs_1.default.mkdirSync(destPath);
64
84
  }
65
85
  // Not recursive
66
86
  return;
67
87
  }
68
- const extension = path.extname(srcPath);
69
- if (binaryExtensions.indexOf(extension) !== -1) {
88
+ const extension = path_1.default.extname(srcPath);
89
+ if (binaryExtensions.includes(extension)) {
70
90
  // Binary file
71
91
  let shouldOverwrite = 'overwrite';
72
92
  if (contentChangedCallback) {
73
- const newContentBuffer = fs.readFileSync(srcPath);
93
+ const newContentBuffer = fs_1.default.readFileSync(srcPath);
74
94
  let contentChanged = 'identical';
75
95
  try {
76
- const origContentBuffer = fs.readFileSync(destPath);
96
+ const origContentBuffer = fs_1.default.readFileSync(destPath);
77
97
  if (Buffer.compare(origContentBuffer, newContentBuffer) !== 0) {
78
98
  contentChanged = 'changed';
79
99
  }
@@ -89,7 +109,7 @@ async function copyAndReplace(srcPath, destPath, replacements, contentChangedCal
89
109
  shouldOverwrite = await contentChangedCallback(destPath, contentChanged);
90
110
  }
91
111
  if (shouldOverwrite === 'overwrite') {
92
- copyBinaryFile(srcPath, destPath, err => {
112
+ copyBinaryFile(srcPath, destPath, (err) => {
93
113
  if (err) {
94
114
  throw err;
95
115
  }
@@ -98,14 +118,14 @@ async function copyAndReplace(srcPath, destPath, replacements, contentChangedCal
98
118
  }
99
119
  else {
100
120
  // Text file
101
- const srcPermissions = fs.statSync(srcPath).mode;
102
- let content = resolveContents(srcPath, replacements);
121
+ const srcPermissions = fs_1.default.statSync(srcPath).mode;
122
+ const content = resolveContents(srcPath, replacements);
103
123
  let shouldOverwrite = 'overwrite';
104
124
  if (contentChangedCallback) {
105
125
  // Check if contents changed and ask to overwrite
106
126
  let contentChanged = 'identical';
107
127
  try {
108
- const origContent = fs.readFileSync(destPath, 'utf8');
128
+ const origContent = fs_1.default.readFileSync(destPath, 'utf8');
109
129
  if (content !== origContent) {
110
130
  // logger.info('Content changed: ' + destPath);
111
131
  contentChanged = 'changed';
@@ -122,27 +142,28 @@ async function copyAndReplace(srcPath, destPath, replacements, contentChangedCal
122
142
  shouldOverwrite = await contentChangedCallback(destPath, contentChanged);
123
143
  }
124
144
  if (shouldOverwrite === 'overwrite') {
125
- fs.writeFileSync(destPath, content, {
145
+ fs_1.default.writeFileSync(destPath, content, {
126
146
  encoding: 'utf8',
127
147
  mode: srcPermissions,
128
148
  });
129
149
  }
130
150
  }
131
151
  }
152
+ exports.copyAndReplace = copyAndReplace;
132
153
  /**
133
154
  * Same as 'cp' on Unix. Don't do any replacements.
134
155
  */
135
156
  function copyBinaryFile(srcPath, destPath, cb) {
136
157
  let cbCalled = false;
137
- const srcPermissions = fs.statSync(srcPath).mode;
138
- const readStream = fs.createReadStream(srcPath);
139
- readStream.on('error', err => {
158
+ const srcPermissions = fs_1.default.statSync(srcPath).mode;
159
+ const readStream = fs_1.default.createReadStream(srcPath);
160
+ readStream.on('error', (err) => {
140
161
  done(err);
141
162
  });
142
- const writeStream = fs.createWriteStream(destPath, {
163
+ const writeStream = fs_1.default.createWriteStream(destPath, {
143
164
  mode: srcPermissions,
144
165
  });
145
- writeStream.on('error', err => {
166
+ writeStream.on('error', (err) => {
146
167
  done(err);
147
168
  });
148
169
  writeStream.on('close', () => {
@@ -157,8 +178,8 @@ function copyBinaryFile(srcPath, destPath, cb) {
157
178
  }
158
179
  }
159
180
  function createDir(destPath) {
160
- if (!fs.existsSync(destPath)) {
161
- fs.mkdirSync(destPath);
181
+ if (!fs_1.default.existsSync(destPath)) {
182
+ fs_1.default.mkdirSync(destPath);
162
183
  }
163
184
  }
164
185
  exports.createDir = createDir;
@@ -169,54 +190,54 @@ async function copyAndReplaceWithChangedCallback(srcPath, destRoot, relativeDest
169
190
  const contentChangedCallback = alwaysOverwrite
170
191
  ? (_, contentChanged) => alwaysOverwriteContentChangedCallback(srcPath, relativeDestPath, contentChanged)
171
192
  : (_, contentChanged) => upgradeFileContentChangedCallback(srcPath, relativeDestPath, contentChanged);
172
- await copyAndReplace(srcPath, path.join(destRoot, relativeDestPath), replacements, contentChangedCallback);
193
+ await copyAndReplace(srcPath, path_1.default.join(destRoot, relativeDestPath), replacements, contentChangedCallback);
173
194
  }
174
195
  exports.copyAndReplaceWithChangedCallback = copyAndReplaceWithChangedCallback;
175
196
  async function copyAndReplaceAll(srcPath, destPath, relativeDestDir, replacements, alwaysOverwrite) {
176
197
  for (const absoluteSrcFilePath of walk(srcPath)) {
177
- const filename = path.relative(srcPath, absoluteSrcFilePath);
178
- const relativeDestPath = path.join(relativeDestDir, filename);
198
+ const filename = path_1.default.relative(srcPath, absoluteSrcFilePath);
199
+ const relativeDestPath = path_1.default.join(relativeDestDir, filename);
179
200
  await copyAndReplaceWithChangedCallback(absoluteSrcFilePath, destPath, relativeDestPath, replacements, alwaysOverwrite);
180
201
  }
181
202
  }
182
203
  exports.copyAndReplaceAll = copyAndReplaceAll;
183
204
  async function alwaysOverwriteContentChangedCallback(absoluteSrcFilePath, relativeDestPath, contentChanged) {
184
205
  if (contentChanged === 'new') {
185
- console.log(`${chalk.bold('new')} ${relativeDestPath}`);
206
+ console.log(`${chalk_1.default.bold('new')} ${relativeDestPath}`);
186
207
  return 'overwrite';
187
208
  }
188
209
  if (contentChanged === 'changed') {
189
- console.log(`${chalk.bold('changed')} ${relativeDestPath} ${chalk.yellow('[overwriting]')}`);
210
+ console.log(`${chalk_1.default.bold('changed')} ${relativeDestPath} ${chalk_1.default.yellow('[overwriting]')}`);
190
211
  return 'overwrite';
191
212
  }
192
213
  if (contentChanged === 'identical') {
193
214
  return 'keep';
194
215
  }
195
- throw new Error(`Unknown file changed state: ${relativeDestPath}, ${contentChanged}`);
216
+ throw new telemetry_1.CodedError('Autolinking', `Unknown file changed state: ${relativeDestPath}, ${contentChanged}`);
196
217
  }
197
218
  async function upgradeFileContentChangedCallback(absoluteSrcFilePath, relativeDestPath, contentChanged) {
198
219
  if (contentChanged === 'new') {
199
- console.log(`${chalk.bold('new')} ${relativeDestPath}`);
220
+ console.log(`${chalk_1.default.bold('new')} ${relativeDestPath}`);
200
221
  return 'overwrite';
201
222
  }
202
223
  if (contentChanged === 'changed') {
203
- console.log(`${chalk.bold(relativeDestPath)} ` +
224
+ console.log(`${chalk_1.default.bold(relativeDestPath)} ` +
204
225
  `has changed in the new version.\nDo you want to keep your ${relativeDestPath} or replace it with the ` +
205
226
  'latest version?\nMake sure you have any changes you made to this file saved somewhere.\n' +
206
227
  `You can see the new version here: ${absoluteSrcFilePath}`);
207
- const { shoudReplace } = await inquirer.prompt([
228
+ const { shouldReplace } = await (0, prompts_1.default)([
208
229
  {
209
230
  name: 'shouldReplace',
210
231
  type: 'confirm',
211
232
  message: `Do you want to replace ${relativeDestPath}?`,
212
- default: false,
233
+ initial: false,
213
234
  },
214
235
  ]);
215
- return shoudReplace ? 'overwrite' : 'keep';
236
+ return shouldReplace ? 'overwrite' : 'keep';
216
237
  }
217
238
  if (contentChanged === 'identical') {
218
239
  return 'keep';
219
240
  }
220
- throw new Error(`Unknown file changed state: ${relativeDestPath}, ${contentChanged}`);
241
+ throw new telemetry_1.CodedError('Autolinking', `Unknown file changed state: ${relativeDestPath}, ${contentChanged}`);
221
242
  }
222
243
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator-common/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/generator-common/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;AAEH,kEAA0C;AAC1C,kDAA0B;AAC1B,sDAA8B;AAC9B,gDAAwB;AACxB,wDAAgC;AAChC,+DAA2D;AAW3D,SAAS,IAAI,CAAC,OAAe;IAC3B,IAAI,CAAC,YAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QACxC,OAAO,CAAC,OAAO,CAAC,CAAC;KAClB;IAED,MAAM,KAAK,GAAG,YAAE;SACb,WAAW,CAAC,OAAO,CAAC;SACpB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAC7B,OAAe,EACf,YAA0B;IAE1B,IAAI,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;QAC5B,4DAA4D;QAC5D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC3C,IAAI,OAAO,YAAY,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;gBACzC,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;aACrE;SACF;KACF;SAAM;QACL,wDAAwD;QACxD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;YAC3C,IAAI,OAAO,YAAY,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE;gBACzC,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aAC9D;SACF;KACF;IAED,IAAI,YAAY,CAAC,WAAW,EAAE;QAC5B,OAAO,GAAG,kBAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACjD,CAAC,YAAY,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YACnE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC1C,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;KACJ;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAjCD,0CAiCC;AAED,6DAA6D;AAC7D,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AASvD;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,cAAc,CAClC,OAAe,EACf,QAAgB,EAChB,YAA0B,EAC1B,sBAAqD;IAErD,IAAI,YAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;QACvC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC5B,YAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;SACxB;QACD,gBAAgB;QAChB,OAAO;KACR;IAED,MAAM,SAAS,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,gBAAgB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;QACxC,cAAc;QACd,IAAI,eAAe,GAAG,WAAW,CAAC;QAClC,IAAI,sBAAsB,EAAE;YAC1B,MAAM,gBAAgB,GAAG,YAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,cAAc,GAAiC,WAAW,CAAC;YAC/D,IAAI;gBACF,MAAM,iBAAiB,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE;oBAC7D,cAAc,GAAG,SAAS,CAAC;iBAC5B;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACpD,cAAc,GAAG,KAAK,CAAC;iBACxB;qBAAM;oBACL,MAAM,GAAG,CAAC;iBACX;aACF;YACD,eAAe,GAAG,MAAM,sBAAsB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;SAC1E;QACD,IAAI,eAAe,KAAK,WAAW,EAAE;YACnC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;gBACxC,IAAI,GAAG,EAAE;oBACP,MAAM,GAAG,CAAC;iBACX;YACH,CAAC,CAAC,CAAC;SACJ;KACF;SAAM;QACL,YAAY;QACZ,MAAM,cAAc,GAAG,YAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;QACjD,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAEvD,IAAI,eAAe,GAAG,WAAW,CAAC;QAClC,IAAI,sBAAsB,EAAE;YAC1B,iDAAiD;YACjD,IAAI,cAAc,GAAiC,WAAW,CAAC;YAC/D,IAAI;gBACF,MAAM,WAAW,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBACtD,IAAI,OAAO,KAAK,WAAW,EAAE;oBAC3B,+CAA+C;oBAC/C,cAAc,GAAG,SAAS,CAAC;iBAC5B;aACF;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACpD,cAAc,GAAG,KAAK,CAAC;iBACxB;qBAAM;oBACL,MAAM,GAAG,CAAC;iBACX;aACF;YACD,eAAe,GAAG,MAAM,sBAAsB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;SAC1E;QACD,IAAI,eAAe,KAAK,WAAW,EAAE;YACnC,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE;gBAClC,QAAQ,EAAE,MAAM;gBAChB,IAAI,EAAE,cAAc;aACrB,CAAC,CAAC;SACJ;KACF;AACH,CAAC;AAzED,wCAyEC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,OAAe,EACf,QAAgB,EAChB,EAAyB;IAEzB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,cAAc,GAAG,YAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;IACjD,MAAM,UAAU,GAAG,YAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,YAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE;QACjD,IAAI,EAAE,cAAc;KACrB,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;QAC9B,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC;IACH,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QAC3B,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IACH,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7B,SAAS,IAAI,CAAC,GAAW;QACvB,IAAI,CAAC,QAAQ,EAAE;YACb,EAAE,CAAC,GAAG,CAAC,CAAC;YACR,QAAQ,GAAG,IAAI,CAAC;SACjB;IACH,CAAC;AACH,CAAC;AAED,SAAgB,SAAS,CAAC,QAAgB;IACxC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QAC5B,YAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;KACxB;AACH,CAAC;AAJD,8BAIC;AAEM,KAAK,UAAU,iCAAiC,CACrD,OAAe,EACf,QAAgB,EAChB,gBAAwB,EACxB,YAAqC,EACrC,eAAyB;IAEzB,IAAI,CAAC,YAAY,EAAE;QACjB,YAAY,GAAG,EAAE,CAAC;KACnB;IACD,MAAM,sBAAsB,GAA2B,eAAe;QACpE,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,CACpB,qCAAqC,CACnC,OAAO,EACP,gBAAgB,EAChB,cAAc,CACf;QACL,CAAC,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,EAAE,CACpB,iCAAiC,CAC/B,OAAO,EACP,gBAAgB,EAChB,cAAc,CACf,CAAC;IAER,MAAM,cAAc,CAClB,OAAO,EACP,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EACrC,YAAY,EACZ,sBAAsB,CACvB,CAAC;AACJ,CAAC;AA9BD,8EA8BC;AAEM,KAAK,UAAU,iBAAiB,CACrC,OAAe,EACf,QAAgB,EAChB,eAAuB,EACvB,YAA0B,EAC1B,eAAwB;IAExB,KAAK,MAAM,mBAAmB,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE;QAC/C,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;QAC7D,MAAM,gBAAgB,GAAG,cAAI,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC9D,MAAM,iCAAiC,CACrC,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,YAAY,EACZ,eAAe,CAChB,CAAC;KACH;AACH,CAAC;AAlBD,8CAkBC;AAED,KAAK,UAAU,qCAAqC,CAClD,mBAA2B,EAC3B,gBAAwB,EACxB,cAA4C;IAE5C,IAAI,cAAc,KAAK,KAAK,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;QACxD,OAAO,WAAW,CAAC;KACpB;IACD,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,OAAO,CAAC,GAAG,CACT,GAAG,eAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,gBAAgB,IAAI,eAAK,CAAC,MAAM,CAC1D,eAAe,CAChB,EAAE,CACJ,CAAC;QACF,OAAO,WAAW,CAAC;KACpB;IACD,IAAI,cAAc,KAAK,WAAW,EAAE;QAClC,OAAO,MAAM,CAAC;KACf;IACD,MAAM,IAAI,sBAAU,CAClB,aAAa,EACb,+BAA+B,gBAAgB,KAAK,cAAc,EAAE,CACrE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iCAAiC,CAC9C,mBAA2B,EAC3B,gBAAwB,EACxB,cAA4C;IAE5C,IAAI,cAAc,KAAK,KAAK,EAAE;QAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;QACxD,OAAO,WAAW,CAAC;KACpB;IACD,IAAI,cAAc,KAAK,SAAS,EAAE;QAChC,OAAO,CAAC,GAAG,CACT,GAAG,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG;YAChC,6DAA6D,gBAAgB,0BAA0B;YACvG,0FAA0F;YAC1F,qCAAqC,mBAAmB,EAAE,CAC7D,CAAC;QAEF,MAAM,EAAC,aAAa,EAAC,GAAG,MAAM,IAAA,iBAAO,EAAC;YACpC;gBACE,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,0BAA0B,gBAAgB,GAAG;gBACtD,OAAO,EAAE,KAAK;aACf;SACF,CAAC,CAAC;QAEH,OAAO,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;KAC7C;IACD,IAAI,cAAc,KAAK,WAAW,EAAE;QAClC,OAAO,MAAM,CAAC;KACf;IACD,MAAM,IAAI,sBAAU,CAClB,aAAa,EACb,+BAA+B,gBAAgB,KAAK,cAAc,EAAE,CACrE,CAAC;AACJ,CAAC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nimport fs from '@react-native-windows/fs';\nimport chalk from 'chalk';\nimport prompts from 'prompts';\nimport path from 'path';\nimport mustache from 'mustache';\nimport {CodedError} from '@react-native-windows/telemetry';\n\n/**\n * Text to replace, + config options\n */\nexport type Replacements = {\n useMustache?: boolean;\n regExpPatternsToRemove?: RegExp[];\n [key: string]: any;\n};\n\nfunction walk(current: string): string[] {\n if (!fs.lstatSync(current).isDirectory()) {\n return [current];\n }\n\n const files = fs\n .readdirSync(current)\n .map((child) => walk(path.join(current, child)));\n const result: string[] = [];\n return result.concat.apply([current], files);\n}\n\n/**\n * Get a source file and replace parts of its contents.\n * @param srcPath Path to the source file.\n * @param replacements e.g. {'TextToBeReplaced': 'Replacement'}\n * @return The contents of the file with the replacements applied.\n */\nexport function resolveContents(\n srcPath: string,\n replacements: Replacements,\n): string {\n let content = fs.readFileSync(srcPath, 'utf8');\n\n if (content.includes('\\r\\n')) {\n // CRLF file, make sure multiline replacements are also CRLF\n for (const key of Object.keys(replacements)) {\n if (typeof replacements[key] === 'string') {\n replacements[key] = replacements[key].replace(/(?<!\\r)\\n/g, '\\r\\n');\n }\n }\n } else {\n // LF file, make sure multiline replacements are also LF\n for (const key of Object.keys(replacements)) {\n if (typeof replacements[key] === 'string') {\n replacements[key] = replacements[key].replace(/\\r\\n/g, '\\n');\n }\n }\n }\n\n if (replacements.useMustache) {\n content = mustache.render(content, replacements);\n (replacements.regExpPatternsToRemove || []).forEach((regexPattern) => {\n content = content.replace(new RegExp(regexPattern, 'g'), '');\n });\n } else {\n Object.keys(replacements).forEach((regex) => {\n content = content.replace(new RegExp(regex, 'g'), replacements[regex]);\n });\n }\n return content;\n}\n\n// Binary files, don't process these (avoid decoding as utf8)\nconst binaryExtensions = ['.png', '.jar', '.keystore'];\n\ntype ContentChangedCallbackOption = 'identical' | 'changed' | 'new' | null;\n\ntype ContentChangedCallback = (\n path: string,\n option: ContentChangedCallbackOption,\n) => Promise<'keep' | 'overwrite'>;\n\n/**\n * Copy a file to given destination, replacing parts of its contents.\n * @param srcPath Path to a file to be copied.\n * @param destPath Destination path.\n * @param replacements: e.g. {'TextToBeReplaced': 'Replacement'}\n * @param contentChangedCallback\n * Used when upgrading projects. Based on if file contents would change\n * when being replaced, allows the caller to specify whether the file\n * should be replaced or not.\n * If null, files will be overwritten.\n * Function(path, 'identical' | 'changed' | 'new') => 'keep' | 'overwrite'\n */\nexport async function copyAndReplace(\n srcPath: string,\n destPath: string,\n replacements: Replacements,\n contentChangedCallback: ContentChangedCallback | null,\n) {\n if (fs.lstatSync(srcPath).isDirectory()) {\n if (!fs.existsSync(destPath)) {\n fs.mkdirSync(destPath);\n }\n // Not recursive\n return;\n }\n\n const extension = path.extname(srcPath);\n if (binaryExtensions.includes(extension)) {\n // Binary file\n let shouldOverwrite = 'overwrite';\n if (contentChangedCallback) {\n const newContentBuffer = fs.readFileSync(srcPath);\n let contentChanged: ContentChangedCallbackOption = 'identical';\n try {\n const origContentBuffer = fs.readFileSync(destPath);\n if (Buffer.compare(origContentBuffer, newContentBuffer) !== 0) {\n contentChanged = 'changed';\n }\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === 'ENOENT') {\n contentChanged = 'new';\n } else {\n throw err;\n }\n }\n shouldOverwrite = await contentChangedCallback(destPath, contentChanged);\n }\n if (shouldOverwrite === 'overwrite') {\n copyBinaryFile(srcPath, destPath, (err) => {\n if (err) {\n throw err;\n }\n });\n }\n } else {\n // Text file\n const srcPermissions = fs.statSync(srcPath).mode;\n const content = resolveContents(srcPath, replacements);\n\n let shouldOverwrite = 'overwrite';\n if (contentChangedCallback) {\n // Check if contents changed and ask to overwrite\n let contentChanged: ContentChangedCallbackOption = 'identical';\n try {\n const origContent = fs.readFileSync(destPath, 'utf8');\n if (content !== origContent) {\n // logger.info('Content changed: ' + destPath);\n contentChanged = 'changed';\n }\n } catch (err) {\n if ((err as NodeJS.ErrnoException).code === 'ENOENT') {\n contentChanged = 'new';\n } else {\n throw err;\n }\n }\n shouldOverwrite = await contentChangedCallback(destPath, contentChanged);\n }\n if (shouldOverwrite === 'overwrite') {\n fs.writeFileSync(destPath, content, {\n encoding: 'utf8',\n mode: srcPermissions,\n });\n }\n }\n}\n\n/**\n * Same as 'cp' on Unix. Don't do any replacements.\n */\nfunction copyBinaryFile(\n srcPath: string,\n destPath: string,\n cb: (err?: Error) => void,\n) {\n let cbCalled = false;\n const srcPermissions = fs.statSync(srcPath).mode;\n const readStream = fs.createReadStream(srcPath);\n readStream.on('error', (err) => {\n done(err);\n });\n const writeStream = fs.createWriteStream(destPath, {\n mode: srcPermissions,\n });\n writeStream.on('error', (err) => {\n done(err);\n });\n writeStream.on('close', () => {\n done();\n });\n readStream.pipe(writeStream);\n function done(err?: Error) {\n if (!cbCalled) {\n cb(err);\n cbCalled = true;\n }\n }\n}\n\nexport function createDir(destPath: string) {\n if (!fs.existsSync(destPath)) {\n fs.mkdirSync(destPath);\n }\n}\n\nexport async function copyAndReplaceWithChangedCallback(\n srcPath: string,\n destRoot: string,\n relativeDestPath: string,\n replacements?: Record<string, string>,\n alwaysOverwrite?: boolean,\n) {\n if (!replacements) {\n replacements = {};\n }\n const contentChangedCallback: ContentChangedCallback = alwaysOverwrite\n ? (_, contentChanged) =>\n alwaysOverwriteContentChangedCallback(\n srcPath,\n relativeDestPath,\n contentChanged,\n )\n : (_, contentChanged) =>\n upgradeFileContentChangedCallback(\n srcPath,\n relativeDestPath,\n contentChanged,\n );\n\n await copyAndReplace(\n srcPath,\n path.join(destRoot, relativeDestPath),\n replacements,\n contentChangedCallback,\n );\n}\n\nexport async function copyAndReplaceAll(\n srcPath: string,\n destPath: string,\n relativeDestDir: string,\n replacements: Replacements,\n alwaysOverwrite: boolean,\n) {\n for (const absoluteSrcFilePath of walk(srcPath)) {\n const filename = path.relative(srcPath, absoluteSrcFilePath);\n const relativeDestPath = path.join(relativeDestDir, filename);\n await copyAndReplaceWithChangedCallback(\n absoluteSrcFilePath,\n destPath,\n relativeDestPath,\n replacements,\n alwaysOverwrite,\n );\n }\n}\n\nasync function alwaysOverwriteContentChangedCallback(\n absoluteSrcFilePath: string,\n relativeDestPath: string,\n contentChanged: ContentChangedCallbackOption,\n): Promise<'keep' | 'overwrite'> {\n if (contentChanged === 'new') {\n console.log(`${chalk.bold('new')} ${relativeDestPath}`);\n return 'overwrite';\n }\n if (contentChanged === 'changed') {\n console.log(\n `${chalk.bold('changed')} ${relativeDestPath} ${chalk.yellow(\n '[overwriting]',\n )}`,\n );\n return 'overwrite';\n }\n if (contentChanged === 'identical') {\n return 'keep';\n }\n throw new CodedError(\n 'Autolinking',\n `Unknown file changed state: ${relativeDestPath}, ${contentChanged}`,\n );\n}\n\nasync function upgradeFileContentChangedCallback(\n absoluteSrcFilePath: string,\n relativeDestPath: string,\n contentChanged: ContentChangedCallbackOption,\n): Promise<'keep' | 'overwrite'> {\n if (contentChanged === 'new') {\n console.log(`${chalk.bold('new')} ${relativeDestPath}`);\n return 'overwrite';\n }\n if (contentChanged === 'changed') {\n console.log(\n `${chalk.bold(relativeDestPath)} ` +\n `has changed in the new version.\\nDo you want to keep your ${relativeDestPath} or replace it with the ` +\n 'latest version?\\nMake sure you have any changes you made to this file saved somewhere.\\n' +\n `You can see the new version here: ${absoluteSrcFilePath}`,\n );\n\n const {shouldReplace} = await prompts([\n {\n name: 'shouldReplace',\n type: 'confirm',\n message: `Do you want to replace ${relativeDestPath}?`,\n initial: false,\n },\n ]);\n\n return shouldReplace ? 'overwrite' : 'keep';\n }\n if (contentChanged === 'identical') {\n return 'keep';\n }\n throw new CodedError(\n 'Autolinking',\n `Unknown file changed state: ${relativeDestPath}, ${contentChanged}`,\n );\n}\n"]}
@@ -5,6 +5,6 @@
5
5
  */
6
6
  import { GenerateOptions } from '..';
7
7
  export declare function copyProjectTemplateAndReplace(srcRootPath: string, destPath: string, newProjectName: string, namespace: string, options: GenerateOptions): Promise<void>;
8
- export declare function installDependencies(options: {
8
+ export declare function installScriptsAndDependencies(options: {
9
9
  verbose: boolean;
10
- }): void;
10
+ }): Promise<void>;