@capacitor/cli 6.2.0 → 7.0.0-alpha.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.
Files changed (52) hide show
  1. package/assets/android-template.tar.gz +0 -0
  2. package/assets/capacitor-cordova-android-plugins.tar.gz +0 -0
  3. package/assets/capacitor-cordova-ios-plugins.tar.gz +0 -0
  4. package/assets/ios-pods-template.tar.gz +0 -0
  5. package/assets/ios-spm-template.tar.gz +0 -0
  6. package/dist/android/build.js +1 -3
  7. package/dist/android/common.js +2 -5
  8. package/dist/android/doctor.js +7 -11
  9. package/dist/android/run.js +1 -1
  10. package/dist/android/update.js +12 -17
  11. package/dist/common.js +25 -25
  12. package/dist/config.js +4 -16
  13. package/dist/cordova.js +31 -63
  14. package/dist/declarations.d.ts +0 -24
  15. package/dist/framework-configs.js +14 -14
  16. package/dist/index.js +14 -14
  17. package/dist/ios/common.js +3 -8
  18. package/dist/ios/doctor.js +1 -5
  19. package/dist/ios/run.js +2 -4
  20. package/dist/ios/update.js +22 -35
  21. package/dist/ipc.js +2 -2
  22. package/dist/log.js +1 -3
  23. package/dist/plugin.js +4 -8
  24. package/dist/tasks/add.js +2 -9
  25. package/dist/tasks/build.js +4 -9
  26. package/dist/tasks/config.js +1 -4
  27. package/dist/tasks/copy.js +6 -13
  28. package/dist/tasks/create.js +1 -2
  29. package/dist/tasks/doctor.js +2 -7
  30. package/dist/tasks/init.js +10 -11
  31. package/dist/tasks/list.js +4 -4
  32. package/dist/tasks/migrate.js +13 -37
  33. package/dist/tasks/new-plugin.js +1 -2
  34. package/dist/tasks/open.js +1 -1
  35. package/dist/tasks/run.js +5 -6
  36. package/dist/tasks/sourcemaps.js +2 -3
  37. package/dist/tasks/sync.js +2 -6
  38. package/dist/tasks/telemetry.js +3 -2
  39. package/dist/tasks/update.js +1 -1
  40. package/dist/telemetry.js +7 -18
  41. package/dist/util/fs.js +1 -1
  42. package/dist/util/iosplugin.js +2 -3
  43. package/dist/util/livereload.js +3 -6
  44. package/dist/util/monorepotools.js +1 -2
  45. package/dist/util/promise.js +1 -1
  46. package/dist/util/spm.js +3 -5
  47. package/dist/util/subprocess.js +1 -7
  48. package/dist/util/term.js +1 -1
  49. package/dist/util/uuid.js +1 -1
  50. package/dist/util/xml.js +2 -4
  51. package/package.json +2 -2
  52. package/dist/web/copy.js +0 -22
package/dist/tasks/run.js CHANGED
@@ -15,8 +15,7 @@ const native_run_1 = require("../util/native-run");
15
15
  const sync_1 = require("./sync");
16
16
  async function runCommand(config, selectedPlatformName, options) {
17
17
  var _a, _b, _c, _d;
18
- options.host =
19
- (_b = (_a = options.host) !== null && _a !== void 0 ? _a : livereload_1.CapLiveReloadHelper.getIpAddress()) !== null && _b !== void 0 ? _b : 'localhost';
18
+ options.host = (_b = (_a = options.host) !== null && _a !== void 0 ? _a : livereload_1.CapLiveReloadHelper.getIpAddress()) !== null && _b !== void 0 ? _b : 'localhost';
20
19
  options.port = (_c = options.port) !== null && _c !== void 0 ? _c : '3000';
21
20
  if (selectedPlatformName && !(await (0, common_1.isValidPlatform)(selectedPlatformName))) {
22
21
  const platformDir = (0, common_1.resolvePlatform)(config, selectedPlatformName);
@@ -38,7 +37,7 @@ async function runCommand(config, selectedPlatformName, options) {
38
37
  }
39
38
  if (options.list) {
40
39
  const targets = await (0, native_run_1.getPlatformTargets)(platformName);
41
- const outputTargets = targets.map(t => {
40
+ const outputTargets = targets.map((t) => {
42
41
  var _a;
43
42
  return ({
44
43
  name: (0, common_1.getPlatformTargetName)(t),
@@ -51,7 +50,7 @@ async function runCommand(config, selectedPlatformName, options) {
51
50
  process.stdout.write(`${JSON.stringify(outputTargets)}\n`);
52
51
  }
53
52
  else {
54
- const rows = outputTargets.map(t => [t.name, t.api, t.id]);
53
+ const rows = outputTargets.map((t) => [t.name, t.api, t.id]);
55
54
  log_1.output.write(`${(0, utils_terminal_1.columnar)(rows, {
56
55
  headers: ['Name', 'API', 'Target ID'],
57
56
  vsep: ' ',
@@ -72,7 +71,7 @@ async function runCommand(config, selectedPlatformName, options) {
72
71
  }
73
72
  await run(config, platformName, options);
74
73
  if (options.liveReload) {
75
- new Promise(resolve => process.on('SIGINT', resolve))
74
+ new Promise((resolve) => process.on('SIGINT', resolve))
76
75
  .then(async () => {
77
76
  await livereload_1.CapLiveReloadHelper.revertCapConfigForLiveReload();
78
77
  if (platformName === config.android.name) {
@@ -109,7 +108,7 @@ async function run(config, platformName, options) {
109
108
  }
110
109
  exports.run = run;
111
110
  function createRunnablePlatformFilter(config) {
112
- return platform => platform === config.ios.name || platform === config.android.name;
111
+ return (platform) => platform === config.ios.name || platform === config.android.name;
113
112
  }
114
113
  async function sleepForever() {
115
114
  return new Promise(() => {
@@ -6,7 +6,7 @@ const path_1 = require("path");
6
6
  const log_1 = require("../log");
7
7
  function walkDirectory(dirPath) {
8
8
  const files = (0, utils_fs_1.readdirSync)(dirPath);
9
- files.forEach(file => {
9
+ files.forEach((file) => {
10
10
  const targetFile = (0, path_1.join)(dirPath, file);
11
11
  if ((0, utils_fs_1.existsSync)(targetFile) && (0, utils_fs_1.lstatSync)(targetFile).isDirectory()) {
12
12
  walkDirectory(targetFile);
@@ -16,8 +16,7 @@ function walkDirectory(dirPath) {
16
16
  if ((0, path_1.extname)(file) === '.js' && (0, utils_fs_1.existsSync)(mapFile)) {
17
17
  const bufMap = (0, utils_fs_1.readFileSync)(mapFile).toString('base64');
18
18
  const bufFile = (0, utils_fs_1.readFileSync)(targetFile, 'utf8');
19
- const result = bufFile.replace(`sourceMappingURL=${file}.map`, 'sourceMappingURL=data:application/json;charset=utf-8;base64,' +
20
- bufMap);
19
+ const result = bufFile.replace(`sourceMappingURL=${file}.map`, 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + bufMap);
21
20
  (0, utils_fs_1.writeFileSync)(targetFile, result);
22
21
  (0, utils_fs_1.unlinkSync)(mapFile);
23
22
  }
@@ -25,12 +25,8 @@ async function syncCommand(config, selectedPlatformName, deployment, inline = fa
25
25
  const then = +new Date();
26
26
  const platforms = await (0, common_1.selectPlatforms)(config, selectedPlatformName);
27
27
  try {
28
- await (0, common_1.check)([
29
- () => (0, common_1.checkPackage)(),
30
- () => (0, common_1.checkWebDir)(config),
31
- ...(0, update_1.updateChecks)(config, platforms),
32
- ]);
33
- await (0, promise_1.allSerial)(platforms.map(platformName => () => sync(config, platformName, deployment, inline)));
28
+ await (0, common_1.check)([() => (0, common_1.checkPackage)(), () => (0, common_1.checkWebDir)(config), ...(0, update_1.updateChecks)(config, platforms)]);
29
+ await (0, promise_1.allSerial)(platforms.map((platformName) => () => sync(config, platformName, deployment, inline)));
34
30
  const now = +new Date();
35
31
  const diff = (now - then) / 1000;
36
32
  log_1.logger.info(`Sync finished in ${diff}s`);
@@ -6,7 +6,8 @@ const colors_1 = tslib_1.__importDefault(require("../colors"));
6
6
  const errors_1 = require("../errors");
7
7
  const log_1 = require("../log");
8
8
  const sysconfig_1 = require("../sysconfig");
9
- const telemetry_1 = require("../telemetry");
9
+ const THANK_YOU = `\nThank you for helping to make Capacitor better! 💖` +
10
+ `\nInformation about the data we collect is available on our website: ${colors_1.default.strong('https://capacitorjs.com/telemetry')}\n`;
10
11
  async function telemetryCommand(onOrOff) {
11
12
  const sysconfig = await (0, sysconfig_1.readConfig)();
12
13
  const enabled = interpretEnabled(onOrOff);
@@ -18,7 +19,7 @@ async function telemetryCommand(onOrOff) {
18
19
  await (0, sysconfig_1.writeConfig)({ ...sysconfig, telemetry: enabled });
19
20
  (0, log_1.logSuccess)(`You have ${colors_1.default.strong(`opted ${enabled ? 'in' : 'out'}`)} ${enabled ? 'for' : 'of'} telemetry on this machine.`);
20
21
  if (enabled) {
21
- log_1.output.write(telemetry_1.THANK_YOU);
22
+ log_1.output.write(THANK_YOU);
22
23
  }
23
24
  }
24
25
  }
@@ -26,7 +26,7 @@ async function updateCommand(config, selectedPlatformName, deployment) {
26
26
  const platforms = await (0, common_1.selectPlatforms)(config, selectedPlatformName);
27
27
  try {
28
28
  await (0, common_1.check)([() => (0, common_1.checkPackage)(), ...updateChecks(config, platforms)]);
29
- await (0, promise_1.allSerial)(platforms.map(platformName => async () => await update(config, platformName, deployment)));
29
+ await (0, promise_1.allSerial)(platforms.map((platformName) => async () => await update(config, platformName, deployment)));
30
30
  const now = +new Date();
31
31
  const diff = (now - then) / 1000;
32
32
  log_1.logger.info(`Update finished in ${diff}s`);
package/dist/telemetry.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sendMetric = exports.telemetryAction = exports.THANK_YOU = void 0;
3
+ exports.sendMetric = exports.telemetryAction = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const commander_1 = require("commander");
6
6
  const debug_1 = tslib_1.__importDefault(require("debug"));
@@ -11,8 +11,9 @@ const sysconfig_1 = require("./sysconfig");
11
11
  const subprocess_1 = require("./util/subprocess");
12
12
  const term_1 = require("./util/term");
13
13
  const debug = (0, debug_1.default)('capacitor:telemetry');
14
- exports.THANK_YOU = `\nThank you for helping to make Capacitor better! 💖` +
15
- `\nInformation about the data we collect is available on our website: ${colors_1.default.strong('https://capacitorjs.com/telemetry')}\n`;
14
+ const THANK_YOU = `\nThank you for helping improve Capacitor by sharing anonymous usage data! 💖` +
15
+ `\nInformation about the data we collect is available on our website: ${colors_1.default.strong('https://capacitorjs.com/telemetry')}` +
16
+ `\nYou can disable telemetry at any time by using the ${colors_1.default.input('npx cap telemetry off')} command.`;
16
17
  function telemetryAction(config, action) {
17
18
  return async (...actionArgs) => {
18
19
  const start = new Date();
@@ -55,9 +56,10 @@ function telemetryAction(config, action) {
55
56
  if ((0, term_1.isInteractive)()) {
56
57
  let sysconfig = await (0, sysconfig_1.readConfig)();
57
58
  if (!error && typeof sysconfig.telemetry === 'undefined') {
58
- const confirm = await promptForTelemetry();
59
- sysconfig = { ...sysconfig, telemetry: confirm };
59
+ // Telemetry is opt-out; turn telemetry on then inform the user how to opt-out.
60
+ sysconfig = { ...sysconfig, telemetry: true };
60
61
  await (0, sysconfig_1.writeConfig)(sysconfig);
62
+ log_1.output.write(THANK_YOU);
61
63
  }
62
64
  await sendMetric(sysconfig, 'capacitor_cli_command', data);
63
65
  }
@@ -86,19 +88,6 @@ async function sendMetric(sysconfig, name, data) {
86
88
  }
87
89
  }
88
90
  exports.sendMetric = sendMetric;
89
- async function promptForTelemetry() {
90
- const { confirm } = await (0, log_1.logPrompt)(`${colors_1.default.strong('Would you like to help improve Capacitor by sharing anonymous usage data? 💖')}\n` +
91
- `Read more about what is being collected and why here: ${colors_1.default.strong('https://capacitorjs.com/telemetry')}. You can change your mind at any time by using the ${colors_1.default.input('npx cap telemetry')} command.`, {
92
- type: 'confirm',
93
- name: 'confirm',
94
- message: 'Share anonymous usage data?',
95
- initial: true,
96
- });
97
- if (confirm) {
98
- log_1.output.write(exports.THANK_YOU);
99
- }
100
- return confirm;
101
- }
102
91
  /**
103
92
  * Get a unique anonymous identifier for this app.
104
93
  */
package/dist/util/fs.js CHANGED
@@ -9,7 +9,7 @@ const convertToUnixPath = (path) => {
9
9
  exports.convertToUnixPath = convertToUnixPath;
10
10
  const deleteFolderRecursive = (directoryPath) => {
11
11
  if ((0, utils_fs_1.existsSync)(directoryPath)) {
12
- (0, utils_fs_1.readdirSync)(directoryPath).forEach(file => {
12
+ (0, utils_fs_1.readdirSync)(directoryPath).forEach((file) => {
13
13
  const curPath = (0, path_1.join)(directoryPath, file);
14
14
  if ((0, utils_fs_1.lstatSync)(curPath).isDirectory()) {
15
15
  (0, exports.deleteFolderRecursive)(curPath);
@@ -9,9 +9,8 @@ async function getPluginFiles(plugins) {
9
9
  var _a;
10
10
  let filenameList = [];
11
11
  const options = {
12
- filter: item => {
13
- if (item.stats.isFile() &&
14
- (item.path.endsWith('.swift') || item.path.endsWith('.m'))) {
12
+ filter: (item) => {
13
+ if (item.stats.isFile() && (item.path.endsWith('.swift') || item.path.endsWith('.m'))) {
15
14
  return true;
16
15
  }
17
16
  else {
@@ -73,7 +73,7 @@ class CapLiveReload {
73
73
  return res[0].address;
74
74
  }
75
75
  const all = Object.keys(interfaces)
76
- .map(nic => {
76
+ .map((nic) => {
77
77
  //
78
78
  // Note: name will only be `public` or `private`
79
79
  // when this is called.
@@ -86,9 +86,7 @@ class CapLiveReload {
86
86
  if (!name) {
87
87
  return true;
88
88
  }
89
- return name === 'public'
90
- ? isPrivate(details.address)
91
- : isPublic(details.address);
89
+ return name === 'public' ? isPrivate(details.address) : isPublic(details.address);
92
90
  });
93
91
  return addresses.length ? addresses[0].address : undefined;
94
92
  })
@@ -138,8 +136,7 @@ class CapLiveReload {
138
136
  (0, utils_fs_1.writeJSONSync)(capConfigPath, configJson, { spaces: '\t' });
139
137
  }
140
138
  async revertCapConfigForLiveReload() {
141
- if (this.configJsonToRevertTo.json == null ||
142
- this.configJsonToRevertTo.platformPath == null)
139
+ if (this.configJsonToRevertTo.json == null || this.configJsonToRevertTo.platformPath == null)
143
140
  return;
144
141
  const capConfigPath = this.configJsonToRevertTo.platformPath;
145
142
  const configJson = this.configJsonToRevertTo.json;
@@ -13,8 +13,7 @@ function findMonorepoRoot(currentPath) {
13
13
  const packageJsonPath = (0, node_path_1.join)(currentPath, 'package.json');
14
14
  const pnpmWorkspacePath = (0, node_path_1.join)(currentPath, 'pnpm-workspace.yaml');
15
15
  if ((0, node_fs_1.existsSync)(pnpmWorkspacePath) ||
16
- ((0, node_fs_1.existsSync)(packageJsonPath) &&
17
- JSON.parse((0, node_fs_1.readFileSync)(packageJsonPath, 'utf-8')).workspaces)) {
16
+ ((0, node_fs_1.existsSync)(packageJsonPath) && JSON.parse((0, node_fs_1.readFileSync)(packageJsonPath, 'utf-8')).workspaces)) {
18
17
  return currentPath;
19
18
  }
20
19
  const parentPath = (0, node_path_1.dirname)(currentPath);
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.lazy = exports.LazyPromise = exports.allSerial = void 0;
4
4
  function allSerial(funcs) {
5
- return funcs.reduce((promise, func) => promise.then(result => func().then(x => result.concat(x))), Promise.resolve([]));
5
+ return funcs.reduce((promise, func) => promise.then((result) => func().then((x) => result.concat(x))), Promise.resolve([]));
6
6
  }
7
7
  exports.allSerial = allSerial;
8
8
  class LazyPromise extends Promise {
package/dist/util/spm.js CHANGED
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.generatePackageFile = exports.findPackageSwiftFile = exports.checkPackageManager = void 0;
4
4
  const utils_fs_1 = require("@ionic/utils-fs");
5
5
  const path_1 = require("path");
6
- const common_1 = require("../common");
7
6
  const log_1 = require("../log");
8
7
  async function checkPackageManager(config) {
9
8
  const iosDirectory = config.ios.nativeProjectDirAbs;
@@ -22,7 +21,7 @@ async function generatePackageFile(config, plugins) {
22
21
  const packageSwiftFile = await findPackageSwiftFile(config);
23
22
  try {
24
23
  log_1.logger.warn('SPM Support is still experimental');
25
- const textToWrite = await generatePackageText(config, plugins);
24
+ const textToWrite = generatePackageText(config, plugins);
26
25
  (0, utils_fs_1.writeFileSync)(packageSwiftFile, textToWrite);
27
26
  }
28
27
  catch (err) {
@@ -30,9 +29,8 @@ async function generatePackageFile(config, plugins) {
30
29
  }
31
30
  }
32
31
  exports.generatePackageFile = generatePackageFile;
33
- async function generatePackageText(config, plugins) {
32
+ function generatePackageText(config, plugins) {
34
33
  var _a, _b, _c;
35
- const iosPlatformVersion = await (0, common_1.getCapacitorPackageVersion)(config, config.ios.name);
36
34
  const pbx = (0, utils_fs_1.readFileSync)((0, path_1.join)(config.ios.nativeXcodeProjDirAbs, 'project.pbxproj'), 'utf-8');
37
35
  const searchString = 'IPHONEOS_DEPLOYMENT_TARGET = ';
38
36
  const iosVersion = pbx.substring(pbx.indexOf(searchString) + searchString.length, pbx.indexOf(searchString) + searchString.length + 2);
@@ -49,7 +47,7 @@ let package = Package(
49
47
  targets: ["CapApp-SPM"])
50
48
  ],
51
49
  dependencies: [
52
- .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", exact: "${iosPlatformVersion}")`;
50
+ .package(url: "https://github.com/ionic-team/capacitor-swift-pm.git", branch: "main")`;
53
51
  for (const plugin of plugins) {
54
52
  const relPath = (0, path_1.relative)(config.ios.nativeXcodeProjDirAbs, plugin.rootPath);
55
53
  packageSwiftText += `,\n .package(name: "${(_a = plugin.ios) === null || _a === void 0 ? void 0 : _a.name}", path: "${relPath}")`;
@@ -10,13 +10,7 @@ async function runCommand(command, args, options = {}) {
10
10
  catch (e) {
11
11
  if (e instanceof utils_subprocess_1.SubprocessError) {
12
12
  // old behavior of just throwing the stdout/stderr strings
13
- throw e.output
14
- ? e.output
15
- : e.code
16
- ? e.code
17
- : e.error
18
- ? e.error.message
19
- : 'Unknown error';
13
+ throw e.output ? e.output : e.code ? e.code : e.error ? e.error.message : 'Unknown error';
20
14
  }
21
15
  throw e;
22
16
  }
package/dist/util/term.js CHANGED
@@ -18,7 +18,7 @@ const checkInteractive = (...args) => {
18
18
  }
19
19
  // Make sure none of the provided args are empty, otherwise print the interactive
20
20
  // warning and return false
21
- if (args.filter(arg => !arg).length) {
21
+ if (args.filter((arg) => !arg).length) {
22
22
  log_1.logger.error(`Non-interactive shell detected.\n` +
23
23
  `Run the command with ${colors_1.default.input('--help')} to see a list of arguments that must be provided.`);
24
24
  return false;
package/dist/util/uuid.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.uuidv4 = void 0;
4
4
  function uuidv4() {
5
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {
5
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
6
6
  const r = (Math.random() * 16) | 0;
7
7
  const v = c == 'x' ? r : (r & 0x3) | 0x8;
8
8
  return v.toString(16);
package/dist/util/xml.js CHANGED
@@ -21,9 +21,7 @@ async function readXML(path) {
21
21
  }
22
22
  exports.readXML = readXML;
23
23
  function parseXML(xmlStr, options) {
24
- const parser = options !== undefined
25
- ? new xml2js_1.default.Parser({ ...options })
26
- : new xml2js_1.default.Parser();
24
+ const parser = options !== undefined ? new xml2js_1.default.Parser({ ...options }) : new xml2js_1.default.Parser();
27
25
  let xmlObj;
28
26
  parser.parseString(xmlStr, (err, result) => {
29
27
  if (!err) {
@@ -34,7 +32,7 @@ function parseXML(xmlStr, options) {
34
32
  }
35
33
  exports.parseXML = parseXML;
36
34
  async function writeXML(object) {
37
- return new Promise(resolve => {
35
+ return new Promise((resolve) => {
38
36
  const builder = new xml2js_1.default.Builder({
39
37
  headless: true,
40
38
  explicitRoot: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capacitor/cli",
3
- "version": "6.2.0",
3
+ "version": "7.0.0-alpha.2",
4
4
  "description": "Capacitor: Cross-platform apps with JavaScript and the web",
5
5
  "homepage": "https://capacitorjs.com",
6
6
  "author": "Ionic Team <hi@ionic.io> (https://ionic.io)",
@@ -27,7 +27,7 @@
27
27
  "cross platform"
28
28
  ],
29
29
  "engines": {
30
- "node": ">=18.0.0"
30
+ "node": ">=20.0.0"
31
31
  },
32
32
  "main": "dist/index.js",
33
33
  "types": "dist/declarations.d.ts",
package/dist/web/copy.js DELETED
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.copyWeb = void 0;
4
- const tslib_1 = require("tslib");
5
- const utils_fs_1 = require("@ionic/utils-fs");
6
- const path_1 = require("path");
7
- const colors_1 = tslib_1.__importDefault(require("../colors"));
8
- const common_1 = require("../common");
9
- const errors_1 = require("../errors");
10
- const node_1 = require("../util/node");
11
- async function copyWeb(config) {
12
- if (config.app.bundledWebRuntime) {
13
- const runtimePath = (0, node_1.resolveNode)(config.app.rootDir, '@capacitor/core', 'dist', 'capacitor.js');
14
- if (!runtimePath) {
15
- (0, errors_1.fatal)(`Unable to find ${colors_1.default.strong('node_modules/@capacitor/core/dist/capacitor.js')}.\n` + `Are you sure ${colors_1.default.strong('@capacitor/core')} is installed?`);
16
- }
17
- return (0, common_1.runTask)(`Copying ${colors_1.default.strong('capacitor.js')} to web dir`, () => {
18
- return (0, utils_fs_1.copy)(runtimePath, (0, path_1.join)(config.app.webDirAbs, 'capacitor.js'));
19
- });
20
- }
21
- }
22
- exports.copyWeb = copyWeb;