@kingstinct/react-native-healthkit 8.7.2 → 9.0.0

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 (449) hide show
  1. package/ReactNativeHealthkit.podspec +36 -0
  2. package/app.plugin.js +43 -33
  3. package/ios/Bridge.h +8 -0
  4. package/ios/CategoryTypeModule.swift +128 -0
  5. package/ios/CharacteristicTypeModule.swift +78 -0
  6. package/ios/Constants.swift +2 -0
  7. package/ios/CoreModule.swift +376 -0
  8. package/ios/CorrelationTypeModule.swift +153 -0
  9. package/ios/HeartbeatSeriesModule.swift +189 -0
  10. package/ios/Helpers.swift +529 -251
  11. package/ios/QuantityTypeModule.swift +461 -0
  12. package/ios/Serializers.swift +211 -124
  13. package/ios/SourceProxy.swift +35 -0
  14. package/ios/StateOfMindModule.swift +160 -0
  15. package/ios/WorkoutProxy.swift +405 -0
  16. package/ios/WorkoutSessionModule.swift +182 -0
  17. package/ios/WorkoutsModule.swift +357 -0
  18. package/package.json +43 -127
  19. package/react-native.config.js +16 -0
  20. package/src/hooks/useHealthkitAuthorization.test.ts +47 -29
  21. package/src/hooks/useHealthkitAuthorization.ts +21 -15
  22. package/src/hooks/useIsHealthDataAvailable.test.ts +17 -7
  23. package/src/hooks/useIsHealthDataAvailable.ts +7 -7
  24. package/src/hooks/useMostRecentCategorySample.ts +10 -12
  25. package/src/hooks/useMostRecentQuantitySample.ts +17 -36
  26. package/src/hooks/useMostRecentWorkout.ts +16 -38
  27. package/src/hooks/useSources.ts +8 -12
  28. package/src/hooks/useStatisticsForQuantity.ts +19 -14
  29. package/src/hooks/useSubscribeToChanges.ts +9 -13
  30. package/src/index.ios.ts +232 -0
  31. package/src/index.ts +444 -0
  32. package/src/modules.ts +43 -0
  33. package/src/specs/CategoryTypeModule.nitro.ts +64 -0
  34. package/src/specs/CharacteristicTypeModule.nitro.ts +22 -0
  35. package/src/specs/CoreModule.nitro.ts +107 -0
  36. package/src/specs/CorrelationTypeModule.nitro.ts +23 -0
  37. package/src/specs/HeartbeatSeriesModule.nitro.ts +19 -0
  38. package/src/specs/QuantityTypeModule.nitro.ts +60 -0
  39. package/src/specs/SourceProxy.nitro.ts +13 -0
  40. package/src/specs/StateOfMindModule.nitro.ts +23 -0
  41. package/src/specs/WorkoutProxy.nitro.ts +18 -0
  42. package/src/specs/WorkoutSessionModule.nitro.ts +71 -0
  43. package/src/specs/WorkoutsModule.nitro.ts +32 -0
  44. package/src/test-setup.ts +68 -54
  45. package/src/test-utils.ts +3 -2
  46. package/src/types/Auth.ts +17 -0
  47. package/src/types/Background.ts +9 -0
  48. package/src/types/CategoryType.ts +249 -0
  49. package/src/types/CategoryTypeIdentifier.ts +99 -0
  50. package/src/types/Characteristics.ts +53 -0
  51. package/src/types/Constants.ts +25 -0
  52. package/src/types/CorrelationType.ts +31 -0
  53. package/src/types/Device.ts +13 -0
  54. package/src/types/HeartbeatSeries.ts +29 -0
  55. package/src/types/InterfaceVerification.ts +164 -0
  56. package/src/types/InterfaceVerificationExample.ts +89 -0
  57. package/src/types/QuantitySample.ts +30 -0
  58. package/src/types/QuantityType.ts +192 -0
  59. package/src/types/QuantityTypeIdentifier.ts +758 -0
  60. package/src/types/QueryOptions.ts +69 -0
  61. package/src/types/README-InterfaceVerification.md +103 -0
  62. package/src/types/Shared.ts +79 -0
  63. package/src/types/Source.ts +11 -0
  64. package/src/types/StateOfMind.ts +110 -0
  65. package/src/types/Subscriptons.ts +10 -0
  66. package/src/types/Units.ts +190 -0
  67. package/src/types/WeatherCondition.ts +31 -0
  68. package/src/types/WorkoutKit.ts +18 -0
  69. package/src/types/Workouts.ts +282 -0
  70. package/src/utils/getMostRecentCategorySample.ts +7 -11
  71. package/src/utils/getMostRecentQuantitySample.ts +8 -18
  72. package/src/utils/getMostRecentWorkout.ts +7 -17
  73. package/src/utils/getPreferredUnit.ts +12 -8
  74. package/src/utils/subscribeToChanges.ts +9 -26
  75. package/LICENSE +0 -21
  76. package/README.md +0 -179
  77. package/ios/ReactNativeHealthkit-Bridging-Header.h +0 -2
  78. package/ios/ReactNativeHealthkit.m +0 -271
  79. package/ios/ReactNativeHealthkit.swift +0 -2333
  80. package/ios/ReactNativeHealthkit.xcodeproj/project.pbxproj +0 -279
  81. package/kingstinct-react-native-healthkit.podspec +0 -21
  82. package/lib/commonjs/hooks/useHealthkitAuthorization.js +0 -39
  83. package/lib/commonjs/hooks/useHealthkitAuthorization.js.map +0 -1
  84. package/lib/commonjs/hooks/useHealthkitAuthorization.test.js +0 -72
  85. package/lib/commonjs/hooks/useHealthkitAuthorization.test.js.map +0 -1
  86. package/lib/commonjs/hooks/useIsHealthDataAvailable.js +0 -27
  87. package/lib/commonjs/hooks/useIsHealthDataAvailable.js.map +0 -1
  88. package/lib/commonjs/hooks/useIsHealthDataAvailable.test.js +0 -41
  89. package/lib/commonjs/hooks/useIsHealthDataAvailable.test.js.map +0 -1
  90. package/lib/commonjs/hooks/useMostRecentCategorySample.js +0 -23
  91. package/lib/commonjs/hooks/useMostRecentCategorySample.js.map +0 -1
  92. package/lib/commonjs/hooks/useMostRecentQuantitySample.js +0 -37
  93. package/lib/commonjs/hooks/useMostRecentQuantitySample.js.map +0 -1
  94. package/lib/commonjs/hooks/useMostRecentWorkout.js +0 -48
  95. package/lib/commonjs/hooks/useMostRecentWorkout.js.map +0 -1
  96. package/lib/commonjs/hooks/useSources.js +0 -22
  97. package/lib/commonjs/hooks/useSources.js.map +0 -1
  98. package/lib/commonjs/hooks/useStatisticsForQuantity.js +0 -28
  99. package/lib/commonjs/hooks/useStatisticsForQuantity.js.map +0 -1
  100. package/lib/commonjs/hooks/useSubscribeToChanges.js +0 -28
  101. package/lib/commonjs/hooks/useSubscribeToChanges.js.map +0 -1
  102. package/lib/commonjs/index.ios.js +0 -531
  103. package/lib/commonjs/index.ios.js.map +0 -1
  104. package/lib/commonjs/index.js +0 -22
  105. package/lib/commonjs/index.js.map +0 -1
  106. package/lib/commonjs/index.native.js +0 -235
  107. package/lib/commonjs/index.native.js.map +0 -1
  108. package/lib/commonjs/index.web.js +0 -22
  109. package/lib/commonjs/index.web.js.map +0 -1
  110. package/lib/commonjs/native-types.js +0 -1575
  111. package/lib/commonjs/native-types.js.map +0 -1
  112. package/lib/commonjs/test-setup.js +0 -57
  113. package/lib/commonjs/test-setup.js.map +0 -1
  114. package/lib/commonjs/test-utils.js +0 -18
  115. package/lib/commonjs/test-utils.js.map +0 -1
  116. package/lib/commonjs/types.js +0 -17
  117. package/lib/commonjs/types.js.map +0 -1
  118. package/lib/commonjs/utils/deleteQuantitySample.js +0 -11
  119. package/lib/commonjs/utils/deleteQuantitySample.js.map +0 -1
  120. package/lib/commonjs/utils/deleteSamples.js +0 -18
  121. package/lib/commonjs/utils/deleteSamples.js.map +0 -1
  122. package/lib/commonjs/utils/deleteWorkoutSample.js +0 -11
  123. package/lib/commonjs/utils/deleteWorkoutSample.js.map +0 -1
  124. package/lib/commonjs/utils/deserializeCategorySample.js +0 -13
  125. package/lib/commonjs/utils/deserializeCategorySample.js.map +0 -1
  126. package/lib/commonjs/utils/deserializeCategorySample.test.js +0 -26
  127. package/lib/commonjs/utils/deserializeCategorySample.test.js.map +0 -1
  128. package/lib/commonjs/utils/deserializeCorrelation.js +0 -26
  129. package/lib/commonjs/utils/deserializeCorrelation.js.map +0 -1
  130. package/lib/commonjs/utils/deserializeHeartbeatSeriesSample.js +0 -15
  131. package/lib/commonjs/utils/deserializeHeartbeatSeriesSample.js.map +0 -1
  132. package/lib/commonjs/utils/deserializeSample.js +0 -15
  133. package/lib/commonjs/utils/deserializeSample.js.map +0 -1
  134. package/lib/commonjs/utils/deserializeWorkout.js +0 -15
  135. package/lib/commonjs/utils/deserializeWorkout.js.map +0 -1
  136. package/lib/commonjs/utils/ensureMetadata.js +0 -11
  137. package/lib/commonjs/utils/ensureMetadata.js.map +0 -1
  138. package/lib/commonjs/utils/ensureTotals.js +0 -11
  139. package/lib/commonjs/utils/ensureTotals.js.map +0 -1
  140. package/lib/commonjs/utils/ensureUnit.js +0 -17
  141. package/lib/commonjs/utils/ensureUnit.js.map +0 -1
  142. package/lib/commonjs/utils/getDateOfBirth.js +0 -14
  143. package/lib/commonjs/utils/getDateOfBirth.js.map +0 -1
  144. package/lib/commonjs/utils/getMostRecentCategorySample.js +0 -17
  145. package/lib/commonjs/utils/getMostRecentCategorySample.js.map +0 -1
  146. package/lib/commonjs/utils/getMostRecentQuantitySample.js +0 -21
  147. package/lib/commonjs/utils/getMostRecentQuantitySample.js.map +0 -1
  148. package/lib/commonjs/utils/getMostRecentWorkout.js +0 -19
  149. package/lib/commonjs/utils/getMostRecentWorkout.js.map +0 -1
  150. package/lib/commonjs/utils/getPreferredUnit.js +0 -14
  151. package/lib/commonjs/utils/getPreferredUnit.js.map +0 -1
  152. package/lib/commonjs/utils/getPreferredUnits.js +0 -14
  153. package/lib/commonjs/utils/getPreferredUnits.js.map +0 -1
  154. package/lib/commonjs/utils/getPreferredUnitsTyped.js +0 -33
  155. package/lib/commonjs/utils/getPreferredUnitsTyped.js.map +0 -1
  156. package/lib/commonjs/utils/getRequestStatusForAuthorization.js +0 -21
  157. package/lib/commonjs/utils/getRequestStatusForAuthorization.js.map +0 -1
  158. package/lib/commonjs/utils/getWorkoutPlanById.js +0 -13
  159. package/lib/commonjs/utils/getWorkoutPlanById.js.map +0 -1
  160. package/lib/commonjs/utils/prepareOptions.js +0 -25
  161. package/lib/commonjs/utils/prepareOptions.js.map +0 -1
  162. package/lib/commonjs/utils/queryCategorySamples.js +0 -17
  163. package/lib/commonjs/utils/queryCategorySamples.js.map +0 -1
  164. package/lib/commonjs/utils/queryCategorySamplesWithAnchor.js +0 -21
  165. package/lib/commonjs/utils/queryCategorySamplesWithAnchor.js.map +0 -1
  166. package/lib/commonjs/utils/queryCorrelationSamples.js +0 -17
  167. package/lib/commonjs/utils/queryCorrelationSamples.js.map +0 -1
  168. package/lib/commonjs/utils/queryHeartbeatSeriesSamples.js +0 -17
  169. package/lib/commonjs/utils/queryHeartbeatSeriesSamples.js.map +0 -1
  170. package/lib/commonjs/utils/queryHeartbeatSeriesSamplesWithAnchor.js +0 -21
  171. package/lib/commonjs/utils/queryHeartbeatSeriesSamplesWithAnchor.js.map +0 -1
  172. package/lib/commonjs/utils/queryQuantitySamples.js +0 -19
  173. package/lib/commonjs/utils/queryQuantitySamples.js.map +0 -1
  174. package/lib/commonjs/utils/queryQuantitySamplesWithAnchor.js +0 -23
  175. package/lib/commonjs/utils/queryQuantitySamplesWithAnchor.js.map +0 -1
  176. package/lib/commonjs/utils/querySources.js +0 -14
  177. package/lib/commonjs/utils/querySources.js.map +0 -1
  178. package/lib/commonjs/utils/queryStateOfMindSamples.js +0 -22
  179. package/lib/commonjs/utils/queryStateOfMindSamples.js.map +0 -1
  180. package/lib/commonjs/utils/queryStatisticsCollectionForQuantity.js +0 -16
  181. package/lib/commonjs/utils/queryStatisticsCollectionForQuantity.js.map +0 -1
  182. package/lib/commonjs/utils/queryStatisticsForQuantity.js +0 -29
  183. package/lib/commonjs/utils/queryStatisticsForQuantity.js.map +0 -1
  184. package/lib/commonjs/utils/queryWorkoutSamplesWithAnchor.js +0 -26
  185. package/lib/commonjs/utils/queryWorkoutSamplesWithAnchor.js.map +0 -1
  186. package/lib/commonjs/utils/queryWorkouts.js +0 -22
  187. package/lib/commonjs/utils/queryWorkouts.js.map +0 -1
  188. package/lib/commonjs/utils/requestAuthorization.js +0 -22
  189. package/lib/commonjs/utils/requestAuthorization.js.map +0 -1
  190. package/lib/commonjs/utils/saveCategorySample.js +0 -20
  191. package/lib/commonjs/utils/saveCategorySample.js.map +0 -1
  192. package/lib/commonjs/utils/saveCorrelationSample.js +0 -35
  193. package/lib/commonjs/utils/saveCorrelationSample.js.map +0 -1
  194. package/lib/commonjs/utils/saveQuantitySample.js +0 -16
  195. package/lib/commonjs/utils/saveQuantitySample.js.map +0 -1
  196. package/lib/commonjs/utils/saveStateOfMindSample.js +0 -17
  197. package/lib/commonjs/utils/saveStateOfMindSample.js.map +0 -1
  198. package/lib/commonjs/utils/saveWorkoutRoute.js +0 -26
  199. package/lib/commonjs/utils/saveWorkoutRoute.js.map +0 -1
  200. package/lib/commonjs/utils/saveWorkoutSample.js +0 -36
  201. package/lib/commonjs/utils/saveWorkoutSample.js.map +0 -1
  202. package/lib/commonjs/utils/serializeDate.js +0 -9
  203. package/lib/commonjs/utils/serializeDate.js.map +0 -1
  204. package/lib/commonjs/utils/serializeDate.test.js +0 -17
  205. package/lib/commonjs/utils/serializeDate.test.js.map +0 -1
  206. package/lib/commonjs/utils/startWatchApp.js +0 -11
  207. package/lib/commonjs/utils/startWatchApp.js.map +0 -1
  208. package/lib/commonjs/utils/subscribeToChanges.js +0 -27
  209. package/lib/commonjs/utils/subscribeToChanges.js.map +0 -1
  210. package/lib/module/hooks/useHealthkitAuthorization.js +0 -32
  211. package/lib/module/hooks/useHealthkitAuthorization.js.map +0 -1
  212. package/lib/module/hooks/useHealthkitAuthorization.test.js +0 -68
  213. package/lib/module/hooks/useHealthkitAuthorization.test.js.map +0 -1
  214. package/lib/module/hooks/useIsHealthDataAvailable.js +0 -21
  215. package/lib/module/hooks/useIsHealthDataAvailable.js.map +0 -1
  216. package/lib/module/hooks/useIsHealthDataAvailable.test.js +0 -37
  217. package/lib/module/hooks/useIsHealthDataAvailable.test.js.map +0 -1
  218. package/lib/module/hooks/useMostRecentCategorySample.js +0 -16
  219. package/lib/module/hooks/useMostRecentCategorySample.js.map +0 -1
  220. package/lib/module/hooks/useMostRecentQuantitySample.js +0 -30
  221. package/lib/module/hooks/useMostRecentQuantitySample.js.map +0 -1
  222. package/lib/module/hooks/useMostRecentWorkout.js +0 -41
  223. package/lib/module/hooks/useMostRecentWorkout.js.map +0 -1
  224. package/lib/module/hooks/useSources.js +0 -15
  225. package/lib/module/hooks/useSources.js.map +0 -1
  226. package/lib/module/hooks/useStatisticsForQuantity.js +0 -21
  227. package/lib/module/hooks/useStatisticsForQuantity.js.map +0 -1
  228. package/lib/module/hooks/useSubscribeToChanges.js +0 -21
  229. package/lib/module/hooks/useSubscribeToChanges.js.map +0 -1
  230. package/lib/module/index.ios.js +0 -209
  231. package/lib/module/index.ios.js.map +0 -1
  232. package/lib/module/index.js +0 -4
  233. package/lib/module/index.js.map +0 -1
  234. package/lib/module/index.native.js +0 -160
  235. package/lib/module/index.native.js.map +0 -1
  236. package/lib/module/index.web.js +0 -4
  237. package/lib/module/index.web.js.map +0 -1
  238. package/lib/module/native-types.js +0 -1606
  239. package/lib/module/native-types.js.map +0 -1
  240. package/lib/module/test-setup.js +0 -54
  241. package/lib/module/test-setup.js.map +0 -1
  242. package/lib/module/test-utils.js +0 -11
  243. package/lib/module/test-utils.js.map +0 -1
  244. package/lib/module/types.js +0 -67
  245. package/lib/module/types.js.map +0 -1
  246. package/lib/module/utils/deleteQuantitySample.js +0 -4
  247. package/lib/module/utils/deleteQuantitySample.js.map +0 -1
  248. package/lib/module/utils/deleteSamples.js +0 -11
  249. package/lib/module/utils/deleteSamples.js.map +0 -1
  250. package/lib/module/utils/deleteWorkoutSample.js +0 -4
  251. package/lib/module/utils/deleteWorkoutSample.js.map +0 -1
  252. package/lib/module/utils/deserializeCategorySample.js +0 -7
  253. package/lib/module/utils/deserializeCategorySample.js.map +0 -1
  254. package/lib/module/utils/deserializeCategorySample.test.js +0 -22
  255. package/lib/module/utils/deserializeCategorySample.test.js.map +0 -1
  256. package/lib/module/utils/deserializeCorrelation.js +0 -19
  257. package/lib/module/utils/deserializeCorrelation.js.map +0 -1
  258. package/lib/module/utils/deserializeHeartbeatSeriesSample.js +0 -9
  259. package/lib/module/utils/deserializeHeartbeatSeriesSample.js.map +0 -1
  260. package/lib/module/utils/deserializeSample.js +0 -9
  261. package/lib/module/utils/deserializeSample.js.map +0 -1
  262. package/lib/module/utils/deserializeWorkout.js +0 -9
  263. package/lib/module/utils/deserializeWorkout.js.map +0 -1
  264. package/lib/module/utils/ensureMetadata.js +0 -5
  265. package/lib/module/utils/ensureMetadata.js.map +0 -1
  266. package/lib/module/utils/ensureTotals.js +0 -5
  267. package/lib/module/utils/ensureTotals.js.map +0 -1
  268. package/lib/module/utils/ensureUnit.js +0 -10
  269. package/lib/module/utils/ensureUnit.js.map +0 -1
  270. package/lib/module/utils/getDateOfBirth.js +0 -7
  271. package/lib/module/utils/getDateOfBirth.js.map +0 -1
  272. package/lib/module/utils/getMostRecentCategorySample.js +0 -10
  273. package/lib/module/utils/getMostRecentCategorySample.js.map +0 -1
  274. package/lib/module/utils/getMostRecentQuantitySample.js +0 -14
  275. package/lib/module/utils/getMostRecentQuantitySample.js.map +0 -1
  276. package/lib/module/utils/getMostRecentWorkout.js +0 -12
  277. package/lib/module/utils/getMostRecentWorkout.js.map +0 -1
  278. package/lib/module/utils/getPreferredUnit.js +0 -7
  279. package/lib/module/utils/getPreferredUnit.js.map +0 -1
  280. package/lib/module/utils/getPreferredUnits.js +0 -7
  281. package/lib/module/utils/getPreferredUnits.js.map +0 -1
  282. package/lib/module/utils/getPreferredUnitsTyped.js +0 -26
  283. package/lib/module/utils/getPreferredUnitsTyped.js.map +0 -1
  284. package/lib/module/utils/getRequestStatusForAuthorization.js +0 -14
  285. package/lib/module/utils/getRequestStatusForAuthorization.js.map +0 -1
  286. package/lib/module/utils/getWorkoutPlanById.js +0 -6
  287. package/lib/module/utils/getWorkoutPlanById.js.map +0 -1
  288. package/lib/module/utils/prepareOptions.js +0 -18
  289. package/lib/module/utils/prepareOptions.js.map +0 -1
  290. package/lib/module/utils/queryCategorySamples.js +0 -10
  291. package/lib/module/utils/queryCategorySamples.js.map +0 -1
  292. package/lib/module/utils/queryCategorySamplesWithAnchor.js +0 -14
  293. package/lib/module/utils/queryCategorySamplesWithAnchor.js.map +0 -1
  294. package/lib/module/utils/queryCorrelationSamples.js +0 -10
  295. package/lib/module/utils/queryCorrelationSamples.js.map +0 -1
  296. package/lib/module/utils/queryHeartbeatSeriesSamples.js +0 -10
  297. package/lib/module/utils/queryHeartbeatSeriesSamples.js.map +0 -1
  298. package/lib/module/utils/queryHeartbeatSeriesSamplesWithAnchor.js +0 -14
  299. package/lib/module/utils/queryHeartbeatSeriesSamplesWithAnchor.js.map +0 -1
  300. package/lib/module/utils/queryQuantitySamples.js +0 -12
  301. package/lib/module/utils/queryQuantitySamples.js.map +0 -1
  302. package/lib/module/utils/queryQuantitySamplesWithAnchor.js +0 -16
  303. package/lib/module/utils/queryQuantitySamplesWithAnchor.js.map +0 -1
  304. package/lib/module/utils/querySources.js +0 -7
  305. package/lib/module/utils/querySources.js.map +0 -1
  306. package/lib/module/utils/queryStateOfMindSamples.js +0 -14
  307. package/lib/module/utils/queryStateOfMindSamples.js.map +0 -1
  308. package/lib/module/utils/queryStatisticsCollectionForQuantity.js +0 -9
  309. package/lib/module/utils/queryStatisticsCollectionForQuantity.js.map +0 -1
  310. package/lib/module/utils/queryStatisticsForQuantity.js +0 -22
  311. package/lib/module/utils/queryStatisticsForQuantity.js.map +0 -1
  312. package/lib/module/utils/queryWorkoutSamplesWithAnchor.js +0 -19
  313. package/lib/module/utils/queryWorkoutSamplesWithAnchor.js.map +0 -1
  314. package/lib/module/utils/queryWorkouts.js +0 -15
  315. package/lib/module/utils/queryWorkouts.js.map +0 -1
  316. package/lib/module/utils/requestAuthorization.js +0 -15
  317. package/lib/module/utils/requestAuthorization.js.map +0 -1
  318. package/lib/module/utils/saveCategorySample.js +0 -13
  319. package/lib/module/utils/saveCategorySample.js.map +0 -1
  320. package/lib/module/utils/saveCorrelationSample.js +0 -28
  321. package/lib/module/utils/saveCorrelationSample.js.map +0 -1
  322. package/lib/module/utils/saveQuantitySample.js +0 -9
  323. package/lib/module/utils/saveQuantitySample.js.map +0 -1
  324. package/lib/module/utils/saveStateOfMindSample.js +0 -10
  325. package/lib/module/utils/saveStateOfMindSample.js.map +0 -1
  326. package/lib/module/utils/saveWorkoutRoute.js +0 -19
  327. package/lib/module/utils/saveWorkoutRoute.js.map +0 -1
  328. package/lib/module/utils/saveWorkoutSample.js +0 -29
  329. package/lib/module/utils/saveWorkoutSample.js.map +0 -1
  330. package/lib/module/utils/serializeDate.js +0 -3
  331. package/lib/module/utils/serializeDate.js.map +0 -1
  332. package/lib/module/utils/serializeDate.test.js +0 -14
  333. package/lib/module/utils/serializeDate.test.js.map +0 -1
  334. package/lib/module/utils/startWatchApp.js +0 -4
  335. package/lib/module/utils/startWatchApp.js.map +0 -1
  336. package/lib/module/utils/subscribeToChanges.js +0 -20
  337. package/lib/module/utils/subscribeToChanges.js.map +0 -1
  338. package/lib/typescript/example-expo/App.d.ts +0 -2
  339. package/lib/typescript/src/hooks/useHealthkitAuthorization.d.ts +0 -8
  340. package/lib/typescript/src/hooks/useHealthkitAuthorization.test.d.ts +0 -1
  341. package/lib/typescript/src/hooks/useIsHealthDataAvailable.d.ts +0 -7
  342. package/lib/typescript/src/hooks/useIsHealthDataAvailable.test.d.ts +0 -1
  343. package/lib/typescript/src/hooks/useMostRecentCategorySample.d.ts +0 -7
  344. package/lib/typescript/src/hooks/useMostRecentQuantitySample.d.ts +0 -7
  345. package/lib/typescript/src/hooks/useMostRecentWorkout.d.ts +0 -10
  346. package/lib/typescript/src/hooks/useSources.d.ts +0 -3
  347. package/lib/typescript/src/hooks/useStatisticsForQuantity.d.ts +0 -4
  348. package/lib/typescript/src/hooks/useSubscribeToChanges.d.ts +0 -3
  349. package/lib/typescript/src/index.d.ts +0 -3
  350. package/lib/typescript/src/index.ios.d.ts +0 -198
  351. package/lib/typescript/src/index.native.d.ts +0 -41
  352. package/lib/typescript/src/index.web.d.ts +0 -3
  353. package/lib/typescript/src/native-types.d.ts +0 -1764
  354. package/lib/typescript/src/test-setup.d.ts +0 -1
  355. package/lib/typescript/src/test-utils.d.ts +0 -2
  356. package/lib/typescript/src/types.d.ts +0 -111
  357. package/lib/typescript/src/utils/deleteQuantitySample.d.ts +0 -4
  358. package/lib/typescript/src/utils/deleteSamples.d.ts +0 -8
  359. package/lib/typescript/src/utils/deleteWorkoutSample.d.ts +0 -3
  360. package/lib/typescript/src/utils/deserializeCategorySample.d.ts +0 -4
  361. package/lib/typescript/src/utils/deserializeCategorySample.test.d.ts +0 -1
  362. package/lib/typescript/src/utils/deserializeCorrelation.d.ts +0 -4
  363. package/lib/typescript/src/utils/deserializeHeartbeatSeriesSample.d.ts +0 -4
  364. package/lib/typescript/src/utils/deserializeSample.d.ts +0 -4
  365. package/lib/typescript/src/utils/deserializeWorkout.d.ts +0 -4
  366. package/lib/typescript/src/utils/ensureMetadata.d.ts +0 -2
  367. package/lib/typescript/src/utils/ensureTotals.d.ts +0 -2
  368. package/lib/typescript/src/utils/ensureUnit.d.ts +0 -3
  369. package/lib/typescript/src/utils/getDateOfBirth.d.ts +0 -2
  370. package/lib/typescript/src/utils/getMostRecentCategorySample.d.ts +0 -4
  371. package/lib/typescript/src/utils/getMostRecentQuantitySample.d.ts +0 -4
  372. package/lib/typescript/src/utils/getMostRecentWorkout.d.ts +0 -5
  373. package/lib/typescript/src/utils/getPreferredUnit.d.ts +0 -4
  374. package/lib/typescript/src/utils/getPreferredUnits.d.ts +0 -4
  375. package/lib/typescript/src/utils/getPreferredUnitsTyped.d.ts +0 -9
  376. package/lib/typescript/src/utils/getRequestStatusForAuthorization.d.ts +0 -3
  377. package/lib/typescript/src/utils/getWorkoutPlanById.d.ts +0 -5
  378. package/lib/typescript/src/utils/prepareOptions.d.ts +0 -9
  379. package/lib/typescript/src/utils/queryCategorySamples.d.ts +0 -5
  380. package/lib/typescript/src/utils/queryCategorySamplesWithAnchor.d.ts +0 -10
  381. package/lib/typescript/src/utils/queryCorrelationSamples.d.ts +0 -5
  382. package/lib/typescript/src/utils/queryHeartbeatSeriesSamples.d.ts +0 -10
  383. package/lib/typescript/src/utils/queryHeartbeatSeriesSamplesWithAnchor.d.ts +0 -10
  384. package/lib/typescript/src/utils/queryQuantitySamples.d.ts +0 -7
  385. package/lib/typescript/src/utils/queryQuantitySamplesWithAnchor.d.ts +0 -12
  386. package/lib/typescript/src/utils/querySources.d.ts +0 -4
  387. package/lib/typescript/src/utils/queryStateOfMindSamples.d.ts +0 -7
  388. package/lib/typescript/src/utils/queryStatisticsCollectionForQuantity.d.ts +0 -3
  389. package/lib/typescript/src/utils/queryStatisticsForQuantity.d.ts +0 -14
  390. package/lib/typescript/src/utils/queryWorkoutSamplesWithAnchor.d.ts +0 -9
  391. package/lib/typescript/src/utils/queryWorkouts.d.ts +0 -4
  392. package/lib/typescript/src/utils/requestAuthorization.d.ts +0 -4
  393. package/lib/typescript/src/utils/saveCategorySample.d.ts +0 -11
  394. package/lib/typescript/src/utils/saveCorrelationSample.d.ts +0 -8
  395. package/lib/typescript/src/utils/saveQuantitySample.d.ts +0 -7
  396. package/lib/typescript/src/utils/saveStateOfMindSample.d.ts +0 -11
  397. package/lib/typescript/src/utils/saveWorkoutRoute.d.ts +0 -3
  398. package/lib/typescript/src/utils/saveWorkoutSample.d.ts +0 -11
  399. package/lib/typescript/src/utils/serializeDate.d.ts +0 -2
  400. package/lib/typescript/src/utils/serializeDate.test.d.ts +0 -1
  401. package/lib/typescript/src/utils/startWatchApp.d.ts +0 -3
  402. package/lib/typescript/src/utils/subscribeToChanges.d.ts +0 -3
  403. package/src/index.ios.tsx +0 -292
  404. package/src/index.native.tsx +0 -233
  405. package/src/index.tsx +0 -5
  406. package/src/index.web.tsx +0 -5
  407. package/src/native-types.ts +0 -2471
  408. package/src/types.ts +0 -156
  409. package/src/utils/deleteQuantitySample.ts +0 -14
  410. package/src/utils/deleteSamples.ts +0 -23
  411. package/src/utils/deleteWorkoutSample.ts +0 -7
  412. package/src/utils/deserializeCategorySample.test.ts +0 -24
  413. package/src/utils/deserializeCategorySample.ts +0 -12
  414. package/src/utils/deserializeCorrelation.ts +0 -28
  415. package/src/utils/deserializeHeartbeatSeriesSample.ts +0 -12
  416. package/src/utils/deserializeSample.ts +0 -17
  417. package/src/utils/deserializeWorkout.ts +0 -14
  418. package/src/utils/ensureMetadata.ts +0 -5
  419. package/src/utils/ensureTotals.ts +0 -5
  420. package/src/utils/ensureUnit.ts +0 -19
  421. package/src/utils/getDateOfBirth.ts +0 -8
  422. package/src/utils/getPreferredUnits.ts +0 -14
  423. package/src/utils/getPreferredUnitsTyped.ts +0 -38
  424. package/src/utils/getRequestStatusForAuthorization.ts +0 -21
  425. package/src/utils/getWorkoutPlanById.ts +0 -7
  426. package/src/utils/prepareOptions.ts +0 -19
  427. package/src/utils/queryCategorySamples.ts +0 -29
  428. package/src/utils/queryCategorySamplesWithAnchor.ts +0 -39
  429. package/src/utils/queryCorrelationSamples.ts +0 -29
  430. package/src/utils/queryHeartbeatSeriesSamples.ts +0 -29
  431. package/src/utils/queryHeartbeatSeriesSamplesWithAnchor.ts +0 -33
  432. package/src/utils/queryQuantitySamples.ts +0 -38
  433. package/src/utils/queryQuantitySamplesWithAnchor.ts +0 -46
  434. package/src/utils/querySources.ts +0 -21
  435. package/src/utils/queryStateOfMindSamples.ts +0 -14
  436. package/src/utils/queryStatisticsCollectionForQuantity.ts +0 -38
  437. package/src/utils/queryStatisticsForQuantity.ts +0 -38
  438. package/src/utils/queryWorkoutSamplesWithAnchor.ts +0 -46
  439. package/src/utils/queryWorkouts.ts +0 -28
  440. package/src/utils/requestAuthorization.ts +0 -19
  441. package/src/utils/saveCategorySample.ts +0 -31
  442. package/src/utils/saveCorrelationSample.ts +0 -43
  443. package/src/utils/saveQuantitySample.ts +0 -29
  444. package/src/utils/saveStateOfMindSample.ts +0 -38
  445. package/src/utils/saveWorkoutRoute.ts +0 -21
  446. package/src/utils/saveWorkoutSample.ts +0 -42
  447. package/src/utils/serializeDate.test.ts +0 -16
  448. package/src/utils/serializeDate.ts +0 -5
  449. package/src/utils/startWatchApp.ts +0 -7
@@ -0,0 +1,19 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules'
2
+ import type {
3
+ HeartbeatSeriesSample,
4
+ HeartbeatSeriesSamplesWithAnchorResponse,
5
+ } from '../types/HeartbeatSeries'
6
+ import type {
7
+ QueryOptionsWithAnchor,
8
+ QueryOptionsWithSortOrder,
9
+ } from '../types/QueryOptions'
10
+
11
+ export interface HeartbeatSeriesModule extends HybridObject<{ ios: 'swift' }> {
12
+ queryHeartbeatSeriesSamples(
13
+ options?: QueryOptionsWithSortOrder,
14
+ ): Promise<readonly HeartbeatSeriesSample[]>
15
+
16
+ queryHeartbeatSeriesSamplesWithAnchor(
17
+ options: QueryOptionsWithAnchor,
18
+ ): Promise<HeartbeatSeriesSamplesWithAnchorResponse>
19
+ }
@@ -0,0 +1,60 @@
1
+ import type { AnyMap, HybridObject } from 'react-native-nitro-modules'
2
+ import type { QuantitySample } from '../types/QuantitySample'
3
+ import type {
4
+ IntervalComponents,
5
+ QuantitySamplesWithAnchorResponse,
6
+ QueryStatisticsResponse,
7
+ StatisticsOptions,
8
+ StatisticsQueryOptions,
9
+ } from '../types/QuantityType'
10
+ import type { QuantityTypeIdentifier } from '../types/QuantityTypeIdentifier'
11
+ import type {
12
+ FilterForSamples,
13
+ QueryOptionsWithAnchorAndUnit,
14
+ QueryOptionsWithSortOrderAndUnit,
15
+ } from '../types/QueryOptions'
16
+
17
+ export interface QuantityTypeModule extends HybridObject<{ ios: 'swift' }> {
18
+ isQuantityCompatibleWithUnit(
19
+ identifier: QuantityTypeIdentifier,
20
+ unit: string,
21
+ ): boolean
22
+
23
+ saveQuantitySample(
24
+ identifier: QuantityTypeIdentifier,
25
+ unit: string,
26
+ value: number,
27
+ start: Date,
28
+ end: Date,
29
+ metadata: AnyMap,
30
+ ): Promise<boolean>
31
+
32
+ deleteQuantitySamples(
33
+ identifier: QuantityTypeIdentifier,
34
+ filter: FilterForSamples,
35
+ ): Promise<boolean>
36
+
37
+ queryQuantitySamples(
38
+ identifier: QuantityTypeIdentifier,
39
+ options?: QueryOptionsWithSortOrderAndUnit,
40
+ ): Promise<readonly QuantitySample[]>
41
+
42
+ queryStatisticsForQuantity(
43
+ identifier: QuantityTypeIdentifier,
44
+ statistics: readonly StatisticsOptions[],
45
+ options?: StatisticsQueryOptions,
46
+ ): Promise<QueryStatisticsResponse>
47
+
48
+ queryStatisticsCollectionForQuantity(
49
+ identifier: QuantityTypeIdentifier,
50
+ statistics: readonly StatisticsOptions[],
51
+ anchorDate: string,
52
+ intervalComponents: IntervalComponents,
53
+ options?: StatisticsQueryOptions,
54
+ ): Promise<readonly QueryStatisticsResponse[]>
55
+
56
+ queryQuantitySamplesWithAnchor(
57
+ identifier: QuantityTypeIdentifier,
58
+ options: QueryOptionsWithAnchorAndUnit,
59
+ ): Promise<QuantitySamplesWithAnchorResponse>
60
+ }
@@ -0,0 +1,13 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules'
2
+
3
+ interface Source {
4
+ readonly name: string
5
+ readonly bundleIdentifier: string
6
+ }
7
+
8
+ /**
9
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkobject/1615781-source Apple Docs }
10
+ */
11
+ export interface SourceProxy extends HybridObject<{ ios: 'swift' }>, Source {
12
+ toJSON(key?: string): Source
13
+ }
@@ -0,0 +1,23 @@
1
+ import type { AnyMap, HybridObject } from 'react-native-nitro-modules'
2
+ import type { QueryOptionsWithSortOrder } from '../types/QueryOptions'
3
+ import type {
4
+ StateOfMindAssociation,
5
+ StateOfMindKind,
6
+ StateOfMindLabel,
7
+ StateOfMindSample,
8
+ } from '../types/StateOfMind'
9
+
10
+ export interface StateOfMindModule extends HybridObject<{ ios: 'swift' }> {
11
+ queryStateOfMindSamples(
12
+ options?: QueryOptionsWithSortOrder,
13
+ ): Promise<readonly StateOfMindSample[]>
14
+
15
+ saveStateOfMindSample(
16
+ date: Date,
17
+ kind: StateOfMindKind,
18
+ valence: number,
19
+ labels: readonly StateOfMindLabel[],
20
+ associations: readonly StateOfMindAssociation[],
21
+ metadata?: AnyMap,
22
+ ): Promise<boolean>
23
+ }
@@ -0,0 +1,18 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules'
2
+ import type {
3
+ LocationForSaving,
4
+ WorkoutPlan,
5
+ WorkoutRoute,
6
+ WorkoutSample,
7
+ } from '../types/Workouts'
8
+
9
+ export interface WorkoutProxy
10
+ extends HybridObject<{ ios: 'swift' }>,
11
+ WorkoutSample {
12
+ toJSON(key?: string): WorkoutSample
13
+ saveWorkoutRoute(locations: readonly LocationForSaving[]): Promise<boolean>
14
+ getWorkoutPlan(): Promise<WorkoutPlan | null>
15
+ getWorkoutRoutes(): Promise<readonly WorkoutRoute[]>
16
+
17
+ // nice to have here: getAllStatistics and getStatisticsForQuantityType
18
+ }
@@ -0,0 +1,71 @@
1
+ import type { AnyMap, HybridObject } from 'react-native-nitro-modules'
2
+ import type { WorkoutConfiguration } from '../types/WorkoutKit'
3
+ import type { WorkoutEventType } from '../types/Workouts'
4
+
5
+ export interface WorkoutSessionMirroringStartHandlerOptions {
6
+ onError(errorMessage: string): void
7
+ onStateChange(
8
+ toState: WorkoutSessionState,
9
+ fromState: WorkoutSessionState,
10
+ date: Date,
11
+ ): void
12
+ onDataReceived(data: RemoteSessionSharableData[]): void
13
+ onEventReceived(type: WorkoutEventType): void
14
+ }
15
+
16
+ export interface WorkoutSessionModule extends HybridObject<{ ios: 'swift' }> {
17
+ /**
18
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkhealthstore/1648358-startwatchapp Apple Docs }
19
+ */
20
+ startWatchAppWithWorkoutConfiguration(
21
+ workoutConfiguration: WorkoutConfiguration,
22
+ ): Promise<boolean>
23
+
24
+ workoutSessionMirroringStartHandler(
25
+ /*onError: (event: WorkoutErrorEvent) => void,
26
+ onStateChange: (event: WorkoutStateChangeEvent) => void,
27
+ onDataReceived: (event: WorkoutDataReceivedEvent) => void,
28
+ onEventReceived: (event: WorkoutEventReceivedEvent) => void,*/
29
+ options: WorkoutSessionMirroringStartHandlerOptions,
30
+ ): boolean
31
+ }
32
+
33
+ /**
34
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkworkoutsessionstate Apple Docs }
35
+ */
36
+ export enum WorkoutSessionState {
37
+ NotStarted = 1,
38
+ Running = 2,
39
+ Ended = 3,
40
+ Paused = 4,
41
+ Prepared = 5,
42
+ Stopped = 6,
43
+ }
44
+
45
+ export interface WorkoutStateChangeEvent {
46
+ readonly toState: WorkoutSessionState
47
+ readonly fromState: WorkoutSessionState
48
+ readonly date: Date
49
+ }
50
+
51
+ export interface WorkoutErrorEvent {
52
+ readonly error: string
53
+ }
54
+
55
+ export interface RemoteSessionSharableData {
56
+ readonly type: string
57
+ readonly payload: AnyMap
58
+ }
59
+
60
+ export interface WorkoutDataReceivedEvent {
61
+ readonly data: readonly RemoteSessionSharableData[]
62
+ }
63
+
64
+ export interface WorkoutEventReceivedEvent {
65
+ readonly type: WorkoutEventType
66
+ }
67
+
68
+ /*type OnRemoteWorkoutStateChangeCallback = ;
69
+ type OnRemoteWorkoutErrorCallback = (event: WorkoutErrorEvent) => void;
70
+ type OnRemoteWorkoutDataCallback = (event: WorkoutDataReceivedEvent) => void;
71
+ type OnRemoteWorkoutEventReceivedCallback = (event: WorkoutEventReceivedEvent) => void;*/
@@ -0,0 +1,32 @@
1
+ import type { AnyMap, HybridObject } from 'react-native-nitro-modules'
2
+ import type { QuantitySampleForSaving } from '../types/QuantitySample'
3
+ import type { WorkoutConfiguration } from '../types/WorkoutKit'
4
+ import type {
5
+ QueryWorkoutSamplesWithAnchorResponse,
6
+ WorkoutActivityType,
7
+ WorkoutQueryOptions,
8
+ WorkoutQueryOptionsWithAnchor,
9
+ WorkoutTotals,
10
+ } from '../types/Workouts'
11
+ import type { WorkoutProxy } from './WorkoutProxy.nitro'
12
+
13
+ export interface WorkoutsModule extends HybridObject<{ ios: 'swift' }> {
14
+ saveWorkoutSample(
15
+ workoutActivityType: WorkoutActivityType,
16
+ quantities: readonly QuantitySampleForSaving[],
17
+ startDate: Date,
18
+ endDate: Date,
19
+ totals: WorkoutTotals,
20
+ metadata: AnyMap,
21
+ ): Promise<string>
22
+
23
+ queryWorkoutSamplesWithAnchor(
24
+ options: WorkoutQueryOptionsWithAnchor,
25
+ ): Promise<QueryWorkoutSamplesWithAnchorResponse>
26
+
27
+ queryWorkoutSamples(options: WorkoutQueryOptions): Promise<WorkoutProxy[]>
28
+
29
+ startWatchAppWithWorkoutConfiguration(
30
+ workoutConfiguration: WorkoutConfiguration,
31
+ ): Promise<boolean>
32
+ }
package/src/test-setup.ts CHANGED
@@ -1,57 +1,71 @@
1
- // eslint-disable-next-line import/no-unresolved
2
- import { mock, jest, beforeAll } from 'bun:test'
1
+ import { jest, mock } from 'bun:test'
2
+ import { deleteObjects } from '.'
3
3
 
4
- import type Native from './native-types'
4
+ const mockModule = {
5
+ queryWorkoutSamplesWithAnchor: jest.fn(),
6
+ isHealthDataAvailable: jest.fn(),
7
+ isHealthDataAvailableAsync: jest.fn(),
8
+ isProtectedDataAvailable: jest.fn(),
9
+ authorizationStatusFor: jest.fn(),
10
+ requestAuthorization: jest.fn(),
11
+ saveQuantitySample: jest.fn(),
12
+ deleteQuantitySample: jest.fn(),
13
+ deleteSamples: jest.fn(),
14
+ deleteWorkoutSample: jest.fn(),
15
+ disableAllBackgroundDelivery: jest.fn(),
16
+ disableBackgroundDelivery: jest.fn(),
17
+ enableBackgroundDelivery: jest.fn(),
18
+ queryCategorySamplesWithAnchor: jest.fn(),
19
+ queryQuantitySamplesWithAnchor: jest.fn(),
20
+ getBiologicalSex: jest.fn(),
21
+ getBloodType: jest.fn(),
22
+ getDateOfBirth: jest.fn(),
23
+ getFitzpatrickSkinType: jest.fn(),
24
+ getPreferredUnits: jest.fn(),
25
+ getRequestStatusForAuthorization: jest.fn(),
26
+ getWheelchairUse: jest.fn(),
27
+ getWorkoutRoutes: jest.fn(),
28
+ queryCategorySamples: jest.fn(),
29
+ queryCorrelationSamples: jest.fn(),
30
+ queryHeartbeatSeriesSamples: jest.fn(),
31
+ queryHeartbeatSeriesSamplesWithAnchor: jest.fn(),
32
+ queryQuantitySamples: jest.fn(),
33
+ querySources: jest.fn(),
34
+ queryStatisticsForQuantity: jest.fn(),
35
+ queryStatisticsCollectionForQuantity: jest.fn(),
36
+ queryWorkoutSamples: jest.fn(),
37
+ saveStateOfMindSample: jest.fn(),
38
+ saveCategorySample: jest.fn(),
39
+ saveCorrelationSample: jest.fn(),
40
+ saveWorkoutSample: jest.fn(),
41
+ subscribeToObserverQuery: jest.fn(),
42
+ unsubscribeQuery: jest.fn(),
43
+ saveWorkoutRoute: jest.fn(),
44
+ getWorkoutPlanById: jest.fn(),
45
+ startWatchAppWithWorkoutConfiguration: jest.fn(),
46
+ deleteObjects: jest.fn(),
47
+ isQuantityCompatibleWithUnit: jest.fn(),
48
+ isObjectTypeAvailable: jest.fn(),
49
+ isObjectTypeAvailableAsync: jest.fn(),
50
+ areObjectTypesAvailable: jest.fn(),
51
+ areObjectTypesAvailableAsync: jest.fn(),
52
+ queryStateOfMindSamples: jest.fn(),
53
+ workoutSessionMirroringStartHandler: jest.fn(),
54
+ }
5
55
 
6
- beforeAll(async () => {
7
- const mockModule: typeof Native = {
8
- queryWorkoutSamplesWithAnchor: jest.fn(),
9
- isHealthDataAvailable: jest.fn(),
10
- isProtectedDataAvailable: jest.fn(),
11
- authorizationStatusFor: jest.fn(),
12
- requestAuthorization: jest.fn(),
13
- saveQuantitySample: jest.fn(),
14
- deleteQuantitySample: jest.fn(),
15
- deleteSamples: jest.fn(),
16
- deleteWorkoutSample: jest.fn(),
17
- disableAllBackgroundDelivery: jest.fn(),
18
- disableBackgroundDelivery: jest.fn(),
19
- enableBackgroundDelivery: jest.fn(),
20
- queryCategorySamplesWithAnchor: jest.fn(),
21
- queryQuantitySamplesWithAnchor: jest.fn(),
22
- getBiologicalSex: jest.fn(),
23
- getBloodType: jest.fn(),
24
- getDateOfBirth: jest.fn(),
25
- getFitzpatrickSkinType: jest.fn(),
26
- getPreferredUnits: jest.fn(),
27
- getRequestStatusForAuthorization: jest.fn(),
28
- getWheelchairUse: jest.fn(),
29
- getWorkoutRoutes: jest.fn(),
30
- queryCategorySamples: jest.fn(),
31
- queryCorrelationSamples: jest.fn(),
32
- queryHeartbeatSeriesSamples: jest.fn(),
33
- queryHeartbeatSeriesSamplesWithAnchor: jest.fn(),
34
- queryQuantitySamples: jest.fn(),
35
- querySources: jest.fn(),
36
- queryStatisticsForQuantity: jest.fn(),
37
- queryStatisticsCollectionForQuantity: jest.fn(),
38
- queryWorkoutSamples: jest.fn(),
39
- saveStateOfMindSample: jest.fn(),
40
- saveCategorySample: jest.fn(),
41
- saveCorrelationSample: jest.fn(),
42
- saveWorkoutSample: jest.fn(),
43
- subscribeToObserverQuery: jest.fn(),
44
- unsubscribeQuery: jest.fn(),
45
- saveWorkoutRoute: jest.fn(),
46
- getWorkoutPlanById: jest.fn(),
47
- startWatchAppWithWorkoutConfiguration: jest.fn(),
48
- queryStateOfMindSamples: jest.fn(),
49
- }
56
+ await mock.module('react-native-nitro-modules', () => ({
57
+ NitroModules: {
58
+ createHybridObject: jest.fn((moduleName: string) => {
59
+ if (moduleName === 'CoreModule') {
60
+ return mockModule
61
+ }
62
+ return mockModule
63
+ }),
64
+ },
65
+ }))
50
66
 
51
- await mock.module('react-native', () => ({
52
- NativeModules: {
53
- ReactNativeHealthkit: mockModule,
54
- },
55
- NativeEventEmitter: jest.fn(),
56
- }))
57
- })
67
+ await mock.module('react-native', () => ({
68
+ Platform: {
69
+ OS: 'ios',
70
+ },
71
+ }))
package/src/test-utils.ts CHANGED
@@ -1,9 +1,10 @@
1
- // eslint-disable-next-line import/no-extraneous-dependencies
2
1
  import { act } from '@testing-library/react-native'
3
2
 
4
3
  const waitForNextUpdate = async () => {
5
4
  await act(async () => {
6
- await new Promise((resolve) => { setTimeout(resolve, 0) })
5
+ await new Promise((resolve) => {
6
+ setTimeout(resolve, 0)
7
+ })
7
8
  })
8
9
  }
9
10
 
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkauthorizationrequeststatus Apple Docs }
3
+ */
4
+ export enum AuthorizationRequestStatus {
5
+ unknown = 0,
6
+ shouldRequest = 1,
7
+ unnecessary = 2,
8
+ }
9
+
10
+ /**
11
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkauthorizationstatus Apple Docs }
12
+ */
13
+ export enum AuthorizationStatus {
14
+ notDetermined = 0,
15
+ sharingDenied = 1,
16
+ sharingAuthorized = 2,
17
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkupdatefrequency Apple Docs }
3
+ */
4
+ export enum UpdateFrequency {
5
+ immediate = 1,
6
+ hourly = 2,
7
+ daily = 3,
8
+ weekly = 4,
9
+ }
@@ -0,0 +1,249 @@
1
+ import type { AnyMap } from 'react-native-nitro-modules'
2
+ import type { CategoryTypeIdentifier } from './CategoryTypeIdentifier'
3
+ import type { Device } from './Device'
4
+ import type { DeletedSample, GenericMetadata } from './Shared'
5
+ import type { SourceRevision } from './Source'
6
+
7
+ export type CategoryTypePresenceIdentifier =
8
+ | 'HKCategoryTypeIdentifierAppetiteChanges'
9
+ | 'HKCategoryTypeIdentifierSleepChanges'
10
+
11
+ export type CategoryTypeValueNotApplicableIdentifier =
12
+ | 'HKCategoryTypeIdentifierHighHeartRateEvent'
13
+ | 'HKCategoryTypeIdentifierIntermenstrualBleeding'
14
+ | 'HKCategoryTypeIdentifierMindfulSession'
15
+ | 'HKCategoryTypeIdentifierSexualActivity'
16
+
17
+ /**
18
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkcategoryvaluepregnancytestresult Apple Docs }
19
+ */
20
+ enum CategoryValuePregnancyTestResult {
21
+ positive = 2,
22
+ negative = 1,
23
+ indeterminate = 3,
24
+ }
25
+
26
+ export type CategoryTypeSeverityIdentifier =
27
+ | 'HKCategoryTypeIdentifierAbdominalCramps'
28
+ | 'HKCategoryTypeIdentifierAcne'
29
+ | 'HKCategoryTypeIdentifierBladderIncontinence'
30
+ | 'HKCategoryTypeIdentifierBloating'
31
+ | 'HKCategoryTypeIdentifierBreastPain'
32
+ | 'HKCategoryTypeIdentifierChestTightnessOrPain'
33
+ | 'HKCategoryTypeIdentifierChills'
34
+ | 'HKCategoryTypeIdentifierConstipation'
35
+ | 'HKCategoryTypeIdentifierCoughing'
36
+ | 'HKCategoryTypeIdentifierDiarrhea'
37
+ | 'HKCategoryTypeIdentifierDizziness'
38
+ | 'HKCategoryTypeIdentifierDrySkin'
39
+ | 'HKCategoryTypeIdentifierFainting'
40
+ | 'HKCategoryTypeIdentifierFatigue'
41
+ | 'HKCategoryTypeIdentifierFever'
42
+ | 'HKCategoryTypeIdentifierGeneralizedBodyAche'
43
+ | 'HKCategoryTypeIdentifierHairLoss'
44
+ | 'HKCategoryTypeIdentifierHeadache'
45
+ | 'HKCategoryTypeIdentifierHeartburn'
46
+ | 'HKCategoryTypeIdentifierHotFlashes'
47
+ | 'HKCategoryTypeIdentifierLossOfSmell'
48
+ | 'HKCategoryTypeIdentifierLossOfTaste'
49
+ | 'HKCategoryTypeIdentifierLowerBackPain'
50
+ | 'HKCategoryTypeIdentifierMemoryLapse'
51
+ | 'HKCategoryTypeIdentifierMoodChanges'
52
+ | 'HKCategoryTypeIdentifierNausea'
53
+ | 'HKCategoryTypeIdentifierNightSweats'
54
+ | 'HKCategoryTypeIdentifierPelvicPain'
55
+ | 'HKCategoryTypeIdentifierRapidPoundingOrFlutteringHeartbeat'
56
+ | 'HKCategoryTypeIdentifierRunnyNose'
57
+ | 'HKCategoryTypeIdentifierShortnessOfBreath'
58
+ | 'HKCategoryTypeIdentifierSinusCongestion'
59
+ | 'HKCategoryTypeIdentifierSkippedHeartbeat'
60
+ | 'HKCategoryTypeIdentifierSoreThroat'
61
+ | 'HKCategoryTypeIdentifierVaginalDryness'
62
+ | 'HKCategoryTypeIdentifierVomiting'
63
+ | 'HKCategoryTypeIdentifierWheezing'
64
+
65
+ /**
66
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkcategoryvaluecervicalmucusquality Apple Docs }
67
+ */
68
+ export enum CategoryValueCervicalMucusQuality {
69
+ dry = 1,
70
+ sticky = 2,
71
+ creamy = 3,
72
+ watery = 4,
73
+ eggWhite = 5,
74
+ }
75
+
76
+ /**
77
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkcategoryvaluemenstrualflow Apple Docs }
78
+ */
79
+ export enum CategoryValueMenstrualFlow {
80
+ unspecified = 1,
81
+ none = 5,
82
+ light = 2,
83
+ medium = 3,
84
+ heavy = 4,
85
+ }
86
+
87
+ /**
88
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkcategoryvalueovulationtestresult Apple Docs }
89
+ */
90
+ export enum CategoryValueOvulationTestResult {
91
+ negative = 1,
92
+ luteinizingHormoneSurge = 2,
93
+ indeterminate = 3,
94
+ estrogenSurge = 4,
95
+ }
96
+
97
+ /**
98
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkcategoryvaluesleepanalysis Apple Docs }
99
+ */
100
+ export enum CategoryValueSleepAnalysis {
101
+ inBed = 0,
102
+ asleepUnspecified = 1,
103
+ awake = 2,
104
+ asleepCore = 3,
105
+ asleepDeep = 4,
106
+ asleepREM = 5,
107
+ }
108
+
109
+ /**
110
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkcategoryvalueappetitechanges Apple Docs}
111
+ */
112
+ export enum CategoryValueAppetiteChanges {
113
+ decreased = 2,
114
+ increased = 3,
115
+ noChange = 1,
116
+ unspecified = 0,
117
+ }
118
+
119
+ /**
120
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkcategoryvaluepresence Apple Docs}
121
+ */
122
+ export enum CategoryValuePresence {
123
+ notPresent = 1,
124
+ present = 0,
125
+ }
126
+
127
+ /**
128
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkcategoryvalueseverity Apple Docs }
129
+ */
130
+ export enum CategoryValueSeverity {
131
+ notPresent = 1,
132
+ mild = 2,
133
+ moderate = 3,
134
+ severe = 4,
135
+ unspecified = 0,
136
+ }
137
+
138
+ /**
139
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkcategoryvalue/notapplicable Apple Docs }
140
+ */
141
+ export enum CategoryValueNotApplicable {
142
+ notApplicable = 0,
143
+ }
144
+
145
+ export enum CategoryValueLowCardioFitnessEvent {
146
+ lowFitness = 1,
147
+ }
148
+
149
+ /**
150
+ * @see {@link https://developer.apple.com/documentation/healthkit/hkcategoryvalue Apple Docs }
151
+ */
152
+ export type CategoryValue =
153
+ | CategoryValueAppetiteChanges
154
+ | CategoryValueCervicalMucusQuality
155
+ | CategoryValueLowCardioFitnessEvent
156
+ | CategoryValueMenstrualFlow
157
+ | CategoryValueOvulationTestResult
158
+ | CategoryValuePresence
159
+ | CategoryValueSeverity
160
+ | CategoryValueSleepAnalysis
161
+ | number
162
+
163
+ export enum CategoryValueAppleStandHour {
164
+ stood = 0,
165
+ idle = 1,
166
+ }
167
+
168
+ export interface CategorySampleForSaving {
169
+ readonly start: Date
170
+ readonly end: Date
171
+ readonly categoryType: CategoryTypeIdentifier
172
+ readonly value: CategoryValueForIdentifier
173
+ readonly metadata: AnyMap
174
+ readonly sourceRevision?: SourceRevision
175
+ }
176
+
177
+ export interface CategorySamplesWithAnchorResponse {
178
+ readonly samples: readonly CategorySample[]
179
+ readonly deletedSamples: readonly DeletedSample[]
180
+ readonly newAnchor: string
181
+ }
182
+
183
+ export interface CategorySample {
184
+ readonly uuid: string
185
+ readonly device?: Device
186
+ readonly categoryType: CategoryTypeIdentifier
187
+ readonly startDate: Date
188
+ readonly endDate: Date
189
+ readonly value: CategoryValueForIdentifier
190
+ readonly metadata: AnyMap
191
+ readonly sourceRevision?: SourceRevision
192
+ }
193
+
194
+ export interface CategorySamplesWithAnchorResponseTyped<
195
+ T extends CategoryTypeIdentifier,
196
+ > {
197
+ readonly samples: readonly CategorySampleTyped<T>[]
198
+ readonly deletedSamples: readonly DeletedSample[]
199
+ readonly newAnchor: string
200
+ }
201
+
202
+ export interface CategorySampleTyped<T extends CategoryTypeIdentifier> {
203
+ readonly uuid: string
204
+ readonly device?: Device
205
+ readonly categoryType: T
206
+ readonly startDate: Date
207
+ readonly endDate: Date
208
+ readonly value: CategoryValueForIdentifier<T>
209
+ readonly metadata: MetadataForCategoryIdentifier<T>
210
+ readonly sourceRevision?: SourceRevision
211
+ }
212
+
213
+ export type MetadataForCategoryIdentifier<
214
+ T extends CategoryTypeIdentifier = CategoryTypeIdentifier,
215
+ > = T extends 'HKCategoryTypeIdentifierSexualActivity'
216
+ ? GenericMetadata & {
217
+ readonly HKSexualActivityProtectionUsed: boolean
218
+ }
219
+ : T extends 'HKCategoryTypeIdentifierMenstrualFlow'
220
+ ? GenericMetadata & {
221
+ readonly HKMenstrualCycleStart: boolean
222
+ }
223
+ : GenericMetadata
224
+
225
+ export type CategoryValueForIdentifier<
226
+ T extends CategoryTypeIdentifier = CategoryTypeIdentifier,
227
+ > = T extends 'HKCategoryTypeIdentifierCervicalMucusQuality'
228
+ ? CategoryValueCervicalMucusQuality
229
+ : T extends 'CategoryTypeIdentifierMenstrualFlow'
230
+ ? CategoryValueMenstrualFlow
231
+ : T extends 'HKCategoryTypeIdentifierOvulationTestResult'
232
+ ? CategoryValueOvulationTestResult
233
+ : T extends 'HKCategoryTypeIdentifierSleepAnalysis'
234
+ ? CategoryValueSleepAnalysis
235
+ : T extends CategoryTypeValueNotApplicableIdentifier
236
+ ? CategoryValueNotApplicable
237
+ : T extends CategoryTypeSeverityIdentifier
238
+ ? CategoryValueSeverity
239
+ : T extends CategoryTypePresenceIdentifier
240
+ ? CategoryValuePresence
241
+ : T extends 'HKCategoryTypeIdentifierLowCardioFitnessEvent'
242
+ ? CategoryValueLowCardioFitnessEvent
243
+ : T extends 'HKCategoryTypeIdentifierPregnancyTestResult'
244
+ ? CategoryValuePregnancyTestResult
245
+ : T extends 'HKCategoryTypeIdentifierPregnancyTestResult'
246
+ ? CategoryValuePregnancyTestResult
247
+ : T extends 'HKCategoryTypeIdentifierAppleStandHour'
248
+ ? CategoryValueAppleStandHour
249
+ : number