nativescript 8.9.0-dev.0 → 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 (405) 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/ios.d.ts +4 -2
  190. package/lib/definitions/project.d.ts +26 -0
  191. package/lib/detached-processes/cleanup-js-subprocess.js +20 -5
  192. package/lib/detached-processes/cleanup-process.js +43 -30
  193. package/lib/detached-processes/file-log-service.js +2 -1
  194. package/lib/device-path-provider.js +35 -23
  195. package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +171 -149
  196. package/lib/device-sockets/ios/notification.js +4 -1
  197. package/lib/device-sockets/ios/socket-request-executor.js +42 -24
  198. package/lib/helpers/android-bundle-validator-helper.js +3 -2
  199. package/lib/helpers/deploy-command-helper.js +50 -44
  200. package/lib/helpers/key-command-helper.js +17 -6
  201. package/lib/helpers/livesync-command-helper.js +155 -137
  202. package/lib/helpers/network-connectivity-validator.js +18 -6
  203. package/lib/helpers/options-track-helper.js +19 -7
  204. package/lib/helpers/package-path-helper.js +1 -0
  205. package/lib/helpers/platform-command-helper.js +127 -101
  206. package/lib/helpers/version-validator-helper.js +1 -0
  207. package/lib/key-commands/bootstrap.js +3 -2
  208. package/lib/key-commands/index.js +205 -154
  209. package/lib/nativescript-cli-lib-bootstrap.js +4 -0
  210. package/lib/nativescript-cli-lib.js +1 -0
  211. package/lib/nativescript-cli.js +24 -6
  212. package/lib/node/pbxproj-dom-xcode.js +1 -0
  213. package/lib/node/xcode.js +1 -0
  214. package/lib/node-package-manager.js +114 -81
  215. package/lib/options.js +156 -122
  216. package/lib/package-installation-manager.js +172 -130
  217. package/lib/package-manager.js +88 -63
  218. package/lib/platform-command-param.js +16 -4
  219. package/lib/pnpm-package-manager.js +81 -59
  220. package/lib/project-data.js +13 -1
  221. package/lib/providers/project-files-provider.js +2 -1
  222. package/lib/resolvers/livesync-service-resolver.js +1 -0
  223. package/lib/services/analytics/analytics-broker-process.js +32 -19
  224. package/lib/services/analytics/analytics-broker.js +31 -17
  225. package/lib/services/analytics/analytics-service.js +210 -170
  226. package/lib/services/analytics/google-analytics-provider.js +59 -43
  227. package/lib/services/analytics-settings-service.js +37 -15
  228. package/lib/services/android/android-bundle-tool-service.js +61 -43
  229. package/lib/services/android/gradle-build-args-service.js +23 -9
  230. package/lib/services/android/gradle-build-service.js +36 -22
  231. package/lib/services/android/gradle-command-service.js +36 -22
  232. package/lib/services/android-device-debug-service.js +123 -90
  233. package/lib/services/android-plugin-build-service.js +260 -205
  234. package/lib/services/android-project-service.js +241 -129
  235. package/lib/services/android-resources-migration-service.js +71 -51
  236. package/lib/services/apple-portal/apple-portal-application-service.js +64 -46
  237. package/lib/services/apple-portal/apple-portal-cookie-service.js +1 -0
  238. package/lib/services/apple-portal/apple-portal-session-service.js +218 -197
  239. package/lib/services/apple-portal/srp/srp-wrapper.js +61 -43
  240. package/lib/services/assets-generation/assets-generation-service.js +128 -103
  241. package/lib/services/build-artifacts-service.js +22 -10
  242. package/lib/services/build-data-service.js +1 -0
  243. package/lib/services/build-info-file-service.js +36 -20
  244. package/lib/services/cleanup-service.js +81 -48
  245. package/lib/services/cocoapods-platform-manager.js +9 -0
  246. package/lib/services/cocoapods-service.js +153 -112
  247. package/lib/services/debug-data-service.js +1 -0
  248. package/lib/services/debug-service-base.js +7 -0
  249. package/lib/services/device/device-install-app-service.js +72 -54
  250. package/lib/services/doctor-service.js +135 -101
  251. package/lib/services/extensibility-service.js +108 -81
  252. package/lib/services/files-hash-service.js +44 -26
  253. package/lib/services/hmr-status-service.js +3 -1
  254. package/lib/services/info-service.js +1 -0
  255. package/lib/services/initialize-service.js +54 -37
  256. package/lib/services/ios/export-options-plist-service.js +55 -38
  257. package/lib/services/ios/ios-signing-service.js +191 -168
  258. package/lib/services/ios/spm-service.js +73 -43
  259. package/lib/services/ios/xcodebuild-args-service.js +103 -77
  260. package/lib/services/ios/xcodebuild-command-service.js +26 -14
  261. package/lib/services/ios/xcodebuild-service.js +72 -52
  262. package/lib/services/ios-debugger-port-service.js +38 -24
  263. package/lib/services/ios-device-debug-service.js +103 -75
  264. package/lib/services/ios-entitlements-service.js +43 -31
  265. package/lib/services/ios-extensions-service.js +30 -18
  266. package/lib/services/ios-log-filter.js +20 -0
  267. package/lib/services/ios-native-target-service.js +6 -4
  268. package/lib/services/ios-project-service.js +605 -437
  269. package/lib/services/ios-provision-service.js +132 -108
  270. package/lib/services/ios-watch-app-service.js +33 -21
  271. package/lib/services/ip-service.js +55 -38
  272. package/lib/services/itmstransporter-service.js +153 -129
  273. package/lib/services/karma-execution.js +2 -0
  274. package/lib/services/livesync/android-device-livesync-service-base.js +49 -31
  275. package/lib/services/livesync/android-device-livesync-service.js +151 -120
  276. package/lib/services/livesync/android-device-livesync-sockets-service.js +155 -121
  277. package/lib/services/livesync/android-livesync-service.js +36 -14
  278. package/lib/services/livesync/android-livesync-tool.js +117 -90
  279. package/lib/services/livesync/device-livesync-service-base.js +30 -15
  280. package/lib/services/livesync/ios-device-livesync-service.js +150 -114
  281. package/lib/services/livesync/ios-livesync-service.js +60 -42
  282. package/lib/services/livesync/livesync-socket.js +1 -0
  283. package/lib/services/livesync/platform-livesync-service-base.js +124 -94
  284. package/lib/services/livesync-process-data-service.js +1 -0
  285. package/lib/services/log-parser-service.js +2 -1
  286. package/lib/services/log-source-map-service.js +56 -30
  287. package/lib/services/marking-mode-service.js +33 -17
  288. package/lib/services/metadata-filtering-service.js +1 -0
  289. package/lib/services/npm-config-service.js +5 -1
  290. package/lib/services/pacote-service.js +73 -51
  291. package/lib/services/performance-service.js +4 -2
  292. package/lib/services/platform/add-platform-service.js +119 -51
  293. package/lib/services/platform/platform-validation-service.js +34 -22
  294. package/lib/services/platform/prepare-native-platform-service.js +65 -49
  295. package/lib/services/platform-environment-requirements.js +43 -27
  296. package/lib/services/platform-project-service-base.js +1 -0
  297. package/lib/services/platforms-data-service.js +1 -0
  298. package/lib/services/plugins-service.js +168 -125
  299. package/lib/services/prepare-data-service.js +1 -0
  300. package/lib/services/project-backup-service.js +5 -1
  301. package/lib/services/project-changes-service.js +152 -124
  302. package/lib/services/project-cleanup-service.js +79 -64
  303. package/lib/services/project-config-service.js +111 -73
  304. package/lib/services/project-data-service.js +154 -108
  305. package/lib/services/project-name-service.js +44 -28
  306. package/lib/services/project-service.js +113 -84
  307. package/lib/services/project-templates-service.js +68 -52
  308. package/lib/services/qr-code-terminal-service.js +1 -0
  309. package/lib/services/require-service.js +1 -0
  310. package/lib/services/start-service.js +60 -41
  311. package/lib/services/temp-service.js +22 -8
  312. package/lib/services/terminal-spinner-service.js +28 -15
  313. package/lib/services/test-execution-service.js +79 -59
  314. package/lib/services/test-initialization-service.js +6 -2
  315. package/lib/services/timeline-profiler-service.js +2 -1
  316. package/lib/services/user-settings-service.js +1 -0
  317. package/lib/services/versions-service.js +140 -119
  318. package/lib/services/watch-ignore-list-service.js +1 -0
  319. package/lib/services/webpack/webpack-compiler-service.js +279 -215
  320. package/lib/services/xcconfig-service.js +21 -8
  321. package/lib/services/xcproj-service.js +1 -0
  322. package/lib/shared-event-bus.js +6 -0
  323. package/lib/sys-info.js +63 -45
  324. package/lib/tools/config-manipulation/config-transformer.js +21 -0
  325. package/lib/tools/node-modules/node-modules-builder.js +28 -16
  326. package/lib/tools/node-modules/node-modules-dependencies-builder.js +6 -0
  327. package/lib/yarn-package-manager.js +79 -59
  328. package/lib/yarn2-package-manager.js +82 -60
  329. package/node_modules/@npmcli/move-file/LICENSE.md +22 -0
  330. package/node_modules/@npmcli/move-file/README.md +69 -0
  331. package/node_modules/@npmcli/move-file/lib/index.js +185 -0
  332. package/node_modules/@npmcli/move-file/node_modules/mkdirp/LICENSE +21 -0
  333. package/node_modules/@npmcli/move-file/node_modules/mkdirp/bin/cmd.js +68 -0
  334. package/node_modules/@npmcli/move-file/node_modules/mkdirp/index.js +31 -0
  335. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/find-made.js +29 -0
  336. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-manual.js +64 -0
  337. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/mkdirp-native.js +39 -0
  338. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/opts-arg.js +23 -0
  339. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/path-arg.js +29 -0
  340. package/node_modules/@npmcli/move-file/node_modules/mkdirp/lib/use-native.js +10 -0
  341. package/node_modules/@npmcli/move-file/node_modules/mkdirp/package.json +44 -0
  342. package/node_modules/@npmcli/move-file/node_modules/mkdirp/readme.markdown +266 -0
  343. package/node_modules/@npmcli/move-file/package.json +47 -0
  344. package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
  345. package/node_modules/balanced-match/LICENSE.md +21 -0
  346. package/node_modules/balanced-match/README.md +97 -0
  347. package/node_modules/balanced-match/index.js +62 -0
  348. package/node_modules/balanced-match/package.json +48 -0
  349. package/node_modules/concat-map/.travis.yml +4 -0
  350. package/node_modules/concat-map/LICENSE +18 -0
  351. package/node_modules/concat-map/README.markdown +62 -0
  352. package/node_modules/concat-map/example/map.js +6 -0
  353. package/node_modules/concat-map/index.js +13 -0
  354. package/node_modules/concat-map/package.json +43 -0
  355. package/node_modules/concat-map/test/map.js +39 -0
  356. package/node_modules/fs.realpath/LICENSE +43 -0
  357. package/node_modules/fs.realpath/README.md +33 -0
  358. package/node_modules/fs.realpath/index.js +66 -0
  359. package/node_modules/fs.realpath/old.js +303 -0
  360. package/node_modules/fs.realpath/package.json +26 -0
  361. package/node_modules/inflight/LICENSE +15 -0
  362. package/node_modules/inflight/README.md +37 -0
  363. package/node_modules/inflight/inflight.js +54 -0
  364. package/node_modules/inflight/package.json +29 -0
  365. package/node_modules/inherits/LICENSE +16 -0
  366. package/node_modules/inherits/README.md +42 -0
  367. package/node_modules/inherits/inherits.js +9 -0
  368. package/node_modules/inherits/inherits_browser.js +27 -0
  369. package/node_modules/inherits/package.json +29 -0
  370. package/node_modules/once/LICENSE +15 -0
  371. package/node_modules/once/README.md +79 -0
  372. package/node_modules/once/once.js +42 -0
  373. package/node_modules/once/package.json +33 -0
  374. package/node_modules/path-is-absolute/index.js +20 -0
  375. package/node_modules/path-is-absolute/license +21 -0
  376. package/node_modules/path-is-absolute/package.json +43 -0
  377. package/node_modules/path-is-absolute/readme.md +59 -0
  378. package/node_modules/rimraf/LICENSE +15 -0
  379. package/node_modules/rimraf/README.md +101 -0
  380. package/node_modules/rimraf/bin.js +68 -0
  381. package/node_modules/rimraf/node_modules/brace-expansion/LICENSE +21 -0
  382. package/node_modules/rimraf/node_modules/brace-expansion/README.md +129 -0
  383. package/node_modules/rimraf/node_modules/brace-expansion/index.js +201 -0
  384. package/node_modules/rimraf/node_modules/brace-expansion/package.json +47 -0
  385. package/node_modules/rimraf/node_modules/glob/LICENSE +21 -0
  386. package/node_modules/rimraf/node_modules/glob/README.md +378 -0
  387. package/node_modules/rimraf/node_modules/glob/common.js +238 -0
  388. package/node_modules/rimraf/node_modules/glob/glob.js +790 -0
  389. package/node_modules/rimraf/node_modules/glob/package.json +55 -0
  390. package/node_modules/rimraf/node_modules/glob/sync.js +486 -0
  391. package/node_modules/rimraf/node_modules/minimatch/LICENSE +15 -0
  392. package/node_modules/rimraf/node_modules/minimatch/README.md +230 -0
  393. package/node_modules/rimraf/node_modules/minimatch/minimatch.js +947 -0
  394. package/node_modules/rimraf/node_modules/minimatch/package.json +33 -0
  395. package/node_modules/rimraf/package.json +32 -0
  396. package/node_modules/rimraf/rimraf.js +360 -0
  397. package/node_modules/stringify-package/LICENSE +13 -0
  398. package/node_modules/stringify-package/README.md +55 -0
  399. package/node_modules/stringify-package/index.js +18 -0
  400. package/node_modules/stringify-package/package.json +38 -0
  401. package/node_modules/wrappy/LICENSE +15 -0
  402. package/node_modules/wrappy/README.md +36 -0
  403. package/node_modules/wrappy/package.json +29 -0
  404. package/node_modules/wrappy/wrappy.js +33 -0
  405. 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