@akylas/nativescript-cli 8.7.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 (531) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +385 -0
  3. package/bin/nativescript +3 -0
  4. package/bin/nativescript.js +3 -0
  5. package/bin/ns +3 -0
  6. package/bin/nsc +3 -0
  7. package/bin/nsc.js +3 -0
  8. package/bin/tns +12 -0
  9. package/bin/tns.cmd +1 -0
  10. package/config/config.json +8 -0
  11. package/config/test-dependencies.json +58 -0
  12. package/config/test-deps-versions-generated.json +1 -0
  13. package/docs/build-jekyll-md.sh +7 -0
  14. package/docs/helpers/favicon.ico +0 -0
  15. package/docs/helpers/logo.png +0 -0
  16. package/docs/man_pages/cloud/cloud-setup.md +29 -0
  17. package/docs/man_pages/device/device-android.md +32 -0
  18. package/docs/man_pages/device/device-ios.md +40 -0
  19. package/docs/man_pages/device/device-list-applications.md +37 -0
  20. package/docs/man_pages/device/device-log.md +37 -0
  21. package/docs/man_pages/device/device-run.md +55 -0
  22. package/docs/man_pages/device/device.md +46 -0
  23. package/docs/man_pages/env-configuration/setup.md +22 -0
  24. package/docs/man_pages/general/autocomplete-disable.md +37 -0
  25. package/docs/man_pages/general/autocomplete-enable.md +37 -0
  26. package/docs/man_pages/general/autocomplete-status.md +35 -0
  27. package/docs/man_pages/general/autocomplete.md +46 -0
  28. package/docs/man_pages/general/clean.md +22 -0
  29. package/docs/man_pages/general/doctor.md +33 -0
  30. package/docs/man_pages/general/error-reporting.md +41 -0
  31. package/docs/man_pages/general/extension-install.md +45 -0
  32. package/docs/man_pages/general/extension-uninstall.md +41 -0
  33. package/docs/man_pages/general/extension.md +35 -0
  34. package/docs/man_pages/general/help.md +39 -0
  35. package/docs/man_pages/general/info.md +33 -0
  36. package/docs/man_pages/general/migrate.md +79 -0
  37. package/docs/man_pages/general/package-manager-get.md +26 -0
  38. package/docs/man_pages/general/package-manager-set.md +29 -0
  39. package/docs/man_pages/general/package-manager.md +25 -0
  40. package/docs/man_pages/general/proxy-clear.md +26 -0
  41. package/docs/man_pages/general/proxy-set.md +45 -0
  42. package/docs/man_pages/general/proxy.md +31 -0
  43. package/docs/man_pages/general/update.md +40 -0
  44. package/docs/man_pages/general/usage-reporting.md +41 -0
  45. package/docs/man_pages/index.html +3 -0
  46. package/docs/man_pages/lib-management/plugin-add.md +42 -0
  47. package/docs/man_pages/lib-management/plugin-build.md +32 -0
  48. package/docs/man_pages/lib-management/plugin-create.md +48 -0
  49. package/docs/man_pages/lib-management/plugin-install.md +42 -0
  50. package/docs/man_pages/lib-management/plugin-remove.md +31 -0
  51. package/docs/man_pages/lib-management/plugin-update.md +41 -0
  52. package/docs/man_pages/lib-management/plugin.md +39 -0
  53. package/docs/man_pages/project/configuration/generate.md +36 -0
  54. package/docs/man_pages/project/configuration/install.md +43 -0
  55. package/docs/man_pages/project/configuration/open-android.md +27 -0
  56. package/docs/man_pages/project/configuration/open-ios.md +31 -0
  57. package/docs/man_pages/project/configuration/open.md +36 -0
  58. package/docs/man_pages/project/configuration/platform-add.md +46 -0
  59. package/docs/man_pages/project/configuration/platform-clean.md +41 -0
  60. package/docs/man_pages/project/configuration/platform-remove.md +41 -0
  61. package/docs/man_pages/project/configuration/platform-update.md +45 -0
  62. package/docs/man_pages/project/configuration/platform.md +29 -0
  63. package/docs/man_pages/project/configuration/prepare.md +49 -0
  64. package/docs/man_pages/project/configuration/resources/resources-generate-icons.md +39 -0
  65. package/docs/man_pages/project/configuration/resources/resources-generate-splashes.md +39 -0
  66. package/docs/man_pages/project/configuration/resources/resources-update.md +35 -0
  67. package/docs/man_pages/project/configuration/resources/resources.md +14 -0
  68. package/docs/man_pages/project/creation/create.md +64 -0
  69. package/docs/man_pages/project/testing/build-android.md +62 -0
  70. package/docs/man_pages/project/testing/build-ios.md +65 -0
  71. package/docs/man_pages/project/testing/build.md +66 -0
  72. package/docs/man_pages/project/testing/debug-android.md +64 -0
  73. package/docs/man_pages/project/testing/debug-ios.md +65 -0
  74. package/docs/man_pages/project/testing/debug.md +67 -0
  75. package/docs/man_pages/project/testing/deploy.md +72 -0
  76. package/docs/man_pages/project/testing/dev-test-android.md +31 -0
  77. package/docs/man_pages/project/testing/dev-test-ios.md +36 -0
  78. package/docs/man_pages/project/testing/preview.md +35 -0
  79. package/docs/man_pages/project/testing/run-android.md +79 -0
  80. package/docs/man_pages/project/testing/run-ios.md +83 -0
  81. package/docs/man_pages/project/testing/run.md +92 -0
  82. package/docs/man_pages/project/testing/test-android.md +46 -0
  83. package/docs/man_pages/project/testing/test-init.md +34 -0
  84. package/docs/man_pages/project/testing/test-ios.md +48 -0
  85. package/docs/man_pages/project/testing/test.md +48 -0
  86. package/docs/man_pages/project/testing/typings.md +52 -0
  87. package/docs/man_pages/publishing/apple-login.md +35 -0
  88. package/docs/man_pages/publishing/appstore-upload.md +52 -0
  89. package/docs/man_pages/publishing/appstore.md +42 -0
  90. package/docs/man_pages/publishing/publish-ios.md +55 -0
  91. package/docs/man_pages/publishing/publish.md +38 -0
  92. package/docs/man_pages/start.md +81 -0
  93. package/lib/.d.ts +494 -0
  94. package/lib/android-tools-info.js +135 -0
  95. package/lib/base-package-manager.js +129 -0
  96. package/lib/bash-scripts/terminateProcess.sh +12 -0
  97. package/lib/bootstrap.js +203 -0
  98. package/lib/bun-package-manager.js +135 -0
  99. package/lib/color.js +10 -0
  100. package/lib/commands/add-platform.js +49 -0
  101. package/lib/commands/apple-login.js +52 -0
  102. package/lib/commands/appstore-list.js +75 -0
  103. package/lib/commands/appstore-upload.js +106 -0
  104. package/lib/commands/build.js +161 -0
  105. package/lib/commands/clean.js +253 -0
  106. package/lib/commands/command-base.js +46 -0
  107. package/lib/commands/config.js +135 -0
  108. package/lib/commands/create-project.js +431 -0
  109. package/lib/commands/debug.js +191 -0
  110. package/lib/commands/deploy.js +78 -0
  111. package/lib/commands/extensibility/install-extension.js +33 -0
  112. package/lib/commands/extensibility/list-extensions.js +40 -0
  113. package/lib/commands/extensibility/uninstall-extension.js +32 -0
  114. package/lib/commands/fonts.js +64 -0
  115. package/lib/commands/generate-assets.js +71 -0
  116. package/lib/commands/generate-help.js +26 -0
  117. package/lib/commands/generate.js +78 -0
  118. package/lib/commands/info.js +26 -0
  119. package/lib/commands/install.js +80 -0
  120. package/lib/commands/list-platforms.js +45 -0
  121. package/lib/commands/migrate.js +44 -0
  122. package/lib/commands/platform-clean.js +54 -0
  123. package/lib/commands/plugin/add-plugin.js +43 -0
  124. package/lib/commands/plugin/build-plugin.js +70 -0
  125. package/lib/commands/plugin/create-plugin.js +175 -0
  126. package/lib/commands/plugin/list-plugins.js +54 -0
  127. package/lib/commands/plugin/remove-plugin.js +52 -0
  128. package/lib/commands/plugin/update-plugin.js +52 -0
  129. package/lib/commands/post-install.js +57 -0
  130. package/lib/commands/prepare.js +63 -0
  131. package/lib/commands/preview.js +93 -0
  132. package/lib/commands/remove-platform.js +40 -0
  133. package/lib/commands/resources/resources-update.js +45 -0
  134. package/lib/commands/run.js +177 -0
  135. package/lib/commands/setup.js +15 -0
  136. package/lib/commands/start.js +33 -0
  137. package/lib/commands/test-init.js +167 -0
  138. package/lib/commands/test.js +146 -0
  139. package/lib/commands/typings.js +180 -0
  140. package/lib/commands/update-platform.js +57 -0
  141. package/lib/commands/update.js +70 -0
  142. package/lib/common/LICENSE +201 -0
  143. package/lib/common/README.md +1084 -0
  144. package/lib/common/bin/common-lib.js +5 -0
  145. package/lib/common/bootstrap.js +97 -0
  146. package/lib/common/child-process.js +217 -0
  147. package/lib/common/codeGeneration/code-entity.js +47 -0
  148. package/lib/common/codeGeneration/code-generation.d.ts +47 -0
  149. package/lib/common/codeGeneration/code-printer.js +48 -0
  150. package/lib/common/command-params.js +45 -0
  151. package/lib/common/commands/analytics.js +81 -0
  152. package/lib/common/commands/autocompletion.js +110 -0
  153. package/lib/common/commands/device/device-log-stream.js +44 -0
  154. package/lib/common/commands/device/get-file.js +54 -0
  155. package/lib/common/commands/device/list-applications.js +42 -0
  156. package/lib/common/commands/device/list-devices.js +150 -0
  157. package/lib/common/commands/device/list-files.js +55 -0
  158. package/lib/common/commands/device/put-file.js +55 -0
  159. package/lib/common/commands/device/run-application.js +46 -0
  160. package/lib/common/commands/device/stop-application.js +42 -0
  161. package/lib/common/commands/device/uninstall-application.js +33 -0
  162. package/lib/common/commands/doctor.js +54 -0
  163. package/lib/common/commands/generate-messages.js +45 -0
  164. package/lib/common/commands/help.js +51 -0
  165. package/lib/common/commands/package-manager-get.js +32 -0
  166. package/lib/common/commands/package-manager-set.js +37 -0
  167. package/lib/common/commands/post-install.js +27 -0
  168. package/lib/common/commands/preuninstall.js +61 -0
  169. package/lib/common/commands/proxy/proxy-base.js +34 -0
  170. package/lib/common/commands/proxy/proxy-clear.js +32 -0
  171. package/lib/common/commands/proxy/proxy-get.js +31 -0
  172. package/lib/common/commands/proxy/proxy-set.js +150 -0
  173. package/lib/common/common-lib.js +5 -0
  174. package/lib/common/constants.js +122 -0
  175. package/lib/common/declarations.d.ts +1713 -0
  176. package/lib/common/decorators.js +201 -0
  177. package/lib/common/definitions/cli-global.d.ts +22 -0
  178. package/lib/common/definitions/commands-service.d.ts +27 -0
  179. package/lib/common/definitions/commands.d.ts +51 -0
  180. package/lib/common/definitions/config.d.ts +33 -0
  181. package/lib/common/definitions/extensibility.d.ts +147 -0
  182. package/lib/common/definitions/google-analytics.d.ts +109 -0
  183. package/lib/common/definitions/json-file-settings-service.d.ts +24 -0
  184. package/lib/common/definitions/key-commands.d.ts +62 -0
  185. package/lib/common/definitions/logger.d.ts +41 -0
  186. package/lib/common/definitions/mobile.d.ts +1499 -0
  187. package/lib/common/definitions/validator.d.ts +8 -0
  188. package/lib/common/definitions/yok.d.ts +56 -0
  189. package/lib/common/dispatchers.js +151 -0
  190. package/lib/common/docs/helpers/basic-extensions-page.html +15 -0
  191. package/lib/common/docs/helpers/basic-page.html +14 -0
  192. package/lib/common/docs/helpers/styles.css +365 -0
  193. package/lib/common/doctor.d.ts +6 -0
  194. package/lib/common/errors.js +206 -0
  195. package/lib/common/file-system.js +441 -0
  196. package/lib/common/header.js +30 -0
  197. package/lib/common/helpers.js +658 -0
  198. package/lib/common/host-info.js +133 -0
  199. package/lib/common/http-client.js +173 -0
  200. package/lib/common/logger/appenders/cli-appender.js +24 -0
  201. package/lib/common/logger/appenders/emit-appender.js +30 -0
  202. package/lib/common/logger/layouts/cli-layout.js +33 -0
  203. package/lib/common/logger/logger.js +199 -0
  204. package/lib/common/messages/messages.interface.d.ts +10 -0
  205. package/lib/common/messages/messages.js +15 -0
  206. package/lib/common/mobile/android/android-application-manager.js +228 -0
  207. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +332 -0
  208. package/lib/common/mobile/android/android-debug-bridge.js +167 -0
  209. package/lib/common/mobile/android/android-device-file-system.js +176 -0
  210. package/lib/common/mobile/android/android-device-hash-service.js +133 -0
  211. package/lib/common/mobile/android/android-device.js +164 -0
  212. package/lib/common/mobile/android/android-emulator-services.js +205 -0
  213. package/lib/common/mobile/android/android-ini-file-parser.js +77 -0
  214. package/lib/common/mobile/android/android-log-filter.js +42 -0
  215. package/lib/common/mobile/android/android-virtual-device-service.js +360 -0
  216. package/lib/common/mobile/android/device-android-debug-bridge.js +48 -0
  217. package/lib/common/mobile/android/genymotion/genymotion-service.js +211 -0
  218. package/lib/common/mobile/android/genymotion/virtualbox-service.js +121 -0
  219. package/lib/common/mobile/android/logcat-helper.js +165 -0
  220. package/lib/common/mobile/application-manager-base.js +136 -0
  221. package/lib/common/mobile/device-emitter.js +61 -0
  222. package/lib/common/mobile/device-log-emitter.js +40 -0
  223. package/lib/common/mobile/device-log-provider-base.js +76 -0
  224. package/lib/common/mobile/device-log-provider.js +126 -0
  225. package/lib/common/mobile/device-platforms-constants.js +22 -0
  226. package/lib/common/mobile/emulator-helper.js +84 -0
  227. package/lib/common/mobile/ios/device/ios-application-manager.js +159 -0
  228. package/lib/common/mobile/ios/device/ios-device-file-system.js +133 -0
  229. package/lib/common/mobile/ios/device/ios-device-operations.js +234 -0
  230. package/lib/common/mobile/ios/device/ios-device.js +153 -0
  231. package/lib/common/mobile/ios/ios-device-base.js +108 -0
  232. package/lib/common/mobile/ios/ios-device-product-name-mapper.js +65 -0
  233. package/lib/common/mobile/ios/ios-log-filter.js +24 -0
  234. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +139 -0
  235. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +23 -0
  236. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +147 -0
  237. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +106 -0
  238. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +81 -0
  239. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +69 -0
  240. package/lib/common/mobile/local-to-device-path-data-factory.js +37 -0
  241. package/lib/common/mobile/log-filter.js +51 -0
  242. package/lib/common/mobile/logging-levels.js +12 -0
  243. package/lib/common/mobile/mobile-core/android-device-discovery.js +91 -0
  244. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +65 -0
  245. package/lib/common/mobile/mobile-core/android-process-service.js +259 -0
  246. package/lib/common/mobile/mobile-core/device-discovery.js +64 -0
  247. package/lib/common/mobile/mobile-core/devices-service.js +854 -0
  248. package/lib/common/mobile/mobile-core/ios-device-discovery.js +63 -0
  249. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +109 -0
  250. package/lib/common/mobile/mobile-helper.js +102 -0
  251. package/lib/common/mobile/wp8/wp8-emulator-services.js +82 -0
  252. package/lib/common/old.npmignore +12 -0
  253. package/lib/common/opener.js +16 -0
  254. package/lib/common/os-info.js +21 -0
  255. package/lib/common/plist-parser.js +24 -0
  256. package/lib/common/project-helper.js +70 -0
  257. package/lib/common/prompter.js +191 -0
  258. package/lib/common/queue.js +37 -0
  259. package/lib/common/resource-loader.js +25 -0
  260. package/lib/common/resources/messages/errorMessages.json +7 -0
  261. package/lib/common/resources/platform-tools/android/darwin/NOTICE.txt +3407 -0
  262. package/lib/common/resources/platform-tools/android/darwin/adb +0 -0
  263. package/lib/common/resources/platform-tools/android/linux/NOTICE.txt +4451 -0
  264. package/lib/common/resources/platform-tools/android/linux/adb +0 -0
  265. package/lib/common/resources/platform-tools/android/win32/AdbWinApi.dll +0 -0
  266. package/lib/common/resources/platform-tools/android/win32/AdbWinUsbApi.dll +0 -0
  267. package/lib/common/resources/platform-tools/android/win32/NOTICE.txt +4451 -0
  268. package/lib/common/resources/platform-tools/android/win32/adb.exe +0 -0
  269. package/lib/common/resources/platform-tools/android/win32/fastboot.exe +0 -0
  270. package/lib/common/resources/platform-tools/unzip/win32/unzip.exe +0 -0
  271. package/lib/common/services/analytics/google-analytics-custom-dimensions.d.ts +16 -0
  272. package/lib/common/services/auto-completion-service.js +265 -0
  273. package/lib/common/services/cancellation.js +67 -0
  274. package/lib/common/services/commands-service.js +268 -0
  275. package/lib/common/services/help-service.js +252 -0
  276. package/lib/common/services/hooks-service.js +318 -0
  277. package/lib/common/services/ios-notification-service.js +49 -0
  278. package/lib/common/services/json-file-settings-service.js +133 -0
  279. package/lib/common/services/lock-service.js +129 -0
  280. package/lib/common/services/message-contract-generator.js +83 -0
  281. package/lib/common/services/messages-service.js +77 -0
  282. package/lib/common/services/micro-templating-service.js +49 -0
  283. package/lib/common/services/net-service.js +137 -0
  284. package/lib/common/services/project-files-manager.js +100 -0
  285. package/lib/common/services/project-files-provider-base.js +54 -0
  286. package/lib/common/services/proxy-service.js +64 -0
  287. package/lib/common/services/qr.js +39 -0
  288. package/lib/common/services/settings-service.js +42 -0
  289. package/lib/common/services/xcode-select-service.js +62 -0
  290. package/lib/common/utils.js +31 -0
  291. package/lib/common/validators/project-name-validator.js +88 -0
  292. package/lib/common/validators/validation-result.js +16 -0
  293. package/lib/common/vendor/License.txt +4 -0
  294. package/lib/common/vendor/jaro-winkler_distance.js +111 -0
  295. package/lib/common/verify-node-version.js +78 -0
  296. package/lib/common/yok.js +426 -0
  297. package/lib/config.js +137 -0
  298. package/lib/constants-provider.js +12 -0
  299. package/lib/constants.js +350 -0
  300. package/lib/controllers/build-controller.js +133 -0
  301. package/lib/controllers/debug-controller.js +235 -0
  302. package/lib/controllers/deploy-controller.js +38 -0
  303. package/lib/controllers/migrate-controller.js +1114 -0
  304. package/lib/controllers/platform-controller.js +127 -0
  305. package/lib/controllers/prepare-controller.js +353 -0
  306. package/lib/controllers/run-controller.js +525 -0
  307. package/lib/controllers/update-controller-base.js +84 -0
  308. package/lib/controllers/update-controller.js +188 -0
  309. package/lib/data/build-data.js +44 -0
  310. package/lib/data/controller-data-base.js +11 -0
  311. package/lib/data/debug-data.js +6 -0
  312. package/lib/data/platform-data.js +13 -0
  313. package/lib/data/prepare-data.js +46 -0
  314. package/lib/data/run-data.js +11 -0
  315. package/lib/declarations.d.ts +1256 -0
  316. package/lib/definitions/android-bundle-tool-service.d.ts +17 -0
  317. package/lib/definitions/android-plugin-migrator.d.ts +52 -0
  318. package/lib/definitions/build.d.ts +92 -0
  319. package/lib/definitions/cleanup-service.d.ts +79 -0
  320. package/lib/definitions/data.d.ts +7 -0
  321. package/lib/definitions/debug.d.ts +166 -0
  322. package/lib/definitions/deploy.d.ts +3 -0
  323. package/lib/definitions/file-log-service.d.ts +19 -0
  324. package/lib/definitions/files-hash-service.d.ts +35 -0
  325. package/lib/definitions/gradle.d.ts +33 -0
  326. package/lib/definitions/hmr-status-service.d.ts +5 -0
  327. package/lib/definitions/initialize-service.d.ts +11 -0
  328. package/lib/definitions/ios-debugger-port-service.d.ts +29 -0
  329. package/lib/definitions/ios.d.ts +97 -0
  330. package/lib/definitions/ip-service.d.ts +10 -0
  331. package/lib/definitions/livesync-global.d.ts +7 -0
  332. package/lib/definitions/livesync.d.ts +601 -0
  333. package/lib/definitions/lock-service.d.ts +43 -0
  334. package/lib/definitions/log-parser-service.d.ts +14 -0
  335. package/lib/definitions/marking-mode-service.d.ts +11 -0
  336. package/lib/definitions/metadata-filtering-service.d.ts +48 -0
  337. package/lib/definitions/migrate.d.ts +46 -0
  338. package/lib/definitions/nativescript-dev-xcode.d.ts +87 -0
  339. package/lib/definitions/pacote-service.d.ts +50 -0
  340. package/lib/definitions/platform.d.ts +146 -0
  341. package/lib/definitions/plugins.d.ts +75 -0
  342. package/lib/definitions/prepare.d.ts +51 -0
  343. package/lib/definitions/project-changes.d.ts +34 -0
  344. package/lib/definitions/project.d.ts +858 -0
  345. package/lib/definitions/prompter.d.ts +27 -0
  346. package/lib/definitions/qr-code.d.ts +3 -0
  347. package/lib/definitions/require.d.ts +11 -0
  348. package/lib/definitions/run.d.ts +45 -0
  349. package/lib/definitions/start-service.d.ts +15 -0
  350. package/lib/definitions/subscription-service.d.ts +11 -0
  351. package/lib/definitions/system-warnings.d.ts +4 -0
  352. package/lib/definitions/temp-service.d.ts +9 -0
  353. package/lib/definitions/terminal-spinner-service.d.ts +12 -0
  354. package/lib/definitions/update.d.ts +16 -0
  355. package/lib/definitions/xcode.d.ts +12 -0
  356. package/lib/detached-processes/cleanup-js-subprocess.js +62 -0
  357. package/lib/detached-processes/cleanup-process-definitions.d.ts +70 -0
  358. package/lib/detached-processes/cleanup-process.js +281 -0
  359. package/lib/detached-processes/detached-process-enums.d.ts +70 -0
  360. package/lib/detached-processes/file-log-service.js +20 -0
  361. package/lib/device-path-provider.js +60 -0
  362. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +217 -0
  363. package/lib/device-sockets/ios/notification.js +30 -0
  364. package/lib/device-sockets/ios/socket-request-executor.js +56 -0
  365. package/lib/helpers/android-bundle-validator-helper.js +52 -0
  366. package/lib/helpers/deploy-command-helper.js +70 -0
  367. package/lib/helpers/key-command-helper.js +124 -0
  368. package/lib/helpers/livesync-command-helper.js +220 -0
  369. package/lib/helpers/network-connectivity-validator.js +47 -0
  370. package/lib/helpers/options-track-helper.js +88 -0
  371. package/lib/helpers/package-path-helper.js +6 -0
  372. package/lib/helpers/platform-command-helper.js +192 -0
  373. package/lib/helpers/version-validator-helper.js +25 -0
  374. package/lib/key-commands/bootstrap.js +21 -0
  375. package/lib/key-commands/index.js +456 -0
  376. package/lib/nativescript-cli-lib-bootstrap.js +8 -0
  377. package/lib/nativescript-cli-lib.js +5 -0
  378. package/lib/nativescript-cli.js +55 -0
  379. package/lib/node/pbxproj-dom-xcode.js +5 -0
  380. package/lib/node/xcode.js +7 -0
  381. package/lib/node-package-manager.js +156 -0
  382. package/lib/options.js +393 -0
  383. package/lib/package-installation-manager.js +221 -0
  384. package/lib/package-manager.js +184 -0
  385. package/lib/platform-command-param.js +29 -0
  386. package/lib/pnpm-package-manager.js +136 -0
  387. package/lib/project-data.js +237 -0
  388. package/lib/providers/project-files-provider.js +46 -0
  389. package/lib/resolvers/livesync-service-resolver.js +22 -0
  390. package/lib/services/analytics/analytics-broker-process.js +77 -0
  391. package/lib/services/analytics/analytics-broker.js +53 -0
  392. package/lib/services/analytics/analytics-service.js +366 -0
  393. package/lib/services/analytics/analytics.d.ts +55 -0
  394. package/lib/services/analytics/google-analytics-cross-client-custom-dimensions.d.ts +6 -0
  395. package/lib/services/analytics/google-analytics-provider.js +152 -0
  396. package/lib/services/analytics-settings-service.js +104 -0
  397. package/lib/services/android/android-bundle-tool-service.js +81 -0
  398. package/lib/services/android/gradle-build-args-service.js +87 -0
  399. package/lib/services/android/gradle-build-service.js +68 -0
  400. package/lib/services/android/gradle-command-service.js +49 -0
  401. package/lib/services/android-device-debug-service.js +173 -0
  402. package/lib/services/android-plugin-build-service.js +527 -0
  403. package/lib/services/android-project-service.js +600 -0
  404. package/lib/services/android-resources-migration-service.js +104 -0
  405. package/lib/services/apple-portal/apple-portal-application-service.js +82 -0
  406. package/lib/services/apple-portal/apple-portal-cookie-service.js +53 -0
  407. package/lib/services/apple-portal/apple-portal-session-service.js +277 -0
  408. package/lib/services/apple-portal/definitions.d.ts +87 -0
  409. package/lib/services/assets-generation/assets-generation-service.js +178 -0
  410. package/lib/services/build-artifacts-service.js +113 -0
  411. package/lib/services/build-data-service.js +20 -0
  412. package/lib/services/build-info-file-service.js +79 -0
  413. package/lib/services/cleanup-service.js +194 -0
  414. package/lib/services/cocoapods-platform-manager.js +137 -0
  415. package/lib/services/cocoapods-service.js +354 -0
  416. package/lib/services/debug-data-service.js +21 -0
  417. package/lib/services/debug-service-base.js +44 -0
  418. package/lib/services/device/device-install-app-service.js +118 -0
  419. package/lib/services/doctor-service.js +294 -0
  420. package/lib/services/extensibility-service.js +220 -0
  421. package/lib/services/files-hash-service.js +79 -0
  422. package/lib/services/hmr-status-service.js +128 -0
  423. package/lib/services/info-service.js +14 -0
  424. package/lib/services/initialize-service.js +70 -0
  425. package/lib/services/ios/export-options-plist-service.js +131 -0
  426. package/lib/services/ios/ios-signing-service.js +265 -0
  427. package/lib/services/ios/spm-service.js +78 -0
  428. package/lib/services/ios/xcodebuild-args-service.js +163 -0
  429. package/lib/services/ios/xcodebuild-command-service.js +40 -0
  430. package/lib/services/ios/xcodebuild-service.js +93 -0
  431. package/lib/services/ios-debugger-port-service.js +140 -0
  432. package/lib/services/ios-device-debug-service.js +167 -0
  433. package/lib/services/ios-entitlements-service.js +78 -0
  434. package/lib/services/ios-extensions-service.js +63 -0
  435. package/lib/services/ios-log-filter.js +70 -0
  436. package/lib/services/ios-native-target-service.js +108 -0
  437. package/lib/services/ios-project-service.js +851 -0
  438. package/lib/services/ios-provision-service.js +173 -0
  439. package/lib/services/ios-watch-app-service.js +76 -0
  440. package/lib/services/ip-service.js +78 -0
  441. package/lib/services/itmstransporter-service.js +216 -0
  442. package/lib/services/karma-execution.js +16 -0
  443. package/lib/services/livesync/android-device-livesync-service-base.js +68 -0
  444. package/lib/services/livesync/android-device-livesync-service.js +203 -0
  445. package/lib/services/livesync/android-device-livesync-sockets-service.js +198 -0
  446. package/lib/services/livesync/android-livesync-service.js +76 -0
  447. package/lib/services/livesync/android-livesync-tool.js +427 -0
  448. package/lib/services/livesync/android-livesync-tool.md +211 -0
  449. package/lib/services/livesync/device-livesync-service-base.js +69 -0
  450. package/lib/services/livesync/ios-device-livesync-service.js +218 -0
  451. package/lib/services/livesync/ios-livesync-service.js +95 -0
  452. package/lib/services/livesync/livesync-socket.js +14 -0
  453. package/lib/services/livesync/platform-livesync-service-base.js +180 -0
  454. package/lib/services/livesync-process-data-service.js +43 -0
  455. package/lib/services/log-parser-service.js +52 -0
  456. package/lib/services/log-source-map-service.js +235 -0
  457. package/lib/services/marking-mode-service.js +56 -0
  458. package/lib/services/metadata-filtering-service.js +105 -0
  459. package/lib/services/npm-config-service.js +39 -0
  460. package/lib/services/pacote-service.js +109 -0
  461. package/lib/services/performance-service.js +92 -0
  462. package/lib/services/platform/add-platform-service.js +119 -0
  463. package/lib/services/platform/platform-validation-service.js +85 -0
  464. package/lib/services/platform/prepare-native-platform-service.js +87 -0
  465. package/lib/services/platform-environment-requirements.js +87 -0
  466. package/lib/services/platform-project-service-base.js +32 -0
  467. package/lib/services/platforms-data-service.js +31 -0
  468. package/lib/services/plugins-service.js +477 -0
  469. package/lib/services/prepare-data-service.js +21 -0
  470. package/lib/services/project-backup-service.js +114 -0
  471. package/lib/services/project-changes-service.js +274 -0
  472. package/lib/services/project-cleanup-service.js +102 -0
  473. package/lib/services/project-config-service.js +335 -0
  474. package/lib/services/project-data-service.js +478 -0
  475. package/lib/services/project-name-service.js +67 -0
  476. package/lib/services/project-service.js +204 -0
  477. package/lib/services/project-templates-service.js +114 -0
  478. package/lib/services/qr-code-terminal-service.js +20 -0
  479. package/lib/services/require-service.js +11 -0
  480. package/lib/services/start-service.js +116 -0
  481. package/lib/services/temp-service.js +36 -0
  482. package/lib/services/terminal-spinner-service.js +38 -0
  483. package/lib/services/test-execution-service.js +154 -0
  484. package/lib/services/test-initialization-service.js +54 -0
  485. package/lib/services/timeline-profiler-service.js +108 -0
  486. package/lib/services/user-settings-service.js +34 -0
  487. package/lib/services/versions-service.js +196 -0
  488. package/lib/services/watch-ignore-list-service.js +20 -0
  489. package/lib/services/webpack/webpack-compiler-service.js +405 -0
  490. package/lib/services/webpack/webpack.d.ts +227 -0
  491. package/lib/services/xcconfig-service.js +76 -0
  492. package/lib/services/xcproj-service.js +11 -0
  493. package/lib/shared-event-bus.js +7 -0
  494. package/lib/sys-info.js +120 -0
  495. package/lib/tools/config-manipulation/config-transformer.js +201 -0
  496. package/lib/tools/node-modules/node-modules-builder.js +42 -0
  497. package/lib/tools/node-modules/node-modules-dependencies-builder.js +100 -0
  498. package/lib/yarn-package-manager.js +134 -0
  499. package/lib/yarn2-package-manager.js +143 -0
  500. package/package.json +192 -0
  501. package/postinstall.js +10 -0
  502. package/preuninstall.js +14 -0
  503. package/resources/assets/image-definitions.json +655 -0
  504. package/resources/test/example.jasmine.js +6 -0
  505. package/resources/test/example.jasmine.ts +6 -0
  506. package/resources/test/example.mocha.js +9 -0
  507. package/resources/test/example.mocha.ts +9 -0
  508. package/resources/test/example.qunit.js +7 -0
  509. package/resources/test/example.qunit.ts +7 -0
  510. package/resources/test/karma.conf.js +93 -0
  511. package/resources/test/test-main.js +9 -0
  512. package/resources/test/test-main.ts +11 -0
  513. package/resources/test/tsconfig.spec.json +9 -0
  514. package/setup/mac-startup-shell-script.sh +2 -0
  515. package/vendor/aab-tool/LICENSE +202 -0
  516. package/vendor/aab-tool/README.txt +1 -0
  517. package/vendor/aab-tool/bundletool.jar +0 -0
  518. package/vendor/gradle-app/app/build.gradle +1054 -0
  519. package/vendor/gradle-app/app/gradle-helpers/AnalyticsCollector.gradle +48 -0
  520. package/vendor/gradle-app/app/gradle-helpers/BuildToolTask.gradle +50 -0
  521. package/vendor/gradle-app/app/gradle-helpers/CustomExecutionLogger.gradle +52 -0
  522. package/vendor/gradle-app/build.gradle +170 -0
  523. package/vendor/gradle-app/settings.gradle +78 -0
  524. package/vendor/gradle-plugin/LICENSE +995 -0
  525. package/vendor/gradle-plugin/build.gradle +363 -0
  526. package/vendor/gradle-plugin/gradle/wrapper/gradle-wrapper.jar +0 -0
  527. package/vendor/gradle-plugin/gradle/wrapper/gradle-wrapper.properties +6 -0
  528. package/vendor/gradle-plugin/gradle.properties +6 -0
  529. package/vendor/gradle-plugin/gradlew +172 -0
  530. package/vendor/gradle-plugin/gradlew.bat +84 -0
  531. package/vendor/gradle-plugin/settings.gradle +45 -0
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.deprecated = exports.performanceLog = exports.exported = exports.invokeInit = exports.invokeBefore = exports.memoize = exports.cache = void 0;
13
+ const constants_1 = require("../constants");
14
+ const yok_1 = require("./yok");
15
+ function cache() {
16
+ return (target, propertyKey, descriptor) => {
17
+ let result;
18
+ const propName = descriptor.value ? "value" : "get";
19
+ const originalValue = descriptor[propName];
20
+ descriptor[propName] = function (...args) {
21
+ const propertyName = `__isCalled_${propertyKey}__`;
22
+ if (this && !this[propertyName]) {
23
+ this[propertyName] = true;
24
+ result = originalValue.apply(this, args);
25
+ }
26
+ return result;
27
+ };
28
+ return descriptor;
29
+ };
30
+ }
31
+ exports.cache = cache;
32
+ let memoizeIDCounter = 0;
33
+ function memoize(options) {
34
+ return (target, propertyKey, descriptor) => {
35
+ const DEBUG = false;
36
+ const memoizeID = memoizeIDCounter++;
37
+ const valueOrGet = descriptor.value ? "value" : "get";
38
+ const originalMethod = descriptor[valueOrGet];
39
+ descriptor[valueOrGet] = function (...args) {
40
+ const cacheMapName = `__memoize_cache_map_${memoizeID}`;
41
+ DEBUG && console.log(options);
42
+ let hashKey;
43
+ if (options.hashFn) {
44
+ DEBUG && console.log({ args });
45
+ hashKey = options.hashFn.apply(this, args);
46
+ }
47
+ else {
48
+ hashKey = `__memoize_cache_value_${memoizeID}`;
49
+ }
50
+ DEBUG &&
51
+ console.log({
52
+ cacheMapName,
53
+ hashKey,
54
+ });
55
+ if (!this.hasOwnProperty(cacheMapName)) {
56
+ DEBUG && console.log("NO CACHE MAP YET, CREATING ONE NOW");
57
+ Object.defineProperty(this, cacheMapName, {
58
+ configurable: false,
59
+ enumerable: false,
60
+ writable: false,
61
+ value: new Map(),
62
+ });
63
+ }
64
+ const cacheMap = this[cacheMapName];
65
+ DEBUG &&
66
+ console.log({
67
+ cacheMap,
68
+ });
69
+ if (cacheMap.has(hashKey)) {
70
+ DEBUG && console.log("CACHE HIT");
71
+ return cacheMap.get(hashKey);
72
+ }
73
+ DEBUG && console.log("CACHE MISS");
74
+ const result = originalMethod.apply(this, args);
75
+ let shouldCache = true;
76
+ if (options.shouldCache) {
77
+ shouldCache = options.shouldCache.call(this, result);
78
+ }
79
+ DEBUG && console.log("GOT BACK SHOULDCACHE", shouldCache);
80
+ if (shouldCache) {
81
+ DEBUG && console.log("CACHING NOW");
82
+ cacheMap.set(hashKey, result);
83
+ }
84
+ DEBUG && console.log("RETURNING", result);
85
+ return result;
86
+ };
87
+ return descriptor;
88
+ };
89
+ }
90
+ exports.memoize = memoize;
91
+ function invokeBefore(methodName, methodArgs) {
92
+ return (target, propertyKey, descriptor) => {
93
+ const originalValue = descriptor.value;
94
+ descriptor.value = function (...args) {
95
+ return __awaiter(this, void 0, void 0, function* () {
96
+ yield target[methodName].apply(this, methodArgs);
97
+ return originalValue.apply(this, args);
98
+ });
99
+ };
100
+ return descriptor;
101
+ };
102
+ }
103
+ exports.invokeBefore = invokeBefore;
104
+ function invokeInit() {
105
+ return invokeBefore("init");
106
+ }
107
+ exports.invokeInit = invokeInit;
108
+ function exported(moduleName) {
109
+ return (target, propertyKey, descriptor) => {
110
+ yok_1.injector.publicApi.__modules__[moduleName] =
111
+ yok_1.injector.publicApi.__modules__[moduleName] || {};
112
+ yok_1.injector.publicApi.__modules__[moduleName][propertyKey] = (...args) => {
113
+ const originalModule = yok_1.injector.resolve(moduleName), originalMethod = originalModule[propertyKey], result = originalMethod.apply(originalModule, args);
114
+ return result;
115
+ };
116
+ return descriptor;
117
+ };
118
+ }
119
+ exports.exported = exported;
120
+ function performanceLog(localInjector) {
121
+ localInjector = localInjector || yok_1.injector;
122
+ return function (target, propertyKey, descriptor) {
123
+ const originalMethod = descriptor.value;
124
+ const className = target.constructor.name;
125
+ const trackName = `${className}${constants_1.AnalyticsEventLabelDelimiter}${propertyKey}`;
126
+ const performanceService = localInjector.resolve("performanceService");
127
+ const functionWrapper = {
128
+ [originalMethod.name]: function (...args) {
129
+ const start = performanceService.now();
130
+ const result = originalMethod.apply(this, args);
131
+ const resolvedPromise = Promise.resolve(result);
132
+ let end;
133
+ if (resolvedPromise !== result) {
134
+ end = performanceService.now();
135
+ performanceService.processExecutionData(trackName, start, end, args);
136
+ }
137
+ else {
138
+ resolvedPromise
139
+ .then(() => {
140
+ end = performanceService.now();
141
+ performanceService.processExecutionData(trackName, start, end, args);
142
+ })
143
+ .catch((err) => {
144
+ end = performanceService.now();
145
+ performanceService.processExecutionData(trackName, start, end, args);
146
+ });
147
+ }
148
+ return result;
149
+ },
150
+ };
151
+ descriptor.value = functionWrapper[originalMethod.name];
152
+ descriptor.value.toString = () => {
153
+ return originalMethod.toString();
154
+ };
155
+ return descriptor;
156
+ };
157
+ }
158
+ exports.performanceLog = performanceLog;
159
+ function deprecated(additionalInfo, localInjector) {
160
+ const isDeprecatedMessage = " is deprecated.";
161
+ return (target, key, descriptor) => {
162
+ localInjector = localInjector || yok_1.injector;
163
+ additionalInfo = additionalInfo || "";
164
+ const $logger = localInjector.resolve("logger");
165
+ if (descriptor) {
166
+ if (descriptor.value) {
167
+ const originalMethod = descriptor.value;
168
+ descriptor.value = function (...args) {
169
+ $logger.warn(`${key.toString()}${isDeprecatedMessage} ${additionalInfo}`);
170
+ return originalMethod.apply(this, args);
171
+ };
172
+ return descriptor;
173
+ }
174
+ else {
175
+ if (descriptor.set) {
176
+ const originalSetter = descriptor.set;
177
+ descriptor.set = function (...args) {
178
+ $logger.warn(`${key.toString()}${isDeprecatedMessage} ${additionalInfo}`);
179
+ originalSetter.apply(this, args);
180
+ };
181
+ }
182
+ if (descriptor.get) {
183
+ const originalGetter = descriptor.get;
184
+ descriptor.get = function (...args) {
185
+ $logger.warn(`${key.toString()}${isDeprecatedMessage} ${additionalInfo}`);
186
+ return originalGetter.apply(this, args);
187
+ };
188
+ }
189
+ return descriptor;
190
+ }
191
+ }
192
+ else {
193
+ $logger.warn(`${(target &&
194
+ (target.name ||
195
+ (target.constructor && target.constructor.name))) ||
196
+ target}${isDeprecatedMessage} ${additionalInfo}`);
197
+ return target;
198
+ }
199
+ };
200
+ }
201
+ exports.deprecated = deprecated;
@@ -0,0 +1,22 @@
1
+ import { IInjector } from "./yok";
2
+
3
+ declare var _: _.LoDashStatic;
4
+ /**
5
+ * Defines additional properties added to global object from CLI.
6
+ */
7
+ interface ICliGlobal extends NodeJS.Global {
8
+ /**
9
+ * Lodash instance.
10
+ */
11
+ _: _.LoDashStatic;
12
+
13
+ /**
14
+ * Global instance of the module used for dependency injection.
15
+ */
16
+ $injector: IInjector;
17
+
18
+ /**
19
+ * Instance of xmlhttprequest.
20
+ */
21
+ XMLHttpRequest: any;
22
+ }
@@ -0,0 +1,27 @@
1
+ interface ICommandsService {
2
+ currentCommandData: ICommandData;
3
+ allCommands(opts: { includeDevCommands: boolean }): string[];
4
+ tryExecuteCommand(
5
+ commandName: string,
6
+ commandArguments: string[]
7
+ ): Promise<void>;
8
+ executeCommandUnchecked(
9
+ commandName: string,
10
+ commandArguments: string[]
11
+ ): Promise<boolean>;
12
+ }
13
+
14
+ /**
15
+ * Describes the command data.
16
+ */
17
+ interface ICommandData {
18
+ /**
19
+ * Name of the command, usually the one registered in bootstrap.
20
+ */
21
+ commandName: string;
22
+
23
+ /**
24
+ * Additional arguments passed to the command.
25
+ */
26
+ commandArguments: string[];
27
+ }
@@ -0,0 +1,51 @@
1
+ import { IDictionary, IDashedOption, ICommandOptions } from "../declarations";
2
+
3
+ interface ICommand extends ICommandOptions {
4
+ execute(args: string[]): Promise<void>;
5
+ allowedParameters: ICommandParameter[];
6
+
7
+ isDisabled?: boolean;
8
+
9
+ // Implement this method in cases when you want to have your own logic for validation. In case you do not implement it,
10
+ // the command will be evaluated from CommandsService's canExecuteCommand method.
11
+ // One possible case where you can use this method is when you have two commandParameters, neither of them is mandatory,
12
+ // but at least one of them is required. Used in prop|add, prop|set, etc. commands as their logic is complicated and
13
+ // default validation in CommandsService is not applicable.
14
+ canExecute?(args: string[]): Promise<boolean>;
15
+ completionData?: string[];
16
+ dashedOptions?: IDictionary<IDashedOption>;
17
+ isHierarchicalCommand?: boolean;
18
+
19
+ /**
20
+ * Describes the action that will be executed after the command succeeds.
21
+ * @param {string[]} args Arguments passed to the command.
22
+ * @returns {Promise<void>}
23
+ */
24
+ postCommandAction?(args: string[]): Promise<void>;
25
+ }
26
+
27
+ interface ICanExecuteCommandOptions {
28
+ validateOptions?: boolean;
29
+ notConfiguredEnvOptions?: INotConfiguredEnvOptions;
30
+ }
31
+
32
+ interface INotConfiguredEnvOptions {
33
+ hideCloudBuildOption?: boolean;
34
+ }
35
+
36
+ interface ISimilarCommand {
37
+ name: string;
38
+ rating: number;
39
+ }
40
+
41
+ interface ICommandArgument {}
42
+
43
+ interface ICommandParameter {
44
+ mandatory: boolean;
45
+ errorMessage?: string;
46
+ validate(value: string, errorMessage?: string): Promise<boolean>;
47
+ }
48
+
49
+ interface IStringParameterBuilder {
50
+ createMandatoryParameter(errorMsg: string): ICommandParameter;
51
+ }
@@ -0,0 +1,33 @@
1
+ declare module Config {
2
+ interface IStaticConfig {
3
+ PROJECT_FILE_NAME: string;
4
+ CLIENT_NAME_KEY_IN_PROJECT_FILE?: string;
5
+ CLIENT_NAME: string;
6
+ USER_AGENT_NAME: string;
7
+ CLIENT_NAME_ALIAS?: string;
8
+ FULL_CLIENT_NAME?: string;
9
+ ANALYTICS_INSTALLATION_ID_SETTING_NAME: string;
10
+ TRACK_FEATURE_USAGE_SETTING_NAME: string;
11
+ ERROR_REPORT_SETTING_NAME: string;
12
+ version: string;
13
+ cliBinPath: string;
14
+ getAdbFilePath(): Promise<string>;
15
+ disableAnalytics?: boolean;
16
+ disableCommandHooks?: boolean;
17
+ enableDeviceRunCommandOnWindows?: boolean;
18
+ MAN_PAGES_DIR: string;
19
+ HTML_PAGES_DIR: string;
20
+ HTML_COMMON_HELPERS_DIR: string;
21
+ HTML_CLI_HELPERS_DIR: string;
22
+ pathToPackageJson: string;
23
+ RESOURCE_DIR_PATH: string;
24
+ PATH_TO_BOOTSTRAP: string;
25
+ QR_SIZE: number;
26
+ PROFILE_DIR_NAME: string;
27
+ }
28
+
29
+ interface IConfig {
30
+ DEBUG?: boolean;
31
+ DISABLE_HOOKS: boolean;
32
+ }
33
+ }
@@ -0,0 +1,147 @@
1
+ import { IStringDictionary } from "../declarations";
2
+
3
+ /**
4
+ * Describes extension name data.
5
+ */
6
+ interface IExtensionName {
7
+ /**
8
+ * The name of the extension.
9
+ */
10
+ extensionName: string;
11
+ }
12
+
13
+ /**
14
+ * Describes each extension.
15
+ */
16
+ interface IExtensionData extends IExtensionName {
17
+ /**
18
+ * Extension version.
19
+ */
20
+ version: string;
21
+
22
+ /**
23
+ * Describes the location of the .md files containing the help of the commands included in the extension.
24
+ * The property will contain the full path to the extension docs, constructed by getting the value of the docs key in nativescript key of the extensions package.json
25
+ * and joining it with the full extension path. As some extensions may not have docs, the property may not be set.
26
+ */
27
+ docs?: string;
28
+
29
+ /**
30
+ * Full path to the directory of the installed extension.
31
+ */
32
+ pathToExtension: string;
33
+ }
34
+
35
+ /**
36
+ * Describes the object passed to getExtensionNameWhereCommandIsRegistered
37
+ */
38
+ interface IGetExtensionCommandInfoParams {
39
+ /**
40
+ * All input strings specified by user.
41
+ */
42
+ inputStrings: string[];
43
+
44
+ /**
45
+ * The separator that is used between each strings when command is registered.
46
+ */
47
+ commandDelimiter: string;
48
+
49
+ /**
50
+ * The default separator that is used between each strings when command is registered.
51
+ */
52
+ defaultCommandDelimiter: string;
53
+ }
54
+
55
+ /**
56
+ * Describes information in which extension a command is registered.
57
+ */
58
+ interface IExtensionCommandInfo extends IExtensionName {
59
+ /**
60
+ * The name of the command registered in the extension.
61
+ */
62
+ registeredCommandName: string;
63
+
64
+ /**
65
+ * Information how to install the extension.
66
+ */
67
+ installationMessage: string;
68
+ }
69
+
70
+ /**
71
+ * Defines methods for working with CLI's extensions.
72
+ */
73
+ interface IExtensibilityService {
74
+ /**
75
+ * Installs a specified extension.
76
+ * @param {string} extensionName Name of the extension to be installed. It may contain version as well, i.e. myPackage, myPackage@1.0.0,
77
+ * myPackage.tgz, https://github.com/myOrganization/myPackage/tarball/master, https://github.com/myOrganization/myPackage, etc.
78
+ * @returns {Promise<IExtensionData>} Information about installed extensions.
79
+ */
80
+ installExtension(extensionName: string): Promise<IExtensionData>;
81
+
82
+ /**
83
+ * Uninstalls extension from the installation.
84
+ * @param {string} extensionName Name of the extension to be uninstalled.
85
+ * @returns {Promise<void>}
86
+ */
87
+ uninstallExtension(extensionName: string): Promise<void>;
88
+
89
+ /**
90
+ * Removes all installed extensions.
91
+ * @returns {void}
92
+ */
93
+ removeAllExtensions(): void;
94
+
95
+ /**
96
+ * Loads all extensions, so their methods and commands can be used from CLI.
97
+ * For each of the extensions, a new Promise is returned. It will be rejected in case the extension cannot be loaded. However other promises will not be reflected by this failure.
98
+ * In case a promise is rejected, the error will have additional property (extensionName) that shows which is the extension that cannot be loaded in the process.
99
+ * @returns {Promise<IExtensionData>[]} Array of promises, each is resolved with information about loaded extension.
100
+ */
101
+ loadExtensions(): Promise<IExtensionData>[];
102
+
103
+ /**
104
+ * Loads a single extension, so its methods and commands can be used from CLI.
105
+ * @param {string} extensionName Name of the extension to be installed. It may contain version as well, i.e. myPackage, myPackage@1.0.0
106
+ * A Promise is returned. It will be rejected in case the extension cannot be loaded.
107
+ * @returns {Promise<IExtensionData>} Promise, resolved with IExtensionData.
108
+ */
109
+ loadExtension(extensionName: string): Promise<IExtensionData>;
110
+
111
+ /**
112
+ * Gets information about installed dependencies - names and versions.
113
+ * @returns {IStringDictionary}
114
+ */
115
+ getInstalledExtensions(): IStringDictionary;
116
+
117
+ /**
118
+ * Gives full information for each extension.
119
+ * @returns {IExtensionData[]} Data for each of the installed extensions, like name, version, path to extension, etc.
120
+ */
121
+ getInstalledExtensionsData(): IExtensionData[];
122
+
123
+ /**
124
+ * Gives the name of the extension that contains a required command.
125
+ * The method finds all extensions from npm and checks the command property defined in the nativescript key of the package.json.
126
+ * Based on specified input array, the method tries to find a suitable command that is defined in the extension.
127
+ * @example In case the input is `tns execute this command now`, the array will be ["execute", "this", "command", "now"].
128
+ * There may be an extension that defines execute|this as a command. The method will check each extension for the following commands:
129
+ * execute|this|command|now, execute|this|command, execute|this, execute
130
+ * In case it finds any of this commands, the method will return the extension name and the command name.
131
+ * @param {string[]} inputStrings All strings written on the terminal.
132
+ * @returns {IExtensionCommandInfo} Information about the extension and the registered command.
133
+ */
134
+ getExtensionNameWhereCommandIsRegistered(
135
+ inputOpts: IGetExtensionCommandInfoParams
136
+ ): Promise<IExtensionCommandInfo>;
137
+
138
+ /**
139
+ * Defines the path where CLI will search for extensions.
140
+ */
141
+ pathToExtensions: string;
142
+ }
143
+
144
+ /**
145
+ * Describes the error that will be raised when a problem with extension is detected.
146
+ */
147
+ interface IExtensionLoadingError extends Error, IExtensionData {}
@@ -0,0 +1,109 @@
1
+ import { GoogleAnalyticsDataType, IStringDictionary } from "../declarations";
2
+
3
+ /**
4
+ * Describes data that will be tracked to Google Analytics
5
+ */
6
+ interface IGoogleAnalyticsData {
7
+ /**
8
+ * Describes the type of information that will be tracked (Page or Event).
9
+ */
10
+ googleAnalyticsDataType: GoogleAnalyticsDataType;
11
+
12
+ /**
13
+ * Describes all custom dimensions that will be send to analytics.
14
+ */
15
+ customDimensions?: IStringDictionary;
16
+ }
17
+
18
+ /**
19
+ * Describes information about event that should be tracked.
20
+ */
21
+ interface IEventActionData {
22
+ /**
23
+ * The action name.
24
+ */
25
+ action: string;
26
+
27
+ /**
28
+ * Mobile platform for which the action will be tracked.
29
+ * In case device is passed, this property is disregarded and device.deviceInfo.platform is used instead.
30
+ */
31
+ platform?: string;
32
+
33
+ /**
34
+ * Describes if the action is for device or for simulator/emulator.
35
+ * In case device is passed, this property is disregarded and !device.isEmulator is used instead.
36
+ */
37
+ isForDevice?: boolean;
38
+
39
+ /**
40
+ * Device instance for which the action will be tracked.
41
+ */
42
+ device?: Mobile.IDevice;
43
+
44
+ /**
45
+ * Any additional data that should be tracked.
46
+ */
47
+ additionalData?: string;
48
+
49
+ /**
50
+ * Project directory, in case the action is executed inside project.
51
+ */
52
+ projectDir?: string;
53
+
54
+ /**
55
+ * Value that should be tracked
56
+ */
57
+ value?: number;
58
+ }
59
+
60
+ /**
61
+ * Describes page's information that should be tracked in Google Analytics.
62
+ * In CLI one page is one command.
63
+ */
64
+ interface IGoogleAnalyticsPageviewData extends IGoogleAnalyticsData {
65
+ /**
66
+ * Document path. The path portion of the page URL.
67
+ * https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#dp
68
+ * In our case this is the beautified command name, i.e. `build|android` will be tracked as `build android`, `build|*all` will be tracked as `build`.
69
+ */
70
+ path: string;
71
+
72
+ /**
73
+ * The title of the page / document.
74
+ * https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#dt
75
+ * In our case this is the beautified command name, i.e. `build|android` will be tracked as `build android`, `build|*all` will be tracked as `build`.
76
+ */
77
+ title: string;
78
+ }
79
+
80
+ /**
81
+ * Describes event's information that should be tracked in Google Analytics.
82
+ * In CLI these are all custom metrics and data that we track, instead of command.
83
+ */
84
+ interface IGoogleAnalyticsEventData extends IGoogleAnalyticsData {
85
+ /**
86
+ * Event category. For the moment it is hardcoded to CLI.
87
+ * https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#ec
88
+ */
89
+ category?: string;
90
+
91
+ /**
92
+ * Event action - the real action that has to be tracked, like Build, LiveSync, etc.
93
+ * https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#ea
94
+ */
95
+ action: string;
96
+
97
+ /**
98
+ * Event label - all custom data, specific for this action, like platform for Build operation, device type, os version, etc. for LiveSync.
99
+ * https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#el
100
+ */
101
+ label: string;
102
+
103
+ /**
104
+ * Event value. Specifies the event value. Values must be non-negative.
105
+ * https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#ev
106
+ * Currently not used.
107
+ */
108
+ value?: number;
109
+ }
@@ -0,0 +1,24 @@
1
+ import { IDictionary } from "../declarations";
2
+
3
+ interface ICacheTimeoutOpts {
4
+ cacheTimeout: number;
5
+ }
6
+
7
+ interface IUseCacheOpts {
8
+ useCaching: boolean;
9
+ }
10
+
11
+ interface IJsonFileSettingsService {
12
+ getSettingValue<T>(
13
+ settingName: string,
14
+ cacheOpts?: ICacheTimeoutOpts
15
+ ): Promise<T>;
16
+ saveSetting<T>(
17
+ key: string,
18
+ value: T,
19
+ cacheOpts?: IUseCacheOpts
20
+ ): Promise<void>;
21
+ removeSetting(key: string): Promise<void>;
22
+ loadUserSettingsFile(): Promise<void>;
23
+ saveSettings(data: IDictionary<{}>, cacheOpts?: IUseCacheOpts): Promise<void>;
24
+ }
@@ -0,0 +1,62 @@
1
+ export type IKeyCommandPlatform = "Android" | "iOS" | "visionOS" | "all";
2
+ export type IKeysLowerCase =
3
+ | "a"
4
+ | "b"
5
+ | "c"
6
+ | "d"
7
+ | "e"
8
+ | "f"
9
+ | "g"
10
+ | "h"
11
+ | "i"
12
+ | "j"
13
+ | "k"
14
+ | "l"
15
+ | "m"
16
+ | "n"
17
+ | "o"
18
+ | "p"
19
+ | "q"
20
+ | "r"
21
+ | "s"
22
+ | "t"
23
+ | "u"
24
+ | "v"
25
+ | "w"
26
+ | "x"
27
+ | "y"
28
+ | "z";
29
+
30
+ export type IKeysUpperCase = Uppercase<IKeysLowerCase>;
31
+
32
+ export const enum SpecialKeys {
33
+ CtrlC = "\u0003",
34
+ QuestionMark = "?",
35
+ }
36
+
37
+ export type IKeysSpecial = `${SpecialKeys}`;
38
+
39
+ export type IValidKeyName = IKeysLowerCase | IKeysUpperCase | IKeysSpecial;
40
+
41
+ export interface IKeyCommandHelper {
42
+ attachKeyCommands: (
43
+ platform: IKeyCommandPlatform,
44
+ processType: SupportedProcessType
45
+ ) => void;
46
+
47
+ addOverride(key: IValidKeyName, execute: () => Promise<boolean>);
48
+ removeOverride(key: IValidKeyName);
49
+ printCommands(platform: IKeyCommandPlatform): void;
50
+ }
51
+
52
+ export type SupportedProcessType = "start" | "run";
53
+
54
+ export interface IKeyCommand {
55
+ key: IValidKeyName;
56
+ platform: IKeyCommandPlatform;
57
+ description: string;
58
+ group: string;
59
+ willBlockKeyCommandExecution?: boolean;
60
+ execute(platform: string): Promise<void>;
61
+ canExecute?: (processType: SupportedProcessType) => boolean;
62
+ }