nativescript 8.6.2-embed.0 → 8.6.2-vision.8

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 (47) hide show
  1. package/lib/bootstrap.js +4 -0
  2. package/lib/commands/add-platform.js +1 -1
  3. package/lib/commands/create-project.js +69 -9
  4. package/lib/commands/run.js +21 -4
  5. package/lib/common/definitions/mobile.d.ts +11 -0
  6. package/lib/common/mobile/device-platforms-constants.js +10 -0
  7. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +8 -1
  8. package/lib/common/mobile/log-filter.js +3 -1
  9. package/lib/common/mobile/mobile-core/devices-service.js +18 -5
  10. package/lib/common/mobile/mobile-core/ios-device-discovery.js +7 -2
  11. package/lib/common/mobile/mobile-helper.js +12 -0
  12. package/lib/constants.js +11 -4
  13. package/lib/controllers/prepare-controller.js +1 -2
  14. package/lib/data/build-data.js +1 -2
  15. package/lib/data/prepare-data.js +0 -1
  16. package/lib/declarations.d.ts +9 -9
  17. package/lib/definitions/build.d.ts +1 -0
  18. package/lib/definitions/platform.d.ts +0 -1
  19. package/lib/definitions/project.d.ts +5 -0
  20. package/lib/device-path-provider.js +2 -2
  21. package/lib/helpers/livesync-command-helper.js +3 -3
  22. package/lib/helpers/platform-command-helper.js +3 -7
  23. package/lib/options.js +5 -1
  24. package/lib/package-installation-manager.js +15 -3
  25. package/lib/project-data.js +6 -0
  26. package/lib/resolvers/livesync-service-resolver.js +1 -1
  27. package/lib/services/android-project-service.js +4 -7
  28. package/lib/services/assets-generation/assets-generation-service.js +1 -8
  29. package/lib/services/build-data-service.js +1 -1
  30. package/lib/services/ios/spm-service.js +7 -7
  31. package/lib/services/ios/xcodebuild-args-service.js +16 -5
  32. package/lib/services/ios-project-service.js +43 -36
  33. package/lib/services/platform/add-platform-service.js +2 -8
  34. package/lib/services/platform/prepare-native-platform-service.js +3 -6
  35. package/lib/services/platforms-data-service.js +6 -1
  36. package/lib/services/plugins-service.js +6 -1
  37. package/lib/services/prepare-data-service.js +1 -1
  38. package/lib/services/project-changes-service.js +6 -1
  39. package/lib/services/project-data-service.js +9 -0
  40. package/lib/services/webpack/webpack-compiler-service.js +2 -9
  41. package/lib/services/xcproj-service.js +0 -12
  42. package/package.json +6 -6
  43. package/vendor/gradle-plugin/build.gradle +6 -21
  44. package/vendor/gradle-plugin/settings.gradle +3 -13
  45. package/node_modules/@npmcli/move-file/node_modules/mkdirp/CHANGELOG.md +0 -15
  46. package/node_modules/rimraf/CHANGELOG.md +0 -65
  47. package/node_modules/stringify-package/CHANGELOG.md +0 -16
package/lib/bootstrap.js CHANGED
@@ -78,10 +78,14 @@ yok_1.injector.requireCommand("platform|update", "./commands/update-platform");
78
78
  yok_1.injector.requireCommand("run|*all", "./commands/run");
79
79
  yok_1.injector.requireCommand("run|ios", "./commands/run");
80
80
  yok_1.injector.requireCommand("run|android", "./commands/run");
81
+ yok_1.injector.requireCommand("run|vision", "./commands/run");
82
+ yok_1.injector.requireCommand("run|visionos", "./commands/run");
81
83
  yok_1.injector.requireCommand("typings", "./commands/typings");
82
84
  yok_1.injector.requireCommand("preview", "./commands/preview");
83
85
  yok_1.injector.requireCommand("debug|ios", "./commands/debug");
84
86
  yok_1.injector.requireCommand("debug|android", "./commands/debug");
87
+ yok_1.injector.requireCommand("debug|vision", "./commands/debug");
88
+ yok_1.injector.requireCommand("debug|visionos", "./commands/debug");
85
89
  yok_1.injector.requireCommand("fonts", "./commands/fonts");
86
90
  yok_1.injector.requireCommand("prepare", "./commands/prepare");
87
91
  yok_1.injector.requireCommand("build|ios", "./commands/build");
@@ -22,7 +22,7 @@ class AddPlatformCommand extends command_base_1.ValidatePlatformCommandBase {
22
22
  }
23
23
  execute(args) {
24
24
  return __awaiter(this, void 0, void 0, function* () {
25
- yield this.$platformCommandHelper.addPlatforms(args, this.$projectData, this.$options.frameworkPath, this.$options.nativeHost);
25
+ yield this.$platformCommandHelper.addPlatforms(args, this.$projectData, this.$options.frameworkPath);
26
26
  });
27
27
  }
28
28
  canExecute(args) {
@@ -65,6 +65,21 @@ class CreateProjectCommand {
65
65
  else if (this.$options.svelte) {
66
66
  selectedTemplate = constants.SVELTE_NAME;
67
67
  }
68
+ else if (this.$options["vision-ng"]) {
69
+ selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-ng"];
70
+ }
71
+ else if (this.$options["vision-react"]) {
72
+ selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-react"];
73
+ }
74
+ else if (this.$options["vision-solid"]) {
75
+ selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-solid"];
76
+ }
77
+ else if (this.$options["vision-svelte"]) {
78
+ selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-svelte"];
79
+ }
80
+ else if (this.$options["vision-vue"]) {
81
+ selectedTemplate = constants.RESERVED_TEMPLATE_NAMES["vision-vue"];
82
+ }
68
83
  else {
69
84
  selectedTemplate = this.$options.template;
70
85
  }
@@ -222,6 +237,11 @@ can skip this prompt next time using the --template option, or the --ng, --react
222
237
  value: "@nativescript/template-tab-navigation-ts",
223
238
  description: CreateProjectCommand.TabsTemplateDescription,
224
239
  },
240
+ {
241
+ key: CreateProjectCommand.BlankVisionTemplateKey,
242
+ value: "@nativescript/template-hello-world-ts-vision",
243
+ description: CreateProjectCommand.BlankVisionTemplateDescription,
244
+ },
225
245
  ];
226
246
  return templates;
227
247
  }
@@ -242,6 +262,11 @@ can skip this prompt next time using the --template option, or the --ng, --react
242
262
  value: "@nativescript/template-tab-navigation-ng",
243
263
  description: CreateProjectCommand.TabsTemplateDescription,
244
264
  },
265
+ {
266
+ key: CreateProjectCommand.BlankVisionTemplateKey,
267
+ value: "@nativescript/template-hello-world-ng-vision",
268
+ description: CreateProjectCommand.BlankVisionTemplateDescription,
269
+ },
245
270
  ];
246
271
  return templates;
247
272
  }
@@ -252,6 +277,11 @@ can skip this prompt next time using the --template option, or the --ng, --react
252
277
  value: constants.RESERVED_TEMPLATE_NAMES.react,
253
278
  description: CreateProjectCommand.HelloWorldTemplateDescription,
254
279
  },
280
+ {
281
+ key: CreateProjectCommand.BlankVisionTemplateKey,
282
+ value: "@nativescript/template-blank-react-vision",
283
+ description: CreateProjectCommand.BlankVisionTemplateDescription,
284
+ },
255
285
  ];
256
286
  return templates;
257
287
  }
@@ -262,6 +292,11 @@ can skip this prompt next time using the --template option, or the --ng, --react
262
292
  value: constants.RESERVED_TEMPLATE_NAMES.svelte,
263
293
  description: CreateProjectCommand.HelloWorldTemplateDescription,
264
294
  },
295
+ {
296
+ key: CreateProjectCommand.BlankVisionTemplateKey,
297
+ value: "@nativescript/template-blank-svelte-vision",
298
+ description: CreateProjectCommand.BlankVisionTemplateDescription,
299
+ },
265
300
  ];
266
301
  return templates;
267
302
  }
@@ -287,6 +322,11 @@ can skip this prompt next time using the --template option, or the --ng, --react
287
322
  value: "@nativescript/template-tab-navigation-vue",
288
323
  description: CreateProjectCommand.TabsTemplateDescription,
289
324
  },
325
+ {
326
+ key: CreateProjectCommand.BlankVisionTemplateKey,
327
+ value: "@nativescript/template-blank-vue-vision",
328
+ description: CreateProjectCommand.BlankVisionTemplateDescription,
329
+ },
290
330
  ];
291
331
  return templates;
292
332
  }
@@ -296,6 +336,32 @@ can skip this prompt next time using the --template option, or the --ng, --react
296
336
  const relativePath = path.relative(process.cwd(), projectDir);
297
337
  const greyDollarSign = color_1.color.grey("$");
298
338
  this.$logger.clearScreen();
339
+ let runDebugNotes = [];
340
+ if (this.$options.vision ||
341
+ this.$options["vision-ng"] ||
342
+ this.$options["vision-react"] ||
343
+ this.$options["vision-solid"] ||
344
+ this.$options["vision-svelte"] ||
345
+ this.$options["vision-vue"]) {
346
+ runDebugNotes = [
347
+ `Run the project on Vision Pro with:`,
348
+ "",
349
+ ` ${greyDollarSign} ${color_1.color.green("ns run visionos --no-hmr")}`,
350
+ ];
351
+ }
352
+ else {
353
+ runDebugNotes = [
354
+ `Run the project on multiple devices:`,
355
+ "",
356
+ ` ${greyDollarSign} ${color_1.color.green("ns run ios")}`,
357
+ ` ${greyDollarSign} ${color_1.color.green("ns run android")}`,
358
+ "",
359
+ "Debug the project with Chrome DevTools:",
360
+ "",
361
+ ` ${greyDollarSign} ${color_1.color.green("ns debug ios")}`,
362
+ ` ${greyDollarSign} ${color_1.color.green("ns debug android")}`,
363
+ ];
364
+ }
299
365
  this.$logger.info([
300
366
  [
301
367
  color_1.color.green(`Project`),
@@ -305,15 +371,7 @@ can skip this prompt next time using the --template option, or the --ng, --react
305
371
  "",
306
372
  `Now you can navigate to your project with ${color_1.color.cyan(`cd ${relativePath}`)} and then:`,
307
373
  "",
308
- `Run the project on multiple devices:`,
309
- "",
310
- ` ${greyDollarSign} ${color_1.color.green("ns run ios")}`,
311
- ` ${greyDollarSign} ${color_1.color.green("ns run android")}`,
312
- "",
313
- "Debug the project with Chrome DevTools:",
314
- "",
315
- ` ${greyDollarSign} ${color_1.color.green("ns debug ios")}`,
316
- ` ${greyDollarSign} ${color_1.color.green("ns debug android")}`,
374
+ ...runDebugNotes,
317
375
  ``,
318
376
  `For more options consult the docs or run ${color_1.color.green("ns --help")}`,
319
377
  "",
@@ -325,6 +383,8 @@ CreateProjectCommand.BlankTemplateKey = "Blank";
325
383
  CreateProjectCommand.BlankTemplateDescription = "A blank app";
326
384
  CreateProjectCommand.BlankTsTemplateKey = "Blank Typescript";
327
385
  CreateProjectCommand.BlankTsTemplateDescription = "A blank typescript app";
386
+ CreateProjectCommand.BlankVisionTemplateKey = "visionOS";
387
+ CreateProjectCommand.BlankVisionTemplateDescription = "A visionOS app";
328
388
  CreateProjectCommand.HelloWorldTemplateKey = "Hello World";
329
389
  CreateProjectCommand.HelloWorldTemplateDescription = "A Hello World app";
330
390
  CreateProjectCommand.DrawerTemplateKey = "SideDrawer";
@@ -15,7 +15,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
15
15
  });
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.RunAndroidCommand = exports.RunIosCommand = exports.RunCommandBase = void 0;
18
+ exports.RunVisionOSCommand = exports.RunAndroidCommand = exports.RunIosCommand = exports.RunCommandBase = void 0;
19
19
  const constants_1 = require("../common/constants");
20
20
  const decorators_1 = require("../common/decorators");
21
21
  const helpers_1 = require("../common/helpers");
@@ -97,11 +97,11 @@ class RunIosCommand {
97
97
  canExecute(args) {
98
98
  return __awaiter(this, void 0, void 0, function* () {
99
99
  const projectData = this.$projectDataService.getProjectData();
100
- if (!this.$platformValidationService.isPlatformSupportedForOS(this.$devicePlatformsConstants.iOS, projectData)) {
101
- this.$errors.fail(`Applications for platform ${this.$devicePlatformsConstants.iOS} can not be built on this OS`);
100
+ if (!this.$platformValidationService.isPlatformSupportedForOS(this.platform, projectData)) {
101
+ this.$errors.fail(`Applications for platform ${this.platform} can not be built on this OS`);
102
102
  }
103
103
  const result = (yield this.runCommand.canExecute(args)) &&
104
- (yield this.$platformValidationService.validateOptions(this.$options.provision, this.$options.teamId, projectData, this.$devicePlatformsConstants.iOS.toLowerCase()));
104
+ (yield this.$platformValidationService.validateOptions(this.$options.provision, this.$options.teamId, projectData, this.platform.toLowerCase()));
105
105
  return result;
106
106
  });
107
107
  }
@@ -158,3 +158,20 @@ __decorate([
158
158
  ], RunAndroidCommand.prototype, "runCommand", null);
159
159
  exports.RunAndroidCommand = RunAndroidCommand;
160
160
  yok_1.injector.registerCommand("run|android", RunAndroidCommand);
161
+ class RunVisionOSCommand extends RunIosCommand {
162
+ get platform() {
163
+ return this.$devicePlatformsConstants.visionOS;
164
+ }
165
+ constructor($devicePlatformsConstants, $errors, $injector, $options, $platformValidationService, $projectDataService) {
166
+ super($devicePlatformsConstants, $errors, $injector, $options, $platformValidationService, $projectDataService);
167
+ this.$devicePlatformsConstants = $devicePlatformsConstants;
168
+ this.$errors = $errors;
169
+ this.$injector = $injector;
170
+ this.$options = $options;
171
+ this.$platformValidationService = $platformValidationService;
172
+ this.$projectDataService = $projectDataService;
173
+ }
174
+ }
175
+ exports.RunVisionOSCommand = RunVisionOSCommand;
176
+ yok_1.injector.registerCommand("run|vision", RunVisionOSCommand);
177
+ yok_1.injector.registerCommand("run|visionos", RunVisionOSCommand);
@@ -1037,6 +1037,10 @@ declare global {
1037
1037
  * The state of the simulator. Can be 'Shutdown' or 'Booted'
1038
1038
  */
1039
1039
  state?: string;
1040
+ /**
1041
+ * The platform of the device (iOS, visionOS)
1042
+ */
1043
+ platform?: string;
1040
1044
  }
1041
1045
 
1042
1046
  interface IiOSSimResolver {
@@ -1192,6 +1196,8 @@ declare global {
1192
1196
  platformNames: string[];
1193
1197
  isAndroidPlatform(platform: string): boolean;
1194
1198
  isiOSPlatform(platform: string): boolean;
1199
+ isvisionOSPlatform(platform: string): boolean;
1200
+ isApplePlatfrom(platform: string): boolean;
1195
1201
  normalizePlatformName(platform: string): string;
1196
1202
  validatePlatformName(platform: string): string;
1197
1203
  buildDevicePath(...args: string[]): string;
@@ -1234,6 +1240,11 @@ declare global {
1234
1240
  interface IDevicePlatformsConstants {
1235
1241
  iOS: string;
1236
1242
  Android: string;
1243
+ visionOS: string;
1244
+
1245
+ isiOS(value: string): boolean;
1246
+ isAndroid(value: string): boolean;
1247
+ isvisionOS(value: string): boolean;
1237
1248
  }
1238
1249
 
1239
1250
  interface IDeviceApplication {
@@ -6,6 +6,16 @@ class DevicePlatformsConstants {
6
6
  constructor() {
7
7
  this.iOS = "iOS";
8
8
  this.Android = "Android";
9
+ this.visionOS = "visionOS";
10
+ }
11
+ isiOS(value) {
12
+ return value.toLowerCase() === this.iOS.toLowerCase();
13
+ }
14
+ isAndroid(value) {
15
+ return value.toLowerCase() === this.Android.toLowerCase();
16
+ }
17
+ isvisionOS(value) {
18
+ return value.toLowerCase() === this.visionOS.toLowerCase();
9
19
  }
10
20
  }
11
21
  exports.DevicePlatformsConstants = DevicePlatformsConstants;
@@ -22,9 +22,15 @@ class IosEmulatorServices {
22
22
  this.$mobileHelper = $mobileHelper;
23
23
  }
24
24
  startEmulator(options) {
25
+ var _a;
25
26
  return __awaiter(this, void 0, void 0, function* () {
26
27
  let error = null;
27
28
  try {
29
+ if (options.platform === this.$devicePlatformsConstants.visionOS &&
30
+ !options.emulatorIdOrName) {
31
+ const { devices } = yield this.tryGetiOSSimDevices();
32
+ options.emulatorIdOrName = (_a = devices.find((device) => device.platform === this.$devicePlatformsConstants.visionOS)) === null || _a === void 0 ? void 0 : _a.id;
33
+ }
28
34
  yield this.$iOSSimResolver.iOSSim.startSimulator({
29
35
  device: options.imageIdentifier || options.emulatorIdOrName,
30
36
  state: "None",
@@ -111,6 +117,7 @@ class IosEmulatorServices {
111
117
  });
112
118
  }
113
119
  convertSimDeviceToDeviceInfo(simDevice) {
120
+ var _a;
114
121
  return {
115
122
  imageIdentifier: simDevice.id,
116
123
  identifier: simDevice.id,
@@ -125,7 +132,7 @@ class IosEmulatorServices {
125
132
  isTablet: this.$mobileHelper.isiOSTablet(simDevice.name),
126
133
  type: constants_1.DeviceTypes.Emulator,
127
134
  connectionTypes: [constants_2.DeviceConnectionType.Local],
128
- platform: this.$devicePlatformsConstants.iOS,
135
+ platform: (_a = simDevice.platform) !== null && _a !== void 0 ? _a : this.$devicePlatformsConstants.iOS,
129
136
  };
130
137
  }
131
138
  }
@@ -29,7 +29,9 @@ class LogFilter {
29
29
  getDeviceLogFilterInstance(platform) {
30
30
  if (platform) {
31
31
  if (platform.toLowerCase() ===
32
- this.$devicePlatformsConstants.iOS.toLowerCase()) {
32
+ this.$devicePlatformsConstants.iOS.toLowerCase() ||
33
+ platform.toLowerCase() ===
34
+ this.$devicePlatformsConstants.visionOS.toLowerCase()) {
33
35
  return this.$injector.resolve("iOSLogFilter");
34
36
  }
35
37
  else if (platform.toLowerCase() ===
@@ -29,7 +29,7 @@ const helpers = require("../../helpers");
29
29
  const helpers_1 = require("../../helpers");
30
30
  const yok_1 = require("../../yok");
31
31
  class DevicesService extends events_1.EventEmitter {
32
- constructor($logger, $errors, $iOSSimulatorDiscovery, $iOSDeviceDiscovery, $androidDeviceDiscovery, $staticConfig, $messages, $mobileHelper, $deviceLogProvider, $hostInfo, $injector, $options, $androidProcessService, $iOSEmulatorServices, $androidEmulatorServices, $androidEmulatorDiscovery, $emulatorHelper, $prompter) {
32
+ constructor($logger, $errors, $iOSSimulatorDiscovery, $iOSDeviceDiscovery, $androidDeviceDiscovery, $staticConfig, $messages, $mobileHelper, $deviceLogProvider, $hostInfo, $injector, $options, $androidProcessService, $iOSEmulatorServices, $androidEmulatorServices, $androidEmulatorDiscovery, $emulatorHelper, $prompter, $devicePlatformsConstants) {
33
33
  super();
34
34
  this.$logger = $logger;
35
35
  this.$errors = $errors;
@@ -49,6 +49,7 @@ class DevicesService extends events_1.EventEmitter {
49
49
  this.$androidEmulatorDiscovery = $androidEmulatorDiscovery;
50
50
  this.$emulatorHelper = $emulatorHelper;
51
51
  this.$prompter = $prompter;
52
+ this.$devicePlatformsConstants = $devicePlatformsConstants;
52
53
  this._devices = {};
53
54
  this._availableEmulators = {};
54
55
  this._isInitialized = false;
@@ -199,7 +200,12 @@ class DevicesService extends events_1.EventEmitter {
199
200
  }));
200
201
  }
201
202
  getDeviceInstances() {
202
- return _.values(this._devices);
203
+ return _.values(this._devices).map((device) => {
204
+ var _a;
205
+ const simPlatform = (_a = device.simulator) === null || _a === void 0 ? void 0 : _a.platform;
206
+ device.deviceInfo.platform = simPlatform !== null && simPlatform !== void 0 ? simPlatform : device.deviceInfo.platform;
207
+ return device;
208
+ });
203
209
  }
204
210
  getInstalledApplications(deviceIdentifier) {
205
211
  return __awaiter(this, void 0, void 0, function* () {
@@ -332,7 +338,7 @@ class DevicesService extends events_1.EventEmitter {
332
338
  }
333
339
  getDeviceByIdentifier(identifier) {
334
340
  const searchedDevice = _.find(this.getDeviceInstances(), (device) => {
335
- if (this.$mobileHelper.isiOSPlatform(device.deviceInfo.platform) &&
341
+ if (this.$mobileHelper.isApplePlatfrom(device.deviceInfo.platform) &&
336
342
  device.isEmulator) {
337
343
  return (device.deviceInfo.identifier === identifier ||
338
344
  device.deviceInfo.displayName === identifier);
@@ -496,7 +502,7 @@ class DevicesService extends events_1.EventEmitter {
496
502
  const deviceInstances = this.getDeviceInstances();
497
503
  if (!deviceInitOpts.deviceId && _.isEmpty(deviceInstances)) {
498
504
  if (!this.$hostInfo.isDarwin &&
499
- this.$mobileHelper.isiOSPlatform(deviceInitOpts.platform)) {
505
+ this.$mobileHelper.isApplePlatfrom(deviceInitOpts.platform)) {
500
506
  this.$errors.fail(constants.ERROR_NO_DEVICES_CANT_USE_IOS_SIMULATOR);
501
507
  }
502
508
  }
@@ -524,6 +530,13 @@ class DevicesService extends events_1.EventEmitter {
524
530
  }
525
531
  }
526
532
  }
533
+ if (data.platform === this.$devicePlatformsConstants.visionOS &&
534
+ deviceInstances.length) {
535
+ const runningDeviceInstance = deviceInstances.find((device) => device.deviceInfo.platform === this.$devicePlatformsConstants.visionOS);
536
+ if (!runningDeviceInstance) {
537
+ return this.startEmulatorCore(data);
538
+ }
539
+ }
527
540
  if (data.emulator && deviceInstances.length) {
528
541
  const runningDeviceInstance = _.some(deviceInstances, (value) => value.isEmulator);
529
542
  if (!runningDeviceInstance) {
@@ -702,7 +715,7 @@ class DevicesService extends events_1.EventEmitter {
702
715
  }
703
716
  resolveEmulatorServices(platform) {
704
717
  platform = platform || this._platform;
705
- if (this.$mobileHelper.isiOSPlatform(platform)) {
718
+ if (this.$mobileHelper.isApplePlatfrom(platform)) {
706
719
  return this.$injector.resolve("iOSEmulatorServices");
707
720
  }
708
721
  else if (this.$mobileHelper.isAndroidPlatform(platform)) {
@@ -14,21 +14,26 @@ const device_discovery_1 = require("./device-discovery");
14
14
  const ios_device_1 = require("../ios/device/ios-device");
15
15
  const yok_1 = require("../../yok");
16
16
  class IOSDeviceDiscovery extends device_discovery_1.DeviceDiscovery {
17
- constructor($injector, $logger, $mobileHelper, $iosDeviceOperations) {
17
+ constructor($injector, $logger, $mobileHelper, $iosDeviceOperations, $devicePlatformsConstants) {
18
18
  super();
19
19
  this.$injector = $injector;
20
20
  this.$logger = $logger;
21
21
  this.$mobileHelper = $mobileHelper;
22
22
  this.$iosDeviceOperations = $iosDeviceOperations;
23
+ this.$devicePlatformsConstants = $devicePlatformsConstants;
23
24
  }
24
25
  startLookingForDevices(options) {
25
26
  return __awaiter(this, void 0, void 0, function* () {
26
27
  this.$logger.trace("Options for ios-device-discovery", options);
27
28
  if (options &&
28
29
  options.platform &&
29
- (!this.$mobileHelper.isiOSPlatform(options.platform) || options.emulator)) {
30
+ (!this.$mobileHelper.isApplePlatfrom(options.platform) ||
31
+ options.emulator)) {
30
32
  return;
31
33
  }
34
+ if (this.$mobileHelper.isvisionOSPlatform(options.platform)) {
35
+ options.platform = this.$devicePlatformsConstants.iOS;
36
+ }
32
37
  yield this.$iosDeviceOperations.startLookingForDevices((deviceInfo) => {
33
38
  const device = this.createDevice(deviceInfo);
34
39
  this.addDevice(device);
@@ -25,6 +25,7 @@ class MobileHelper {
25
25
  return [
26
26
  this.$devicePlatformsConstants.iOS,
27
27
  this.$devicePlatformsConstants.Android,
28
+ this.$devicePlatformsConstants.visionOS,
28
29
  ];
29
30
  }
30
31
  isAndroidPlatform(platform) {
@@ -37,6 +38,14 @@ class MobileHelper {
37
38
  this.$devicePlatformsConstants.iOS.toLowerCase() ===
38
39
  platform.toLowerCase());
39
40
  }
41
+ isvisionOSPlatform(platform) {
42
+ return !!(platform &&
43
+ this.$devicePlatformsConstants.visionOS.toLowerCase() ===
44
+ platform.toLowerCase());
45
+ }
46
+ isApplePlatfrom(platform) {
47
+ return this.isiOSPlatform(platform) || this.isvisionOSPlatform(platform);
48
+ }
40
49
  normalizePlatformName(platform) {
41
50
  if (this.isAndroidPlatform(platform)) {
42
51
  return "Android";
@@ -44,6 +53,9 @@ class MobileHelper {
44
53
  else if (this.isiOSPlatform(platform)) {
45
54
  return "iOS";
46
55
  }
56
+ else if (this.isvisionOSPlatform(platform)) {
57
+ return "visionOS";
58
+ }
47
59
  return undefined;
48
60
  }
49
61
  validatePlatformName(platform) {
package/lib/constants.js CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.APK_DIR = exports.OUTPUTS_DIR = exports.BUILD_DIR = exports.BUILD_XCCONFIG_FILE_NAME = exports.INCLUDE_GRADLE_NAME = exports.INFO_PLIST_FILE_NAME = exports.APP_GRADLE_FILE_NAME = exports.MANIFEST_FILE_NAME = exports.ANDROID_ANALYTICS_DATA_FILE = exports.ANDROID_ANALYTICS_DATA_DIR = exports.FONTS_DIR = exports.ASSETS_DIR = exports.MAIN_DIR = exports.SRC_DIR = exports.AWAIT_NOTIFICATION_TIMEOUT_SECONDS = exports.CODE_SIGN_ENTITLEMENTS = exports.LIB_DIR_NAME = exports.KARMA_CONFIG_NAME = exports.TSCCONFIG_TNS_JSON_NAME = exports.WEBPACK_CONFIG_NAME = exports.HOOKS_DIR_NAME = exports.PLATFORMS_DIR_NAME = exports.XML_FILE_EXTENSION = exports.LIVESYNC_EXCLUDED_FILE_PATTERNS = exports.TEST_RUNNER_NAME = exports.TESTING_FRAMEWORKS = exports.LIVESYNC_EXCLUDED_DIRECTORIES = exports.DEFAULT_APP_IDENTIFIER_PREFIX = exports.NODE_MODULE_CACHE_PATH_KEY_NAME = exports.ANDROID_DEVICE_APP_ROOT_TEMPLATE = exports.PACKAGE_LOCK_JSON_FILE_NAME = exports.PACKAGE_JSON_FILE_NAME = exports.SCOPED_IOS_RUNTIME_NAME = exports.SCOPED_ANDROID_RUNTIME_NAME = exports.TNS_IOS_RUNTIME_NAME = exports.TNS_ANDROID_RUNTIME_NAME = exports.UI_MOBILE_BASE_NAME = exports.TNS_CORE_MODULES_WIDGETS_NAME = exports.WEBPACK_PLUGIN_NAME = exports.SCOPED_TNS_CORE_THEME_NAME = exports.TNS_CORE_THEME_NAME = exports.SCOPED_TNS_CORE_MODULES = exports.TNS_CORE_MODULES_NAME = exports.TNS_MODULES_FOLDER_NAME = exports.NODE_MODULES_FOLDER_NAME = exports.NATIVESCRIPT_KEY_NAME = exports.NS_BASE_PODFILE = exports.PROJECT_FRAMEWORK_FOLDER_NAME = exports.APP_RESOURCES_FOLDER_NAME = exports.APP_FOLDER_NAME = void 0;
4
- exports.DEBUGGER_DETACHED_EVENT_NAME = exports.DEBUGGER_ATTACHED_EVENT_NAME = exports.USER_INTERACTION_NEEDED_EVENT_NAME = exports.CONNECTION_ERROR_EVENT_NAME = exports.BUILD_OUTPUT_EVENT_NAME = exports.ProjectTypes = exports.JsFlavorName = exports.TsFlavorName = exports.SvelteFlavorName = exports.ReactFlavorName = exports.VueFlavorName = exports.NgFlavorName = exports.SVELTE_NAME = exports.REACT_NAME = exports.TYPESCRIPT_NAME = exports.JAVASCRIPT_NAME = exports.ANGULAR_NAME = exports.VUE_NAME = exports.ItunesConnectApplicationTypes = exports.androidAppResourcesFolderName = exports.iOSAppResourcesFolderName = exports.ITMSConstants = exports.ANALYTICS_LOCAL_TEMPLATE_PREFIX = exports.RESERVED_TEMPLATE_NAMES = exports.ReleaseType = exports.SaveOptions = exports.TemplatesV2PackageJsonKeysToRemove = exports.PackageJsonKeysToKeep = exports.LiveSyncTrackActionNames = exports.PackageVersion = exports.MetadataFilteringConstants = exports.IOS_WATCHAPP_EXTENSION_FOLDER = exports.IOS_WATCHAPP_FOLDER = exports.NATIVE_EXTENSION_FOLDER = exports.APPLICATION_RESPONSE_TIMEOUT_SECONDS = exports.NATIVE_SOURCE_FOLDER = exports.TNS_NATIVE_SOURCE_GROUP_NAME = exports.HASHES_FILE_NAME = exports.APKS_EXTENSION_NAME = exports.AAB_EXTENSION_NAME = exports.APK_EXTENSION_NAME = exports.DEPENDENCIES_JSON_NAME = exports.CONFIG_FILE_NAME_TS = exports.CONFIG_FILE_NAME_JS = exports.CONFIG_FILE_NAME_DISPLAY = exports.CONFIG_NS_APP_ENTRY = exports.CONFIG_NS_APP_RESOURCES_ENTRY = exports.CONFIG_NS_FILE_NAME = exports.RESOURCES_DIR = exports.BUNDLE_DIR = void 0;
5
- exports.PackageManagers = exports.EMIT_APPENDER_EVENT_NAME = exports.LoggerConfigData = exports.LoggerLevel = exports.DeviceConnectionType = exports.LoggerAppenders = exports.IOSNativeTargetTypes = exports.IOSNativeTargetProductTypes = exports.IOSDeviceTargets = exports.RunOnDeviceEvents = exports.AndroidAppBundleMessages = exports.AndroidBundleValidatorMessages = exports.BundleValidatorMessages = exports.IosProjectConstants = exports.EXTENSION_PROVISIONING_FILENAME = exports.PODFILE_NAME = exports.PLUGINS_BUILD_DATA_FILENAME = exports.PLUGIN_BUILD_DATA_FILENAME = exports.AddPlaformErrors = exports.PACKAGE_PLACEHOLDER_NAME = exports.AndroidBuildDefaults = exports.Hooks = exports.XcodeDeprecationStringFormat = exports.MacOSDeprecationStringFormat = exports.MacOSVersions = exports.AssetConstants = exports.CLI_RESOURCES_DIR_NAME = exports.NATIVESCRIPT_PROPS_INTERNAL_DELIMITER = exports.AnalyticsEventLabelDelimiter = exports.DebugCommandErrors = exports.WEBPACK_COMPILATION_COMPLETE = exports.PREPARE_READY_EVENT_NAME = exports.INITIAL_SYNC_EVENT_NAME = exports.FILES_CHANGE_EVENT_NAME = exports.CACACHE_DIRECTORY_NAME = exports.ANDROID_APP_BUNDLE_SIGNING_ERROR_MESSAGE = exports.ANDROID_RELEASE_BUILD_ERROR_MESSAGE = exports.POST_INSTALL_COMMAND_NAME = exports.INSPECTOR_CACHE_DIRNAME = exports.VERSION_STRING = void 0;
3
+ exports.OUTPUTS_DIR = exports.BUILD_DIR = exports.BUILD_XCCONFIG_FILE_NAME = exports.INCLUDE_GRADLE_NAME = exports.INFO_PLIST_FILE_NAME = exports.APP_GRADLE_FILE_NAME = exports.MANIFEST_FILE_NAME = exports.ANDROID_ANALYTICS_DATA_FILE = exports.ANDROID_ANALYTICS_DATA_DIR = exports.FONTS_DIR = exports.ASSETS_DIR = exports.MAIN_DIR = exports.SRC_DIR = exports.AWAIT_NOTIFICATION_TIMEOUT_SECONDS = exports.CODE_SIGN_ENTITLEMENTS = exports.LIB_DIR_NAME = exports.KARMA_CONFIG_NAME = exports.TSCCONFIG_TNS_JSON_NAME = exports.WEBPACK_CONFIG_NAME = exports.HOOKS_DIR_NAME = exports.PLATFORMS_DIR_NAME = exports.XML_FILE_EXTENSION = exports.LIVESYNC_EXCLUDED_FILE_PATTERNS = exports.TEST_RUNNER_NAME = exports.TESTING_FRAMEWORKS = exports.LIVESYNC_EXCLUDED_DIRECTORIES = exports.DEFAULT_APP_IDENTIFIER_PREFIX = exports.NODE_MODULE_CACHE_PATH_KEY_NAME = exports.ANDROID_DEVICE_APP_ROOT_TEMPLATE = exports.PACKAGE_LOCK_JSON_FILE_NAME = exports.PACKAGE_JSON_FILE_NAME = exports.SCOPED_VISIONOS_RUNTIME_NAME = exports.SCOPED_IOS_RUNTIME_NAME = exports.SCOPED_ANDROID_RUNTIME_NAME = exports.TNS_IOS_RUNTIME_NAME = exports.TNS_ANDROID_RUNTIME_NAME = exports.UI_MOBILE_BASE_NAME = exports.TNS_CORE_MODULES_WIDGETS_NAME = exports.WEBPACK_PLUGIN_NAME = exports.SCOPED_TNS_CORE_THEME_NAME = exports.TNS_CORE_THEME_NAME = exports.SCOPED_TNS_CORE_MODULES = exports.TNS_CORE_MODULES_NAME = exports.TNS_MODULES_FOLDER_NAME = exports.NODE_MODULES_FOLDER_NAME = exports.NATIVESCRIPT_KEY_NAME = exports.NS_BASE_PODFILE = exports.PROJECT_FRAMEWORK_FOLDER_NAME = exports.APP_RESOURCES_FOLDER_NAME = exports.APP_FOLDER_NAME = void 0;
4
+ exports.DEBUGGER_ATTACHED_EVENT_NAME = exports.USER_INTERACTION_NEEDED_EVENT_NAME = exports.CONNECTION_ERROR_EVENT_NAME = exports.BUILD_OUTPUT_EVENT_NAME = exports.ProjectTypes = exports.JsFlavorName = exports.TsFlavorName = exports.SvelteFlavorName = exports.ReactFlavorName = exports.VueFlavorName = exports.NgFlavorName = exports.SVELTE_NAME = exports.REACT_NAME = exports.TYPESCRIPT_NAME = exports.JAVASCRIPT_NAME = exports.ANGULAR_NAME = exports.VUE_NAME = exports.ItunesConnectApplicationTypes = exports.androidAppResourcesFolderName = exports.iOSAppResourcesFolderName = exports.ITMSConstants = exports.ANALYTICS_LOCAL_TEMPLATE_PREFIX = exports.RESERVED_TEMPLATE_NAMES = exports.ReleaseType = exports.SaveOptions = exports.TemplatesV2PackageJsonKeysToRemove = exports.PackageJsonKeysToKeep = exports.LiveSyncTrackActionNames = exports.PackageVersion = exports.MetadataFilteringConstants = exports.IOS_WATCHAPP_EXTENSION_FOLDER = exports.IOS_WATCHAPP_FOLDER = exports.NATIVE_EXTENSION_FOLDER = exports.APPLICATION_RESPONSE_TIMEOUT_SECONDS = exports.NATIVE_SOURCE_FOLDER = exports.TNS_NATIVE_SOURCE_GROUP_NAME = exports.HASHES_FILE_NAME = exports.APKS_EXTENSION_NAME = exports.AAB_EXTENSION_NAME = exports.APK_EXTENSION_NAME = exports.DEPENDENCIES_JSON_NAME = exports.CONFIG_FILE_NAME_TS = exports.CONFIG_FILE_NAME_JS = exports.CONFIG_FILE_NAME_DISPLAY = exports.CONFIG_NS_APP_ENTRY = exports.CONFIG_NS_APP_RESOURCES_ENTRY = exports.CONFIG_NS_FILE_NAME = exports.RESOURCES_DIR = exports.BUNDLE_DIR = exports.APK_DIR = void 0;
5
+ exports.PackageManagers = exports.EMIT_APPENDER_EVENT_NAME = exports.LoggerConfigData = exports.LoggerLevel = exports.DeviceConnectionType = exports.LoggerAppenders = exports.IOSNativeTargetTypes = exports.IOSNativeTargetProductTypes = exports.IOSDeviceTargets = exports.RunOnDeviceEvents = exports.AndroidAppBundleMessages = exports.AndroidBundleValidatorMessages = exports.BundleValidatorMessages = exports.IosProjectConstants = exports.EXTENSION_PROVISIONING_FILENAME = exports.PODFILE_NAME = exports.PLUGINS_BUILD_DATA_FILENAME = exports.PLUGIN_BUILD_DATA_FILENAME = exports.AddPlaformErrors = exports.PACKAGE_PLACEHOLDER_NAME = exports.AndroidBuildDefaults = exports.Hooks = exports.XcodeDeprecationStringFormat = exports.MacOSDeprecationStringFormat = exports.MacOSVersions = exports.AssetConstants = exports.CLI_RESOURCES_DIR_NAME = exports.NATIVESCRIPT_PROPS_INTERNAL_DELIMITER = exports.AnalyticsEventLabelDelimiter = exports.DebugCommandErrors = exports.WEBPACK_COMPILATION_COMPLETE = exports.PREPARE_READY_EVENT_NAME = exports.INITIAL_SYNC_EVENT_NAME = exports.FILES_CHANGE_EVENT_NAME = exports.CACACHE_DIRECTORY_NAME = exports.ANDROID_APP_BUNDLE_SIGNING_ERROR_MESSAGE = exports.ANDROID_RELEASE_BUILD_ERROR_MESSAGE = exports.POST_INSTALL_COMMAND_NAME = exports.INSPECTOR_CACHE_DIRNAME = exports.VERSION_STRING = exports.DEBUGGER_DETACHED_EVENT_NAME = void 0;
6
6
  const path_1 = require("path");
7
7
  exports.APP_FOLDER_NAME = "app";
8
8
  exports.APP_RESOURCES_FOLDER_NAME = "App_Resources";
@@ -22,6 +22,7 @@ exports.TNS_ANDROID_RUNTIME_NAME = "tns-android";
22
22
  exports.TNS_IOS_RUNTIME_NAME = "tns-ios";
23
23
  exports.SCOPED_ANDROID_RUNTIME_NAME = "@nativescript/android";
24
24
  exports.SCOPED_IOS_RUNTIME_NAME = "@nativescript/ios";
25
+ exports.SCOPED_VISIONOS_RUNTIME_NAME = "@nativescript/visionos";
25
26
  exports.PACKAGE_JSON_FILE_NAME = "package.json";
26
27
  exports.PACKAGE_LOCK_JSON_FILE_NAME = "package-lock.json";
27
28
  exports.ANDROID_DEVICE_APP_ROOT_TEMPLATE = `/data/data/%s/files`;
@@ -67,7 +68,7 @@ exports.APK_EXTENSION_NAME = ".apk";
67
68
  exports.AAB_EXTENSION_NAME = ".aab";
68
69
  exports.APKS_EXTENSION_NAME = ".apks";
69
70
  exports.HASHES_FILE_NAME = ".nshashes";
70
- exports.TNS_NATIVE_SOURCE_GROUP_NAME = "TNSNativeSource";
71
+ exports.TNS_NATIVE_SOURCE_GROUP_NAME = "NSNativeSources";
71
72
  exports.NATIVE_SOURCE_FOLDER = "src";
72
73
  exports.APPLICATION_RESPONSE_TIMEOUT_SECONDS = 60;
73
74
  exports.NATIVE_EXTENSION_FOLDER = "extensions";
@@ -136,13 +137,19 @@ exports.RESERVED_TEMPLATE_NAMES = {
136
137
  default: "@nativescript/template-hello-world",
137
138
  javascript: "@nativescript/template-hello-world",
138
139
  tsc: "@nativescript/template-hello-world-ts",
140
+ vision: "@nativescript/template-hello-world-ts-vision",
139
141
  vue: "@nativescript/template-blank-vue",
142
+ "vision-vue": "@nativescript/template-blank-vue-vision",
140
143
  typescript: "@nativescript/template-hello-world-ts",
141
144
  ng: "@nativescript/template-hello-world-ng",
142
145
  angular: "@nativescript/template-hello-world-ng",
146
+ "vision-ng": "@nativescript/template-hello-world-ng-vision",
143
147
  react: "@nativescript/template-blank-react",
148
+ "vision-react": "@nativescript/template-blank-react-vision",
144
149
  reactjs: "@nativescript/template-blank-react",
150
+ "vision-solid": "@nativescript/template-blank-solid-vision",
145
151
  svelte: "@nativescript/template-blank-svelte",
152
+ "vision-svelte": "@nativescript/template-blank-svelte-vision",
146
153
  };
147
154
  exports.ANALYTICS_LOCAL_TEMPLATE_PREFIX = "localTemplate_";
148
155
  class ITMSConstants {
@@ -268,11 +268,10 @@ class PrepareController extends events_1.EventEmitter {
268
268
  packageData.android.discardUncaughtJsExceptions;
269
269
  }
270
270
  let packagePath;
271
- if (platformData.platformNameLowerCase === "ios") {
271
+ if (this.$mobileHelper.isApplePlatfrom(platformData.platformNameLowerCase)) {
272
272
  packagePath = path.join(platformData.projectRoot, projectData.projectName, "app", "package.json");
273
273
  }
274
274
  else {
275
- console.log("!!!!! VM: proj root: " + platformData.projectRoot);
276
275
  packagePath = path.join(platformData.projectRoot, "app", "src", "main", "assets", "app", "package.json");
277
276
  }
278
277
  try {
@@ -6,6 +6,7 @@ class BuildData extends prepare_data_1.PrepareData {
6
6
  constructor(projectDir, platform, data) {
7
7
  super(projectDir, platform, data);
8
8
  this.device = data.device;
9
+ this._device = data === null || data === void 0 ? void 0 : data._device;
9
10
  this.emulator = data.emulator;
10
11
  this.clean = data.clean;
11
12
  this.buildForDevice = data.buildForDevice || data.forDevice;
@@ -23,7 +24,6 @@ class IOSBuildData extends BuildData {
23
24
  this.mobileProvisionData = data.mobileProvisionData;
24
25
  this.buildForAppStore = data.buildForAppStore;
25
26
  this.iCloudContainerEnvironment = data.iCloudContainerEnvironment;
26
- this.nativeHost = data.nativeHost;
27
27
  }
28
28
  }
29
29
  exports.IOSBuildData = IOSBuildData;
@@ -37,7 +37,6 @@ class AndroidBuildData extends BuildData {
37
37
  this.androidBundle = data.androidBundle || data.aab;
38
38
  this.gradlePath = data.gradlePath;
39
39
  this.gradleArgs = data.gradleArgs;
40
- this.nativeHost = data.nativeHost;
41
40
  }
42
41
  }
43
42
  exports.AndroidBuildData = AndroidBuildData;
@@ -29,7 +29,6 @@ class PrepareData extends controller_data_base_1.ControllerDataBase {
29
29
  if (_.isBoolean(data.watchNative)) {
30
30
  this.watchNative = data.watchNative;
31
31
  }
32
- this.nativeHost = data.nativeHost;
33
32
  }
34
33
  }
35
34
  exports.PrepareData = PrepareData;
@@ -581,11 +581,6 @@ interface IAndroidBundleOptions {
581
581
  interface IAndroidOptions {
582
582
  gradlePath: string;
583
583
  gradleArgs: string;
584
- nativeHost: string;
585
- }
586
-
587
- interface IIOSOptions {
588
- nativeHost: string;
589
584
  }
590
585
 
591
586
  interface ITypingsOptions {
@@ -608,7 +603,6 @@ interface IOptions
608
603
  IProvision,
609
604
  ITeamIdentifier,
610
605
  IAndroidOptions,
611
- IIOSOptions,
612
606
  IAndroidReleaseOptions,
613
607
  IAndroidBundleOptions,
614
608
  INpmInstallConfigurationOptions,
@@ -683,6 +677,12 @@ interface IOptions
683
677
  vue: boolean;
684
678
  vuejs: boolean;
685
679
  js: boolean;
680
+ vision: boolean;
681
+ "vision-ng": boolean;
682
+ "vision-react": boolean;
683
+ "vision-solid": boolean;
684
+ "vision-svelte": boolean;
685
+ "vision-vue": boolean;
686
686
  javascript: boolean;
687
687
  androidTypings: boolean;
688
688
  production: boolean; //npm flag
@@ -698,6 +698,8 @@ interface IOptions
698
698
  markingMode: boolean;
699
699
  git: boolean;
700
700
  dryRun: boolean;
701
+
702
+ platformOverride: string;
701
703
  }
702
704
 
703
705
  interface IEnvOptions {
@@ -1006,7 +1008,6 @@ interface IXcprojService {
1006
1008
  * @return {string} The full path to the xcodeproj
1007
1009
  */
1008
1010
  getXcodeprojPath(projectData: IProjectData, projectRoot: string): string;
1009
- findXcodeProject(dir: string): string;
1010
1011
  }
1011
1012
 
1012
1013
  /**
@@ -1214,8 +1215,7 @@ interface IPlatformCommandHelper {
1214
1215
  addPlatforms(
1215
1216
  platforms: string[],
1216
1217
  projectData: IProjectData,
1217
- frameworkPath?: string,
1218
- nativeHost?: string
1218
+ frameworkPath?: string
1219
1219
  ): Promise<void>;
1220
1220
  cleanPlatforms(
1221
1221
  platforms: string[],
@@ -9,6 +9,7 @@ import {
9
9
 
10
10
  interface IBuildData extends IPrepareData {
11
11
  device?: string;
12
+ _device?: Mobile.IDevice;
12
13
  emulator?: boolean;
13
14
  clean: boolean;
14
15
  buildForDevice?: boolean;
@@ -118,7 +118,6 @@ interface ICheckEnvironmentRequirementsOutput {
118
118
 
119
119
  interface IAddPlatformData extends IControllerDataBase {
120
120
  frameworkPath?: string;
121
- nativeHost?: string;
122
121
  }
123
122
 
124
123
  interface IPlatformController {
@@ -105,6 +105,8 @@ interface INsConfigIOS extends INsConfigPlaform {
105
105
  discardUncaughtJsExceptions?: boolean;
106
106
  }
107
107
 
108
+ interface INSConfigVisionOS extends INsConfigIOS {}
109
+
108
110
  interface INsConfigAndroid extends INsConfigPlaform {
109
111
  v8Flags?: string;
110
112
 
@@ -156,6 +158,7 @@ interface INsConfig {
156
158
  webpackConfigPath?: string;
157
159
  ios?: INsConfigIOS;
158
160
  android?: INsConfigAndroid;
161
+ visionos?: INSConfigVisionOS;
159
162
  ignoredNativeDependencies?: string[];
160
163
  hooks?: INsConfigHooks[];
161
164
  }
@@ -558,6 +561,8 @@ interface IBuildConfig
558
561
  clean?: boolean;
559
562
  architectures?: string[];
560
563
  buildOutputStdio?: string;
564
+ platform?: string;
565
+ _device?: Mobile.IDevice;
561
566
  }
562
567
 
563
568
  /**