nativescript 8.9.0-dev.1 → 8.9.0-dev.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 (404) hide show
  1. package/config/test-deps-versions-generated.json +1 -1
  2. package/lib/.d.ts +1 -0
  3. package/lib/android-tools-info.js +32 -9
  4. package/lib/base-package-manager.js +71 -47
  5. package/lib/bootstrap.js +6 -1
  6. package/lib/bun-package-manager.js +104 -65
  7. package/lib/color.js +5 -2
  8. package/lib/commands/add-platform.js +31 -14
  9. package/lib/commands/apple-login.js +30 -18
  10. package/lib/commands/appstore-list.js +46 -34
  11. package/lib/commands/appstore-upload.js +68 -52
  12. package/lib/commands/build.js +90 -57
  13. package/lib/commands/clean.js +197 -161
  14. package/lib/commands/command-base.js +28 -14
  15. package/lib/commands/config.js +71 -48
  16. package/lib/commands/create-project.js +235 -210
  17. package/lib/commands/debug.js +93 -66
  18. package/lib/commands/deploy.js +47 -30
  19. package/lib/commands/embedding/embed.js +59 -33
  20. package/lib/commands/extensibility/install-extension.js +17 -5
  21. package/lib/commands/extensibility/list-extensions.js +25 -13
  22. package/lib/commands/extensibility/uninstall-extension.js +16 -4
  23. package/lib/commands/fonts.js +42 -30
  24. package/lib/commands/generate-assets.js +29 -13
  25. package/lib/commands/generate-help.js +14 -2
  26. package/lib/commands/generate.js +70 -12
  27. package/lib/commands/info.js +14 -2
  28. package/lib/commands/install.js +50 -34
  29. package/lib/commands/list-platforms.js +26 -14
  30. package/lib/commands/migrate.js +27 -15
  31. package/lib/commands/native-add.js +51 -23
  32. package/lib/commands/platform-clean.js +33 -19
  33. package/lib/commands/plugin/add-plugin.js +26 -12
  34. package/lib/commands/plugin/build-plugin.js +45 -31
  35. package/lib/commands/plugin/create-plugin.js +138 -110
  36. package/lib/commands/plugin/list-plugins.js +34 -22
  37. package/lib/commands/plugin/remove-plugin.js +35 -20
  38. package/lib/commands/plugin/update-plugin.js +34 -20
  39. package/lib/commands/post-install.js +39 -20
  40. package/lib/commands/prepare.js +39 -22
  41. package/lib/commands/preview.js +64 -49
  42. package/lib/commands/remove-platform.js +19 -7
  43. package/lib/commands/resources/resources-update.js +28 -13
  44. package/lib/commands/run.js +77 -55
  45. package/lib/commands/setup.js +1 -0
  46. package/lib/commands/start.js +20 -6
  47. package/lib/commands/test-init.js +138 -123
  48. package/lib/commands/test.js +97 -67
  49. package/lib/commands/typings.js +143 -126
  50. package/lib/commands/update-platform.js +40 -22
  51. package/lib/commands/update.js +45 -30
  52. package/lib/commands/widget.js +767 -0
  53. package/lib/common/bootstrap.js +1 -0
  54. package/lib/common/child-process.js +75 -53
  55. package/lib/common/codeGeneration/code-entity.js +2 -1
  56. package/lib/common/codeGeneration/code-printer.js +2 -1
  57. package/lib/common/command-params.js +19 -7
  58. package/lib/common/commands/analytics.js +43 -27
  59. package/lib/common/commands/autocompletion.js +59 -39
  60. package/lib/common/commands/device/device-log-stream.js +24 -12
  61. package/lib/common/commands/device/get-file.js +35 -22
  62. package/lib/common/commands/device/list-applications.js +24 -12
  63. package/lib/common/commands/device/list-devices.js +90 -72
  64. package/lib/common/commands/device/list-files.js +36 -23
  65. package/lib/common/commands/device/put-file.js +35 -22
  66. package/lib/common/commands/device/run-application.js +26 -12
  67. package/lib/common/commands/device/stop-application.js +23 -11
  68. package/lib/common/commands/device/uninstall-application.js +18 -6
  69. package/lib/common/commands/doctor.js +3 -2
  70. package/lib/common/commands/generate-messages.js +29 -17
  71. package/lib/common/commands/help.js +34 -20
  72. package/lib/common/commands/package-manager-get.js +18 -6
  73. package/lib/common/commands/package-manager-set.js +21 -9
  74. package/lib/common/commands/post-install.js +14 -2
  75. package/lib/common/commands/preuninstall.js +48 -24
  76. package/lib/common/commands/proxy/proxy-base.js +23 -8
  77. package/lib/common/commands/proxy/proxy-clear.js +16 -4
  78. package/lib/common/commands/proxy/proxy-get.js +15 -3
  79. package/lib/common/commands/proxy/proxy-set.js +101 -87
  80. package/lib/common/common-lib.js +1 -0
  81. package/lib/common/constants.js +22 -11
  82. package/lib/common/decorators.js +70 -10
  83. package/lib/common/dispatchers.js +106 -80
  84. package/lib/common/errors.js +116 -91
  85. package/lib/common/file-system.js +141 -108
  86. package/lib/common/header.js +5 -1
  87. package/lib/common/helpers.js +267 -152
  88. package/lib/common/host-info.js +54 -37
  89. package/lib/common/http-client.js +128 -93
  90. package/lib/common/logger/appenders/cli-appender.js +6 -1
  91. package/lib/common/logger/appenders/emit-appender.js +6 -1
  92. package/lib/common/logger/layouts/cli-layout.js +3 -1
  93. package/lib/common/logger/logger.js +9 -4
  94. package/lib/common/messages/messages.js +6 -0
  95. package/lib/common/mobile/android/android-application-manager.js +162 -122
  96. package/lib/common/mobile/android/android-debug-bridge-result-handler.js +2 -1
  97. package/lib/common/mobile/android/android-debug-bridge.js +118 -87
  98. package/lib/common/mobile/android/android-device-file-system.js +135 -98
  99. package/lib/common/mobile/android/android-device-hash-service.js +78 -50
  100. package/lib/common/mobile/android/android-device.js +93 -68
  101. package/lib/common/mobile/android/android-emulator-services.js +131 -105
  102. package/lib/common/mobile/android/android-ini-file-parser.js +9 -0
  103. package/lib/common/mobile/android/android-log-filter.js +5 -1
  104. package/lib/common/mobile/android/android-virtual-device-service.js +123 -76
  105. package/lib/common/mobile/android/device-android-debug-bridge.js +30 -13
  106. package/lib/common/mobile/android/genymotion/genymotion-service.js +123 -91
  107. package/lib/common/mobile/android/genymotion/virtualbox-service.js +92 -64
  108. package/lib/common/mobile/android/logcat-helper.js +140 -108
  109. package/lib/common/mobile/application-manager-base.js +113 -84
  110. package/lib/common/mobile/device-emitter.js +4 -0
  111. package/lib/common/mobile/device-log-emitter.js +1 -0
  112. package/lib/common/mobile/device-log-provider-base.js +19 -7
  113. package/lib/common/mobile/device-log-provider.js +23 -0
  114. package/lib/common/mobile/device-platforms-constants.js +1 -0
  115. package/lib/common/mobile/emulator-helper.js +3 -0
  116. package/lib/common/mobile/ios/device/ios-application-manager.js +111 -79
  117. package/lib/common/mobile/ios/device/ios-device-file-system.js +106 -78
  118. package/lib/common/mobile/ios/device/ios-device-operations.js +146 -105
  119. package/lib/common/mobile/ios/device/ios-device.js +40 -20
  120. package/lib/common/mobile/ios/ios-device-base.js +82 -58
  121. package/lib/common/mobile/ios/ios-device-product-name-mapper.js +2 -0
  122. package/lib/common/mobile/ios/ios-log-filter.js +1 -0
  123. package/lib/common/mobile/ios/simulator/ios-emulator-services.js +96 -63
  124. package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +2 -1
  125. package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +95 -60
  126. package/lib/common/mobile/ios/simulator/ios-simulator-device.js +48 -27
  127. package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +63 -37
  128. package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +36 -24
  129. package/lib/common/mobile/local-to-device-path-data-factory.js +1 -0
  130. package/lib/common/mobile/log-filter.js +2 -0
  131. package/lib/common/mobile/logging-levels.js +1 -0
  132. package/lib/common/mobile/mobile-core/android-device-discovery.js +64 -43
  133. package/lib/common/mobile/mobile-core/android-emulator-discovery.js +35 -21
  134. package/lib/common/mobile/mobile-core/android-process-service.js +214 -143
  135. package/lib/common/mobile/mobile-core/device-discovery.js +14 -2
  136. package/lib/common/mobile/mobile-core/devices-service.js +505 -386
  137. package/lib/common/mobile/mobile-core/ios-device-discovery.js +37 -24
  138. package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +65 -47
  139. package/lib/common/mobile/mobile-helper.js +27 -15
  140. package/lib/common/mobile/wp8/wp8-emulator-services.js +53 -25
  141. package/lib/common/opener.js +3 -2
  142. package/lib/common/os-info.js +1 -0
  143. package/lib/common/plist-parser.js +1 -0
  144. package/lib/common/project-helper.js +1 -0
  145. package/lib/common/prompter.js +114 -91
  146. package/lib/common/queue.js +21 -9
  147. package/lib/common/resource-loader.js +1 -0
  148. package/lib/common/services/auto-completion-service.js +65 -40
  149. package/lib/common/services/cancellation.js +29 -17
  150. package/lib/common/services/commands-service.js +180 -146
  151. package/lib/common/services/help-service.js +166 -133
  152. package/lib/common/services/hooks-service.js +121 -93
  153. package/lib/common/services/ios-notification-service.js +35 -21
  154. package/lib/common/services/json-file-settings-service.js +77 -52
  155. package/lib/common/services/lock-service.js +58 -35
  156. package/lib/common/services/message-contract-generator.js +47 -35
  157. package/lib/common/services/messages-service.js +1 -0
  158. package/lib/common/services/micro-templating-service.js +21 -4
  159. package/lib/common/services/net-service.js +110 -90
  160. package/lib/common/services/project-files-manager.js +28 -10
  161. package/lib/common/services/project-files-provider-base.js +1 -0
  162. package/lib/common/services/proxy-service.js +25 -13
  163. package/lib/common/services/qr.js +25 -13
  164. package/lib/common/services/settings-service.js +2 -1
  165. package/lib/common/services/xcode-select-service.js +36 -20
  166. package/lib/common/utils.js +3 -2
  167. package/lib/common/validators/project-name-validator.js +2 -1
  168. package/lib/common/validators/validation-result.js +2 -1
  169. package/lib/common/verify-node-version.js +11 -3
  170. package/lib/common/yok.js +69 -35
  171. package/lib/config.js +72 -36
  172. package/lib/constants-provider.js +1 -0
  173. package/lib/constants.js +78 -25
  174. package/lib/controllers/build-controller.js +100 -82
  175. package/lib/controllers/debug-controller.js +133 -107
  176. package/lib/controllers/deploy-controller.js +24 -15
  177. package/lib/controllers/migrate-controller.js +884 -723
  178. package/lib/controllers/platform-controller.js +94 -71
  179. package/lib/controllers/prepare-controller.js +274 -232
  180. package/lib/controllers/run-controller.js +427 -397
  181. package/lib/controllers/update-controller-base.js +30 -16
  182. package/lib/controllers/update-controller.js +130 -94
  183. package/lib/data/build-data.js +1 -0
  184. package/lib/data/controller-data-base.js +1 -0
  185. package/lib/data/debug-data.js +1 -0
  186. package/lib/data/platform-data.js +1 -0
  187. package/lib/data/prepare-data.js +2 -4
  188. package/lib/data/run-data.js +1 -0
  189. package/lib/definitions/project.d.ts +26 -0
  190. package/lib/detached-processes/cleanup-js-subprocess.js +20 -5
  191. package/lib/detached-processes/cleanup-process.js +43 -30
  192. package/lib/detached-processes/file-log-service.js +2 -1
  193. package/lib/device-path-provider.js +35 -23
  194. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +171 -149
  195. package/lib/device-sockets/ios/notification.js +4 -1
  196. package/lib/device-sockets/ios/socket-request-executor.js +42 -24
  197. package/lib/helpers/android-bundle-validator-helper.js +3 -2
  198. package/lib/helpers/deploy-command-helper.js +50 -44
  199. package/lib/helpers/key-command-helper.js +17 -6
  200. package/lib/helpers/livesync-command-helper.js +155 -137
  201. package/lib/helpers/network-connectivity-validator.js +18 -6
  202. package/lib/helpers/options-track-helper.js +19 -7
  203. package/lib/helpers/package-path-helper.js +1 -0
  204. package/lib/helpers/platform-command-helper.js +127 -101
  205. package/lib/helpers/version-validator-helper.js +1 -0
  206. package/lib/key-commands/bootstrap.js +3 -2
  207. package/lib/key-commands/index.js +205 -154
  208. package/lib/nativescript-cli-lib-bootstrap.js +4 -0
  209. package/lib/nativescript-cli-lib.js +1 -0
  210. package/lib/nativescript-cli.js +24 -6
  211. package/lib/node/pbxproj-dom-xcode.js +1 -0
  212. package/lib/node/xcode.js +1 -0
  213. package/lib/node-package-manager.js +114 -81
  214. package/lib/options.js +156 -122
  215. package/lib/package-installation-manager.js +172 -130
  216. package/lib/package-manager.js +88 -63
  217. package/lib/platform-command-param.js +16 -4
  218. package/lib/pnpm-package-manager.js +81 -59
  219. package/lib/project-data.js +13 -1
  220. package/lib/providers/project-files-provider.js +2 -1
  221. package/lib/resolvers/livesync-service-resolver.js +1 -0
  222. package/lib/services/analytics/analytics-broker-process.js +32 -19
  223. package/lib/services/analytics/analytics-broker.js +31 -17
  224. package/lib/services/analytics/analytics-service.js +210 -170
  225. package/lib/services/analytics/google-analytics-provider.js +59 -43
  226. package/lib/services/analytics-settings-service.js +37 -15
  227. package/lib/services/android/android-bundle-tool-service.js +61 -43
  228. package/lib/services/android/gradle-build-args-service.js +23 -9
  229. package/lib/services/android/gradle-build-service.js +36 -22
  230. package/lib/services/android/gradle-command-service.js +36 -22
  231. package/lib/services/android-device-debug-service.js +123 -90
  232. package/lib/services/android-plugin-build-service.js +260 -205
  233. package/lib/services/android-project-service.js +241 -129
  234. package/lib/services/android-resources-migration-service.js +71 -51
  235. package/lib/services/apple-portal/apple-portal-application-service.js +64 -46
  236. package/lib/services/apple-portal/apple-portal-cookie-service.js +1 -0
  237. package/lib/services/apple-portal/apple-portal-session-service.js +218 -197
  238. package/lib/services/apple-portal/srp/srp-wrapper.js +61 -43
  239. package/lib/services/assets-generation/assets-generation-service.js +128 -103
  240. package/lib/services/build-artifacts-service.js +22 -10
  241. package/lib/services/build-data-service.js +1 -0
  242. package/lib/services/build-info-file-service.js +36 -20
  243. package/lib/services/cleanup-service.js +81 -48
  244. package/lib/services/cocoapods-platform-manager.js +9 -0
  245. package/lib/services/cocoapods-service.js +153 -112
  246. package/lib/services/debug-data-service.js +1 -0
  247. package/lib/services/debug-service-base.js +7 -0
  248. package/lib/services/device/device-install-app-service.js +72 -54
  249. package/lib/services/doctor-service.js +135 -101
  250. package/lib/services/extensibility-service.js +108 -81
  251. package/lib/services/files-hash-service.js +44 -26
  252. package/lib/services/hmr-status-service.js +3 -1
  253. package/lib/services/info-service.js +1 -0
  254. package/lib/services/initialize-service.js +54 -37
  255. package/lib/services/ios/export-options-plist-service.js +55 -38
  256. package/lib/services/ios/ios-signing-service.js +191 -168
  257. package/lib/services/ios/spm-service.js +70 -46
  258. package/lib/services/ios/xcodebuild-args-service.js +103 -77
  259. package/lib/services/ios/xcodebuild-command-service.js +26 -14
  260. package/lib/services/ios/xcodebuild-service.js +72 -52
  261. package/lib/services/ios-debugger-port-service.js +38 -24
  262. package/lib/services/ios-device-debug-service.js +103 -75
  263. package/lib/services/ios-entitlements-service.js +43 -31
  264. package/lib/services/ios-extensions-service.js +30 -18
  265. package/lib/services/ios-log-filter.js +20 -0
  266. package/lib/services/ios-native-target-service.js +6 -4
  267. package/lib/services/ios-project-service.js +605 -437
  268. package/lib/services/ios-provision-service.js +132 -108
  269. package/lib/services/ios-watch-app-service.js +33 -21
  270. package/lib/services/ip-service.js +55 -38
  271. package/lib/services/itmstransporter-service.js +153 -129
  272. package/lib/services/karma-execution.js +2 -0
  273. package/lib/services/livesync/android-device-livesync-service-base.js +49 -31
  274. package/lib/services/livesync/android-device-livesync-service.js +151 -120
  275. package/lib/services/livesync/android-device-livesync-sockets-service.js +155 -121
  276. package/lib/services/livesync/android-livesync-service.js +36 -14
  277. package/lib/services/livesync/android-livesync-tool.js +117 -90
  278. package/lib/services/livesync/device-livesync-service-base.js +30 -15
  279. package/lib/services/livesync/ios-device-livesync-service.js +150 -114
  280. package/lib/services/livesync/ios-livesync-service.js +60 -42
  281. package/lib/services/livesync/livesync-socket.js +1 -0
  282. package/lib/services/livesync/platform-livesync-service-base.js +124 -94
  283. package/lib/services/livesync-process-data-service.js +1 -0
  284. package/lib/services/log-parser-service.js +2 -1
  285. package/lib/services/log-source-map-service.js +56 -30
  286. package/lib/services/marking-mode-service.js +33 -17
  287. package/lib/services/metadata-filtering-service.js +1 -0
  288. package/lib/services/npm-config-service.js +5 -1
  289. package/lib/services/pacote-service.js +71 -49
  290. package/lib/services/performance-service.js +4 -2
  291. package/lib/services/platform/add-platform-service.js +119 -51
  292. package/lib/services/platform/platform-validation-service.js +34 -22
  293. package/lib/services/platform/prepare-native-platform-service.js +65 -49
  294. package/lib/services/platform-environment-requirements.js +43 -27
  295. package/lib/services/platform-project-service-base.js +1 -0
  296. package/lib/services/platforms-data-service.js +1 -0
  297. package/lib/services/plugins-service.js +168 -125
  298. package/lib/services/prepare-data-service.js +1 -0
  299. package/lib/services/project-backup-service.js +5 -1
  300. package/lib/services/project-changes-service.js +152 -124
  301. package/lib/services/project-cleanup-service.js +79 -64
  302. package/lib/services/project-config-service.js +111 -73
  303. package/lib/services/project-data-service.js +154 -108
  304. package/lib/services/project-name-service.js +44 -28
  305. package/lib/services/project-service.js +113 -84
  306. package/lib/services/project-templates-service.js +68 -52
  307. package/lib/services/qr-code-terminal-service.js +1 -0
  308. package/lib/services/require-service.js +1 -0
  309. package/lib/services/start-service.js +60 -41
  310. package/lib/services/temp-service.js +22 -8
  311. package/lib/services/terminal-spinner-service.js +28 -15
  312. package/lib/services/test-execution-service.js +79 -59
  313. package/lib/services/test-initialization-service.js +6 -2
  314. package/lib/services/timeline-profiler-service.js +2 -1
  315. package/lib/services/user-settings-service.js +1 -0
  316. package/lib/services/versions-service.js +140 -119
  317. package/lib/services/watch-ignore-list-service.js +1 -0
  318. package/lib/services/webpack/webpack-compiler-service.js +279 -215
  319. package/lib/services/xcconfig-service.js +21 -8
  320. package/lib/services/xcproj-service.js +1 -0
  321. package/lib/shared-event-bus.js +6 -0
  322. package/lib/sys-info.js +63 -45
  323. package/lib/tools/config-manipulation/config-transformer.js +21 -0
  324. package/lib/tools/node-modules/node-modules-builder.js +28 -16
  325. package/lib/tools/node-modules/node-modules-dependencies-builder.js +6 -0
  326. package/lib/yarn-package-manager.js +79 -59
  327. package/lib/yarn2-package-manager.js +82 -60
  328. package/node_modules/@npmcli/move-file/LICENSE.md +22 -0
  329. package/node_modules/@npmcli/move-file/README.md +69 -0
  330. package/node_modules/@npmcli/move-file/lib/index.js +185 -0
  331. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +21 -0
  332. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +68 -0
  333. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +31 -0
  334. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +29 -0
  335. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +64 -0
  336. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +39 -0
  337. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +23 -0
  338. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +29 -0
  339. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +10 -0
  340. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +44 -0
  341. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +266 -0
  342. package/node_modules/@npmcli/move-file/package.json +47 -0
  343. package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  344. package/node_modules/balanced-match/LICENSE.md +21 -0
  345. package/node_modules/balanced-match/README.md +97 -0
  346. package/node_modules/balanced-match/index.js +62 -0
  347. package/node_modules/balanced-match/package.json +48 -0
  348. package/node_modules/concat-map/.travis.yml +4 -0
  349. package/node_modules/concat-map/LICENSE +18 -0
  350. package/node_modules/concat-map/README.markdown +62 -0
  351. package/node_modules/concat-map/example/map.js +6 -0
  352. package/node_modules/concat-map/index.js +13 -0
  353. package/node_modules/concat-map/package.json +43 -0
  354. package/node_modules/concat-map/test/map.js +39 -0
  355. package/node_modules/fs.realpath/LICENSE +43 -0
  356. package/node_modules/fs.realpath/README.md +33 -0
  357. package/node_modules/fs.realpath/index.js +66 -0
  358. package/node_modules/fs.realpath/old.js +303 -0
  359. package/node_modules/fs.realpath/package.json +26 -0
  360. package/node_modules/inflight/LICENSE +15 -0
  361. package/node_modules/inflight/README.md +37 -0
  362. package/node_modules/inflight/inflight.js +54 -0
  363. package/node_modules/inflight/package.json +29 -0
  364. package/node_modules/inherits/LICENSE +16 -0
  365. package/node_modules/inherits/README.md +42 -0
  366. package/node_modules/inherits/inherits.js +9 -0
  367. package/node_modules/inherits/inherits_browser.js +27 -0
  368. package/node_modules/inherits/package.json +29 -0
  369. package/node_modules/once/LICENSE +15 -0
  370. package/node_modules/once/README.md +79 -0
  371. package/node_modules/once/once.js +42 -0
  372. package/node_modules/once/package.json +33 -0
  373. package/node_modules/path-is-absolute/index.js +20 -0
  374. package/node_modules/path-is-absolute/license +21 -0
  375. package/node_modules/path-is-absolute/package.json +43 -0
  376. package/node_modules/path-is-absolute/readme.md +59 -0
  377. package/node_modules/rimraf/LICENSE +15 -0
  378. package/node_modules/rimraf/README.md +101 -0
  379. package/node_modules/rimraf/bin.js +68 -0
  380. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +21 -0
  381. package/node_modules/rimraf/node_modules/brace-expansion/README.md +129 -0
  382. package/node_modules/rimraf/node_modules/brace-expansion/index.js +201 -0
  383. package/node_modules/rimraf/node_modules/brace-expansion/package.json +47 -0
  384. package/node_modules/rimraf/node_modules/glob/LICENSE +21 -0
  385. package/node_modules/rimraf/node_modules/glob/README.md +378 -0
  386. package/node_modules/rimraf/node_modules/glob/common.js +238 -0
  387. package/node_modules/rimraf/node_modules/glob/glob.js +790 -0
  388. package/node_modules/rimraf/node_modules/glob/package.json +55 -0
  389. package/node_modules/rimraf/node_modules/glob/sync.js +486 -0
  390. package/node_modules/rimraf/node_modules/minimatch/LICENSE +15 -0
  391. package/node_modules/rimraf/node_modules/minimatch/README.md +230 -0
  392. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +947 -0
  393. package/node_modules/rimraf/node_modules/minimatch/package.json +33 -0
  394. package/node_modules/rimraf/package.json +32 -0
  395. package/node_modules/rimraf/rimraf.js +360 -0
  396. package/node_modules/stringify-package/LICENSE +13 -0
  397. package/node_modules/stringify-package/README.md +55 -0
  398. package/node_modules/stringify-package/index.js +18 -0
  399. package/node_modules/stringify-package/package.json +38 -0
  400. package/node_modules/wrappy/LICENSE +15 -0
  401. package/node_modules/wrappy/README.md +36 -0
  402. package/node_modules/wrappy/package.json +29 -0
  403. package/node_modules/wrappy/wrappy.js +33 -0
  404. package/package.json +79 -64
@@ -1,4 +1,13 @@
1
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
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.ApplePortalSessionService = void 0;
4
13
  const helpers_1 = require("../../common/helpers");
@@ -18,231 +27,242 @@ class ApplePortalSessionService {
18
27
  authServiceKey: "e0b80c3bf78523bfe80974d320935bfa30add02e1bff88ec2166c6bd5a706c42",
19
28
  };
20
29
  }
21
- async createUserSession(credentials, opts) {
22
- const loginResult = await this.login(credentials, opts);
23
- if (!opts || !opts.sessionBase64) {
24
- if (loginResult.isTwoFactorAuthenticationEnabled) {
25
- const authServiceKey = (await this.getLoginConfig()).authServiceKey;
26
- await this.handleTwoFactorAuthentication(loginResult.scnt, loginResult.xAppleIdSessionId, authServiceKey, loginResult.hashcash);
30
+ createUserSession(credentials, opts) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ const loginResult = yield this.login(credentials, opts);
33
+ if (!opts || !opts.sessionBase64) {
34
+ if (loginResult.isTwoFactorAuthenticationEnabled) {
35
+ const authServiceKey = (yield this.getLoginConfig()).authServiceKey;
36
+ yield this.handleTwoFactorAuthentication(loginResult.scnt, loginResult.xAppleIdSessionId, authServiceKey, loginResult.hashcash);
37
+ }
38
+ const sessionResponse = yield this.$httpClient.httpRequest({
39
+ url: "https://appstoreconnect.apple.com/olympus/v1/session",
40
+ method: "GET",
41
+ headers: {
42
+ Cookie: this.$applePortalCookieService.getUserSessionCookie(),
43
+ },
44
+ });
45
+ this.$applePortalCookieService.updateUserSessionCookie(sessionResponse.headers["set-cookie"]);
27
46
  }
28
- const sessionResponse = await this.$httpClient.httpRequest({
29
- url: "https://appstoreconnect.apple.com/olympus/v1/session",
47
+ const userDetailsResponse = yield this.$httpClient.httpRequest({
48
+ url: "https://appstoreconnect.apple.com/WebObjects/iTunesConnect.woa/ra/user/detail",
30
49
  method: "GET",
31
50
  headers: {
51
+ "Content-Type": "application/json",
32
52
  Cookie: this.$applePortalCookieService.getUserSessionCookie(),
33
53
  },
34
54
  });
35
- this.$applePortalCookieService.updateUserSessionCookie(sessionResponse.headers["set-cookie"]);
36
- }
37
- const userDetailsResponse = await this.$httpClient.httpRequest({
38
- url: "https://appstoreconnect.apple.com/WebObjects/iTunesConnect.woa/ra/user/detail",
39
- method: "GET",
40
- headers: {
41
- "Content-Type": "application/json",
42
- Cookie: this.$applePortalCookieService.getUserSessionCookie(),
43
- },
55
+ this.$applePortalCookieService.updateUserSessionCookie(userDetailsResponse.headers["set-cookie"]);
56
+ const userdDetails = JSON.parse(userDetailsResponse.body).data;
57
+ const result = Object.assign(Object.assign(Object.assign({}, userdDetails), loginResult), { userSessionCookie: this.$applePortalCookieService.getUserSessionCookie() });
58
+ return result;
44
59
  });
45
- this.$applePortalCookieService.updateUserSessionCookie(userDetailsResponse.headers["set-cookie"]);
46
- const userdDetails = JSON.parse(userDetailsResponse.body).data;
47
- const result = {
48
- ...userdDetails,
49
- ...loginResult,
50
- userSessionCookie: this.$applePortalCookieService.getUserSessionCookie(),
51
- };
52
- return result;
53
60
  }
54
- async createWebSession(contentProviderId) {
55
- const webSessionResponse = await this.$httpClient.httpRequest({
56
- url: "https://appstoreconnect.apple.com/olympus/v1/session",
57
- method: "POST",
58
- body: {
59
- provider: {
60
- providerId: contentProviderId,
61
+ createWebSession(contentProviderId) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ const webSessionResponse = yield this.$httpClient.httpRequest({
64
+ url: "https://appstoreconnect.apple.com/olympus/v1/session",
65
+ method: "POST",
66
+ body: {
67
+ provider: {
68
+ providerId: contentProviderId,
69
+ },
61
70
  },
62
- },
63
- headers: {
64
- Accept: "application/json, text/plain, */*",
65
- "Accept-Encoding": "gzip, deflate, br",
66
- "X-Csrf-Itc": "itc",
67
- "Content-Type": "application/json;charset=UTF-8",
68
- "X-Requested-With": "olympus-ui",
69
- Cookie: this.$applePortalCookieService.getUserSessionCookie(),
70
- },
71
+ headers: {
72
+ Accept: "application/json, text/plain, */*",
73
+ "Accept-Encoding": "gzip, deflate, br",
74
+ "X-Csrf-Itc": "itc",
75
+ "Content-Type": "application/json;charset=UTF-8",
76
+ "X-Requested-With": "olympus-ui",
77
+ Cookie: this.$applePortalCookieService.getUserSessionCookie(),
78
+ },
79
+ });
80
+ const webSessionCookie = this.$applePortalCookieService.getWebSessionCookie(webSessionResponse.headers["set-cookie"]);
81
+ return webSessionCookie;
71
82
  });
72
- const webSessionCookie = this.$applePortalCookieService.getWebSessionCookie(webSessionResponse.headers["set-cookie"]);
73
- return webSessionCookie;
74
83
  }
75
- async login(credentials, opts) {
84
+ login(credentials, opts) {
76
85
  var _a, _b;
77
- const result = {
78
- scnt: null,
79
- xAppleIdSessionId: null,
80
- isTwoFactorAuthenticationEnabled: false,
81
- areCredentialsValid: true,
82
- hashcash: null,
83
- };
84
- if (opts && opts.sessionBase64) {
85
- const decodedSession = Buffer.from(opts.sessionBase64, "base64").toString("utf8");
86
- this.$applePortalCookieService.updateUserSessionCookie([decodedSession]);
87
- result.isTwoFactorAuthenticationEnabled =
88
- decodedSession.indexOf("DES") > -1;
89
- }
90
- else {
91
- try {
92
- await this.loginCore(credentials);
86
+ return __awaiter(this, void 0, void 0, function* () {
87
+ const result = {
88
+ scnt: null,
89
+ xAppleIdSessionId: null,
90
+ isTwoFactorAuthenticationEnabled: false,
91
+ areCredentialsValid: true,
92
+ hashcash: null,
93
+ };
94
+ if (opts && opts.sessionBase64) {
95
+ const decodedSession = Buffer.from(opts.sessionBase64, "base64").toString("utf8");
96
+ this.$applePortalCookieService.updateUserSessionCookie([decodedSession]);
97
+ result.isTwoFactorAuthenticationEnabled =
98
+ decodedSession.indexOf("DES") > -1;
93
99
  }
94
- catch (err) {
95
- const statusCode = err && err.response && err.response.status;
96
- const bits = (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.headers["x-apple-hc-bits"];
97
- const challenge = (_b = err === null || err === void 0 ? void 0 : err.response) === null || _b === void 0 ? void 0 : _b.headers["x-apple-hc-challenge"];
98
- const hashcash = makeHashCash(bits, challenge);
99
- result.hashcash = hashcash;
100
- result.areCredentialsValid = statusCode !== 401 && statusCode !== 403;
101
- result.isTwoFactorAuthenticationEnabled = statusCode === 409;
102
- if (result.isTwoFactorAuthenticationEnabled &&
103
- opts &&
104
- opts.requireApplicationSpecificPassword &&
105
- !opts.applicationSpecificPassword) {
106
- this.$errors
107
- .fail(`Your account has two-factor authentication enabled but --appleApplicationSpecificPassword option is not provided.
100
+ else {
101
+ try {
102
+ yield this.loginCore(credentials);
103
+ }
104
+ catch (err) {
105
+ const statusCode = err && err.response && err.response.status;
106
+ const bits = (_a = err === null || err === void 0 ? void 0 : err.response) === null || _a === void 0 ? void 0 : _a.headers["x-apple-hc-bits"];
107
+ const challenge = (_b = err === null || err === void 0 ? void 0 : err.response) === null || _b === void 0 ? void 0 : _b.headers["x-apple-hc-challenge"];
108
+ const hashcash = makeHashCash(bits, challenge);
109
+ result.hashcash = hashcash;
110
+ result.areCredentialsValid = statusCode !== 401 && statusCode !== 403;
111
+ result.isTwoFactorAuthenticationEnabled = statusCode === 409;
112
+ if (result.isTwoFactorAuthenticationEnabled &&
113
+ opts &&
114
+ opts.requireApplicationSpecificPassword &&
115
+ !opts.applicationSpecificPassword) {
116
+ this.$errors
117
+ .fail(`Your account has two-factor authentication enabled but --appleApplicationSpecificPassword option is not provided.
108
118
  To generate an application-specific password, please go to https://appleid.apple.com/account/manage.
109
119
  This password will be used for the iTunes Transporter, which is used to upload your application.`);
110
- }
111
- if (result.isTwoFactorAuthenticationEnabled &&
112
- opts &&
113
- opts.requireInteractiveConsole &&
114
- !(0, helpers_1.isInteractive)()) {
115
- this.$errors
116
- .fail(`Your account has two-factor authentication enabled, but your console is not interactive.
120
+ }
121
+ if (result.isTwoFactorAuthenticationEnabled &&
122
+ opts &&
123
+ opts.requireInteractiveConsole &&
124
+ !(0, helpers_1.isInteractive)()) {
125
+ this.$errors
126
+ .fail(`Your account has two-factor authentication enabled, but your console is not interactive.
117
127
  For more details how to set up your environment, please execute "ns publish ios --help".`);
128
+ }
129
+ const headers = (err && err.response && err.response.headers) || {};
130
+ result.scnt = headers.scnt;
131
+ result.xAppleIdSessionId = headers["x-apple-id-session-id"];
118
132
  }
119
- const headers = (err && err.response && err.response.headers) || {};
120
- result.scnt = headers.scnt;
121
- result.xAppleIdSessionId = headers["x-apple-id-session-id"];
122
133
  }
123
- }
124
- return result;
134
+ return result;
135
+ });
125
136
  }
126
- async loginCore(credentials) {
127
- const wrapper = new srp_wrapper_1.GSASRPAuthenticator(credentials.username);
128
- const initData = await wrapper.getInit();
129
- const loginConfig = await this.getLoginConfig();
130
- const loginUrl = `${loginConfig.authServiceUrl}/auth/signin/init`;
131
- const headers = {
132
- "Content-Type": "application/json",
133
- "X-Requested-With": "XMLHttpRequest",
134
- "X-Apple-Widget-Key": loginConfig.authServiceKey,
135
- Accept: "application/json, text/javascript",
136
- };
137
- const initResponse = await this.$httpClient.httpRequest({
138
- url: loginUrl,
139
- method: "POST",
140
- body: initData,
141
- headers,
137
+ loginCore(credentials) {
138
+ return __awaiter(this, void 0, void 0, function* () {
139
+ const wrapper = new srp_wrapper_1.GSASRPAuthenticator(credentials.username);
140
+ const initData = yield wrapper.getInit();
141
+ const loginConfig = yield this.getLoginConfig();
142
+ const loginUrl = `${loginConfig.authServiceUrl}/auth/signin/init`;
143
+ const headers = {
144
+ "Content-Type": "application/json",
145
+ "X-Requested-With": "XMLHttpRequest",
146
+ "X-Apple-Widget-Key": loginConfig.authServiceKey,
147
+ Accept: "application/json, text/javascript",
148
+ };
149
+ const initResponse = yield this.$httpClient.httpRequest({
150
+ url: loginUrl,
151
+ method: "POST",
152
+ body: initData,
153
+ headers,
154
+ });
155
+ const body = JSON.parse(initResponse.response.body);
156
+ const completeData = yield wrapper.getComplete(credentials.password, body);
157
+ const hashcash = yield this.fetchHashcash(loginConfig.authServiceUrl, loginConfig.authServiceKey);
158
+ const completeUrl = `${loginConfig.authServiceUrl}/auth/signin/complete?isRememberMeEnabled=false`;
159
+ const completeHeaders = {
160
+ "Content-Type": "application/json",
161
+ "X-Requested-With": "XMLHttpRequest",
162
+ "X-Apple-Widget-Key": loginConfig.authServiceKey,
163
+ Accept: "application/json, text/javascript",
164
+ "X-Apple-HC": hashcash || "",
165
+ };
166
+ const completeResponse = yield this.$httpClient.httpRequest({
167
+ url: completeUrl,
168
+ method: "POST",
169
+ completeHeaders,
170
+ body: completeData,
171
+ headers: completeHeaders,
172
+ });
173
+ this.$applePortalCookieService.updateUserSessionCookie(completeResponse.headers["set-cookie"]);
142
174
  });
143
- const body = JSON.parse(initResponse.response.body);
144
- const completeData = await wrapper.getComplete(credentials.password, body);
145
- const hashcash = await this.fetchHashcash(loginConfig.authServiceUrl, loginConfig.authServiceKey);
146
- const completeUrl = `${loginConfig.authServiceUrl}/auth/signin/complete?isRememberMeEnabled=false`;
147
- const completeHeaders = {
148
- "Content-Type": "application/json",
149
- "X-Requested-With": "XMLHttpRequest",
150
- "X-Apple-Widget-Key": loginConfig.authServiceKey,
151
- Accept: "application/json, text/javascript",
152
- "X-Apple-HC": hashcash || "",
153
- };
154
- const completeResponse = await this.$httpClient.httpRequest({
155
- url: completeUrl,
156
- method: "POST",
157
- completeHeaders,
158
- body: completeData,
159
- headers: completeHeaders,
175
+ }
176
+ getLoginConfig() {
177
+ return __awaiter(this, void 0, void 0, function* () {
178
+ let config = null;
179
+ try {
180
+ const response = yield this.$httpClient.httpRequest({
181
+ url: this.loginConfigEndpoint,
182
+ method: "GET",
183
+ });
184
+ config = JSON.parse(response.body);
185
+ }
186
+ catch (err) {
187
+ this.$logger.trace(`Error while executing request to ${this.loginConfigEndpoint}. More info: ${err}`);
188
+ }
189
+ return config || this.defaultLoginConfig;
160
190
  });
161
- this.$applePortalCookieService.updateUserSessionCookie(completeResponse.headers["set-cookie"]);
162
191
  }
163
- async getLoginConfig() {
164
- let config = null;
165
- try {
166
- const response = await this.$httpClient.httpRequest({
167
- url: this.loginConfigEndpoint,
192
+ fetchHashcash(authServiceUrl, authServiceKey) {
193
+ return __awaiter(this, void 0, void 0, function* () {
194
+ const loginUrl = `${authServiceUrl}/auth/signin?widgetKey=${authServiceKey}`;
195
+ const response = yield this.$httpClient.httpRequest({
196
+ url: loginUrl,
168
197
  method: "GET",
169
198
  });
170
- config = JSON.parse(response.body);
171
- }
172
- catch (err) {
173
- this.$logger.trace(`Error while executing request to ${this.loginConfigEndpoint}. More info: ${err}`);
174
- }
175
- return config || this.defaultLoginConfig;
176
- }
177
- async fetchHashcash(authServiceUrl, authServiceKey) {
178
- const loginUrl = `${authServiceUrl}/auth/signin?widgetKey=${authServiceKey}`;
179
- const response = await this.$httpClient.httpRequest({
180
- url: loginUrl,
181
- method: "GET",
199
+ const headers = response.headers;
200
+ const bits = headers["X-Apple-HC-Bits"];
201
+ const challenge = headers["X-Apple-HC-Challenge"];
202
+ return makeHashCash(bits, challenge);
182
203
  });
183
- const headers = response.headers;
184
- const bits = headers["X-Apple-HC-Bits"];
185
- const challenge = headers["X-Apple-HC-Challenge"];
186
- return makeHashCash(bits, challenge);
187
204
  }
188
- async handleTwoFactorAuthentication(scnt, xAppleIdSessionId, authServiceKey, hashcash) {
189
- const headers = {
190
- scnt: scnt,
191
- "X-Apple-Id-Session-Id": xAppleIdSessionId,
192
- "X-Apple-Widget-Key": authServiceKey,
193
- "X-Apple-HC": hashcash,
194
- Accept: "application/json",
195
- };
196
- const authResponse = await this.$httpClient.httpRequest({
197
- url: "https://idmsa.apple.com/appleauth/auth",
198
- method: "GET",
199
- headers,
200
- });
201
- const data = JSON.parse(authResponse.body);
202
- const isSMS = data.trustedPhoneNumbers &&
203
- data.trustedPhoneNumbers.length === 1 &&
204
- data.noTrustedDevices;
205
- const multiSMS = data.trustedPhoneNumbers &&
206
- data.trustedPhoneNumbers.length !== 1 &&
207
- data.noTrustedDevices;
208
- let token;
209
- if (data.trustedPhoneNumbers &&
210
- data.trustedPhoneNumbers.length &&
211
- !multiSMS) {
212
- const parsedAuthResponse = JSON.parse(authResponse.body);
213
- token = await this.$prompter.getString(`Please enter the ${parsedAuthResponse.securityCode.length} digit code`, { allowEmpty: false });
214
- const body = {
215
- securityCode: {
216
- code: token.toString(),
217
- },
205
+ handleTwoFactorAuthentication(scnt, xAppleIdSessionId, authServiceKey, hashcash) {
206
+ return __awaiter(this, void 0, void 0, function* () {
207
+ const headers = {
208
+ scnt: scnt,
209
+ "X-Apple-Id-Session-Id": xAppleIdSessionId,
210
+ "X-Apple-Widget-Key": authServiceKey,
211
+ "X-Apple-HC": hashcash,
212
+ Accept: "application/json",
218
213
  };
219
- let url = `https://idmsa.apple.com/appleauth/auth/verify/trusteddevice/securitycode`;
220
- if (isSMS) {
221
- body.mode = "sms";
222
- body.phoneNumber = {
223
- id: data.trustedPhoneNumbers[0].id,
224
- };
225
- url = `https://idmsa.apple.com/appleauth/auth/verify/phone/securitycode`;
226
- }
227
- await this.$httpClient.httpRequest({
228
- url,
229
- method: "POST",
230
- body,
231
- headers: { ...headers, "Content-Type": "application/json" },
232
- });
233
- const authTrustResponse = await this.$httpClient.httpRequest({
234
- url: "https://idmsa.apple.com/appleauth/auth/2sv/trust",
214
+ const authResponse = yield this.$httpClient.httpRequest({
215
+ url: "https://idmsa.apple.com/appleauth/auth",
235
216
  method: "GET",
236
217
  headers,
237
218
  });
238
- this.$applePortalCookieService.updateUserSessionCookie(authTrustResponse.headers["set-cookie"]);
239
- }
240
- else if (multiSMS) {
241
- this.$errors.fail(`The NativeScript CLI does not support SMS authenticaton with multiple registered phone numbers.`);
242
- }
243
- else {
244
- this.$errors.fail(`Although response from Apple indicated activated Two-step Verification or Two-factor Authentication, NativeScript CLI don't know how to handle this response: ${data}`);
245
- }
219
+ const data = JSON.parse(authResponse.body);
220
+ const isSMS = data.trustedPhoneNumbers &&
221
+ data.trustedPhoneNumbers.length === 1 &&
222
+ data.noTrustedDevices; // 1 device and no trusted devices means sms was automatically sent.
223
+ const multiSMS = data.trustedPhoneNumbers &&
224
+ data.trustedPhoneNumbers.length !== 1 &&
225
+ data.noTrustedDevices; // Not handling more than 1 sms device and no trusted devices.
226
+ let token;
227
+ if (data.trustedPhoneNumbers &&
228
+ data.trustedPhoneNumbers.length &&
229
+ !multiSMS) {
230
+ const parsedAuthResponse = JSON.parse(authResponse.body);
231
+ token = yield this.$prompter.getString(`Please enter the ${parsedAuthResponse.securityCode.length} digit code`, { allowEmpty: false });
232
+ const body = {
233
+ securityCode: {
234
+ code: token.toString(),
235
+ },
236
+ };
237
+ let url = `https://idmsa.apple.com/appleauth/auth/verify/trusteddevice/securitycode`;
238
+ if (isSMS) {
239
+ // No trusted devices means it must be sms.
240
+ body.mode = "sms";
241
+ body.phoneNumber = {
242
+ id: data.trustedPhoneNumbers[0].id,
243
+ };
244
+ url = `https://idmsa.apple.com/appleauth/auth/verify/phone/securitycode`;
245
+ }
246
+ yield this.$httpClient.httpRequest({
247
+ url,
248
+ method: "POST",
249
+ body,
250
+ headers: Object.assign(Object.assign({}, headers), { "Content-Type": "application/json" }),
251
+ });
252
+ const authTrustResponse = yield this.$httpClient.httpRequest({
253
+ url: "https://idmsa.apple.com/appleauth/auth/2sv/trust",
254
+ method: "GET",
255
+ headers,
256
+ });
257
+ this.$applePortalCookieService.updateUserSessionCookie(authTrustResponse.headers["set-cookie"]);
258
+ }
259
+ else if (multiSMS) {
260
+ this.$errors.fail(`The NativeScript CLI does not support SMS authenticaton with multiple registered phone numbers.`);
261
+ }
262
+ else {
263
+ this.$errors.fail(`Although response from Apple indicated activated Two-step Verification or Two-factor Authentication, NativeScript CLI don't know how to handle this response: ${data}`);
264
+ }
265
+ });
246
266
  }
247
267
  }
248
268
  exports.ApplePortalSessionService = ApplePortalSessionService;
@@ -280,8 +300,9 @@ function checkBits(bits, digest) {
280
300
  return result;
281
301
  }
282
302
  function checkBit(position, buffer) {
283
- const bitOffset = position & 7;
284
- const byteIndex = position >> 3;
303
+ const bitOffset = position & 7; // in byte
304
+ const byteIndex = position >> 3; // in buffer
285
305
  const bit = (buffer[byteIndex] >> bitOffset) & 1;
286
306
  return bit === 0;
287
307
  }
308
+ //# sourceMappingURL=apple-portal-session-service.js.map
@@ -1,4 +1,13 @@
1
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
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
12
  exports.GSASRPAuthenticator = void 0;
4
13
  const js_srp_1 = require("@foxt/js-srp");
@@ -11,51 +20,60 @@ class GSASRPAuthenticator {
11
20
  this.username = username;
12
21
  this.srpClient = undefined;
13
22
  }
14
- async derivePassword(protocol, password, salt, iterations) {
15
- let passHash = new Uint8Array(await js_srp_1.util.hash(srp.h, stringToU8Array(password)));
16
- if (protocol == "s2k_fo") {
17
- passHash = stringToU8Array(js_srp_1.util.toHex(passHash));
18
- }
19
- let imported = await crypto.subtle.importKey("raw", passHash, { name: "PBKDF2" }, false, ["deriveBits"]);
20
- let derived = await crypto.subtle.deriveBits({
21
- name: "PBKDF2",
22
- hash: { name: "SHA-256" },
23
- iterations,
24
- salt,
25
- }, imported, 256);
26
- return new Uint8Array(derived);
23
+ derivePassword(protocol, password, salt, iterations) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ let passHash = new Uint8Array(yield js_srp_1.util.hash(srp.h, stringToU8Array(password)));
26
+ if (protocol == "s2k_fo") {
27
+ passHash = stringToU8Array(js_srp_1.util.toHex(passHash));
28
+ }
29
+ let imported = yield crypto.subtle.importKey("raw", passHash, { name: "PBKDF2" }, false, ["deriveBits"]);
30
+ let derived = yield crypto.subtle.deriveBits({
31
+ name: "PBKDF2",
32
+ hash: { name: "SHA-256" },
33
+ iterations,
34
+ salt,
35
+ }, imported, 256);
36
+ return new Uint8Array(derived);
37
+ });
27
38
  }
28
- async getInit() {
29
- if (this.srpClient)
30
- throw new Error("Already initialized");
31
- this.srpClient = await srp.newClient(stringToU8Array(this.username), new Uint8Array());
32
- let a = Buffer.from(js_srp_1.util.bytesFromBigint(this.srpClient.A)).toString("base64");
33
- return {
34
- a,
35
- protocols: ["s2k", "s2k_fo"],
36
- accountName: this.username,
37
- };
39
+ getInit() {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ if (this.srpClient)
42
+ throw new Error("Already initialized");
43
+ this.srpClient = yield srp.newClient(stringToU8Array(this.username),
44
+ // provide fake passsword because we need to get data from server
45
+ new Uint8Array());
46
+ let a = Buffer.from(js_srp_1.util.bytesFromBigint(this.srpClient.A)).toString("base64");
47
+ return {
48
+ a,
49
+ protocols: ["s2k", "s2k_fo"],
50
+ accountName: this.username,
51
+ };
52
+ });
38
53
  }
39
- async getComplete(password, serverData) {
40
- if (!this.srpClient)
41
- throw new Error("Not initialized");
42
- if (serverData.protocol != "s2k" && serverData.protocol != "s2k_fo")
43
- throw new Error("Unsupported protocol " + serverData.protocol);
44
- let salt = base64ToU8Array(serverData.salt);
45
- let serverPub = base64ToU8Array(serverData.b);
46
- let iterations = serverData.iteration;
47
- let derived = await this.derivePassword(serverData.protocol, password, salt, iterations);
48
- this.srpClient.p = derived;
49
- await this.srpClient.generate(salt, serverPub);
50
- let m1 = Buffer.from(this.srpClient._M).toString("base64");
51
- let M2 = await this.srpClient.generateM2();
52
- let m2 = Buffer.from(M2).toString("base64");
53
- return {
54
- accountName: this.username,
55
- m1,
56
- m2,
57
- c: serverData.c,
58
- };
54
+ getComplete(password, serverData) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ if (!this.srpClient)
57
+ throw new Error("Not initialized");
58
+ if (serverData.protocol != "s2k" && serverData.protocol != "s2k_fo")
59
+ throw new Error("Unsupported protocol " + serverData.protocol);
60
+ let salt = base64ToU8Array(serverData.salt);
61
+ let serverPub = base64ToU8Array(serverData.b);
62
+ let iterations = serverData.iteration;
63
+ let derived = yield this.derivePassword(serverData.protocol, password, salt, iterations);
64
+ this.srpClient.p = derived;
65
+ yield this.srpClient.generate(salt, serverPub);
66
+ let m1 = Buffer.from(this.srpClient._M).toString("base64");
67
+ let M2 = yield this.srpClient.generateM2();
68
+ let m2 = Buffer.from(M2).toString("base64");
69
+ return {
70
+ accountName: this.username,
71
+ m1,
72
+ m2,
73
+ c: serverData.c,
74
+ };
75
+ });
59
76
  }
60
77
  }
61
78
  exports.GSASRPAuthenticator = GSASRPAuthenticator;
79
+ //# sourceMappingURL=srp-wrapper.js.map