@akylas/nativescript-cli 8.7.2 → 8.8.3

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 (295) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/docs/man_pages/project/configuration/native/native-add-java.md +32 -0
  3. package/docs/man_pages/project/configuration/native/native-add-kotlin.md +34 -0
  4. package/docs/man_pages/project/configuration/native/native-add-objective-c.md +34 -0
  5. package/docs/man_pages/project/configuration/native/native-add-swift.md +32 -0
  6. package/docs/man_pages/project/configuration/native/native-add.md +31 -0
  7. package/docs/man_pages/project/configuration/native/native.md +31 -0
  8. package/lib/.d.ts +2 -0
  9. package/lib/android-tools-info.js +9 -20
  10. package/lib/base-package-manager.js +47 -64
  11. package/lib/bootstrap.js +8 -0
  12. package/lib/bun-package-manager.js +65 -88
  13. package/lib/color.js +2 -2
  14. package/lib/commands/add-platform.js +14 -30
  15. package/lib/commands/apple-login.js +18 -29
  16. package/lib/commands/appstore-list.js +34 -45
  17. package/lib/commands/appstore-upload.js +55 -68
  18. package/lib/commands/build.js +57 -86
  19. package/lib/commands/clean.js +161 -176
  20. package/lib/commands/command-base.js +14 -27
  21. package/lib/commands/config.js +51 -70
  22. package/lib/commands/create-project.js +210 -229
  23. package/lib/commands/debug.js +66 -88
  24. package/lib/commands/deploy.js +28 -44
  25. package/lib/commands/embedding/embed.js +72 -0
  26. package/lib/commands/extensibility/install-extension.js +5 -16
  27. package/lib/commands/extensibility/list-extensions.js +13 -24
  28. package/lib/commands/extensibility/uninstall-extension.js +4 -15
  29. package/lib/commands/fonts.js +30 -41
  30. package/lib/commands/generate-assets.js +13 -28
  31. package/lib/commands/generate-help.js +2 -13
  32. package/lib/commands/generate.js +17 -26
  33. package/lib/commands/info.js +2 -13
  34. package/lib/commands/install.js +34 -49
  35. package/lib/commands/list-platforms.js +14 -25
  36. package/lib/commands/migrate.js +15 -26
  37. package/lib/commands/native-add.js +277 -0
  38. package/lib/commands/platform-clean.js +19 -32
  39. package/lib/commands/plugin/add-plugin.js +12 -25
  40. package/lib/commands/plugin/build-plugin.js +34 -45
  41. package/lib/commands/plugin/create-plugin.js +110 -133
  42. package/lib/commands/plugin/list-plugins.js +22 -33
  43. package/lib/commands/plugin/remove-plugin.js +20 -33
  44. package/lib/commands/plugin/update-plugin.js +20 -33
  45. package/lib/commands/post-install.js +20 -33
  46. package/lib/commands/prepare.js +28 -35
  47. package/lib/commands/preview.js +49 -62
  48. package/lib/commands/remove-platform.js +7 -18
  49. package/lib/commands/resources/resources-update.js +13 -26
  50. package/lib/commands/run.js +55 -76
  51. package/lib/commands/start.js +6 -19
  52. package/lib/commands/test-init.js +123 -134
  53. package/lib/commands/test.js +66 -89
  54. package/lib/commands/typings.js +126 -142
  55. package/lib/commands/update-platform.js +22 -35
  56. package/lib/commands/update.js +30 -43
  57. package/lib/common/child-process.js +53 -72
  58. package/lib/common/codeGeneration/code-entity.js +1 -1
  59. package/lib/common/codeGeneration/code-printer.js +1 -1
  60. package/lib/common/command-params.js +7 -18
  61. package/lib/common/commands/analytics.js +27 -40
  62. package/lib/common/commands/autocompletion.js +39 -56
  63. package/lib/common/commands/device/device-log-stream.js +12 -23
  64. package/lib/common/commands/device/get-file.js +22 -33
  65. package/lib/common/commands/device/list-applications.js +12 -23
  66. package/lib/common/commands/device/list-devices.js +72 -87
  67. package/lib/common/commands/device/list-files.js +23 -34
  68. package/lib/common/commands/device/put-file.js +22 -33
  69. package/lib/common/commands/device/run-application.js +12 -25
  70. package/lib/common/commands/device/stop-application.js +11 -22
  71. package/lib/common/commands/device/uninstall-application.js +6 -17
  72. package/lib/common/commands/generate-messages.js +17 -28
  73. package/lib/common/commands/help.js +20 -33
  74. package/lib/common/commands/package-manager-get.js +6 -17
  75. package/lib/common/commands/package-manager-set.js +9 -20
  76. package/lib/common/commands/post-install.js +2 -13
  77. package/lib/common/commands/preuninstall.js +23 -38
  78. package/lib/common/commands/proxy/proxy-base.js +8 -19
  79. package/lib/common/commands/proxy/proxy-clear.js +4 -15
  80. package/lib/common/commands/proxy/proxy-get.js +3 -14
  81. package/lib/common/commands/proxy/proxy-set.js +87 -100
  82. package/lib/common/constants.js +11 -11
  83. package/lib/common/decorators.js +10 -22
  84. package/lib/common/dispatchers.js +79 -96
  85. package/lib/common/errors.js +89 -104
  86. package/lib/common/file-system.js +106 -127
  87. package/lib/common/header.js +1 -2
  88. package/lib/common/helpers.js +149 -178
  89. package/lib/common/host-info.js +37 -50
  90. package/lib/common/http-client.js +93 -108
  91. package/lib/common/logger/appenders/cli-appender.js +1 -2
  92. package/lib/common/logger/appenders/emit-appender.js +1 -2
  93. package/lib/common/logger/layouts/cli-layout.js +1 -2
  94. package/lib/common/logger/logger.js +1 -1
  95. package/lib/common/mobile/android/android-application-manager.js +121 -142
  96. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +1 -1
  97. package/lib/common/mobile/android/android-debug-bridge.js +87 -112
  98. package/lib/common/mobile/android/android-device-file-system.js +98 -131
  99. package/lib/common/mobile/android/android-device-hash-service.js +50 -75
  100. package/lib/common/mobile/android/android-device.js +74 -91
  101. package/lib/common/mobile/android/android-emulator-services.js +105 -130
  102. package/lib/common/mobile/android/android-log-filter.js +1 -1
  103. package/lib/common/mobile/android/android-virtual-device-service.js +76 -94
  104. package/lib/common/mobile/android/device-android-debug-bridge.js +13 -29
  105. package/lib/common/mobile/android/genymotion/genymotion-service.js +91 -118
  106. package/lib/common/mobile/android/genymotion/virtualbox-service.js +64 -81
  107. package/lib/common/mobile/android/logcat-helper.js +108 -118
  108. package/lib/common/mobile/application-manager-base.js +84 -107
  109. package/lib/common/mobile/device-log-provider-base.js +7 -18
  110. package/lib/common/mobile/emulator-helper.js +1 -0
  111. package/lib/common/mobile/ios/device/ios-application-manager.js +79 -108
  112. package/lib/common/mobile/ios/device/ios-device-file-system.js +78 -105
  113. package/lib/common/mobile/ios/device/ios-device-operations.js +105 -142
  114. package/lib/common/mobile/ios/device/ios-device.js +20 -36
  115. package/lib/common/mobile/ios/ios-device-base.js +58 -81
  116. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +63 -92
  117. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +1 -1
  118. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +60 -89
  119. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +27 -43
  120. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +37 -62
  121. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +24 -35
  122. package/lib/common/mobile/mobile-core/android-device-discovery.js +43 -62
  123. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +21 -32
  124. package/lib/common/mobile/mobile-core/android-process-service.js +143 -182
  125. package/lib/common/mobile/mobile-core/device-discovery.js +2 -13
  126. package/lib/common/mobile/mobile-core/devices-service.js +385 -436
  127. package/lib/common/mobile/mobile-core/ios-device-discovery.js +24 -35
  128. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +47 -62
  129. package/lib/common/mobile/mobile-helper.js +15 -26
  130. package/lib/common/mobile/wp8/wp8-emulator-services.js +25 -52
  131. package/lib/common/opener.js +2 -2
  132. package/lib/common/plist-parser.js +2 -2
  133. package/lib/common/prompter.js +90 -105
  134. package/lib/common/queue.js +9 -20
  135. package/lib/common/services/auto-completion-service.js +39 -52
  136. package/lib/common/services/cancellation.js +17 -28
  137. package/lib/common/services/commands-service.js +146 -169
  138. package/lib/common/services/help-service.js +132 -157
  139. package/lib/common/services/hooks-service.js +93 -108
  140. package/lib/common/services/ios-notification-service.js +21 -34
  141. package/lib/common/services/json-file-settings-service.js +52 -71
  142. package/lib/common/services/lock-service.js +35 -52
  143. package/lib/common/services/message-contract-generator.js +35 -46
  144. package/lib/common/services/micro-templating-service.js +4 -15
  145. package/lib/common/services/net-service.js +90 -107
  146. package/lib/common/services/project-files-manager.js +10 -23
  147. package/lib/common/services/proxy-service.js +13 -24
  148. package/lib/common/services/qr.js +13 -24
  149. package/lib/common/services/settings-service.js +1 -1
  150. package/lib/common/services/xcode-select-service.js +20 -35
  151. package/lib/common/utils.js +7 -0
  152. package/lib/common/validators/project-name-validator.js +1 -1
  153. package/lib/common/validators/validation-result.js +1 -1
  154. package/lib/common/verify-node-version.js +2 -3
  155. package/lib/common/yok.js +23 -36
  156. package/lib/config.js +7 -58
  157. package/lib/constants.js +24 -24
  158. package/lib/controllers/build-controller.js +82 -99
  159. package/lib/controllers/debug-controller.js +107 -128
  160. package/lib/controllers/deploy-controller.js +17 -22
  161. package/lib/controllers/migrate-controller.js +727 -800
  162. package/lib/controllers/platform-controller.js +72 -83
  163. package/lib/controllers/prepare-controller.js +264 -250
  164. package/lib/controllers/run-controller.js +392 -406
  165. package/lib/controllers/update-controller-base.js +16 -29
  166. package/lib/controllers/update-controller.js +94 -119
  167. package/lib/data/build-data.js +2 -0
  168. package/lib/data/prepare-data.js +5 -1
  169. package/lib/declarations.d.ts +14 -3
  170. package/lib/definitions/android-plugin-migrator.d.ts +1 -0
  171. package/lib/definitions/ios-debugger-port-service.d.ts +1 -1
  172. package/lib/definitions/livesync.d.ts +1 -1
  173. package/lib/definitions/platform.d.ts +1 -0
  174. package/lib/definitions/prepare.d.ts +3 -0
  175. package/lib/definitions/project.d.ts +5 -0
  176. package/lib/detached-processes/cleanup-js-subprocess.js +3 -12
  177. package/lib/detached-processes/cleanup-process.js +16 -25
  178. package/lib/device-path-provider.js +23 -34
  179. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +149 -164
  180. package/lib/device-sockets/ios/notification.js +1 -1
  181. package/lib/device-sockets/ios/socket-request-executor.js +24 -39
  182. package/lib/helpers/android-bundle-validator-helper.js +1 -1
  183. package/lib/helpers/deploy-command-helper.js +45 -49
  184. package/lib/helpers/key-command-helper.js +4 -13
  185. package/lib/helpers/livesync-command-helper.js +137 -152
  186. package/lib/helpers/network-connectivity-validator.js +6 -17
  187. package/lib/helpers/options-track-helper.js +6 -17
  188. package/lib/helpers/platform-command-helper.js +102 -114
  189. package/lib/key-commands/index.js +161 -211
  190. package/lib/nativescript-cli.js +5 -14
  191. package/lib/node-package-manager.js +81 -104
  192. package/lib/options.js +12 -14
  193. package/lib/package-installation-manager.js +130 -165
  194. package/lib/package-manager.js +63 -86
  195. package/lib/platform-command-param.js +4 -15
  196. package/lib/pnpm-package-manager.js +59 -78
  197. package/lib/project-data.js +5 -2
  198. package/lib/providers/project-files-provider.js +2 -2
  199. package/lib/services/analytics/analytics-broker-process.js +13 -22
  200. package/lib/services/analytics/analytics-broker.js +17 -30
  201. package/lib/services/analytics/analytics-service.js +161 -198
  202. package/lib/services/analytics/google-analytics-provider.js +41 -56
  203. package/lib/services/analytics-settings-service.js +15 -32
  204. package/lib/services/android/android-bundle-tool-service.js +43 -60
  205. package/lib/services/android/gradle-build-args-service.js +13 -23
  206. package/lib/services/android/gradle-build-service.js +34 -47
  207. package/lib/services/android/gradle-command-service.js +23 -32
  208. package/lib/services/android-device-debug-service.js +90 -117
  209. package/lib/services/android-plugin-build-service.js +233 -247
  210. package/lib/services/android-project-service.js +180 -219
  211. package/lib/services/android-resources-migration-service.js +51 -64
  212. package/lib/services/apple-portal/apple-portal-application-service.js +46 -63
  213. package/lib/services/apple-portal/apple-portal-session-service.js +171 -188
  214. package/lib/services/assets-generation/assets-generation-service.js +100 -113
  215. package/lib/services/build-artifacts-service.js +9 -20
  216. package/lib/services/build-info-file-service.js +20 -35
  217. package/lib/services/cleanup-service.js +47 -76
  218. package/lib/services/cocoapods-service.js +118 -133
  219. package/lib/services/device/device-install-app-service.js +73 -90
  220. package/lib/services/doctor-service.js +99 -118
  221. package/lib/services/extensibility-service.js +81 -100
  222. package/lib/services/files-hash-service.js +28 -44
  223. package/lib/services/hmr-status-service.js +1 -1
  224. package/lib/services/initialize-service.js +37 -50
  225. package/lib/services/ios/export-options-plist-service.js +38 -51
  226. package/lib/services/ios/ios-signing-service.js +161 -180
  227. package/lib/services/ios/spm-service.js +40 -53
  228. package/lib/services/ios/xcodebuild-args-service.js +77 -94
  229. package/lib/services/ios/xcodebuild-command-service.js +14 -25
  230. package/lib/services/ios/xcodebuild-service.js +50 -69
  231. package/lib/services/ios-debugger-port-service.js +23 -36
  232. package/lib/services/ios-device-debug-service.js +75 -102
  233. package/lib/services/ios-entitlements-service.js +31 -42
  234. package/lib/services/ios-extensions-service.js +18 -29
  235. package/lib/services/ios-project-service.js +418 -440
  236. package/lib/services/ios-provision-service.js +108 -129
  237. package/lib/services/ios-watch-app-service.js +21 -32
  238. package/lib/services/ip-service.js +38 -53
  239. package/lib/services/itmstransporter-service.js +129 -152
  240. package/lib/services/livesync/android-device-livesync-service-base.js +31 -48
  241. package/lib/services/livesync/android-device-livesync-service.js +120 -149
  242. package/lib/services/livesync/android-device-livesync-sockets-service.js +123 -155
  243. package/lib/services/livesync/android-livesync-service.js +16 -37
  244. package/lib/services/livesync/android-livesync-tool.js +89 -112
  245. package/lib/services/livesync/device-livesync-service-base.js +15 -28
  246. package/lib/services/livesync/ios-device-livesync-service.js +114 -143
  247. package/lib/services/livesync/ios-livesync-service.js +44 -60
  248. package/lib/services/livesync/platform-livesync-service-base.js +96 -120
  249. package/lib/services/log-parser-service.js +1 -1
  250. package/lib/services/log-source-map-service.js +33 -43
  251. package/lib/services/marking-mode-service.js +15 -28
  252. package/lib/services/npm-config-service.js +1 -1
  253. package/lib/services/pacote-service.js +49 -64
  254. package/lib/services/performance-service.js +1 -1
  255. package/lib/services/platform/add-platform-service.js +53 -69
  256. package/lib/services/platform/platform-validation-service.js +22 -33
  257. package/lib/services/platform/prepare-native-platform-service.js +50 -60
  258. package/lib/services/platform-environment-requirements.js +29 -38
  259. package/lib/services/plugins-service.js +128 -147
  260. package/lib/services/project-backup-service.js +1 -1
  261. package/lib/services/project-changes-service.js +129 -139
  262. package/lib/services/project-cleanup-service.js +64 -77
  263. package/lib/services/project-config-service.js +71 -80
  264. package/lib/services/project-data-service.js +116 -139
  265. package/lib/services/project-name-service.js +28 -43
  266. package/lib/services/project-service.js +84 -103
  267. package/lib/services/project-templates-service.js +52 -67
  268. package/lib/services/start-service.js +41 -59
  269. package/lib/services/temp-service.js +8 -21
  270. package/lib/services/terminal-spinner-service.js +13 -24
  271. package/lib/services/test-execution-service.js +59 -72
  272. package/lib/services/test-initialization-service.js +2 -2
  273. package/lib/services/timeline-profiler-service.js +1 -1
  274. package/lib/services/versions-service.js +119 -138
  275. package/lib/services/webpack/webpack-compiler-service.js +212 -224
  276. package/lib/services/xcconfig-service.js +8 -19
  277. package/lib/services/xcproj-service.js +12 -0
  278. package/lib/sys-info.js +45 -62
  279. package/lib/tools/node-modules/node-modules-builder.js +16 -27
  280. package/lib/yarn-package-manager.js +59 -78
  281. package/lib/yarn2-package-manager.js +60 -79
  282. package/package.json +59 -57
  283. package/vendor/aab-tool/README.txt +1 -1
  284. package/vendor/aab-tool/bundletool.jar +0 -0
  285. package/vendor/gradle-app/app/build.gradle +12 -4
  286. package/vendor/gradle-plugin/build.gradle +12 -4
  287. package/lib/common/resources/platform-tools/android/darwin/NOTICE.txt +0 -3407
  288. package/lib/common/resources/platform-tools/android/darwin/adb +0 -0
  289. package/lib/common/resources/platform-tools/android/linux/NOTICE.txt +0 -4451
  290. package/lib/common/resources/platform-tools/android/linux/adb +0 -0
  291. package/lib/common/resources/platform-tools/android/win32/AdbWinApi.dll +0 -0
  292. package/lib/common/resources/platform-tools/android/win32/AdbWinUsbApi.dll +0 -0
  293. package/lib/common/resources/platform-tools/android/win32/NOTICE.txt +0 -4451
  294. package/lib/common/resources/platform-tools/android/win32/adb.exe +0 -0
  295. package/lib/common/resources/platform-tools/android/win32/fastboot.exe +0 -0
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
8
  Object.defineProperty(exports, "__esModule", { value: true });
18
9
  exports.AnalyticsService = void 0;
19
10
  const path = require("path");
@@ -40,41 +31,35 @@ class AnalyticsService {
40
31
  setShouldDispose(shouldDispose) {
41
32
  this.shouldDisposeInstance = shouldDispose;
42
33
  }
43
- checkConsent() {
44
- return __awaiter(this, void 0, void 0, function* () {
45
- if (yield this.$analyticsSettingsService.canDoRequest()) {
46
- const initialTrackFeatureUsageStatus = yield this.getStatus(this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME);
47
- let trackFeatureUsage = initialTrackFeatureUsageStatus === "enabled";
48
- if ((yield this.isNotConfirmed(this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME)) &&
49
- (0, helpers_1.isInteractive)()) {
50
- const message = `Do you want to help us improve ${this.$analyticsSettingsService.getClientName()} by automatically sending anonymous usage statistics? We will not use this information to identify or contact you.`;
51
- trackFeatureUsage = yield this.$prompter.confirm(message, () => false);
52
- yield this.setStatus(this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME, trackFeatureUsage);
53
- yield this.trackAcceptFeatureUsage({
54
- acceptTrackFeatureUsage: trackFeatureUsage,
55
- });
56
- }
57
- const isErrorReportingUnset = yield this.isNotConfirmed(this.$staticConfig.ERROR_REPORT_SETTING_NAME);
58
- const isUsageReportingConfirmed = !(yield this.isNotConfirmed(this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME));
59
- if (isErrorReportingUnset && isUsageReportingConfirmed) {
60
- yield this.setStatus(this.$staticConfig.ERROR_REPORT_SETTING_NAME, trackFeatureUsage);
61
- }
34
+ async checkConsent() {
35
+ if (await this.$analyticsSettingsService.canDoRequest()) {
36
+ const initialTrackFeatureUsageStatus = await this.getStatus(this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME);
37
+ let trackFeatureUsage = initialTrackFeatureUsageStatus === "enabled";
38
+ if ((await this.isNotConfirmed(this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME)) &&
39
+ (0, helpers_1.isInteractive)()) {
40
+ const message = `Do you want to help us improve ${this.$analyticsSettingsService.getClientName()} by automatically sending anonymous usage statistics? We will not use this information to identify or contact you.`;
41
+ trackFeatureUsage = await this.$prompter.confirm(message, () => false);
42
+ await this.setStatus(this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME, trackFeatureUsage);
43
+ await this.trackAcceptFeatureUsage({
44
+ acceptTrackFeatureUsage: trackFeatureUsage,
45
+ });
62
46
  }
63
- });
47
+ const isErrorReportingUnset = await this.isNotConfirmed(this.$staticConfig.ERROR_REPORT_SETTING_NAME);
48
+ const isUsageReportingConfirmed = !(await this.isNotConfirmed(this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME));
49
+ if (isErrorReportingUnset && isUsageReportingConfirmed) {
50
+ await this.setStatus(this.$staticConfig.ERROR_REPORT_SETTING_NAME, trackFeatureUsage);
51
+ }
52
+ }
64
53
  }
65
- setStatus(settingName, enabled) {
66
- return __awaiter(this, void 0, void 0, function* () {
67
- this.analyticsStatuses[settingName] = enabled
68
- ? "enabled"
69
- : "disabled";
70
- yield this.$userSettingsService.saveSetting(settingName, enabled.toString());
71
- });
54
+ async setStatus(settingName, enabled) {
55
+ this.analyticsStatuses[settingName] = enabled
56
+ ? "enabled"
57
+ : "disabled";
58
+ await this.$userSettingsService.saveSetting(settingName, enabled.toString());
72
59
  }
73
- isEnabled(settingName) {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- const analyticsStatus = yield this.getStatus(settingName);
76
- return analyticsStatus === "enabled";
77
- });
60
+ async isEnabled(settingName) {
61
+ const analyticsStatus = await this.getStatus(settingName);
62
+ return analyticsStatus === "enabled";
78
63
  }
79
64
  getStatusMessage(settingName, jsonFormat, readableSettingName) {
80
65
  if (jsonFormat) {
@@ -82,86 +67,78 @@ class AnalyticsService {
82
67
  }
83
68
  return this.getHumanReadableStatusMessage(settingName, readableSettingName);
84
69
  }
85
- trackAcceptFeatureUsage(settings) {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- const acceptTracking = !!(settings && settings.acceptTrackFeatureUsage);
88
- const googleAnalyticsEventData = {
89
- googleAnalyticsDataType: "event",
90
- action: "Accept Tracking",
91
- label: acceptTracking.toString(),
92
- };
93
- yield this.forcefullyTrackInGoogleAnalytics(googleAnalyticsEventData);
94
- });
70
+ async trackAcceptFeatureUsage(settings) {
71
+ const acceptTracking = !!(settings && settings.acceptTrackFeatureUsage);
72
+ const googleAnalyticsEventData = {
73
+ googleAnalyticsDataType: "event",
74
+ action: "Accept Tracking",
75
+ label: acceptTracking.toString(),
76
+ };
77
+ await this.forcefullyTrackInGoogleAnalytics(googleAnalyticsEventData);
95
78
  }
96
- trackInGoogleAnalytics(gaSettings) {
97
- return __awaiter(this, void 0, void 0, function* () {
98
- yield this.initAnalyticsStatuses();
99
- if (!this.$staticConfig.disableAnalytics &&
100
- this.analyticsStatuses[this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME] === "enabled") {
101
- return this.forcefullyTrackInGoogleAnalytics(gaSettings);
102
- }
103
- });
79
+ async trackInGoogleAnalytics(gaSettings) {
80
+ await this.initAnalyticsStatuses();
81
+ if (!this.$staticConfig.disableAnalytics &&
82
+ this.analyticsStatuses[this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME] === "enabled") {
83
+ return this.forcefullyTrackInGoogleAnalytics(gaSettings);
84
+ }
104
85
  }
105
- trackEventActionInGoogleAnalytics(data) {
106
- return __awaiter(this, void 0, void 0, function* () {
107
- const device = data.device;
108
- const platform = device ? device.deviceInfo.platform : data.platform;
109
- const normalizedPlatform = platform
110
- ? this.$mobileHelper.normalizePlatformName(platform)
111
- : platform;
112
- const isForDevice = device ? !device.isEmulator : data.isForDevice;
113
- let label = "";
114
- label = this.addDataToLabel(label, normalizedPlatform);
115
- if (isForDevice !== null && isForDevice !== undefined) {
116
- const deviceType = isForDevice
117
- ? constants_1.DeviceTypes.Device
118
- : this.$mobileHelper.isAndroidPlatform(platform)
119
- ? constants_1.DeviceTypes.Emulator
120
- : constants_1.DeviceTypes.Simulator;
121
- label = this.addDataToLabel(label, deviceType);
122
- }
123
- if (device) {
124
- label = this.addDataToLabel(label, device.deviceInfo.version);
125
- }
126
- if (data.additionalData) {
127
- label = this.addDataToLabel(label, data.additionalData);
128
- }
129
- const customDimensions = {};
130
- this.setProjectRelatedCustomDimensions(customDimensions, data.projectDir);
131
- const googleAnalyticsEventData = {
132
- googleAnalyticsDataType: "event",
133
- action: data.action,
134
- label,
135
- customDimensions,
136
- value: data.value,
137
- };
138
- yield this.trackInGoogleAnalytics(googleAnalyticsEventData);
139
- });
86
+ async trackEventActionInGoogleAnalytics(data) {
87
+ const device = data.device;
88
+ const platform = device ? device.deviceInfo.platform : data.platform;
89
+ const normalizedPlatform = platform
90
+ ? this.$mobileHelper.normalizePlatformName(platform)
91
+ : platform;
92
+ const isForDevice = device ? !device.isEmulator : data.isForDevice;
93
+ let label = "";
94
+ label = this.addDataToLabel(label, normalizedPlatform);
95
+ if (isForDevice !== null && isForDevice !== undefined) {
96
+ const deviceType = isForDevice
97
+ ? constants_1.DeviceTypes.Device
98
+ : this.$mobileHelper.isAndroidPlatform(platform)
99
+ ? constants_1.DeviceTypes.Emulator
100
+ : constants_1.DeviceTypes.Simulator;
101
+ label = this.addDataToLabel(label, deviceType);
102
+ }
103
+ if (device) {
104
+ label = this.addDataToLabel(label, device.deviceInfo.version);
105
+ }
106
+ if (data.additionalData) {
107
+ label = this.addDataToLabel(label, data.additionalData);
108
+ }
109
+ const customDimensions = {};
110
+ this.setProjectRelatedCustomDimensions(customDimensions, data.projectDir);
111
+ const googleAnalyticsEventData = {
112
+ googleAnalyticsDataType: "event",
113
+ action: data.action,
114
+ label,
115
+ customDimensions,
116
+ value: data.value,
117
+ };
118
+ await this.trackInGoogleAnalytics(googleAnalyticsEventData);
140
119
  }
141
- finishTracking() {
142
- return __awaiter(this, void 0, void 0, function* () {
143
- return new Promise((resolve, reject) => {
144
- if (this.brokerProcess && this.brokerProcess.connected) {
145
- let timer;
146
- const handler = (data) => {
147
- if (data === "ProcessFinishedTasks") {
148
- this.brokerProcess.removeListener("message", handler);
149
- clearTimeout(timer);
150
- resolve();
151
- }
152
- };
153
- timer = setTimeout(() => {
120
+ async finishTracking() {
121
+ return new Promise((resolve, reject) => {
122
+ if (this.brokerProcess && this.brokerProcess.connected) {
123
+ let timer;
124
+ const handler = (data) => {
125
+ if (data === "ProcessFinishedTasks") {
154
126
  this.brokerProcess.removeListener("message", handler);
127
+ clearTimeout(timer);
155
128
  resolve();
156
- }, 3000);
157
- this.brokerProcess.on("message", handler);
158
- const msg = { type: "FinishTracking" };
159
- this.brokerProcess.send(msg, (err) => this.$logger.trace(`Error while sending ${JSON.stringify(msg)}`));
160
- }
161
- else {
129
+ }
130
+ };
131
+ timer = setTimeout(() => {
132
+ this.brokerProcess.removeListener("message", handler);
162
133
  resolve();
163
- }
164
- });
134
+ }, 3000);
135
+ this.brokerProcess.on("message", handler);
136
+ const msg = { type: "FinishTracking" };
137
+ this.brokerProcess.send(msg, (err) => this.$logger.trace(`Error while sending ${JSON.stringify(msg)}`));
138
+ }
139
+ else {
140
+ resolve();
141
+ }
165
142
  });
166
143
  }
167
144
  forcefullyTrackInGoogleAnalytics(gaSettings) {
@@ -248,103 +225,89 @@ class AnalyticsService {
248
225
  }
249
226
  return brokerProcessArgs;
250
227
  }
251
- sendInfoForTracking(trackingInfo, settingName) {
252
- return __awaiter(this, void 0, void 0, function* () {
253
- yield this.initAnalyticsStatuses();
254
- if (!this.$staticConfig.disableAnalytics &&
255
- this.analyticsStatuses[settingName] === "enabled") {
256
- return this.sendMessageToBroker(trackingInfo);
257
- }
258
- });
228
+ async sendInfoForTracking(trackingInfo, settingName) {
229
+ await this.initAnalyticsStatuses();
230
+ if (!this.$staticConfig.disableAnalytics &&
231
+ this.analyticsStatuses[settingName] === "enabled") {
232
+ return this.sendMessageToBroker(trackingInfo);
233
+ }
259
234
  }
260
- sendMessageToBroker(message) {
261
- return __awaiter(this, void 0, void 0, function* () {
262
- let broker;
263
- try {
264
- broker = yield this.getAnalyticsBroker();
265
- }
266
- catch (err) {
267
- this.$logger.trace("Unable to get broker instance due to error: ", err);
268
- return;
269
- }
270
- return new Promise((resolve, reject) => {
271
- if (broker && broker.connected) {
272
- try {
273
- broker.send(message, (error) => resolve());
274
- }
275
- catch (err) {
276
- this.$logger.trace("Error while trying to send message to broker:", err);
277
- resolve();
278
- }
235
+ async sendMessageToBroker(message) {
236
+ let broker;
237
+ try {
238
+ broker = await this.getAnalyticsBroker();
239
+ }
240
+ catch (err) {
241
+ this.$logger.trace("Unable to get broker instance due to error: ", err);
242
+ return;
243
+ }
244
+ return new Promise((resolve, reject) => {
245
+ if (broker && broker.connected) {
246
+ try {
247
+ broker.send(message, (error) => resolve());
279
248
  }
280
- else {
281
- this.$logger.trace("Broker not found or not connected.");
249
+ catch (err) {
250
+ this.$logger.trace("Error while trying to send message to broker:", err);
282
251
  resolve();
283
252
  }
284
- });
253
+ }
254
+ else {
255
+ this.$logger.trace("Broker not found or not connected.");
256
+ resolve();
257
+ }
285
258
  });
286
259
  }
287
- initAnalyticsStatuses() {
288
- return __awaiter(this, void 0, void 0, function* () {
289
- if (yield this.$analyticsSettingsService.canDoRequest()) {
290
- this.$logger.trace("Initializing analytics statuses.");
291
- const settingsNames = [
292
- this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME,
293
- this.$staticConfig.ERROR_REPORT_SETTING_NAME,
294
- ];
295
- for (const settingName of settingsNames) {
296
- yield this.getStatus(settingName);
297
- }
298
- this.$logger.trace("Analytics statuses: ", this.analyticsStatuses);
260
+ async initAnalyticsStatuses() {
261
+ if (await this.$analyticsSettingsService.canDoRequest()) {
262
+ this.$logger.trace("Initializing analytics statuses.");
263
+ const settingsNames = [
264
+ this.$staticConfig.TRACK_FEATURE_USAGE_SETTING_NAME,
265
+ this.$staticConfig.ERROR_REPORT_SETTING_NAME,
266
+ ];
267
+ for (const settingName of settingsNames) {
268
+ await this.getStatus(settingName);
299
269
  }
300
- });
270
+ this.$logger.trace("Analytics statuses: ", this.analyticsStatuses);
271
+ }
301
272
  }
302
- getStatus(settingName) {
303
- return __awaiter(this, void 0, void 0, function* () {
304
- if (!_.has(this.analyticsStatuses, settingName)) {
305
- const settingValue = yield this.$userSettingsService.getSettingValue(settingName);
306
- if (settingValue) {
307
- const isEnabled = (0, helpers_1.toBoolean)(settingValue);
308
- if (isEnabled) {
309
- this.analyticsStatuses[settingName] = "enabled";
310
- }
311
- else {
312
- this.analyticsStatuses[settingName] = "disabled";
313
- }
273
+ async getStatus(settingName) {
274
+ if (!_.has(this.analyticsStatuses, settingName)) {
275
+ const settingValue = await this.$userSettingsService.getSettingValue(settingName);
276
+ if (settingValue) {
277
+ const isEnabled = (0, helpers_1.toBoolean)(settingValue);
278
+ if (isEnabled) {
279
+ this.analyticsStatuses[settingName] = "enabled";
314
280
  }
315
281
  else {
316
- this.analyticsStatuses[settingName] = "not confirmed";
282
+ this.analyticsStatuses[settingName] = "disabled";
317
283
  }
318
284
  }
319
- return this.analyticsStatuses[settingName];
320
- });
321
- }
322
- isNotConfirmed(settingName) {
323
- return __awaiter(this, void 0, void 0, function* () {
324
- const analyticsStatus = yield this.getStatus(settingName);
325
- return analyticsStatus === "not confirmed";
326
- });
327
- }
328
- getHumanReadableStatusMessage(settingName, readableSettingName) {
329
- return __awaiter(this, void 0, void 0, function* () {
330
- let status = null;
331
- if (yield this.isNotConfirmed(settingName)) {
332
- status = "disabled until confirmed";
333
- }
334
285
  else {
335
- status = yield this.getStatus(settingName);
286
+ this.analyticsStatuses[settingName] = "not confirmed";
336
287
  }
337
- return `${readableSettingName} is ${status}.`;
338
- });
288
+ }
289
+ return this.analyticsStatuses[settingName];
339
290
  }
340
- getJsonStatusMessage(settingName) {
341
- return __awaiter(this, void 0, void 0, function* () {
342
- const status = yield this.getStatus(settingName);
343
- const enabled = status === "not confirmed"
344
- ? null
345
- : status === "enabled";
346
- return JSON.stringify({ enabled });
347
- });
291
+ async isNotConfirmed(settingName) {
292
+ const analyticsStatus = await this.getStatus(settingName);
293
+ return analyticsStatus === "not confirmed";
294
+ }
295
+ async getHumanReadableStatusMessage(settingName, readableSettingName) {
296
+ let status = null;
297
+ if (await this.isNotConfirmed(settingName)) {
298
+ status = "disabled until confirmed";
299
+ }
300
+ else {
301
+ status = await this.getStatus(settingName);
302
+ }
303
+ return `${readableSettingName} is ${status}.`;
304
+ }
305
+ async getJsonStatusMessage(settingName) {
306
+ const status = await this.getStatus(settingName);
307
+ const enabled = status === "not confirmed"
308
+ ? null
309
+ : status === "enabled";
310
+ return JSON.stringify({ enabled });
348
311
  }
349
312
  trackException(exception, message) {
350
313
  const data = {
@@ -355,6 +318,7 @@ class AnalyticsService {
355
318
  return this.sendInfoForTracking(data, this.$staticConfig.ERROR_REPORT_SETTING_NAME);
356
319
  }
357
320
  }
321
+ exports.AnalyticsService = AnalyticsService;
358
322
  AnalyticsService.ANALYTICS_BROKER_START_TIMEOUT = 10 * 1000;
359
323
  __decorate([
360
324
  (0, decorators_1.cache)()
@@ -362,5 +326,4 @@ __decorate([
362
326
  __decorate([
363
327
  (0, decorators_1.cache)()
364
328
  ], AnalyticsService.prototype, "initAnalyticsStatuses", null);
365
- exports.AnalyticsService = AnalyticsService;
366
329
  yok_1.injector.register("analyticsService", AnalyticsService);
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
8
  Object.defineProperty(exports, "__esModule", { value: true });
18
9
  exports.GoogleAnalyticsProvider = void 0;
19
10
  const uuid_1 = require("uuid");
@@ -31,20 +22,18 @@ class GoogleAnalyticsProvider {
31
22
  this.$config = $config;
32
23
  this.analyticsLoggingService = analyticsLoggingService;
33
24
  }
34
- trackHit(trackInfo) {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- const sessionId = (0, uuid_1.v4)();
37
- try {
38
- yield this.track(this.$config.GA_TRACKING_ID, trackInfo, sessionId);
39
- }
40
- catch (e) {
41
- this.analyticsLoggingService.logData({
42
- type: "Error",
43
- message: `Unable to track information ${JSON.stringify(trackInfo)}. Error is: ${e}`,
44
- });
45
- this.$logger.trace("Analytics exception: ", e);
46
- }
47
- });
25
+ async trackHit(trackInfo) {
26
+ const sessionId = (0, uuid_1.v4)();
27
+ try {
28
+ await this.track(this.$config.GA_TRACKING_ID, trackInfo, sessionId);
29
+ }
30
+ catch (e) {
31
+ this.analyticsLoggingService.logData({
32
+ type: "Error",
33
+ message: `Unable to track information ${JSON.stringify(trackInfo)}. Error is: ${e}`,
34
+ });
35
+ this.$logger.trace("Analytics exception: ", e);
36
+ }
48
37
  }
49
38
  getVisitor(gaTrackingId, proxy) {
50
39
  this.analyticsLoggingService.logData({
@@ -66,40 +55,36 @@ class GoogleAnalyticsProvider {
66
55
  });
67
56
  return visitor;
68
57
  }
69
- track(gaTrackingId, trackInfo, sessionId) {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- const proxySettings = yield this.$proxyService.getCache();
72
- const proxy = proxySettings && proxySettings.proxy;
73
- const visitor = this.getVisitor(gaTrackingId, proxy);
74
- yield this.setCustomDimensions(visitor, trackInfo.customDimensions, sessionId);
75
- switch (trackInfo.googleAnalyticsDataType) {
76
- case "pageview":
77
- yield this.trackPageView(visitor, trackInfo);
78
- break;
79
- case "event":
80
- yield this.trackEvent(visitor, trackInfo);
81
- break;
82
- }
83
- });
58
+ async track(gaTrackingId, trackInfo, sessionId) {
59
+ const proxySettings = await this.$proxyService.getCache();
60
+ const proxy = proxySettings && proxySettings.proxy;
61
+ const visitor = this.getVisitor(gaTrackingId, proxy);
62
+ await this.setCustomDimensions(visitor, trackInfo.customDimensions, sessionId);
63
+ switch (trackInfo.googleAnalyticsDataType) {
64
+ case "pageview":
65
+ await this.trackPageView(visitor, trackInfo);
66
+ break;
67
+ case "event":
68
+ await this.trackEvent(visitor, trackInfo);
69
+ break;
70
+ }
84
71
  }
85
- setCustomDimensions(visitor, customDimensions, sessionId) {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- const defaultValues = {
88
- ["cd1"]: this.$staticConfig.version,
89
- ["cd6"]: process.version,
90
- ["cd3"]: this.clientId,
91
- ["cd2"]: null,
92
- ["cd9"]: null,
93
- ["cd4"]: sessionId,
94
- ["cd5"]: "Unknown",
95
- };
96
- customDimensions = _.merge(defaultValues, customDimensions);
97
- _.each(customDimensions, (value, key) => {
98
- this.analyticsLoggingService.logData({
99
- message: `Setting custom dimension ${key} to value ${value}`,
100
- });
101
- visitor.set(key, value);
72
+ async setCustomDimensions(visitor, customDimensions, sessionId) {
73
+ const defaultValues = {
74
+ ["cd1"]: this.$staticConfig.version,
75
+ ["cd6"]: process.version,
76
+ ["cd3"]: this.clientId,
77
+ ["cd2"]: null,
78
+ ["cd9"]: null,
79
+ ["cd4"]: sessionId,
80
+ ["cd5"]: "Unknown",
81
+ };
82
+ customDimensions = _.merge(defaultValues, customDimensions);
83
+ _.each(customDimensions, (value, key) => {
84
+ this.analyticsLoggingService.logData({
85
+ message: `Setting custom dimension ${key} to value ${value}`,
102
86
  });
87
+ visitor.set(key, value);
103
88
  });
104
89
  }
105
90
  trackEvent(visitor, trackInfo) {
@@ -145,8 +130,8 @@ class GoogleAnalyticsProvider {
145
130
  });
146
131
  }
147
132
  }
133
+ exports.GoogleAnalyticsProvider = GoogleAnalyticsProvider;
148
134
  __decorate([
149
135
  (0, decorators_1.cache)()
150
136
  ], GoogleAnalyticsProvider.prototype, "getVisitor", null);
151
- exports.GoogleAnalyticsProvider = GoogleAnalyticsProvider;
152
137
  yok_1.injector.register("googleAnalyticsProvider", GoogleAnalyticsProvider);
@@ -5,15 +5,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
- return new (P || (P = Promise))(function (resolve, reject) {
11
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
- step((generator = generator.apply(thisArg, _arguments || [])).next());
15
- });
16
- };
17
8
  Object.defineProperty(exports, "__esModule", { value: true });
18
9
  const helpers_1 = require("../common/helpers");
19
10
  const decorators_1 = require("../common/decorators");
@@ -28,10 +19,8 @@ class AnalyticsSettingsService {
28
19
  this.$osInfo = $osInfo;
29
20
  this.$logger = $logger;
30
21
  }
31
- canDoRequest() {
32
- return __awaiter(this, void 0, void 0, function* () {
33
- return true;
34
- });
22
+ async canDoRequest() {
23
+ return true;
35
24
  }
36
25
  getUserId() {
37
26
  return this.getSettingValueOrDefault("USER_ID");
@@ -42,16 +31,12 @@ class AnalyticsSettingsService {
42
31
  getClientName() {
43
32
  return "" + color_1.color.cyan.bold(this.$staticConfig.CLIENT_NAME_ALIAS);
44
33
  }
45
- getUserSessionsCount(projectName) {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- const sessionsCountForProject = yield this.$userSettingsService.getSettingValue(this.getSessionsProjectKey(projectName));
48
- return sessionsCountForProject || 0;
49
- });
34
+ async getUserSessionsCount(projectName) {
35
+ const sessionsCountForProject = await this.$userSettingsService.getSettingValue(this.getSessionsProjectKey(projectName));
36
+ return sessionsCountForProject || 0;
50
37
  }
51
- setUserSessionsCount(count, projectName) {
52
- return __awaiter(this, void 0, void 0, function* () {
53
- return this.$userSettingsService.saveSetting(this.getSessionsProjectKey(projectName), count);
54
- });
38
+ async setUserSessionsCount(count, projectName) {
39
+ return this.$userSettingsService.saveSetting(this.getSessionsProjectKey(projectName), count);
55
40
  }
56
41
  getUserAgentString(identifier) {
57
42
  let osString = "";
@@ -82,16 +67,14 @@ class AnalyticsSettingsService {
82
67
  getSessionsProjectKey(projectName) {
83
68
  return `${AnalyticsSettingsService.SESSIONS_STARTED_KEY_PREFIX}${projectName}`;
84
69
  }
85
- getSettingValueOrDefault(settingName) {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- let guid = yield this.$userSettingsService.getSettingValue(settingName);
88
- if (!guid) {
89
- guid = (0, helpers_1.createGUID)(false);
90
- this.$logger.trace(`Setting new ${settingName}: ${guid}.`);
91
- yield this.$userSettingsService.saveSetting(settingName, guid);
92
- }
93
- return guid;
94
- });
70
+ async getSettingValueOrDefault(settingName) {
71
+ let guid = await this.$userSettingsService.getSettingValue(settingName);
72
+ if (!guid) {
73
+ guid = (0, helpers_1.createGUID)(false);
74
+ this.$logger.trace(`Setting new ${settingName}: ${guid}.`);
75
+ await this.$userSettingsService.saveSetting(settingName, guid);
76
+ }
77
+ return guid;
95
78
  }
96
79
  }
97
80
  AnalyticsSettingsService.SESSIONS_STARTED_KEY_PREFIX = "SESSIONS_STARTED_";