@kingstinct/react-native-healthkit 4.0.1 → 4.2.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 (51) hide show
  1. package/{ios/.DS_Store → .DS_Store} +0 -0
  2. package/.circleci/config.yml +98 -0
  3. package/.editorconfig +15 -0
  4. package/.gitattributes +3 -0
  5. package/.github/workflows/main.yml +32 -0
  6. package/.gitignore +60 -0
  7. package/CONTRIBUTING.md +184 -0
  8. package/README.md +1 -1
  9. package/babel.config.js +3 -0
  10. package/example-expo/.expo/README.md +15 -0
  11. package/example-expo/.expo/devices.json +8 -0
  12. package/example-expo/.expo/packager-info.json +5 -0
  13. package/example-expo/.expo/settings.json +9 -0
  14. package/example-expo/.expo-shared/assets.json +4 -0
  15. package/example-expo/.gitignore +14 -0
  16. package/example-expo/App.tsx +376 -0
  17. package/example-expo/app.json +43 -0
  18. package/example-expo/assets/adaptive-icon.png +0 -0
  19. package/example-expo/assets/favicon.png +0 -0
  20. package/example-expo/assets/icon.png +0 -0
  21. package/example-expo/assets/splash.png +0 -0
  22. package/example-expo/babel.config.js +8 -0
  23. package/example-expo/build-1653040579600.ipa +0 -0
  24. package/example-expo/build-1653041063216.ipa +0 -0
  25. package/example-expo/eas.json +18 -0
  26. package/example-expo/package.json +32 -0
  27. package/example-expo/tsconfig.json +6 -0
  28. package/example-expo/yarn.lock +6857 -0
  29. package/ios/ReactNativeHealthkit.m +9 -9
  30. package/ios/ReactNativeHealthkit.swift +38 -4
  31. package/lib/commonjs/index.ios.js +9 -5
  32. package/lib/commonjs/index.ios.js.map +1 -1
  33. package/lib/commonjs/native-types.js +8 -1
  34. package/lib/commonjs/native-types.js.map +1 -1
  35. package/lib/module/index.ios.js +9 -5
  36. package/lib/module/index.ios.js.map +1 -1
  37. package/lib/module/native-types.js +7 -0
  38. package/lib/module/native-types.js.map +1 -1
  39. package/lib/typescript/example-expo/App.d.ts +3 -0
  40. package/lib/typescript/src/__tests__/index.test.d.ts +0 -0
  41. package/lib/typescript/src/native-types.d.ts +20 -0
  42. package/package.json +11 -10
  43. package/src/__tests__/index.test.tsx +1 -0
  44. package/src/index.ios.tsx +8 -10
  45. package/src/native-types.ts +54 -31
  46. package/tsconfig.json +27 -0
  47. package/yarn.lock +10241 -0
  48. package/ios/ReactNativeHealthkit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -4
  49. package/ios/ReactNativeHealthkit.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  50. package/ios/ReactNativeHealthkit.xcodeproj/project.xcworkspace/xcuserdata/robertherber.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  51. package/ios/ReactNativeHealthkit.xcodeproj/xcuserdata/robertherber.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ios.tsx"],"names":["useState","useEffect","useCallback","Native","EventEmitter","HKQuantityTypeIdentifier","HKUnit","getPreferredUnit","type","unit","getPreferredUnits","ensureUnit","providedUnit","deserializeSample","sample","startDate","Date","endDate","deserializeWorkout","deserializCategorySample","serializeDate","date","toISOString","prepareOptions","options","limit","Infinity","ascending","from","to","queryQuantitySamples","identifier","opts","quantitySamples","map","subscribeToChanges","callback","subscription","addListener","typeIdentifier","queryId","subscribeToObserverQuery","catch","error","remove","Promise","reject","unsubscribeQuery","getMostRecentQuantitySample","samples","useMostRecentWorkout","workout","setWorkout","cancelSubscription","init","energyUnit","distanceUnit","getPreferredUnitsTyped","getMostRecentWorkout","then","getMostRecentCategorySample","queryCategorySamples","useMostRecentCategorySample","category","setCategory","updater","useSubscribeToChanges","onChange","useMostRecentQuantitySample","lastSample","setLastSample","actualUnit","value","saveQuantitySample","start","end","metadata","queryStatisticsForQuantity","toDate","mostRecentQuantityDateInterval","rawResponse","response","requestAuthorization","read","write","readPermissions","reduce","obj","cur","writePermissions","getDateOfBirth","dateOfBirth","getRequestStatusForAuthorization","results","units","distanceWalkingRunning","activeEnergyBurned","Kilocalories","Meters","queryWorkouts","workouts","queryWorkoutSamples","saveCategorySample","identifiers","i","buildUnitWithPrefix","prefix","deserializeCorrelation","s","objects","o","quantity","undefined","ensureMetadata","queryCorrelationSamples","correlations","saveCorrelationSample","saveWorkoutSample","quantities","_start","Healthkit","authorizationStatusFor","isHealthDataAvailable","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType"],"mappings":"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","sourcesContent":["import { useState, useEffect, useCallback } from 'react';\nimport Native, {\n EventEmitter,\n HKCategorySampleRaw,\n HKCategoryTypeIdentifier,\n HKCategoryValueForIdentifier,\n HKCharacteristicTypeIdentifier,\n HKCorrelationRaw,\n HKCorrelationTypeIdentifier,\n HKQuantitySampleRaw,\n HKQuantityTypeIdentifier,\n HKSampleTypeIdentifier,\n HKUnit,\n HKUnitSI,\n HKUnitSIPrefix,\n HKWorkoutRaw,\n MetadataMapperForCategoryIdentifier,\n} from './native-types';\nimport type {\n GenericQueryOptions,\n GetMostRecentCategorySampleFn,\n GetMostRecentQuantitySampleFn,\n GetMostRecentWorkoutFn,\n GetPreferredUnitFn,\n GetPreferredUnitsFn,\n HKCategorySample,\n HKCorrelation,\n HKQuantitySample,\n HKWorkout,\n QueryCategorySamplesFn,\n QueryCorrelationSamplesFn,\n QueryQuantitySamplesFn,\n QueryStatisticsForQuantityFn,\n QueryWorkoutsFn,\n ReactNativeHealthkit,\n SaveCorrelationSampleFn,\n SaveQuantitySampleFn,\n SaveWorkoutSampleFn,\n SubscribeToChangesFn,\n} from './types';\n\nconst getPreferredUnit: GetPreferredUnitFn = async (type) => {\n const [unit] = await getPreferredUnits([type]);\n return unit;\n};\n\nconst ensureUnit = async <TUnit extends HKUnit>(\n type: HKQuantityTypeIdentifier,\n providedUnit?: TUnit\n) => {\n if (providedUnit) {\n return providedUnit;\n }\n const unit = await Native.getPreferredUnits([type]);\n return unit[type] as TUnit;\n};\n\nfunction deserializeSample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends HKUnit\n>(\n sample: HKQuantitySampleRaw<TIdentifier, TUnit>\n): HKQuantitySample<TIdentifier, TUnit> {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n };\n}\n\nfunction deserializeWorkout<TEnergy extends HKUnit, TDistance extends HKUnit>(\n sample: HKWorkoutRaw<TEnergy, TDistance>\n): HKWorkout<TEnergy, TDistance> {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n };\n}\n\nconst deserializCategorySample = <T extends HKCategoryTypeIdentifier>(\n sample: HKCategorySampleRaw<T>\n): HKCategorySample<T> => {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n };\n};\n\nconst serializeDate = (date?: Date | null): string => {\n return date ? date.toISOString() : new Date(0).toISOString();\n};\n\nconst prepareOptions = (options: GenericQueryOptions) => {\n const limit =\n !options.limit || options.limit === Infinity ? 0 : options.limit;\n const ascending = options.ascending ?? limit === 0;\n const from = serializeDate(options.from);\n const to = serializeDate(options.to);\n return { limit, ascending, from, to };\n};\n\nconst queryQuantitySamples: QueryQuantitySamplesFn = async (\n identifier,\n options\n) => {\n const unit = await ensureUnit(identifier, options.unit);\n const opts = prepareOptions(options);\n\n const quantitySamples = await Native.queryQuantitySamples(\n identifier,\n unit,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending\n );\n\n return quantitySamples.map(deserializeSample);\n};\n\nconst subscribeToChanges: SubscribeToChangesFn = async (\n identifier,\n callback\n) => {\n const subscription = EventEmitter.addListener(\n 'onChange',\n ({ typeIdentifier }) => {\n if (typeIdentifier === identifier) {\n callback();\n }\n }\n );\n\n const queryId = await Native.subscribeToObserverQuery(identifier).catch(\n (error) => {\n subscription.remove();\n return Promise.reject(error);\n }\n );\n\n return () => {\n subscription.remove();\n return Native.unsubscribeQuery(queryId);\n };\n};\n\nconst getMostRecentQuantitySample: GetMostRecentQuantitySampleFn = async (\n identifier,\n unit\n) => {\n const samples = await queryQuantitySamples(identifier, {\n limit: 1,\n unit: unit,\n });\n return samples[0];\n};\n\nfunction useMostRecentWorkout<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { energyUnit?: TEnergy; distanceUnit?: TDistance }) {\n const [workout, setWorkout] = useState<HKWorkout<TEnergy, TDistance> | null>(\n null\n );\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined;\n\n const init = async () => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(\n options\n );\n\n cancelSubscription = await subscribeToChanges(\n 'HKWorkoutTypeIdentifier',\n () => {\n getMostRecentWorkout({ energyUnit, distanceUnit }).then(setWorkout);\n }\n );\n };\n init();\n return () => {\n cancelSubscription && cancelSubscription();\n };\n }, [options]);\n return workout;\n}\n\nconst getMostRecentCategorySample: GetMostRecentCategorySampleFn = async (\n identifier\n) => {\n const samples = await queryCategorySamples(identifier, {\n limit: 1,\n ascending: false,\n });\n\n return samples[0];\n};\n\nfunction useMostRecentCategorySample<\n TCategory extends HKCategoryTypeIdentifier\n>(identifier: TCategory) {\n const [category, setCategory] = useState<HKCategorySample<TCategory> | null>(\n null\n );\n const updater = useCallback(() => {\n getMostRecentCategorySample(identifier).then(setCategory);\n }, [identifier]);\n\n useSubscribeToChanges(identifier, updater);\n\n return category;\n}\n\nfunction useSubscribeToChanges<TIdentifier extends HKSampleTypeIdentifier>(\n identifier: TIdentifier,\n onChange: () => void\n): void {\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined;\n\n const init = async () => {\n cancelSubscription = await subscribeToChanges(identifier, onChange);\n };\n init();\n\n return () => {\n cancelSubscription && cancelSubscription();\n };\n }, [identifier, onChange]);\n}\n\nfunction useMostRecentQuantitySample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends HKUnit = HKUnit\n>(identifier: TIdentifier, unit?: TUnit) {\n const [lastSample, setLastSample] = useState<HKQuantitySample<\n TIdentifier,\n TUnit\n > | null>(null);\n\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined;\n\n const init = async () => {\n const actualUnit = await ensureUnit(identifier, unit);\n\n cancelSubscription = await subscribeToChanges(identifier, () => {\n getMostRecentQuantitySample(identifier, actualUnit).then((value) => {\n setLastSample(value);\n });\n });\n };\n init();\n\n return () => {\n cancelSubscription && cancelSubscription();\n };\n }, [identifier, unit]);\n\n return lastSample;\n}\n\nconst saveQuantitySample: SaveQuantitySampleFn = (\n identifier,\n unit,\n value,\n options\n) => {\n const start = options?.start || options?.end || new Date();\n const end = options?.end || options?.start || new Date();\n const metadata = options?.metadata || {};\n\n return Native.saveQuantitySample(\n identifier,\n unit,\n value,\n start.toISOString(),\n end.toISOString(),\n metadata\n );\n};\n\nconst queryStatisticsForQuantity: QueryStatisticsForQuantityFn = async (\n identifier,\n options,\n from,\n to,\n unit\n) => {\n const actualUnit = await ensureUnit(identifier, unit);\n const toDate = to || new Date();\n const {\n mostRecentQuantityDateInterval,\n ...rawResponse\n } = await Native.queryStatisticsForQuantity(\n identifier,\n actualUnit,\n from.toISOString(),\n toDate.toISOString(),\n options\n );\n\n const response = {\n ...rawResponse,\n ...(mostRecentQuantityDateInterval\n ? {\n mostRecentQuantityDateInterval: {\n from: new Date(mostRecentQuantityDateInterval.from),\n to: new Date(mostRecentQuantityDateInterval.to),\n },\n }\n : {}),\n };\n\n return response;\n};\n\nconst requestAuthorization = (\n read: (HKCharacteristicTypeIdentifier | HKSampleTypeIdentifier)[],\n write: HKSampleTypeIdentifier[] = []\n): Promise<boolean> => {\n const readPermissions = read.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n const writePermissions = write.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n return Native.requestAuthorization(writePermissions, readPermissions);\n};\n\nconst getDateOfBirth = async () => {\n const dateOfBirth = await Native.getDateOfBirth();\n return new Date(dateOfBirth);\n};\n\nconst getRequestStatusForAuthorization = (\n read: (HKCharacteristicTypeIdentifier | HKSampleTypeIdentifier)[],\n write: HKSampleTypeIdentifier[] = []\n) => {\n const readPermissions = read.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n const writePermissions = write.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n return Native.getRequestStatusForAuthorization(\n writePermissions,\n readPermissions\n );\n};\n\nconst queryCategorySamples: QueryCategorySamplesFn = async (\n identifier,\n options\n) => {\n const opts = prepareOptions(options);\n const results = await Native.queryCategorySamples(\n identifier,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending\n );\n\n return results.map(deserializCategorySample);\n};\n\nasync function getPreferredUnitsTyped<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { energyUnit?: TEnergy; distanceUnit?: TDistance }) {\n let energyUnit = options?.energyUnit;\n let distanceUnit = options?.distanceUnit;\n if (!energyUnit || !distanceUnit) {\n const units = await Native.getPreferredUnits([\n HKQuantityTypeIdentifier.distanceWalkingRunning,\n HKQuantityTypeIdentifier.activeEnergyBurned,\n ]);\n if (!energyUnit) {\n energyUnit = units[HKQuantityTypeIdentifier.distanceWalkingRunning] as\n | TEnergy\n | undefined;\n }\n if (!distanceUnit) {\n distanceUnit = units[HKQuantityTypeIdentifier.activeEnergyBurned] as\n | TDistance\n | undefined;\n }\n }\n if (!energyUnit) {\n energyUnit = HKUnit.Kilocalories as TEnergy;\n }\n if (!distanceUnit) {\n distanceUnit = HKUnit.Meters as TDistance;\n }\n return { energyUnit, distanceUnit };\n}\n\nconst queryWorkouts: QueryWorkoutsFn = async (options) => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(options);\n const opts = prepareOptions(options);\n\n const workouts = await Native.queryWorkoutSamples(\n energyUnit,\n distanceUnit,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending\n );\n\n return workouts.map(deserializeWorkout);\n};\n\nconst getMostRecentWorkout: GetMostRecentWorkoutFn = async (options) => {\n const workouts = await queryWorkouts({\n limit: 1,\n ascending: false,\n energyUnit: options?.energyUnit,\n distanceUnit: options?.distanceUnit,\n });\n\n return workouts[0];\n};\n\nfunction saveCategorySample<T extends HKCategoryTypeIdentifier>(\n identifier: T,\n value: HKCategoryValueForIdentifier<T>,\n options?: {\n start?: Date;\n end?: Date;\n metadata?: MetadataMapperForCategoryIdentifier<T>;\n }\n) {\n const start = options?.start || options?.end || new Date();\n const end = options?.end || options?.start || new Date();\n const metadata = options?.metadata || {};\n\n return Native.saveCategorySample(\n identifier,\n value,\n start.toISOString(),\n end.toISOString(),\n metadata || {}\n );\n}\n\nconst getPreferredUnits: GetPreferredUnitsFn = async (identifiers) => {\n const units = await Native.getPreferredUnits(identifiers);\n return identifiers.map((i) => units[i]);\n};\n\nconst buildUnitWithPrefix = (prefix: HKUnitSIPrefix, unit: HKUnitSI) => {\n return `${prefix}${unit}` as HKUnit;\n};\n\nfunction deserializeCorrelation<\n TIdentifier extends HKCorrelationTypeIdentifier\n>(s: HKCorrelationRaw<TIdentifier>): HKCorrelation<TIdentifier> {\n return {\n ...s,\n objects: s.objects.map((o) => {\n // @ts-ignore\n if (o.quantity !== undefined) {\n return deserializeSample(o as HKQuantitySampleRaw);\n }\n\n return deserializCategorySample(o as HKCategorySampleRaw);\n }),\n endDate: new Date(s.endDate),\n startDate: new Date(s.startDate),\n };\n}\n\nfunction ensureMetadata<TMetadata>(metadata?: TMetadata) {\n return metadata || ({} as TMetadata);\n}\n\nconst queryCorrelationSamples: QueryCorrelationSamplesFn = async (\n typeIdentifier,\n options\n) => {\n const opts = prepareOptions(options);\n const correlations = await Native.queryCorrelationSamples(\n typeIdentifier,\n opts.from,\n opts.to\n );\n\n return correlations.map(deserializeCorrelation);\n};\n\nconst saveCorrelationSample: SaveCorrelationSampleFn = async (\n typeIdentifier,\n samples,\n options\n) => {\n const start = (options?.start || new Date()).toISOString();\n const end = (options?.end || new Date()).toISOString();\n\n return Native.saveCorrelationSample(\n typeIdentifier,\n samples,\n start,\n end,\n ensureMetadata(options?.metadata)\n );\n};\n\nconst saveWorkoutSample: SaveWorkoutSampleFn = (\n typeIdentifier,\n quantities,\n _start,\n options\n) => {\n const start = _start.toISOString();\n const end = (options?.end || new Date()).toISOString();\n\n return Native.saveWorkoutSample(\n typeIdentifier,\n quantities,\n start,\n end,\n ensureMetadata(options?.metadata)\n );\n};\n\nconst Healthkit: ReactNativeHealthkit = {\n authorizationStatusFor: Native.authorizationStatusFor,\n\n isHealthDataAvailable: Native.isHealthDataAvailable,\n\n buildUnitWithPrefix,\n\n disableAllBackgroundDelivery: Native.disableAllBackgroundDelivery,\n disableBackgroundDelivery: Native.disableBackgroundDelivery,\n enableBackgroundDelivery: Native.enableBackgroundDelivery,\n\n // simple convenience getters\n getBiologicalSex: Native.getBiologicalSex,\n getFitzpatrickSkinType: Native.getFitzpatrickSkinType,\n getWheelchairUse: Native.getWheelchairUse,\n getBloodType: Native.getBloodType,\n getDateOfBirth,\n\n getMostRecentQuantitySample,\n getMostRecentCategorySample,\n getMostRecentWorkout,\n\n getPreferredUnit,\n getPreferredUnits,\n getRequestStatusForAuthorization,\n\n // query methods\n queryCategorySamples,\n queryCorrelationSamples,\n queryQuantitySamples,\n queryStatisticsForQuantity,\n queryWorkouts,\n\n requestAuthorization,\n\n // save methods\n saveCategorySample,\n saveCorrelationSample,\n saveQuantitySample,\n saveWorkoutSample,\n\n // subscriptions\n subscribeToChanges,\n\n // hooks\n useMostRecentCategorySample,\n\n useMostRecentQuantitySample,\n useMostRecentWorkout,\n\n useSubscribeToChanges,\n};\n\nexport * from './types';\nexport * from './native-types';\n\nexport default Healthkit;\n"]}
1
+ {"version":3,"sources":["index.ios.tsx"],"names":["useState","useEffect","useCallback","Native","EventEmitter","HKQuantityTypeIdentifier","HKUnit","getPreferredUnit","type","unit","getPreferredUnits","ensureUnit","providedUnit","deserializeSample","sample","startDate","Date","endDate","deserializeWorkout","deserializCategorySample","serializeDate","date","toISOString","prepareOptions","options","limit","Infinity","ascending","from","to","queryQuantitySamples","identifier","opts","quantitySamples","map","subscribeToChanges","callback","subscription","addListener","typeIdentifier","queryId","subscribeToObserverQuery","catch","error","remove","Promise","reject","unsubscribeQuery","getMostRecentQuantitySample","samples","useMostRecentWorkout","workout","setWorkout","cancelSubscription","init","energyUnit","distanceUnit","getPreferredUnitsTyped","getMostRecentWorkout","then","getMostRecentCategorySample","queryCategorySamples","useMostRecentCategorySample","category","setCategory","updater","useSubscribeToChanges","onChange","useMostRecentQuantitySample","lastSample","setLastSample","actualUnit","value","saveQuantitySample","start","end","metadata","queryStatisticsForQuantity","toDate","mostRecentQuantityDateInterval","rawResponse","response","requestAuthorization","read","write","readPermissions","reduce","obj","cur","writePermissions","getDateOfBirth","dateOfBirth","getRequestStatusForAuthorization","results","units","distanceWalkingRunning","activeEnergyBurned","Kilocalories","Meters","queryWorkouts","workouts","queryWorkoutSamples","saveCategorySample","identifiers","i","buildUnitWithPrefix","prefix","deserializeCorrelation","s","objects","o","quantity","undefined","ensureMetadata","queryCorrelationSamples","correlations","saveCorrelationSample","saveWorkoutSample","quantities","_start","Healthkit","authorizationStatusFor","isHealthDataAvailable","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType"],"mappings":"AAAA,SAASA,QAAT,EAAmBC,SAAnB,EAA8BC,WAA9B,QAAiD,OAAjD;AACA,OAAOC,MAAP,IACEC,YADF,EASEC,wBATF,EAWEC,MAXF,QAgBO,gBAhBP;;AAwCA,MAAMC,gBAAoC,GAAG,MAAOC,IAAP,IAAgB;AAC3D,QAAM,CAACC,IAAD,IAAS,MAAMC,iBAAiB,CAAC,CAACF,IAAD,CAAD,CAAtC;AACA,SAAOC,IAAP;AACD,CAHD;;AAKA,MAAME,UAAU,GAAG,OACjBH,IADiB,EAEjBI,YAFiB,KAGd;AACH,MAAIA,YAAJ,EAAkB;AAChB,WAAOA,YAAP;AACD;;AACD,QAAMH,IAAI,GAAG,MAAMN,MAAM,CAACO,iBAAP,CAAyB,CAACF,IAAD,CAAzB,CAAnB;AACA,SAAOC,IAAI,CAACD,IAAD,CAAX;AACD,CATD;;AAWA,SAASK,iBAAT,CAIEC,MAJF,EAKwC;AACtC,SAAO,EACL,GAAGA,MADE;AAELC,IAAAA,SAAS,EAAE,IAAIC,IAAJ,CAASF,MAAM,CAACC,SAAhB,CAFN;AAGLE,IAAAA,OAAO,EAAE,IAAID,IAAJ,CAASF,MAAM,CAACG,OAAhB;AAHJ,GAAP;AAKD;;AAED,SAASC,kBAAT,CACEJ,MADF,EAEiC;AAC/B,SAAO,EACL,GAAGA,MADE;AAELC,IAAAA,SAAS,EAAE,IAAIC,IAAJ,CAASF,MAAM,CAACC,SAAhB,CAFN;AAGLE,IAAAA,OAAO,EAAE,IAAID,IAAJ,CAASF,MAAM,CAACG,OAAhB;AAHJ,GAAP;AAKD;;AAED,MAAME,wBAAwB,GAC5BL,MAD+B,IAEP;AACxB,SAAO,EACL,GAAGA,MADE;AAELC,IAAAA,SAAS,EAAE,IAAIC,IAAJ,CAASF,MAAM,CAACC,SAAhB,CAFN;AAGLE,IAAAA,OAAO,EAAE,IAAID,IAAJ,CAASF,MAAM,CAACG,OAAhB;AAHJ,GAAP;AAKD,CARD;;AAUA,MAAMG,aAAa,GAAIC,IAAD,IAAgC;AACpD,SAAOA,IAAI,GAAGA,IAAI,CAACC,WAAL,EAAH,GAAwB,IAAIN,IAAJ,CAAS,CAAT,EAAYM,WAAZ,EAAnC;AACD,CAFD;;AAIA,MAAMC,cAAc,GAAIC,OAAD,IAAkC;AAAA;;AACvD,QAAMC,KAAK,GACT,CAACD,OAAO,CAACC,KAAT,IAAkBD,OAAO,CAACC,KAAR,KAAkBC,QAApC,GAA+C,CAA/C,GAAmDF,OAAO,CAACC,KAD7D;AAEA,QAAME,SAAS,yBAAGH,OAAO,CAACG,SAAX,mEAAwBF,KAAK,KAAK,CAAjD;AACA,QAAMG,IAAI,GAAGR,aAAa,CAACI,OAAO,CAACI,IAAT,CAA1B;AACA,QAAMC,EAAE,GAAGT,aAAa,CAACI,OAAO,CAACK,EAAT,CAAxB;AACA,SAAO;AAAEJ,IAAAA,KAAF;AAASE,IAAAA,SAAT;AAAoBC,IAAAA,IAApB;AAA0BC,IAAAA;AAA1B,GAAP;AACD,CAPD;;AASA,MAAMC,oBAA4C,GAAG,OACnDC,UADmD,EAEnDP,OAFmD,KAGhD;AACH,QAAMf,IAAI,GAAG,MAAME,UAAU,CAACoB,UAAD,EAAaP,OAAO,CAACf,IAArB,CAA7B;AACA,QAAMuB,IAAI,GAAGT,cAAc,CAACC,OAAD,CAA3B;AAEA,QAAMS,eAAe,GAAG,MAAM9B,MAAM,CAAC2B,oBAAP,CAC5BC,UAD4B,EAE5BtB,IAF4B,EAG5BuB,IAAI,CAACJ,IAHuB,EAI5BI,IAAI,CAACH,EAJuB,EAK5BG,IAAI,CAACP,KALuB,EAM5BO,IAAI,CAACL,SANuB,CAA9B;AASA,SAAOM,eAAe,CAACC,GAAhB,CAAoBrB,iBAApB,CAAP;AACD,CAjBD;;AAmBA,MAAMsB,kBAAwC,GAAG,OAC/CJ,UAD+C,EAE/CK,QAF+C,KAG5C;AACH,QAAMC,YAAY,GAAGjC,YAAY,CAACkC,WAAb,CACnB,UADmB,EAEnB,UAAwB;AAAA,QAAvB;AAAEC,MAAAA;AAAF,KAAuB;;AACtB,QAAIA,cAAc,KAAKR,UAAvB,EAAmC;AACjCK,MAAAA,QAAQ;AACT;AACF,GANkB,CAArB;AASA,QAAMI,OAAO,GAAG,MAAMrC,MAAM,CAACsC,wBAAP,CAAgCV,UAAhC,EAA4CW,KAA5C,CACnBC,KAAD,IAAW;AACTN,IAAAA,YAAY,CAACO,MAAb;AACA,WAAOC,OAAO,CAACC,MAAR,CAAeH,KAAf,CAAP;AACD,GAJmB,CAAtB;AAOA,SAAO,MAAM;AACXN,IAAAA,YAAY,CAACO,MAAb;AACA,WAAOzC,MAAM,CAAC4C,gBAAP,CAAwBP,OAAxB,CAAP;AACD,GAHD;AAID,CAxBD;;AA0BA,MAAMQ,2BAA0D,GAAG,OACjEjB,UADiE,EAEjEtB,IAFiE,KAG9D;AACH,QAAMwC,OAAO,GAAG,MAAMnB,oBAAoB,CAACC,UAAD,EAAa;AACrDN,IAAAA,KAAK,EAAE,CAD8C;AAErDhB,IAAAA,IAAI,EAAEA;AAF+C,GAAb,CAA1C;AAIA,SAAOwC,OAAO,CAAC,CAAD,CAAd;AACD,CATD;;AAWA,SAASC,oBAAT,CAGE1B,OAHF,EAGgE;AAC9D,QAAM,CAAC2B,OAAD,EAAUC,UAAV,IAAwBpD,QAAQ,CACpC,IADoC,CAAtC;AAGAC,EAAAA,SAAS,CAAC,MAAM;AACd,QAAIoD,kBAAJ;;AAEA,UAAMC,IAAI,GAAG,YAAY;AACvB,YAAM;AAAEC,QAAAA,UAAF;AAAcC,QAAAA;AAAd,UAA+B,MAAMC,sBAAsB,CAC/DjC,OAD+D,CAAjE;AAIA6B,MAAAA,kBAAkB,GAAG,MAAMlB,kBAAkB,CAC3C,yBAD2C,EAE3C,MAAM;AACJuB,QAAAA,oBAAoB,CAAC;AAAEH,UAAAA,UAAF;AAAcC,UAAAA;AAAd,SAAD,CAApB,CAAmDG,IAAnD,CAAwDP,UAAxD;AACD,OAJ0C,CAA7C;AAMD,KAXD;;AAYAE,IAAAA,IAAI;AACJ,WAAO,MAAM;AACXD,MAAAA,kBAAkB,IAAIA,kBAAkB,EAAxC;AACD,KAFD;AAGD,GAnBQ,EAmBN,CAAC7B,OAAD,CAnBM,CAAT;AAoBA,SAAO2B,OAAP;AACD;;AAED,MAAMS,2BAA0D,GAAG,OACjE7B,UADiE,KAE9D;AACH,QAAMkB,OAAO,GAAG,MAAMY,oBAAoB,CAAC9B,UAAD,EAAa;AACrDN,IAAAA,KAAK,EAAE,CAD8C;AAErDE,IAAAA,SAAS,EAAE;AAF0C,GAAb,CAA1C;AAKA,SAAOsB,OAAO,CAAC,CAAD,CAAd;AACD,CATD;;AAWA,SAASa,2BAAT,CAEE/B,UAFF,EAEyB;AACvB,QAAM,CAACgC,QAAD,EAAWC,WAAX,IAA0BhE,QAAQ,CACtC,IADsC,CAAxC;AAGA,QAAMiE,OAAO,GAAG/D,WAAW,CAAC,MAAM;AAChC0D,IAAAA,2BAA2B,CAAC7B,UAAD,CAA3B,CAAwC4B,IAAxC,CAA6CK,WAA7C;AACD,GAF0B,EAExB,CAACjC,UAAD,CAFwB,CAA3B;AAIAmC,EAAAA,qBAAqB,CAACnC,UAAD,EAAakC,OAAb,CAArB;AAEA,SAAOF,QAAP;AACD;;AAED,SAASG,qBAAT,CACEnC,UADF,EAEEoC,QAFF,EAGQ;AACNlE,EAAAA,SAAS,CAAC,MAAM;AACd,QAAIoD,kBAAJ;;AAEA,UAAMC,IAAI,GAAG,YAAY;AACvBD,MAAAA,kBAAkB,GAAG,MAAMlB,kBAAkB,CAACJ,UAAD,EAAaoC,QAAb,CAA7C;AACD,KAFD;;AAGAb,IAAAA,IAAI;AAEJ,WAAO,MAAM;AACXD,MAAAA,kBAAkB,IAAIA,kBAAkB,EAAxC;AACD,KAFD;AAGD,GAXQ,EAWN,CAACtB,UAAD,EAAaoC,QAAb,CAXM,CAAT;AAYD;;AAED,SAASC,2BAAT,CAGErC,UAHF,EAG2BtB,IAH3B,EAGyC;AACvC,QAAM,CAAC4D,UAAD,EAAaC,aAAb,IAA8BtE,QAAQ,CAGlC,IAHkC,CAA5C;AAKAC,EAAAA,SAAS,CAAC,MAAM;AACd,QAAIoD,kBAAJ;;AAEA,UAAMC,IAAI,GAAG,YAAY;AACvB,YAAMiB,UAAU,GAAG,MAAM5D,UAAU,CAACoB,UAAD,EAAatB,IAAb,CAAnC;AAEA4C,MAAAA,kBAAkB,GAAG,MAAMlB,kBAAkB,CAACJ,UAAD,EAAa,MAAM;AAC9DiB,QAAAA,2BAA2B,CAACjB,UAAD,EAAawC,UAAb,CAA3B,CAAoDZ,IAApD,CAA0Da,KAAD,IAAW;AAClEF,UAAAA,aAAa,CAACE,KAAD,CAAb;AACD,SAFD;AAGD,OAJ4C,CAA7C;AAKD,KARD;;AASAlB,IAAAA,IAAI;AAEJ,WAAO,MAAM;AACXD,MAAAA,kBAAkB,IAAIA,kBAAkB,EAAxC;AACD,KAFD;AAGD,GAjBQ,EAiBN,CAACtB,UAAD,EAAatB,IAAb,CAjBM,CAAT;AAmBA,SAAO4D,UAAP;AACD;;AAED,MAAMI,kBAAwC,GAAG,CAC/C1C,UAD+C,EAE/CtB,IAF+C,EAG/C+D,KAH+C,EAI/ChD,OAJ+C,KAK5C;AACH,QAAMkD,KAAK,GAAG,CAAAlD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEkD,KAAT,MAAkBlD,OAAlB,aAAkBA,OAAlB,uBAAkBA,OAAO,CAAEmD,GAA3B,KAAkC,IAAI3D,IAAJ,EAAhD;AACA,QAAM2D,GAAG,GAAG,CAAAnD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEmD,GAAT,MAAgBnD,OAAhB,aAAgBA,OAAhB,uBAAgBA,OAAO,CAAEkD,KAAzB,KAAkC,IAAI1D,IAAJ,EAA9C;AACA,QAAM4D,QAAQ,GAAG,CAAApD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEoD,QAAT,KAAqB,EAAtC;AAEA,SAAOzE,MAAM,CAACsE,kBAAP,CACL1C,UADK,EAELtB,IAFK,EAGL+D,KAHK,EAILE,KAAK,CAACpD,WAAN,EAJK,EAKLqD,GAAG,CAACrD,WAAJ,EALK,EAMLsD,QANK,CAAP;AAQD,CAlBD;;AAoBA,MAAMC,0BAAwD,GAAG,OAC/D9C,UAD+D,EAE/DP,OAF+D,EAG/DI,IAH+D,EAI/DC,EAJ+D,EAK/DpB,IAL+D,KAM5D;AACH,QAAM8D,UAAU,GAAG,MAAM5D,UAAU,CAACoB,UAAD,EAAatB,IAAb,CAAnC;AACA,QAAMqE,MAAM,GAAGjD,EAAE,IAAI,IAAIb,IAAJ,EAArB;AACA,QAAM;AAAE+D,IAAAA,8BAAF;AAAkC,OAAGC;AAArC,MACJ,MAAM7E,MAAM,CAAC0E,0BAAP,CACJ9C,UADI,EAEJwC,UAFI,EAGJ3C,IAAI,CAACN,WAAL,EAHI,EAIJwD,MAAM,CAACxD,WAAP,EAJI,EAKJE,OALI,CADR;AASA,QAAMyD,QAAQ,GAAG,EACf,GAAGD,WADY;AAEf,QAAID,8BAA8B,GAC9B;AACEA,MAAAA,8BAA8B,EAAE;AAC9BnD,QAAAA,IAAI,EAAE,IAAIZ,IAAJ,CAAS+D,8BAA8B,CAACnD,IAAxC,CADwB;AAE9BC,QAAAA,EAAE,EAAE,IAAIb,IAAJ,CAAS+D,8BAA8B,CAAClD,EAAxC;AAF0B;AADlC,KAD8B,GAO9B,EAPJ;AAFe,GAAjB;AAYA,SAAOoD,QAAP;AACD,CA/BD;;AAiCA,MAAMC,oBAAoB,GAAG,UAC3BC,IAD2B,EAGN;AAAA,MADrBC,KACqB,uEADa,EACb;AACrB,QAAMC,eAAe,GAAGF,IAAI,CAACG,MAAL,CAAY,CAACC,GAAD,EAAMC,GAAN,KAAc;AAChD,WAAO,EAAE,GAAGD,GAAL;AAAU,OAACC,GAAD,GAAO;AAAjB,KAAP;AACD,GAFuB,EAErB,EAFqB,CAAxB;AAIA,QAAMC,gBAAgB,GAAGL,KAAK,CAACE,MAAN,CAAa,CAACC,GAAD,EAAMC,GAAN,KAAc;AAClD,WAAO,EAAE,GAAGD,GAAL;AAAU,OAACC,GAAD,GAAO;AAAjB,KAAP;AACD,GAFwB,EAEtB,EAFsB,CAAzB;AAIA,SAAOrF,MAAM,CAAC+E,oBAAP,CAA4BO,gBAA5B,EAA8CJ,eAA9C,CAAP;AACD,CAbD;;AAeA,MAAMK,cAAc,GAAG,YAAY;AACjC,QAAMC,WAAW,GAAG,MAAMxF,MAAM,CAACuF,cAAP,EAA1B;AACA,SAAO,IAAI1E,IAAJ,CAAS2E,WAAT,CAAP;AACD,CAHD;;AAKA,MAAMC,gCAAgC,GAAG,UACvCT,IADuC,EAGpC;AAAA,MADHC,KACG,uEAD+B,EAC/B;AACH,QAAMC,eAAe,GAAGF,IAAI,CAACG,MAAL,CAAY,CAACC,GAAD,EAAMC,GAAN,KAAc;AAChD,WAAO,EAAE,GAAGD,GAAL;AAAU,OAACC,GAAD,GAAO;AAAjB,KAAP;AACD,GAFuB,EAErB,EAFqB,CAAxB;AAIA,QAAMC,gBAAgB,GAAGL,KAAK,CAACE,MAAN,CAAa,CAACC,GAAD,EAAMC,GAAN,KAAc;AAClD,WAAO,EAAE,GAAGD,GAAL;AAAU,OAACC,GAAD,GAAO;AAAjB,KAAP;AACD,GAFwB,EAEtB,EAFsB,CAAzB;AAIA,SAAOrF,MAAM,CAACyF,gCAAP,CACLH,gBADK,EAELJ,eAFK,CAAP;AAID,CAhBD;;AAkBA,MAAMxB,oBAA4C,GAAG,OACnD9B,UADmD,EAEnDP,OAFmD,KAGhD;AACH,QAAMQ,IAAI,GAAGT,cAAc,CAACC,OAAD,CAA3B;AACA,QAAMqE,OAAO,GAAG,MAAM1F,MAAM,CAAC0D,oBAAP,CACpB9B,UADoB,EAEpBC,IAAI,CAACJ,IAFe,EAGpBI,IAAI,CAACH,EAHe,EAIpBG,IAAI,CAACP,KAJe,EAKpBO,IAAI,CAACL,SALe,CAAtB;AAQA,SAAOkE,OAAO,CAAC3D,GAAR,CAAYf,wBAAZ,CAAP;AACD,CAdD;;AAgBA,eAAesC,sBAAf,CAGEjC,OAHF,EAGgE;AAC9D,MAAI+B,UAAU,GAAG/B,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAE+B,UAA1B;AACA,MAAIC,YAAY,GAAGhC,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAEgC,YAA5B;;AACA,MAAI,CAACD,UAAD,IAAe,CAACC,YAApB,EAAkC;AAChC,UAAMsC,KAAK,GAAG,MAAM3F,MAAM,CAACO,iBAAP,CAAyB,CAC3CL,wBAAwB,CAAC0F,sBADkB,EAE3C1F,wBAAwB,CAAC2F,kBAFkB,CAAzB,CAApB;;AAIA,QAAI,CAACzC,UAAL,EAAiB;AACfA,MAAAA,UAAU,GAAGuC,KAAK,CAACzF,wBAAwB,CAAC0F,sBAA1B,CAAlB;AAGD;;AACD,QAAI,CAACvC,YAAL,EAAmB;AACjBA,MAAAA,YAAY,GAAGsC,KAAK,CAACzF,wBAAwB,CAAC2F,kBAA1B,CAApB;AAGD;AACF;;AACD,MAAI,CAACzC,UAAL,EAAiB;AACfA,IAAAA,UAAU,GAAGjD,MAAM,CAAC2F,YAApB;AACD;;AACD,MAAI,CAACzC,YAAL,EAAmB;AACjBA,IAAAA,YAAY,GAAGlD,MAAM,CAAC4F,MAAtB;AACD;;AACD,SAAO;AAAE3C,IAAAA,UAAF;AAAcC,IAAAA;AAAd,GAAP;AACD;;AAED,MAAM2C,aAA8B,GAAG,MAAO3E,OAAP,IAAmB;AACxD,QAAM;AAAE+B,IAAAA,UAAF;AAAcC,IAAAA;AAAd,MAA+B,MAAMC,sBAAsB,CAACjC,OAAD,CAAjE;AACA,QAAMQ,IAAI,GAAGT,cAAc,CAACC,OAAD,CAA3B;AAEA,QAAM4E,QAAQ,GAAG,MAAMjG,MAAM,CAACkG,mBAAP,CACrB9C,UADqB,EAErBC,YAFqB,EAGrBxB,IAAI,CAACJ,IAHgB,EAIrBI,IAAI,CAACH,EAJgB,EAKrBG,IAAI,CAACP,KALgB,EAMrBO,IAAI,CAACL,SANgB,CAAvB;AASA,SAAOyE,QAAQ,CAAClE,GAAT,CAAahB,kBAAb,CAAP;AACD,CAdD;;AAgBA,MAAMwC,oBAA4C,GAAG,MAAOlC,OAAP,IAAmB;AACtE,QAAM4E,QAAQ,GAAG,MAAMD,aAAa,CAAC;AACnC1E,IAAAA,KAAK,EAAE,CAD4B;AAEnCE,IAAAA,SAAS,EAAE,KAFwB;AAGnC4B,IAAAA,UAAU,EAAE/B,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAE+B,UAHc;AAInCC,IAAAA,YAAY,EAAEhC,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEgC;AAJY,GAAD,CAApC;AAOA,SAAO4C,QAAQ,CAAC,CAAD,CAAf;AACD,CATD;;AAWA,SAASE,kBAAT,CACEvE,UADF,EAEEyC,KAFF,EAGEhD,OAHF,EAQE;AACA,QAAMkD,KAAK,GAAG,CAAAlD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEkD,KAAT,MAAkBlD,OAAlB,aAAkBA,OAAlB,uBAAkBA,OAAO,CAAEmD,GAA3B,KAAkC,IAAI3D,IAAJ,EAAhD;AACA,QAAM2D,GAAG,GAAG,CAAAnD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEmD,GAAT,MAAgBnD,OAAhB,aAAgBA,OAAhB,uBAAgBA,OAAO,CAAEkD,KAAzB,KAAkC,IAAI1D,IAAJ,EAA9C;AACA,QAAM4D,QAAQ,GAAG,CAAApD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEoD,QAAT,KAAqB,EAAtC;AAEA,SAAOzE,MAAM,CAACmG,kBAAP,CACLvE,UADK,EAELyC,KAFK,EAGLE,KAAK,CAACpD,WAAN,EAHK,EAILqD,GAAG,CAACrD,WAAJ,EAJK,EAKLsD,QAAQ,IAAI,EALP,CAAP;AAOD;;AAED,MAAMlE,iBAAsC,GAAG,MAAO6F,WAAP,IAAuB;AACpE,QAAMT,KAAK,GAAG,MAAM3F,MAAM,CAACO,iBAAP,CAAyB6F,WAAzB,CAApB;AACA,SAAOA,WAAW,CAACrE,GAAZ,CAAiBsE,CAAD,IAAOV,KAAK,CAACU,CAAD,CAA5B,CAAP;AACD,CAHD;;AAKA,MAAMC,mBAAmB,GAAG,CAACC,MAAD,EAAyBjG,IAAzB,KAA4C;AACtE,SAAQ,GAAEiG,MAAO,GAAEjG,IAAK,EAAxB;AACD,CAFD;;AAIA,SAASkG,sBAAT,CAEEC,CAFF,EAEgE;AAC9D,SAAO,EACL,GAAGA,CADE;AAELC,IAAAA,OAAO,EAAED,CAAC,CAACC,OAAF,CAAU3E,GAAV,CAAe4E,CAAD,IAAO;AAC5B;AACA,UAAIA,CAAC,CAACC,QAAF,KAAeC,SAAnB,EAA8B;AAC5B,eAAOnG,iBAAiB,CAACiG,CAAD,CAAxB;AACD;;AAED,aAAO3F,wBAAwB,CAAC2F,CAAD,CAA/B;AACD,KAPQ,CAFJ;AAUL7F,IAAAA,OAAO,EAAE,IAAID,IAAJ,CAAS4F,CAAC,CAAC3F,OAAX,CAVJ;AAWLF,IAAAA,SAAS,EAAE,IAAIC,IAAJ,CAAS4F,CAAC,CAAC7F,SAAX;AAXN,GAAP;AAaD;;AAED,SAASkG,cAAT,CAAmCrC,QAAnC,EAAyD;AACvD,SAAOA,QAAQ,IAAK,EAApB;AACD;;AAED,MAAMsC,uBAAkD,GAAG,OACzD3E,cADyD,EAEzDf,OAFyD,KAGtD;AACH,QAAMQ,IAAI,GAAGT,cAAc,CAACC,OAAD,CAA3B;AACA,QAAM2F,YAAY,GAAG,MAAMhH,MAAM,CAAC+G,uBAAP,CACzB3E,cADyB,EAEzBP,IAAI,CAACJ,IAFoB,EAGzBI,IAAI,CAACH,EAHoB,CAA3B;AAMA,SAAOsF,YAAY,CAACjF,GAAb,CAAiByE,sBAAjB,CAAP;AACD,CAZD;;AAcA,MAAMS,qBAA8C,GAAG,OACrD7E,cADqD,EAErDU,OAFqD,EAGrDzB,OAHqD,KAIlD;AACH,QAAMkD,KAAK,GAAG,CAAC,CAAAlD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEkD,KAAT,KAAkB,IAAI1D,IAAJ,EAAnB,EAA+BM,WAA/B,EAAd;AACA,QAAMqD,GAAG,GAAG,CAAC,CAAAnD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEmD,GAAT,KAAgB,IAAI3D,IAAJ,EAAjB,EAA6BM,WAA7B,EAAZ;AAEA,SAAOnB,MAAM,CAACiH,qBAAP,CACL7E,cADK,EAELU,OAFK,EAGLyB,KAHK,EAILC,GAJK,EAKLsC,cAAc,CAACzF,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEoD,QAAV,CALT,CAAP;AAOD,CAfD;;AAiBA,MAAMyC,iBAAsC,GAAG,CAC7C9E,cAD6C,EAE7C+E,UAF6C,EAG7CC,MAH6C,EAI7C/F,OAJ6C,KAK1C;AACH,QAAMkD,KAAK,GAAG6C,MAAM,CAACjG,WAAP,EAAd;;AACA,QAAMqD,GAAG,GAAG,CAAC,CAAAnD,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAEmD,GAAT,KAAgB,IAAI3D,IAAJ,EAAjB,EAA6BM,WAA7B,EAAZ;AAEA,SAAOnB,MAAM,CAACkH,iBAAP,CACL9E,cADK,EAEL+E,UAFK,EAGL5C,KAHK,EAILC,GAJK,EAKLsC,cAAc,CAACzF,OAAD,aAACA,OAAD,uBAACA,OAAO,CAAEoD,QAAV,CALT,CAAP;AAOD,CAhBD;;AAkBA,MAAM4C,SAA+B,GAAG;AACtCC,EAAAA,sBAAsB,EAAEtH,MAAM,CAACsH,sBADO;AAGtCC,EAAAA,qBAAqB,EAAEvH,MAAM,CAACuH,qBAHQ;AAKtCjB,EAAAA,mBALsC;AAOtCkB,EAAAA,4BAA4B,EAAExH,MAAM,CAACwH,4BAPC;AAQtCC,EAAAA,yBAAyB,EAAEzH,MAAM,CAACyH,yBARI;AAStCC,EAAAA,wBAAwB,EAAE1H,MAAM,CAAC0H,wBATK;AAWtC;AACAC,EAAAA,gBAAgB,EAAE3H,MAAM,CAAC2H,gBAZa;AAatCC,EAAAA,sBAAsB,EAAE5H,MAAM,CAAC4H,sBAbO;AActCC,EAAAA,gBAAgB,EAAE7H,MAAM,CAAC6H,gBAda;AAetCC,EAAAA,YAAY,EAAE9H,MAAM,CAAC8H,YAfiB;AAgBtCvC,EAAAA,cAhBsC;AAkBtC1C,EAAAA,2BAlBsC;AAmBtCY,EAAAA,2BAnBsC;AAoBtCF,EAAAA,oBApBsC;AAsBtCnD,EAAAA,gBAtBsC;AAuBtCG,EAAAA,iBAvBsC;AAwBtCkF,EAAAA,gCAxBsC;AA0BtC;AACA/B,EAAAA,oBA3BsC;AA4BtCqD,EAAAA,uBA5BsC;AA6BtCpF,EAAAA,oBA7BsC;AA8BtC+C,EAAAA,0BA9BsC;AA+BtCsB,EAAAA,aA/BsC;AAiCtCjB,EAAAA,oBAjCsC;AAmCtC;AACAoB,EAAAA,kBApCsC;AAqCtCc,EAAAA,qBArCsC;AAsCtC3C,EAAAA,kBAtCsC;AAuCtC4C,EAAAA,iBAvCsC;AAyCtC;AACAlF,EAAAA,kBA1CsC;AA4CtC;AACA2B,EAAAA,2BA7CsC;AA+CtCM,EAAAA,2BA/CsC;AAgDtClB,EAAAA,oBAhDsC;AAkDtCgB,EAAAA;AAlDsC,CAAxC;AAqDA,cAAc,SAAd;AACA,cAAc,gBAAd;AAEA,eAAesD,SAAf","sourcesContent":["import { useState, useEffect, useCallback } from 'react';\nimport Native, {\n EventEmitter,\n HKCategorySampleRaw,\n HKCategoryTypeIdentifier,\n HKCategoryValueForIdentifier,\n HKCharacteristicTypeIdentifier,\n HKCorrelationRaw,\n HKCorrelationTypeIdentifier,\n HKQuantitySampleRaw,\n HKQuantityTypeIdentifier,\n HKSampleTypeIdentifier,\n HKUnit,\n HKUnitSI,\n HKUnitSIPrefix,\n HKWorkoutRaw,\n MetadataMapperForCategoryIdentifier,\n} from './native-types';\nimport type {\n GenericQueryOptions,\n GetMostRecentCategorySampleFn,\n GetMostRecentQuantitySampleFn,\n GetMostRecentWorkoutFn,\n GetPreferredUnitFn,\n GetPreferredUnitsFn,\n HKCategorySample,\n HKCorrelation,\n HKQuantitySample,\n HKWorkout,\n QueryCategorySamplesFn,\n QueryCorrelationSamplesFn,\n QueryQuantitySamplesFn,\n QueryStatisticsForQuantityFn,\n QueryWorkoutsFn,\n ReactNativeHealthkit,\n SaveCorrelationSampleFn,\n SaveQuantitySampleFn,\n SaveWorkoutSampleFn,\n SubscribeToChangesFn,\n} from './types';\n\nconst getPreferredUnit: GetPreferredUnitFn = async (type) => {\n const [unit] = await getPreferredUnits([type]);\n return unit;\n};\n\nconst ensureUnit = async <TUnit extends HKUnit>(\n type: HKQuantityTypeIdentifier,\n providedUnit?: TUnit\n) => {\n if (providedUnit) {\n return providedUnit;\n }\n const unit = await Native.getPreferredUnits([type]);\n return unit[type] as TUnit;\n};\n\nfunction deserializeSample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends HKUnit\n>(\n sample: HKQuantitySampleRaw<TIdentifier, TUnit>\n): HKQuantitySample<TIdentifier, TUnit> {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n };\n}\n\nfunction deserializeWorkout<TEnergy extends HKUnit, TDistance extends HKUnit>(\n sample: HKWorkoutRaw<TEnergy, TDistance>\n): HKWorkout<TEnergy, TDistance> {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n };\n}\n\nconst deserializCategorySample = <T extends HKCategoryTypeIdentifier>(\n sample: HKCategorySampleRaw<T>\n): HKCategorySample<T> => {\n return {\n ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n };\n};\n\nconst serializeDate = (date?: Date | null): string => {\n return date ? date.toISOString() : new Date(0).toISOString();\n};\n\nconst prepareOptions = (options: GenericQueryOptions) => {\n const limit =\n !options.limit || options.limit === Infinity ? 0 : options.limit;\n const ascending = options.ascending ?? limit === 0;\n const from = serializeDate(options.from);\n const to = serializeDate(options.to);\n return { limit, ascending, from, to };\n};\n\nconst queryQuantitySamples: QueryQuantitySamplesFn = async (\n identifier,\n options\n) => {\n const unit = await ensureUnit(identifier, options.unit);\n const opts = prepareOptions(options);\n\n const quantitySamples = await Native.queryQuantitySamples(\n identifier,\n unit,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending\n );\n\n return quantitySamples.map(deserializeSample);\n};\n\nconst subscribeToChanges: SubscribeToChangesFn = async (\n identifier,\n callback\n) => {\n const subscription = EventEmitter.addListener(\n 'onChange',\n ({ typeIdentifier }) => {\n if (typeIdentifier === identifier) {\n callback();\n }\n }\n );\n\n const queryId = await Native.subscribeToObserverQuery(identifier).catch(\n (error) => {\n subscription.remove();\n return Promise.reject(error);\n }\n );\n\n return () => {\n subscription.remove();\n return Native.unsubscribeQuery(queryId);\n };\n};\n\nconst getMostRecentQuantitySample: GetMostRecentQuantitySampleFn = async (\n identifier,\n unit\n) => {\n const samples = await queryQuantitySamples(identifier, {\n limit: 1,\n unit: unit,\n });\n return samples[0];\n};\n\nfunction useMostRecentWorkout<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { energyUnit?: TEnergy; distanceUnit?: TDistance }) {\n const [workout, setWorkout] = useState<HKWorkout<TEnergy, TDistance> | null>(\n null\n );\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined;\n\n const init = async () => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(\n options\n );\n\n cancelSubscription = await subscribeToChanges(\n 'HKWorkoutTypeIdentifier',\n () => {\n getMostRecentWorkout({ energyUnit, distanceUnit }).then(setWorkout);\n }\n );\n };\n init();\n return () => {\n cancelSubscription && cancelSubscription();\n };\n }, [options]);\n return workout;\n}\n\nconst getMostRecentCategorySample: GetMostRecentCategorySampleFn = async (\n identifier\n) => {\n const samples = await queryCategorySamples(identifier, {\n limit: 1,\n ascending: false,\n });\n\n return samples[0];\n};\n\nfunction useMostRecentCategorySample<\n TCategory extends HKCategoryTypeIdentifier\n>(identifier: TCategory) {\n const [category, setCategory] = useState<HKCategorySample<TCategory> | null>(\n null\n );\n const updater = useCallback(() => {\n getMostRecentCategorySample(identifier).then(setCategory);\n }, [identifier]);\n\n useSubscribeToChanges(identifier, updater);\n\n return category;\n}\n\nfunction useSubscribeToChanges<TIdentifier extends HKSampleTypeIdentifier>(\n identifier: TIdentifier,\n onChange: () => void\n): void {\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined;\n\n const init = async () => {\n cancelSubscription = await subscribeToChanges(identifier, onChange);\n };\n init();\n\n return () => {\n cancelSubscription && cancelSubscription();\n };\n }, [identifier, onChange]);\n}\n\nfunction useMostRecentQuantitySample<\n TIdentifier extends HKQuantityTypeIdentifier,\n TUnit extends HKUnit = HKUnit\n>(identifier: TIdentifier, unit?: TUnit) {\n const [lastSample, setLastSample] = useState<HKQuantitySample<\n TIdentifier,\n TUnit\n > | null>(null);\n\n useEffect(() => {\n let cancelSubscription: (() => Promise<boolean>) | undefined;\n\n const init = async () => {\n const actualUnit = await ensureUnit(identifier, unit);\n\n cancelSubscription = await subscribeToChanges(identifier, () => {\n getMostRecentQuantitySample(identifier, actualUnit).then((value) => {\n setLastSample(value);\n });\n });\n };\n init();\n\n return () => {\n cancelSubscription && cancelSubscription();\n };\n }, [identifier, unit]);\n\n return lastSample;\n}\n\nconst saveQuantitySample: SaveQuantitySampleFn = (\n identifier,\n unit,\n value,\n options\n) => {\n const start = options?.start || options?.end || new Date();\n const end = options?.end || options?.start || new Date();\n const metadata = options?.metadata || {};\n\n return Native.saveQuantitySample(\n identifier,\n unit,\n value,\n start.toISOString(),\n end.toISOString(),\n metadata\n );\n};\n\nconst queryStatisticsForQuantity: QueryStatisticsForQuantityFn = async (\n identifier,\n options,\n from,\n to,\n unit\n) => {\n const actualUnit = await ensureUnit(identifier, unit);\n const toDate = to || new Date();\n const { mostRecentQuantityDateInterval, ...rawResponse } =\n await Native.queryStatisticsForQuantity(\n identifier,\n actualUnit,\n from.toISOString(),\n toDate.toISOString(),\n options\n );\n\n const response = {\n ...rawResponse,\n ...(mostRecentQuantityDateInterval\n ? {\n mostRecentQuantityDateInterval: {\n from: new Date(mostRecentQuantityDateInterval.from),\n to: new Date(mostRecentQuantityDateInterval.to),\n },\n }\n : {}),\n };\n\n return response;\n};\n\nconst requestAuthorization = (\n read: (HKCharacteristicTypeIdentifier | HKSampleTypeIdentifier)[],\n write: HKSampleTypeIdentifier[] = []\n): Promise<boolean> => {\n const readPermissions = read.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n const writePermissions = write.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n return Native.requestAuthorization(writePermissions, readPermissions);\n};\n\nconst getDateOfBirth = async () => {\n const dateOfBirth = await Native.getDateOfBirth();\n return new Date(dateOfBirth);\n};\n\nconst getRequestStatusForAuthorization = (\n read: (HKCharacteristicTypeIdentifier | HKSampleTypeIdentifier)[],\n write: HKSampleTypeIdentifier[] = []\n) => {\n const readPermissions = read.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n const writePermissions = write.reduce((obj, cur) => {\n return { ...obj, [cur]: true };\n }, {});\n\n return Native.getRequestStatusForAuthorization(\n writePermissions,\n readPermissions\n );\n};\n\nconst queryCategorySamples: QueryCategorySamplesFn = async (\n identifier,\n options\n) => {\n const opts = prepareOptions(options);\n const results = await Native.queryCategorySamples(\n identifier,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending\n );\n\n return results.map(deserializCategorySample);\n};\n\nasync function getPreferredUnitsTyped<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { energyUnit?: TEnergy; distanceUnit?: TDistance }) {\n let energyUnit = options?.energyUnit;\n let distanceUnit = options?.distanceUnit;\n if (!energyUnit || !distanceUnit) {\n const units = await Native.getPreferredUnits([\n HKQuantityTypeIdentifier.distanceWalkingRunning,\n HKQuantityTypeIdentifier.activeEnergyBurned,\n ]);\n if (!energyUnit) {\n energyUnit = units[HKQuantityTypeIdentifier.distanceWalkingRunning] as\n | TEnergy\n | undefined;\n }\n if (!distanceUnit) {\n distanceUnit = units[HKQuantityTypeIdentifier.activeEnergyBurned] as\n | TDistance\n | undefined;\n }\n }\n if (!energyUnit) {\n energyUnit = HKUnit.Kilocalories as TEnergy;\n }\n if (!distanceUnit) {\n distanceUnit = HKUnit.Meters as TDistance;\n }\n return { energyUnit, distanceUnit };\n}\n\nconst queryWorkouts: QueryWorkoutsFn = async (options) => {\n const { energyUnit, distanceUnit } = await getPreferredUnitsTyped(options);\n const opts = prepareOptions(options);\n\n const workouts = await Native.queryWorkoutSamples(\n energyUnit,\n distanceUnit,\n opts.from,\n opts.to,\n opts.limit,\n opts.ascending\n );\n\n return workouts.map(deserializeWorkout);\n};\n\nconst getMostRecentWorkout: GetMostRecentWorkoutFn = async (options) => {\n const workouts = await queryWorkouts({\n limit: 1,\n ascending: false,\n energyUnit: options?.energyUnit,\n distanceUnit: options?.distanceUnit,\n });\n\n return workouts[0];\n};\n\nfunction saveCategorySample<T extends HKCategoryTypeIdentifier>(\n identifier: T,\n value: HKCategoryValueForIdentifier<T>,\n options?: {\n start?: Date;\n end?: Date;\n metadata?: MetadataMapperForCategoryIdentifier<T>;\n }\n) {\n const start = options?.start || options?.end || new Date();\n const end = options?.end || options?.start || new Date();\n const metadata = options?.metadata || {};\n\n return Native.saveCategorySample(\n identifier,\n value,\n start.toISOString(),\n end.toISOString(),\n metadata || {}\n );\n}\n\nconst getPreferredUnits: GetPreferredUnitsFn = async (identifiers) => {\n const units = await Native.getPreferredUnits(identifiers);\n return identifiers.map((i) => units[i]);\n};\n\nconst buildUnitWithPrefix = (prefix: HKUnitSIPrefix, unit: HKUnitSI) => {\n return `${prefix}${unit}` as HKUnit;\n};\n\nfunction deserializeCorrelation<\n TIdentifier extends HKCorrelationTypeIdentifier\n>(s: HKCorrelationRaw<TIdentifier>): HKCorrelation<TIdentifier> {\n return {\n ...s,\n objects: s.objects.map((o) => {\n // @ts-ignore\n if (o.quantity !== undefined) {\n return deserializeSample(o as HKQuantitySampleRaw);\n }\n\n return deserializCategorySample(o as HKCategorySampleRaw);\n }),\n endDate: new Date(s.endDate),\n startDate: new Date(s.startDate),\n };\n}\n\nfunction ensureMetadata<TMetadata>(metadata?: TMetadata) {\n return metadata || ({} as TMetadata);\n}\n\nconst queryCorrelationSamples: QueryCorrelationSamplesFn = async (\n typeIdentifier,\n options\n) => {\n const opts = prepareOptions(options);\n const correlations = await Native.queryCorrelationSamples(\n typeIdentifier,\n opts.from,\n opts.to\n );\n\n return correlations.map(deserializeCorrelation);\n};\n\nconst saveCorrelationSample: SaveCorrelationSampleFn = async (\n typeIdentifier,\n samples,\n options\n) => {\n const start = (options?.start || new Date()).toISOString();\n const end = (options?.end || new Date()).toISOString();\n\n return Native.saveCorrelationSample(\n typeIdentifier,\n samples,\n start,\n end,\n ensureMetadata(options?.metadata)\n );\n};\n\nconst saveWorkoutSample: SaveWorkoutSampleFn = (\n typeIdentifier,\n quantities,\n _start,\n options\n) => {\n const start = _start.toISOString();\n const end = (options?.end || new Date()).toISOString();\n\n return Native.saveWorkoutSample(\n typeIdentifier,\n quantities,\n start,\n end,\n ensureMetadata(options?.metadata)\n );\n};\n\nconst Healthkit: ReactNativeHealthkit = {\n authorizationStatusFor: Native.authorizationStatusFor,\n\n isHealthDataAvailable: Native.isHealthDataAvailable,\n\n buildUnitWithPrefix,\n\n disableAllBackgroundDelivery: Native.disableAllBackgroundDelivery,\n disableBackgroundDelivery: Native.disableBackgroundDelivery,\n enableBackgroundDelivery: Native.enableBackgroundDelivery,\n\n // simple convenience getters\n getBiologicalSex: Native.getBiologicalSex,\n getFitzpatrickSkinType: Native.getFitzpatrickSkinType,\n getWheelchairUse: Native.getWheelchairUse,\n getBloodType: Native.getBloodType,\n getDateOfBirth,\n\n getMostRecentQuantitySample,\n getMostRecentCategorySample,\n getMostRecentWorkout,\n\n getPreferredUnit,\n getPreferredUnits,\n getRequestStatusForAuthorization,\n\n // query methods\n queryCategorySamples,\n queryCorrelationSamples,\n queryQuantitySamples,\n queryStatisticsForQuantity,\n queryWorkouts,\n\n requestAuthorization,\n\n // save methods\n saveCategorySample,\n saveCorrelationSample,\n saveQuantitySample,\n saveWorkoutSample,\n\n // subscriptions\n subscribeToChanges,\n\n // hooks\n useMostRecentCategorySample,\n\n useMostRecentQuantitySample,\n useMostRecentWorkout,\n\n useSubscribeToChanges,\n};\n\nexport * from './types';\nexport * from './native-types';\n\nexport default Healthkit;\n"]}
@@ -234,6 +234,13 @@ export let HKQuantityTypeIdentifier;
234
234
  HKQuantityTypeIdentifier["dietaryPotassium"] = "HKQuantityTypeIdentifierDietaryPotassium";
235
235
  HKQuantityTypeIdentifier["dietaryCaffeine"] = "HKQuantityTypeIdentifierDietaryCaffeine";
236
236
  HKQuantityTypeIdentifier["dietaryWater"] = "HKQuantityTypeIdentifierDietaryWater";
237
+ HKQuantityTypeIdentifier["sixMinuteWalkTestDistance"] = "HKQuantityTypeIdentifierSixMinuteWalkTestDistance";
238
+ HKQuantityTypeIdentifier["walkingSpeed"] = "HKQuantityTypeIdentifierWalkingSpeed";
239
+ HKQuantityTypeIdentifier["walkingStepLength"] = "HKQuantityTypeIdentifierWalkingStepLength";
240
+ HKQuantityTypeIdentifier["walkingAsymmetryPercentage"] = "HKQuantityTypeIdentifierWalkingAsymmetryPercentage";
241
+ HKQuantityTypeIdentifier["walkingDoubleSupportPercentage"] = "HKQuantityTypeIdentifierWalkingDoubleSupportPercentage";
242
+ HKQuantityTypeIdentifier["stairAscentSpeed"] = "HKQuantityTypeIdentifierStairAscentSpeed";
243
+ HKQuantityTypeIdentifier["stairDescentSpeed"] = "HKQuantityTypeIdentifierStairDescentSpeed";
237
244
  HKQuantityTypeIdentifier["uvExposure"] = "HKQuantityTypeIdentifierUvExposure";
238
245
  })(HKQuantityTypeIdentifier || (HKQuantityTypeIdentifier = {}));
239
246
 
@@ -1 +1 @@
1
- {"version":3,"sources":["native-types.ts"],"names":["NativeModules","NativeEventEmitter","HKHeartRateMotionContext","HKCategoryTypeIdentifier","HKCategoryValueAppleStandHour","HKWorkoutActivityType","HKWeatherCondition","HKQuantityTypeIdentifier","HKAuthorizationRequestStatus","HKBloodType","HKBiologicalSex","HKFitzpatrickSkinType","HKStatisticsOptions","HKCategoryValueCervicalMucusQuality","HKCategoryValueMenstrualFlow","HKCategoryValueOvulationTestResult","HKCategoryValueSleepAnalysis","HKCategoryValueAppetiteChanges","HKCategoryValuePresence","HKCategoryValueSeverity","HKCategoryValueNotApplicable","HKInsulinDeliveryReason","HKWheelchairUse","HKUnitSIPrefix","HKUnitSI","HKUnit","HKCharacteristicTypeIdentifier","HKCorrelationTypeIdentifier","HKUpdateFrequency","Native","ReactNativeHealthkit","EventEmitter"],"mappings":"AAAA,SACEA,aADF,EAEEC,kBAFF,QAIO,cAJP;AAoBA,WAAYC,wBAAZ;;WAAYA,wB;AAAAA,EAAAA,wB,CAAAA,wB;AAAAA,EAAAA,wB,CAAAA,wB;AAAAA,EAAAA,wB,CAAAA,wB;GAAAA,wB,KAAAA,wB;;AAMZ,WAAYC,wBAAZ;;WAAYA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;GAAAA,wB,KAAAA,wB;;AAgBZ,WAAYC,6BAAZ;;WAAYA,6B;AAAAA,EAAAA,6B,CAAAA,6B;AAAAA,EAAAA,6B,CAAAA,6B;GAAAA,6B,KAAAA,6B;;AAKZ,WAAYC,qBAAZ;;WAAYA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;GAAAA,qB,KAAAA,qB;;AAkGZ;AACA,WA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","sourcesContent":["import {\n NativeModules,\n NativeEventEmitter,\n EmitterSubscription,\n} from 'react-native';\n\nexport type HKWorkoutTypeIdentifier = 'HKWorkoutTypeIdentifier';\nexport type HKAudiogramTypeIdentifier = 'HKAudiogramTypeIdentifier';\n\nexport type HKSampleTypeIdentifier =\n | HKWorkoutTypeIdentifier\n | HKQuantityTypeIdentifier\n | HKCategoryTypeIdentifier\n | HKAudiogramTypeIdentifier\n | HKCorrelationTypeIdentifier;\n\nexport type TypeToUnitMapping = {\n [key in HKQuantityTypeIdentifier]: HKUnit;\n};\n\nexport enum HKHeartRateMotionContext {\n active = 2,\n notSet = 0,\n sedentary = 1,\n}\n\nexport enum HKCategoryTypeIdentifier {\n sleepAnalysis = 'HKCategoryTypeIdentifierSleepAnalysis',\n appleStandHour = 'HKCategoryTypeIdentifierAppleStandHour',\n cervicalMucusQuality = 'HKCategoryTypeIdentifierCervicalMucusQuality',\n ovulationTestResult = 'HKCategoryTypeIdentifierOvulationTestResult',\n menstrualFlow = 'HKCategoryTypeIdentifierMenstrualFlow',\n intermenstrualBleeding = 'HKCategoryTypeIdentifierIntermenstrualBleeding',\n sexualActivity = 'HKCategoryTypeIdentifierSexualActivity',\n mindfulSession = 'HKCategoryTypeIdentifierMindfulSession',\n highHeartRateEvent = 'HKCategoryTypeIdentifierHighHeartRateEvent',\n lowHeartRateEvent = 'HKCategoryTypeIdentifierLowHeartRateEvent',\n irregularHeartRhythmEvent = 'HKCategoryTypeIdentifierIrregularHeartRhythmEvent',\n audioExposureEvent = 'HKCategoryTypeIdentifierAudioExposureEvent',\n toothbrushingEvent = 'HKCategoryTypeIdentifierToothbrushingEvent',\n}\n\nexport enum HKCategoryValueAppleStandHour {\n stood = 0,\n idle = 1,\n}\n\nexport enum HKWorkoutActivityType {\n americanFootball = 1,\n archery = 2,\n australianFootball = 3,\n badminton = 4,\n baseball = 5,\n basketball = 6,\n bowling = 7,\n boxing = 8, // See also HKWorkoutActivityTypeKickboxing.,\n climbing = 9,\n cricket = 10,\n crossTraining = 11, // Any mix of cardio and/or strength training. See also HKWorkoutActivityTypeCoreTraining and HKWorkoutActivityTypeFlexibility.,\n curling = 12,\n cycling = 13,\n dance = 14,\n danceInspiredTraining = 15, // This enum remains available to access older data.,\n elliptical = 16,\n equestrianSports = 17, // Polo, Horse Racing, Horse Riding, etc.,\n fencing = 18,\n fishing = 19,\n functionalStrengthTraining = 20, // Primarily free weights and/or body weight and/or accessories,\n golf = 21,\n gymnastics = 22,\n handball = 23,\n hiking = 24,\n hockey = 25, // Ice Hockey, Field Hockey, etc.,\n hunting = 26,\n lacrosse = 27,\n martialArts = 28,\n mindAndBody = 29, // Qigong, meditation, etc.,\n mixedMetabolicCardioTraining = 30, // This enum remains available to access older data.,\n paddleSports = 31, // Canoeing, Kayaking, Outrigger, Stand Up Paddle Board, etc.,\n play = 32, // Dodge Ball, Hopscotch, Tetherball, Jungle Gym, etc.,\n preparationAndRecovery = 33, // Foam rolling, stretching, etc.,\n racquetball = 34,\n rowing = 35,\n rugby = 36,\n running = 37,\n sailing = 38,\n skatingSports = 39, // Ice Skating, Speed Skating, Inline Skating, Skateboarding, etc.,\n snowSports = 40, // Sledding, Snowmobiling, Building a Snowman, etc. See also HKWorkoutActivityTypeCrossCountrySkiing, HKWorkoutActivityTypeSnowboarding, and HKWorkoutActivityTypeDownhillSkiing.,\n soccer = 41,\n softball = 42,\n squash = 43,\n stairClimbing = 44, // See also HKWorkoutActivityTypeStairs and HKWorkoutActivityTypeStepTraining.,\n surfingSports = 45, // Traditional Surfing, Kite Surfing, Wind Surfing, etc.,\n swimming = 46,\n tableTennis = 47,\n tennis = 48,\n trackAndField = 49, // Shot Put, Javelin, Pole Vaulting, etc.,\n traditionalStrengthTraining = 50, // Primarily machines and/or free weights,\n volleyball = 51,\n walking = 52,\n waterFitness = 53,\n waterPolo = 54,\n waterSports = 55, // Water Skiing, Wake Boarding, etc.,\n wrestling = 56,\n yoga = 57,\n barre = 58, // HKWorkoutActivityTypeDanceInspiredTraining,\n coreTraining = 59,\n crossCountrySkiing = 60,\n downhillSkiing = 61,\n flexibility = 62,\n highIntensityIntervalTraining = 63,\n jumpRope = 64,\n kickboxing = 65,\n pilates = 66, // HKWorkoutActivityTypeDanceInspiredTraining,\n snowboarding = 67,\n stairs = 68,\n stepTraining = 69,\n wheelchairWalkPace = 70,\n wheelchairRunPace = 71,\n taiChi = 72,\n mixedCardio = 73, // HKWorkoutActivityTypeMixedMetabolicCardioTraining,\n handCycling = 74,\n discSports = 75,\n fitnessGaming = 76,\n other = 3000,\n}\n\nexport type HKGenericMetadata = {\n [key: string]: string | number | boolean | HKQuantity | undefined;\n HKExternalUUID?: string;\n HKTimeZone?: string;\n HKWasUserEntered?: boolean;\n HKDeviceSerialNumber?: string;\n HKUDIDeviceIdentifier?: string;\n HKUDIProductionIdentifier?: string;\n HKDigitalSignature?: string;\n HKDeviceName?: string;\n HKDeviceManufacturerName?: string;\n HKSyncIdentifier?: string;\n HKSyncVersion?: number;\n HKWasTakenInLab?: boolean;\n HKReferenceRangeLowerLimit?: number;\n HKReferenceRangeUpperLimit?: number;\n};\n\n// documented at https://developer.apple.com/documentation/healthkit/hkweathercondition\nexport enum HKWeatherCondition {\n none = 0,\n clear = 1,\n fair = 2,\n partlyCloudy = 3,\n mostlyCloudy = 4,\n cloudy = 5,\n foggy = 6,\n haze = 7,\n windy = 8,\n blustery = 9,\n smoky = 10,\n dust = 11,\n snow = 12,\n hail = 13,\n sleet = 14,\n freezingDrizzle = 15,\n freezingRain = 16,\n mixedRainAndHail = 17,\n mixedRainAndSnow = 18,\n mixedRainAndSleet = 19,\n mixedSnowAndSleet = 20,\n drizzle = 21,\n scatteredShowers = 22,\n showers = 23,\n thunderstorms = 24,\n tropicalStorm = 25,\n hurricane = 26,\n tornado = 27,\n}\n\nexport interface HKWorkoutMetadata\n extends HKGenericMetadata /*<TTemperatureUnit extends HKUnit>*/ {\n HKWeatherCondition?: HKWeatherCondition;\n HKWeatherHumidity?: HKQuantity<HKUnit.Percent>;\n // HKWeatherTemperature: HKQuantity<TTemperatureUnit>\n}\n\n// Straight mapping to https://developer.apple.com/documentation/healthkit/hkquantitytypeidentifier\nexport enum HKQuantityTypeIdentifier {\n bodyMassIndex = 'HKQuantityTypeIdentifierBodyMassIndex',\n bodyFatPercentage = 'HKQuantityTypeIdentifierBodyFatPercentage', // Scalar(Percent, 0.0 - 1.0), Discrete\n height = 'HKQuantityTypeIdentifierHeight', // Length, Discrete\n bodyMass = 'HKQuantityTypeIdentifierBodyMass', // Mass, Discrete\n leanBodyMass = 'HKQuantityTypeIdentifierLeanBodyMass', // Mass, Discrete\n\n waistCircumference = 'HKQuantityTypeIdentifierWaistCircumference', // Length, Discrete\n // Fitness\n stepCount = 'HKQuantityTypeIdentifierStepCount', // Scalar(Count), Cumulative\n distanceWalkingRunning = 'HKQuantityTypeIdentifierDistanceWalkingRunning', // Length, Cumulative\n distanceCycling = 'HKQuantityTypeIdentifierDistanceCycling', // Length, Cumulative\n distanceWheelchair = 'HKQuantityTypeIdentifierDistanceWheelchair', // Length, Cumulative\n basalEnergyBurned = 'HKQuantityTypeIdentifierBasalEnergyBurned', // Energy, Cumulative\n activeEnergyBurned = 'HKQuantityTypeIdentifierActiveEnergyBurned', // Energy, Cumulative\n flightsClimbed = 'HKQuantityTypeIdentifierFlightsClimbed', // Scalar(Count), Cumulative\n nikeFuel = 'HKQuantityTypeIdentifierNikeFuel', // Scalar(Count), Cumulative\n appleExerciseTime = 'HKQuantityTypeIdentifierAppleExerciseTime', // Time Cumulative\n pushCount = 'HKQuantityTypeIdentifierPushCount', // Scalar(Count), Cumulative\n distanceSwimming = 'HKQuantityTypeIdentifierDistanceSwimming', // Length, Cumulative\n swimmingStrokeCount = 'HKQuantityTypeIdentifierSwimmingStrokeCount', // Scalar(Count), Cumulative\n vo2Max = 'HKQuantityTypeIdentifierVo2Max', // ml/(kg*min) Discrete\n distanceDownhillSnowSports = 'HKQuantityTypeIdentifierDistanceDownhillSnowSports', // Length, Cumulative\n\n appleStandTime = 'HKQuantityTypeIdentifierAppleStandTime', // Time, Cumulative\n // Vitals\n heartRate = 'HKQuantityTypeIdentifierHeartRate', // Scalar(Count)/Time, Discrete\n bodyTemperature = 'HKQuantityTypeIdentifierBodyTemperature', // Temperature, Discrete\n basalBodyTemperature = 'HKQuantityTypeIdentifierBasalBodyTemperature', // Basal Body Temperature, Discrete\n bloodPressureSystolic = 'HKQuantityTypeIdentifierBloodPressureSystolic', // Pressure, Discrete\n bloodPressureDiastolic = 'HKQuantityTypeIdentifierBloodPressureDiastolic', // Pressure, Discrete\n respiratoryRate = 'HKQuantityTypeIdentifierRespiratoryRate', // Scalar(Count)/Time, Discrete\n // Beats per minute estimate of a user's lowest heart rate while at rest\n restingHeartRate = 'HKQuantityTypeIdentifierRestingHeartRate', // Scalar(Count)/Time, Discrete\n // Average heartbeats per minute captured by an Apple Watch while a user is walking\n walkingHeartRateAverage = 'HKQuantityTypeIdentifierWalkingHeartRateAverage', // Scalar(Count)/Time, Discrete\n // The standard deviation of heart beat-to-beat intevals (Standard Deviation of Normal to Normal)\n\n heartRateVariabilitySDNN = 'HKQuantityTypeIdentifierHeartRateVariabilitySDNN', // Time (ms), Discrete\n // Results\n oxygenSaturation = 'HKQuantityTypeIdentifierOxygenSaturation', // Scalar (Percent, 0.0 - 1.0, Discrete\n peripheralPerfusionIndex = 'HKQuantityTypeIdentifierPeripheralPerfusionIndex', // Scalar(Percent, 0.0 - 1.0), Discrete\n bloodGlucose = 'HKQuantityTypeIdentifierBloodGlucose', // Mass/Volume, Discrete\n numberOfTimesFallen = 'HKQuantityTypeIdentifierNumberOfTimesFallen', // Scalar(Count), Cumulative\n electrodermalActivity = 'HKQuantityTypeIdentifierElectrodermalActivity', // Conductance, Discrete\n inhalerUsage = 'HKQuantityTypeIdentifierInhalerUsage', // Scalar(Count), Cumulative\n insulinDelivery = 'HKQuantityTypeIdentifierInsulinDelivery', // Pharmacology (IU) Cumulative\n bloodAlcoholContent = 'HKQuantityTypeIdentifierBloodAlcoholContent', // Scalar(Percent, 0.0 - 1.0), Discrete\n forcedVitalCapacity = 'HKQuantityTypeIdentifierForcedVitalCapacity', // Volume, Discrete\n forcedExpiratoryVolume1 = 'HKQuantityTypeIdentifierForcedExpiratoryVolume1', // Volume, Discrete\n peakExpiratoryFlowRate = 'HKQuantityTypeIdentifierPeakExpiratoryFlowRate', // Volume/Time, Discrete\n environmentalAudioExposure = 'HKQuantityTypeIdentifierEnvironmentalAudioExposure', // Pressure, Cumulative\n\n headphoneAudioExposure = 'HKQuantityTypeIdentifierHeadphoneAudioExposure', // Pressure, Cumulative\n // Nutrition\n dietaryFatTotal = 'HKQuantityTypeIdentifierDietaryFatTotal', // Mass, Cumulative\n dietaryFatPolyunsaturated = 'HKQuantityTypeIdentifierDietaryFatPolyunsaturated', // Mass, Cumulative\n dietaryFatMonounsaturated = 'HKQuantityTypeIdentifierDietaryFatMonounsaturated', // Mass, Cumulative\n dietaryFatSaturated = 'HKQuantityTypeIdentifierDietaryFatSaturated', // Mass, Cumulative\n dietaryCholesterol = 'HKQuantityTypeIdentifierDietaryCholesterol', // Mass, Cumulative\n dietarySodium = 'HKQuantityTypeIdentifierDietarySodium', // Mass, Cumulative\n dietaryCarbohydrates = 'HKQuantityTypeIdentifierDietaryCarbohydrates', // Mass, Cumulative\n dietaryFiber = 'HKQuantityTypeIdentifierDietaryFiber', // Mass, Cumulative\n dietarySugar = 'HKQuantityTypeIdentifierDietarySugar', // Mass, Cumulative\n dietaryEnergyConsumed = 'HKQuantityTypeIdentifierDietaryEnergyConsumed', // Energy, Cumulative\n dietaryProtein = 'HKQuantityTypeIdentifierDietaryProtein', // Mass, Cumulative\n\n dietaryVitaminA = 'HKQuantityTypeIdentifierDietaryVitaminA', // Mass, Cumulative\n dietaryVitaminB6 = 'HKQuantityTypeIdentifierDietaryVitaminB6', // Mass, Cumulative\n dietaryVitaminB12 = 'HKQuantityTypeIdentifierDietaryVitaminB12', // Mass, Cumulative\n dietaryVitaminC = 'HKQuantityTypeIdentifierDietaryVitaminC', // Mass, Cumulative\n dietaryVitaminD = 'HKQuantityTypeIdentifierDietaryVitaminD', // Mass, Cumulative\n dietaryVitaminE = 'HKQuantityTypeIdentifierDietaryVitaminE', // Mass, Cumulative\n dietaryVitaminK = 'HKQuantityTypeIdentifierDietaryVitaminK', // Mass, Cumulative\n dietaryCalcium = 'HKQuantityTypeIdentifierDietaryCalcium', // Mass, Cumulative\n dietaryIron = 'HKQuantityTypeIdentifierDietaryIron', // Mass, Cumulative\n dietaryThiamin = 'HKQuantityTypeIdentifierDietaryThiamin', // Mass, Cumulative\n dietaryRiboflavin = 'HKQuantityTypeIdentifierDietaryRiboflavin', // Mass, Cumulative\n dietaryNiacin = 'HKQuantityTypeIdentifierDietaryNiacin', // Mass, Cumulative\n dietaryFolate = 'HKQuantityTypeIdentifierDietaryFolate', // Mass, Cumulative\n dietaryBiotin = 'HKQuantityTypeIdentifierDietaryBiotin', // Mass, Cumulative\n dietaryPantothenicAcid = 'HKQuantityTypeIdentifierDietaryPantothenicAcid', // Mass, Cumulative\n dietaryPhosphorus = 'HKQuantityTypeIdentifierDietaryPhosphorus', // Mass, Cumulative\n dietaryIodine = 'HKQuantityTypeIdentifierDietaryIodine', // Mass, Cumulative\n dietaryMagnesium = 'HKQuantityTypeIdentifierDietaryMagnesium', // Mass, Cumulative\n dietaryZinc = 'HKQuantityTypeIdentifierDietaryZinc', // Mass, Cumulative\n dietarySelenium = 'HKQuantityTypeIdentifierDietarySelenium', // Mass, Cumulative\n dietaryCopper = 'HKQuantityTypeIdentifierDietaryCopper', // Mass, Cumulative\n dietaryManganese = 'HKQuantityTypeIdentifierDietaryManganese', // Mass, Cumulative\n dietaryChromium = 'HKQuantityTypeIdentifierDietaryChromium', // Mass, Cumulative\n dietaryMolybdenum = 'HKQuantityTypeIdentifierDietaryMolybdenum', // Mass, Cumulative\n dietaryChloride = 'HKQuantityTypeIdentifierDietaryChloride', // Mass, Cumulative\n dietaryPotassium = 'HKQuantityTypeIdentifierDietaryPotassium', // Mass, Cumulative\n dietaryCaffeine = 'HKQuantityTypeIdentifierDietaryCaffeine', // Mass, Cumulative\n dietaryWater = 'HKQuantityTypeIdentifierDietaryWater', // Volume, Cumulative\n\n uvExposure = 'HKQuantityTypeIdentifierUvExposure', // Scalar (Count), Discrete\n}\n\nexport enum HKAuthorizationRequestStatus {\n unknown = 0,\n shouldRequest = 1,\n unnecessary = 2,\n}\n\nexport type HKQuantity<T extends HKUnit = HKUnit> = {\n unit: T;\n quantity: number;\n};\n\nexport enum HKBloodType {\n notSet = 0,\n aPositive = 1,\n aNegative = 2,\n bPositive = 3,\n bNegative = 4,\n abPositive = 5,\n abNegative = 6,\n oPositive = 7,\n oNegative = 8,\n}\n\nexport enum HKBiologicalSex {\n notSet = 0,\n female = 1,\n male = 2,\n other = 3,\n}\n\nexport enum HKFitzpatrickSkinType {\n notSet = 0,\n I = 1,\n II = 2,\n III = 3,\n IV = 4,\n V = 5,\n VI = 6,\n}\n\nexport enum HKStatisticsOptions {\n cumulativeSum = 'cumulativeSum',\n discreteAverage = 'discreteAverage',\n discreteMax = 'discreteMax',\n discreteMin = 'discreteMin',\n discreteMostRecent = 'discreteMostRecent',\n duration = 'duration',\n mostRecent = 'mostRecent',\n separateBySource = 'separateBySource',\n}\n\nexport type QueryStatisticsResponseRaw<TUnit extends HKUnit = HKUnit> = {\n averageQuantity?: HKQuantity<TUnit>;\n maximumQuantity?: HKQuantity<TUnit>;\n minimumQuantity?: HKQuantity<TUnit>;\n sumQuantity?: HKQuantity<TUnit>;\n mostRecentQuantity?: HKQuantity<TUnit>;\n mostRecentQuantityDateInterval?: { from: string; to: string };\n duration?: HKQuantity<HKUnit.Seconds>;\n};\n\nexport enum HKCategoryValueCervicalMucusQuality {\n dry = 1,\n sticky = 2,\n creamy = 3,\n watery = 4,\n eggWhite = 5,\n}\n\nexport enum HKCategoryValueMenstrualFlow {\n unspecified = 1,\n none = 5,\n light = 2,\n medium = 3,\n heavy = 4,\n}\n\nexport enum HKCategoryValueOvulationTestResult {\n negative = 1,\n luteinizingHormoneSurge = 2,\n indeterminate = 3,\n estrogenSurge = 4,\n}\n\nexport enum HKCategoryValueSleepAnalysis {\n inBed = 0,\n asleep = 1,\n awake = 2,\n}\n\nexport enum HKCategoryValueAppetiteChanges {\n decreased = 2,\n increased = 3,\n noChange = 1,\n unspecified = 0,\n}\n\nexport enum HKCategoryValuePresence {\n notPresent = 1,\n present = 0,\n}\n\nexport enum HKCategoryValueSeverity {\n notPresent = 1,\n mild = 2,\n moderate = 3,\n severe = 4,\n unspecified = 0,\n}\n\nexport enum HKCategoryValueNotApplicable {\n notApplicable = 0,\n}\n\nexport type HKCategoryValue =\n | HKCategoryValueAppetiteChanges\n | HKCategoryValuePresence\n | HKCategoryValueSeverity\n | HKCategoryValuePresence\n | HKCategoryValueMenstrualFlow\n | HKCategoryValueSleepAnalysis\n | HKCategoryValueCervicalMucusQuality\n | HKCategoryValueOvulationTestResult\n | number;\n\nexport enum HKInsulinDeliveryReason {\n basal = 1,\n bolus = 2,\n}\n\nexport type MetadataMapperForQuantityIdentifier<\n TQuantityTypeIdentifier = HKQuantityTypeIdentifier\n> = TQuantityTypeIdentifier extends HKQuantityTypeIdentifier.insulinDelivery\n ? HKGenericMetadata & {\n HKInsulinDeliveryReason: HKInsulinDeliveryReason;\n }\n : TQuantityTypeIdentifier extends HKQuantityTypeIdentifier.bloodGlucose\n ? HKGenericMetadata & {\n HKBloodGlucoseMealTime?: number;\n }\n : TQuantityTypeIdentifier extends HKQuantityTypeIdentifier.heartRate\n ? HKGenericMetadata & {\n HKHeartRateMotionContext?: HKHeartRateMotionContext;\n }\n : HKGenericMetadata;\n\nexport type MetadataMapperForCorrelationIdentifier<\n TCorrelationTypeIdentifier = HKCorrelationTypeIdentifier\n> = TCorrelationTypeIdentifier extends HKCorrelationTypeIdentifier.food\n ? HKGenericMetadata & {\n HKFoodType?: string;\n }\n : HKGenericMetadata;\n\nexport type HKCategoryValueForIdentifier<\n T extends HKCategoryTypeIdentifier\n> = T extends HKCategoryTypeIdentifier.cervicalMucusQuality\n ? HKCategoryValueCervicalMucusQuality\n : T extends HKCategoryTypeIdentifier.menstrualFlow\n ? HKCategoryValueMenstrualFlow\n : T extends HKCategoryTypeIdentifier.ovulationTestResult\n ? HKCategoryValueOvulationTestResult\n : T extends HKCategoryTypeIdentifier.sleepAnalysis\n ? HKCategoryValueSleepAnalysis\n : T extends HKCategoryTypeIdentifier.mindfulSession\n ? HKCategoryValueNotApplicable\n : T extends HKCategoryTypeIdentifier.intermenstrualBleeding\n ? HKCategoryValueNotApplicable\n : T extends HKCategoryTypeIdentifier.highHeartRateEvent\n ? HKCategoryValueNotApplicable\n : T extends HKCategoryTypeIdentifier.sexualActivity\n ? HKCategoryValueNotApplicable\n : T extends HKCategoryTypeIdentifier.appleStandHour\n ? HKCategoryValueAppleStandHour\n : number;\n\nexport type MetadataMapperForCategoryIdentifier<\n T extends HKCategoryTypeIdentifier\n> = T extends HKCategoryTypeIdentifier.sexualActivity\n ? HKGenericMetadata & {\n HKSexualActivityProtectionUsed: boolean;\n }\n : T extends HKCategoryTypeIdentifier.menstrualFlow\n ? HKGenericMetadata & {\n HKMenstrualCycleStart: boolean;\n }\n : HKGenericMetadata;\n\n// Maps directly to https://developer.apple.com/documentation/healthkit/hkwheelchairuse\nexport enum HKWheelchairUse {\n notSet = 0,\n no = 1,\n yes = 2,\n}\n\n// Unit types are a straight mapping from here https://developer.apple.com/documentation/healthkit/hkunit/1615733-init\nexport enum HKUnitSIPrefix {\n Pico = 'p',\n Nano = 'n',\n Micro = 'mc',\n Milli = 'm',\n Centi = 'c',\n Deci = 'd',\n Deca = 'da',\n Hecto = 'h',\n Kilo = 'k',\n Mega = 'M',\n Giga = 'G',\n Tera = 'T',\n}\n\nexport enum HKUnitSI {\n Grams = 'g',\n Joules = 'J',\n Kelvin = 'K',\n Liters = 'l',\n Meters = 'm',\n Pascals = 'Pa',\n Seconds = 's',\n Siemens = 'S',\n}\n\nexport enum HKUnit {\n Grams = 'g',\n Joules = 'J',\n Kelvin = 'K',\n Liters = 'l',\n Meters = 'm',\n Pascals = 'Pa',\n Seconds = 's',\n Siemens = 'S',\n\n Atmospheres = 'atm',\n CentimetersOfWater = 'cmAq',\n Count = 'count',\n Days = 'd',\n DecibelHearingLevel = 'dBHL',\n DecibelSoundPressureLevel = 'dBASPL',\n DegreesCelsius = 'degC',\n DegreesFahrenheit = 'degF',\n Feet = 'ft',\n Hertz = 'Hz',\n Hours = 'hr',\n ImperialCup = 'cup_imp',\n ImperialFluidOunces = 'fl_oz_imp',\n ImperialPint = 'pt_imp',\n Inches = 'in',\n InternationalUnit = 'IU',\n Kilocalories = 'kcal',\n LargeCalories = 'Cal',\n Miles = 'mi',\n MillimetersOfMercury = 'mmHg',\n Minutes = 'min',\n Ounces = 'oz',\n Percent = '%',\n Pounds = 'lb',\n SmallCalories = 'cal',\n Stones = 'st',\n USCup = 'cup_us',\n USFluidOunces = 'fl_oz_us',\n USPint = 'pt_us',\n Yard = 'yd',\n\n GlucoseMmolPerL = 'mmol<180.15588000005408>/l',\n GlucoseMgPerDl = 'mg/dL',\n}\n\nexport type HKDevice = {\n name: string;\n firmwareVersion: string;\n hardwareVersion: string;\n localIdentifier: string;\n manufacturer: string;\n model: string;\n softwareVersion: string;\n};\n\nexport type HKQuantitySampleRaw<\n TQuantityIdentifier extends HKQuantityTypeIdentifier = HKQuantityTypeIdentifier,\n TUnit extends HKUnit = HKUnit\n> = {\n uuid: string;\n device?: HKDevice;\n quantityType: TQuantityIdentifier;\n startDate: string;\n endDate: string;\n quantity: number;\n unit: TUnit;\n metadata: MetadataMapperForQuantityIdentifier<TQuantityIdentifier>;\n};\n\nexport type HKWorkoutRaw<TEnergy extends HKUnit, TDistance extends HKUnit> = {\n workoutActivityType: HKWorkoutActivityType;\n duration: number;\n totalDistance?: HKQuantity<TDistance>;\n totalEnergyBurned?: HKQuantity<TEnergy>;\n totalSwimmingStrokeCount?: HKQuantity<HKUnit.Count>;\n totalFlightsClimbed?: HKQuantity<HKUnit.Count>;\n startDate: string;\n endDate: string;\n metadata?: HKWorkoutMetadata;\n};\n\n// Straight mapping to https://developer.apple.com/documentation/healthkit/hkcharacteristictypeidentifier\nexport enum HKCharacteristicTypeIdentifier {\n fitzpatrickSkinType = 'HKCharacteristicTypeIdentifierFitzpatrickSkinType',\n biologicalSex = 'HKCharacteristicTypeIdentifierBiologicalSex',\n bloodType = 'HKCharacteristicTypeIdentifierBloodType',\n dateOfBirth = 'HKCharacteristicTypeIdentifierDateOfBirth',\n wheelchairUse = 'HKCharacteristicTypeIdentifierWheelchairUse',\n}\n\nexport type WritePermssions = {\n [key in\n | HKCharacteristicTypeIdentifier\n | HKQuantityTypeIdentifier\n | HKCategoryTypeIdentifier]: boolean;\n};\n\nexport type ReadPermssions = {\n [key in\n | HKQuantityTypeIdentifier\n | HKCharacteristicTypeIdentifier\n | HKCategoryTypeIdentifier]: boolean;\n};\n\nexport type HKCategorySampleRaw<\n T extends HKCategoryTypeIdentifier = HKCategoryTypeIdentifier\n> = {\n uuid: string;\n device?: HKDevice;\n categoryType: T;\n startDate: string;\n endDate: string;\n value: HKCategoryValueForIdentifier<T>;\n metadata: MetadataMapperForCategoryIdentifier<T>;\n};\n\nexport type HKCorrelationRaw<\n TIdentifier extends HKCorrelationTypeIdentifier\n> = {\n correlationType: HKCorrelationTypeIdentifier;\n objects: (HKQuantitySampleRaw | HKCategorySampleRaw)[];\n metadata: MetadataMapperForCorrelationIdentifier<TIdentifier>;\n startDate: string;\n endDate: string;\n};\n\ntype QueryId = string;\n\nexport enum HKCorrelationTypeIdentifier {\n bloodPressure = 'HKCorrelationTypeIdentifierBloodPressure',\n food = 'HKCorrelationTypeIdentifierFood',\n}\n\nexport enum HKUpdateFrequency {\n immediate = 1,\n hourly = 2,\n daily = 3,\n weekly = 4,\n}\n\ntype ReactNativeHealthkitTypeNative = {\n isHealthDataAvailable(): Promise<boolean>;\n getBloodType(): Promise<HKBloodType>;\n getDateOfBirth(): Promise<string>;\n getBiologicalSex(): Promise<HKBiologicalSex>;\n getFitzpatrickSkinType(): Promise<HKFitzpatrickSkinType>;\n getWheelchairUse: () => Promise<HKWheelchairUse>;\n\n enableBackgroundDelivery: (\n typeIdentifier: HKSampleTypeIdentifier,\n updateFrequency: HKUpdateFrequency\n ) => Promise<boolean>;\n disableBackgroundDelivery: (\n typeIdentifier: HKSampleTypeIdentifier\n ) => Promise<boolean>;\n disableAllBackgroundDelivery: () => Promise<boolean>;\n\n saveCorrelationSample: <TIdentifier extends HKCorrelationTypeIdentifier>(\n typeIdentifier: TIdentifier,\n samples: Omit<\n HKQuantitySampleRaw | HKCategorySampleRaw,\n 'startDate' | 'endDate' | 'uuid' | 'device'\n >[],\n start: string,\n end: string,\n metadata: MetadataMapperForCorrelationIdentifier<TIdentifier>\n ) => Promise<boolean>;\n\n saveWorkoutSample: (\n typeIdentifier: HKWorkoutActivityType,\n quantities: Omit<\n HKQuantitySampleRaw,\n 'startDate' | 'endDate' | 'uuid' | 'device'\n >[],\n start: string,\n end: string,\n metadata: HKWorkoutMetadata\n ) => Promise<boolean>;\n\n queryCorrelationSamples: <TIdentifier extends HKCorrelationTypeIdentifier>(\n typeIdentifier: TIdentifier,\n from: string,\n to: string\n ) => Promise<HKCorrelationRaw<TIdentifier>[]>;\n\n subscribeToObserverQuery(\n identifier: HKSampleTypeIdentifier\n ): Promise<QueryId>;\n unsubscribeQuery(queryId: QueryId): Promise<boolean>;\n authorizationStatusFor(\n type: HKSampleTypeIdentifier | HKCharacteristicTypeIdentifier\n ): Promise<boolean>;\n getRequestStatusForAuthorization(\n write: WritePermssions | {},\n read: ReadPermssions | {}\n ): Promise<HKAuthorizationRequestStatus>;\n requestAuthorization(\n write: WritePermssions | {},\n read: ReadPermssions | {}\n ): Promise<boolean>;\n saveQuantitySample: (\n identifier: HKQuantityTypeIdentifier,\n unit: HKUnit,\n value: number,\n start: string,\n end: string,\n metadata: Object\n ) => Promise<boolean>;\n queryWorkoutSamples: <TEnergy extends HKUnit, TDistance extends HKUnit>(\n energyUnit: TEnergy,\n distanceUnit: TDistance,\n from: string,\n to: string,\n limit: Number,\n ascending: boolean\n ) => Promise<HKWorkoutRaw<TEnergy, TDistance>[]>;\n queryCategorySamples: <T extends HKCategoryTypeIdentifier>(\n identifier: T,\n from: string,\n to: string,\n limit: Number,\n ascending: boolean\n ) => Promise<HKCategorySampleRaw<T>[]>;\n queryQuantitySamples: <\n TUnit extends HKUnit,\n TIdentifier extends HKQuantityTypeIdentifier\n >(\n identifier: TIdentifier,\n unit: TUnit,\n from: string,\n to: string,\n limit: Number,\n ascending: boolean\n ) => Promise<HKQuantitySampleRaw<TIdentifier, TUnit>[]>;\n saveCategorySample: <T extends HKCategoryTypeIdentifier>(\n identifier: T,\n value: HKCategoryValueForIdentifier<T>,\n start: string,\n end: string,\n metadata: Object\n ) => Promise<boolean>;\n queryStatisticsForQuantity: <TUnit extends HKUnit>(\n identifier: HKQuantityTypeIdentifier,\n unit: TUnit,\n from: string,\n to: string,\n options: HKStatisticsOptions[]\n ) => Promise<QueryStatisticsResponseRaw<TUnit>>;\n getPreferredUnits: (\n identifiers: HKQuantityTypeIdentifier[]\n ) => Promise<TypeToUnitMapping>;\n};\n\nconst Native = NativeModules.ReactNativeHealthkit as ReactNativeHealthkitTypeNative;\n\ntype OnChangeCallback = ({\n typeIdentifier,\n}: {\n typeIdentifier: HKSampleTypeIdentifier;\n}) => void;\n\ninterface HealthkitEventEmitter extends NativeEventEmitter {\n addListener: (\n eventType: 'onChange',\n callback: OnChangeCallback\n ) => EmitterSubscription;\n}\n\nexport const EventEmitter = new NativeEventEmitter(\n NativeModules.ReactNativeHealthkit\n) as HealthkitEventEmitter;\n\nexport default Native;\n"]}
1
+ {"version":3,"sources":["native-types.ts"],"names":["NativeModules","NativeEventEmitter","HKHeartRateMotionContext","HKCategoryTypeIdentifier","HKCategoryValueAppleStandHour","HKWorkoutActivityType","HKWeatherCondition","HKQuantityTypeIdentifier","HKAuthorizationRequestStatus","HKBloodType","HKBiologicalSex","HKFitzpatrickSkinType","HKStatisticsOptions","HKCategoryValueCervicalMucusQuality","HKCategoryValueMenstrualFlow","HKCategoryValueOvulationTestResult","HKCategoryValueSleepAnalysis","HKCategoryValueAppetiteChanges","HKCategoryValuePresence","HKCategoryValueSeverity","HKCategoryValueNotApplicable","HKInsulinDeliveryReason","HKWheelchairUse","HKUnitSIPrefix","HKUnitSI","HKUnit","HKCharacteristicTypeIdentifier","HKCorrelationTypeIdentifier","HKUpdateFrequency","Native","ReactNativeHealthkit","EventEmitter"],"mappings":"AAAA,SACEA,aADF,EAEEC,kBAFF,QAIO,cAJP;AAoBA,WAAYC,wBAAZ;;WAAYA,wB;AAAAA,EAAAA,wB,CAAAA,wB;AAAAA,EAAAA,wB,CAAAA,wB;AAAAA,EAAAA,wB,CAAAA,wB;GAAAA,wB,KAAAA,wB;;AAMZ,WAAYC,wBAAZ;;WAAYA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;AAAAA,EAAAA,wB;GAAAA,wB,KAAAA,wB;;AAgBZ,WAAYC,6BAAZ;;WAAYA,6B;AAAAA,EAAAA,6B,CAAAA,6B;AAAAA,EAAAA,6B,CAAAA,6B;GAAAA,6B,KAAAA,6B;;AAKZ,WAAYC,qBAAZ;;WAAYA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;AAAAA,EAAAA,qB,CAAAA,qB;GAAAA,qB,KAAAA,qB;;AAkGZ;AACA,WA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","sourcesContent":["import {\n NativeModules,\n NativeEventEmitter,\n EmitterSubscription,\n} from 'react-native';\n\nexport type HKWorkoutTypeIdentifier = 'HKWorkoutTypeIdentifier';\nexport type HKAudiogramTypeIdentifier = 'HKAudiogramTypeIdentifier';\n\nexport type HKSampleTypeIdentifier =\n | HKWorkoutTypeIdentifier\n | HKQuantityTypeIdentifier\n | HKCategoryTypeIdentifier\n | HKAudiogramTypeIdentifier\n | HKCorrelationTypeIdentifier;\n\nexport type TypeToUnitMapping = {\n [key in HKQuantityTypeIdentifier]: HKUnit;\n};\n\nexport enum HKHeartRateMotionContext {\n active = 2,\n notSet = 0,\n sedentary = 1,\n}\n\nexport enum HKCategoryTypeIdentifier {\n sleepAnalysis = 'HKCategoryTypeIdentifierSleepAnalysis',\n appleStandHour = 'HKCategoryTypeIdentifierAppleStandHour',\n cervicalMucusQuality = 'HKCategoryTypeIdentifierCervicalMucusQuality',\n ovulationTestResult = 'HKCategoryTypeIdentifierOvulationTestResult',\n menstrualFlow = 'HKCategoryTypeIdentifierMenstrualFlow',\n intermenstrualBleeding = 'HKCategoryTypeIdentifierIntermenstrualBleeding',\n sexualActivity = 'HKCategoryTypeIdentifierSexualActivity',\n mindfulSession = 'HKCategoryTypeIdentifierMindfulSession',\n highHeartRateEvent = 'HKCategoryTypeIdentifierHighHeartRateEvent',\n lowHeartRateEvent = 'HKCategoryTypeIdentifierLowHeartRateEvent',\n irregularHeartRhythmEvent = 'HKCategoryTypeIdentifierIrregularHeartRhythmEvent',\n audioExposureEvent = 'HKCategoryTypeIdentifierAudioExposureEvent',\n toothbrushingEvent = 'HKCategoryTypeIdentifierToothbrushingEvent',\n}\n\nexport enum HKCategoryValueAppleStandHour {\n stood = 0,\n idle = 1,\n}\n\nexport enum HKWorkoutActivityType {\n americanFootball = 1,\n archery = 2,\n australianFootball = 3,\n badminton = 4,\n baseball = 5,\n basketball = 6,\n bowling = 7,\n boxing = 8, // See also HKWorkoutActivityTypeKickboxing.,\n climbing = 9,\n cricket = 10,\n crossTraining = 11, // Any mix of cardio and/or strength training. See also HKWorkoutActivityTypeCoreTraining and HKWorkoutActivityTypeFlexibility.,\n curling = 12,\n cycling = 13,\n dance = 14,\n danceInspiredTraining = 15, // This enum remains available to access older data.,\n elliptical = 16,\n equestrianSports = 17, // Polo, Horse Racing, Horse Riding, etc.,\n fencing = 18,\n fishing = 19,\n functionalStrengthTraining = 20, // Primarily free weights and/or body weight and/or accessories,\n golf = 21,\n gymnastics = 22,\n handball = 23,\n hiking = 24,\n hockey = 25, // Ice Hockey, Field Hockey, etc.,\n hunting = 26,\n lacrosse = 27,\n martialArts = 28,\n mindAndBody = 29, // Qigong, meditation, etc.,\n mixedMetabolicCardioTraining = 30, // This enum remains available to access older data.,\n paddleSports = 31, // Canoeing, Kayaking, Outrigger, Stand Up Paddle Board, etc.,\n play = 32, // Dodge Ball, Hopscotch, Tetherball, Jungle Gym, etc.,\n preparationAndRecovery = 33, // Foam rolling, stretching, etc.,\n racquetball = 34,\n rowing = 35,\n rugby = 36,\n running = 37,\n sailing = 38,\n skatingSports = 39, // Ice Skating, Speed Skating, Inline Skating, Skateboarding, etc.,\n snowSports = 40, // Sledding, Snowmobiling, Building a Snowman, etc. See also HKWorkoutActivityTypeCrossCountrySkiing, HKWorkoutActivityTypeSnowboarding, and HKWorkoutActivityTypeDownhillSkiing.,\n soccer = 41,\n softball = 42,\n squash = 43,\n stairClimbing = 44, // See also HKWorkoutActivityTypeStairs and HKWorkoutActivityTypeStepTraining.,\n surfingSports = 45, // Traditional Surfing, Kite Surfing, Wind Surfing, etc.,\n swimming = 46,\n tableTennis = 47,\n tennis = 48,\n trackAndField = 49, // Shot Put, Javelin, Pole Vaulting, etc.,\n traditionalStrengthTraining = 50, // Primarily machines and/or free weights,\n volleyball = 51,\n walking = 52,\n waterFitness = 53,\n waterPolo = 54,\n waterSports = 55, // Water Skiing, Wake Boarding, etc.,\n wrestling = 56,\n yoga = 57,\n barre = 58, // HKWorkoutActivityTypeDanceInspiredTraining,\n coreTraining = 59,\n crossCountrySkiing = 60,\n downhillSkiing = 61,\n flexibility = 62,\n highIntensityIntervalTraining = 63,\n jumpRope = 64,\n kickboxing = 65,\n pilates = 66, // HKWorkoutActivityTypeDanceInspiredTraining,\n snowboarding = 67,\n stairs = 68,\n stepTraining = 69,\n wheelchairWalkPace = 70,\n wheelchairRunPace = 71,\n taiChi = 72,\n mixedCardio = 73, // HKWorkoutActivityTypeMixedMetabolicCardioTraining,\n handCycling = 74,\n discSports = 75,\n fitnessGaming = 76,\n other = 3000,\n}\n\nexport type HKGenericMetadata = {\n [key: string]: string | number | boolean | HKQuantity | undefined;\n HKExternalUUID?: string;\n HKTimeZone?: string;\n HKWasUserEntered?: boolean;\n HKDeviceSerialNumber?: string;\n HKUDIDeviceIdentifier?: string;\n HKUDIProductionIdentifier?: string;\n HKDigitalSignature?: string;\n HKDeviceName?: string;\n HKDeviceManufacturerName?: string;\n HKSyncIdentifier?: string;\n HKSyncVersion?: number;\n HKWasTakenInLab?: boolean;\n HKReferenceRangeLowerLimit?: number;\n HKReferenceRangeUpperLimit?: number;\n};\n\n// documented at https://developer.apple.com/documentation/healthkit/hkweathercondition\nexport enum HKWeatherCondition {\n none = 0,\n clear = 1,\n fair = 2,\n partlyCloudy = 3,\n mostlyCloudy = 4,\n cloudy = 5,\n foggy = 6,\n haze = 7,\n windy = 8,\n blustery = 9,\n smoky = 10,\n dust = 11,\n snow = 12,\n hail = 13,\n sleet = 14,\n freezingDrizzle = 15,\n freezingRain = 16,\n mixedRainAndHail = 17,\n mixedRainAndSnow = 18,\n mixedRainAndSleet = 19,\n mixedSnowAndSleet = 20,\n drizzle = 21,\n scatteredShowers = 22,\n showers = 23,\n thunderstorms = 24,\n tropicalStorm = 25,\n hurricane = 26,\n tornado = 27,\n}\n\nexport interface HKWorkoutMetadata\n extends HKGenericMetadata /*<TTemperatureUnit extends HKUnit>*/ {\n HKWeatherCondition?: HKWeatherCondition;\n HKWeatherHumidity?: HKQuantity<HKUnit.Percent>;\n // HKWeatherTemperature: HKQuantity<TTemperatureUnit>\n}\n\n// Straight mapping to https://developer.apple.com/documentation/healthkit/hkquantitytypeidentifier\nexport enum HKQuantityTypeIdentifier {\n bodyMassIndex = 'HKQuantityTypeIdentifierBodyMassIndex',\n bodyFatPercentage = 'HKQuantityTypeIdentifierBodyFatPercentage', // Scalar(Percent, 0.0 - 1.0), Discrete\n height = 'HKQuantityTypeIdentifierHeight', // Length, Discrete\n bodyMass = 'HKQuantityTypeIdentifierBodyMass', // Mass, Discrete\n leanBodyMass = 'HKQuantityTypeIdentifierLeanBodyMass', // Mass, Discrete\n\n waistCircumference = 'HKQuantityTypeIdentifierWaistCircumference', // Length, Discrete\n // Fitness\n stepCount = 'HKQuantityTypeIdentifierStepCount', // Scalar(Count), Cumulative\n distanceWalkingRunning = 'HKQuantityTypeIdentifierDistanceWalkingRunning', // Length, Cumulative\n distanceCycling = 'HKQuantityTypeIdentifierDistanceCycling', // Length, Cumulative\n distanceWheelchair = 'HKQuantityTypeIdentifierDistanceWheelchair', // Length, Cumulative\n basalEnergyBurned = 'HKQuantityTypeIdentifierBasalEnergyBurned', // Energy, Cumulative\n activeEnergyBurned = 'HKQuantityTypeIdentifierActiveEnergyBurned', // Energy, Cumulative\n flightsClimbed = 'HKQuantityTypeIdentifierFlightsClimbed', // Scalar(Count), Cumulative\n nikeFuel = 'HKQuantityTypeIdentifierNikeFuel', // Scalar(Count), Cumulative\n appleExerciseTime = 'HKQuantityTypeIdentifierAppleExerciseTime', // Time Cumulative\n pushCount = 'HKQuantityTypeIdentifierPushCount', // Scalar(Count), Cumulative\n distanceSwimming = 'HKQuantityTypeIdentifierDistanceSwimming', // Length, Cumulative\n swimmingStrokeCount = 'HKQuantityTypeIdentifierSwimmingStrokeCount', // Scalar(Count), Cumulative\n vo2Max = 'HKQuantityTypeIdentifierVo2Max', // ml/(kg*min) Discrete\n distanceDownhillSnowSports = 'HKQuantityTypeIdentifierDistanceDownhillSnowSports', // Length, Cumulative\n\n appleStandTime = 'HKQuantityTypeIdentifierAppleStandTime', // Time, Cumulative\n // Vitals\n heartRate = 'HKQuantityTypeIdentifierHeartRate', // Scalar(Count)/Time, Discrete\n bodyTemperature = 'HKQuantityTypeIdentifierBodyTemperature', // Temperature, Discrete\n basalBodyTemperature = 'HKQuantityTypeIdentifierBasalBodyTemperature', // Basal Body Temperature, Discrete\n bloodPressureSystolic = 'HKQuantityTypeIdentifierBloodPressureSystolic', // Pressure, Discrete\n bloodPressureDiastolic = 'HKQuantityTypeIdentifierBloodPressureDiastolic', // Pressure, Discrete\n respiratoryRate = 'HKQuantityTypeIdentifierRespiratoryRate', // Scalar(Count)/Time, Discrete\n // Beats per minute estimate of a user's lowest heart rate while at rest\n restingHeartRate = 'HKQuantityTypeIdentifierRestingHeartRate', // Scalar(Count)/Time, Discrete\n // Average heartbeats per minute captured by an Apple Watch while a user is walking\n walkingHeartRateAverage = 'HKQuantityTypeIdentifierWalkingHeartRateAverage', // Scalar(Count)/Time, Discrete\n // The standard deviation of heart beat-to-beat intevals (Standard Deviation of Normal to Normal)\n\n heartRateVariabilitySDNN = 'HKQuantityTypeIdentifierHeartRateVariabilitySDNN', // Time (ms), Discrete\n // Results\n oxygenSaturation = 'HKQuantityTypeIdentifierOxygenSaturation', // Scalar (Percent, 0.0 - 1.0, Discrete\n peripheralPerfusionIndex = 'HKQuantityTypeIdentifierPeripheralPerfusionIndex', // Scalar(Percent, 0.0 - 1.0), Discrete\n bloodGlucose = 'HKQuantityTypeIdentifierBloodGlucose', // Mass/Volume, Discrete\n numberOfTimesFallen = 'HKQuantityTypeIdentifierNumberOfTimesFallen', // Scalar(Count), Cumulative\n electrodermalActivity = 'HKQuantityTypeIdentifierElectrodermalActivity', // Conductance, Discrete\n inhalerUsage = 'HKQuantityTypeIdentifierInhalerUsage', // Scalar(Count), Cumulative\n insulinDelivery = 'HKQuantityTypeIdentifierInsulinDelivery', // Pharmacology (IU) Cumulative\n bloodAlcoholContent = 'HKQuantityTypeIdentifierBloodAlcoholContent', // Scalar(Percent, 0.0 - 1.0), Discrete\n forcedVitalCapacity = 'HKQuantityTypeIdentifierForcedVitalCapacity', // Volume, Discrete\n forcedExpiratoryVolume1 = 'HKQuantityTypeIdentifierForcedExpiratoryVolume1', // Volume, Discrete\n peakExpiratoryFlowRate = 'HKQuantityTypeIdentifierPeakExpiratoryFlowRate', // Volume/Time, Discrete\n environmentalAudioExposure = 'HKQuantityTypeIdentifierEnvironmentalAudioExposure', // Pressure, Cumulative\n\n headphoneAudioExposure = 'HKQuantityTypeIdentifierHeadphoneAudioExposure', // Pressure, Cumulative\n // Nutrition\n dietaryFatTotal = 'HKQuantityTypeIdentifierDietaryFatTotal', // Mass, Cumulative\n dietaryFatPolyunsaturated = 'HKQuantityTypeIdentifierDietaryFatPolyunsaturated', // Mass, Cumulative\n dietaryFatMonounsaturated = 'HKQuantityTypeIdentifierDietaryFatMonounsaturated', // Mass, Cumulative\n dietaryFatSaturated = 'HKQuantityTypeIdentifierDietaryFatSaturated', // Mass, Cumulative\n dietaryCholesterol = 'HKQuantityTypeIdentifierDietaryCholesterol', // Mass, Cumulative\n dietarySodium = 'HKQuantityTypeIdentifierDietarySodium', // Mass, Cumulative\n dietaryCarbohydrates = 'HKQuantityTypeIdentifierDietaryCarbohydrates', // Mass, Cumulative\n dietaryFiber = 'HKQuantityTypeIdentifierDietaryFiber', // Mass, Cumulative\n dietarySugar = 'HKQuantityTypeIdentifierDietarySugar', // Mass, Cumulative\n dietaryEnergyConsumed = 'HKQuantityTypeIdentifierDietaryEnergyConsumed', // Energy, Cumulative\n dietaryProtein = 'HKQuantityTypeIdentifierDietaryProtein', // Mass, Cumulative\n\n dietaryVitaminA = 'HKQuantityTypeIdentifierDietaryVitaminA', // Mass, Cumulative\n dietaryVitaminB6 = 'HKQuantityTypeIdentifierDietaryVitaminB6', // Mass, Cumulative\n dietaryVitaminB12 = 'HKQuantityTypeIdentifierDietaryVitaminB12', // Mass, Cumulative\n dietaryVitaminC = 'HKQuantityTypeIdentifierDietaryVitaminC', // Mass, Cumulative\n dietaryVitaminD = 'HKQuantityTypeIdentifierDietaryVitaminD', // Mass, Cumulative\n dietaryVitaminE = 'HKQuantityTypeIdentifierDietaryVitaminE', // Mass, Cumulative\n dietaryVitaminK = 'HKQuantityTypeIdentifierDietaryVitaminK', // Mass, Cumulative\n dietaryCalcium = 'HKQuantityTypeIdentifierDietaryCalcium', // Mass, Cumulative\n dietaryIron = 'HKQuantityTypeIdentifierDietaryIron', // Mass, Cumulative\n dietaryThiamin = 'HKQuantityTypeIdentifierDietaryThiamin', // Mass, Cumulative\n dietaryRiboflavin = 'HKQuantityTypeIdentifierDietaryRiboflavin', // Mass, Cumulative\n dietaryNiacin = 'HKQuantityTypeIdentifierDietaryNiacin', // Mass, Cumulative\n dietaryFolate = 'HKQuantityTypeIdentifierDietaryFolate', // Mass, Cumulative\n dietaryBiotin = 'HKQuantityTypeIdentifierDietaryBiotin', // Mass, Cumulative\n dietaryPantothenicAcid = 'HKQuantityTypeIdentifierDietaryPantothenicAcid', // Mass, Cumulative\n dietaryPhosphorus = 'HKQuantityTypeIdentifierDietaryPhosphorus', // Mass, Cumulative\n dietaryIodine = 'HKQuantityTypeIdentifierDietaryIodine', // Mass, Cumulative\n dietaryMagnesium = 'HKQuantityTypeIdentifierDietaryMagnesium', // Mass, Cumulative\n dietaryZinc = 'HKQuantityTypeIdentifierDietaryZinc', // Mass, Cumulative\n dietarySelenium = 'HKQuantityTypeIdentifierDietarySelenium', // Mass, Cumulative\n dietaryCopper = 'HKQuantityTypeIdentifierDietaryCopper', // Mass, Cumulative\n dietaryManganese = 'HKQuantityTypeIdentifierDietaryManganese', // Mass, Cumulative\n dietaryChromium = 'HKQuantityTypeIdentifierDietaryChromium', // Mass, Cumulative\n dietaryMolybdenum = 'HKQuantityTypeIdentifierDietaryMolybdenum', // Mass, Cumulative\n dietaryChloride = 'HKQuantityTypeIdentifierDietaryChloride', // Mass, Cumulative\n dietaryPotassium = 'HKQuantityTypeIdentifierDietaryPotassium', // Mass, Cumulative\n dietaryCaffeine = 'HKQuantityTypeIdentifierDietaryCaffeine', // Mass, Cumulative\n dietaryWater = 'HKQuantityTypeIdentifierDietaryWater', // Volume, Cumulative\n\n // Mobility\n sixMinuteWalkTestDistance = 'HKQuantityTypeIdentifierSixMinuteWalkTestDistance',\n walkingSpeed = 'HKQuantityTypeIdentifierWalkingSpeed',\n walkingStepLength = 'HKQuantityTypeIdentifierWalkingStepLength',\n walkingAsymmetryPercentage = 'HKQuantityTypeIdentifierWalkingAsymmetryPercentage',\n walkingDoubleSupportPercentage = 'HKQuantityTypeIdentifierWalkingDoubleSupportPercentage',\n stairAscentSpeed = 'HKQuantityTypeIdentifierStairAscentSpeed',\n stairDescentSpeed = 'HKQuantityTypeIdentifierStairDescentSpeed',\n\n uvExposure = 'HKQuantityTypeIdentifierUvExposure', // Scalar (Count), Discrete\n}\n\nexport enum HKAuthorizationRequestStatus {\n unknown = 0,\n shouldRequest = 1,\n unnecessary = 2,\n}\n\nexport type HKQuantity<T extends HKUnit = HKUnit> = {\n unit: T;\n quantity: number;\n};\n\nexport enum HKBloodType {\n notSet = 0,\n aPositive = 1,\n aNegative = 2,\n bPositive = 3,\n bNegative = 4,\n abPositive = 5,\n abNegative = 6,\n oPositive = 7,\n oNegative = 8,\n}\n\nexport enum HKBiologicalSex {\n notSet = 0,\n female = 1,\n male = 2,\n other = 3,\n}\n\nexport enum HKFitzpatrickSkinType {\n notSet = 0,\n I = 1,\n II = 2,\n III = 3,\n IV = 4,\n V = 5,\n VI = 6,\n}\n\nexport enum HKStatisticsOptions {\n cumulativeSum = 'cumulativeSum',\n discreteAverage = 'discreteAverage',\n discreteMax = 'discreteMax',\n discreteMin = 'discreteMin',\n discreteMostRecent = 'discreteMostRecent',\n duration = 'duration',\n mostRecent = 'mostRecent',\n separateBySource = 'separateBySource',\n}\n\nexport type QueryStatisticsResponseRaw<TUnit extends HKUnit = HKUnit> = {\n averageQuantity?: HKQuantity<TUnit>;\n maximumQuantity?: HKQuantity<TUnit>;\n minimumQuantity?: HKQuantity<TUnit>;\n sumQuantity?: HKQuantity<TUnit>;\n mostRecentQuantity?: HKQuantity<TUnit>;\n mostRecentQuantityDateInterval?: { from: string; to: string };\n duration?: HKQuantity<HKUnit.Seconds>;\n};\n\nexport enum HKCategoryValueCervicalMucusQuality {\n dry = 1,\n sticky = 2,\n creamy = 3,\n watery = 4,\n eggWhite = 5,\n}\n\nexport enum HKCategoryValueMenstrualFlow {\n unspecified = 1,\n none = 5,\n light = 2,\n medium = 3,\n heavy = 4,\n}\n\nexport enum HKCategoryValueOvulationTestResult {\n negative = 1,\n luteinizingHormoneSurge = 2,\n indeterminate = 3,\n estrogenSurge = 4,\n}\n\nexport enum HKCategoryValueSleepAnalysis {\n inBed = 0,\n asleep = 1,\n awake = 2,\n}\n\nexport enum HKCategoryValueAppetiteChanges {\n decreased = 2,\n increased = 3,\n noChange = 1,\n unspecified = 0,\n}\n\nexport enum HKCategoryValuePresence {\n notPresent = 1,\n present = 0,\n}\n\nexport enum HKCategoryValueSeverity {\n notPresent = 1,\n mild = 2,\n moderate = 3,\n severe = 4,\n unspecified = 0,\n}\n\nexport enum HKCategoryValueNotApplicable {\n notApplicable = 0,\n}\n\nexport type HKCategoryValue =\n | HKCategoryValueAppetiteChanges\n | HKCategoryValuePresence\n | HKCategoryValueSeverity\n | HKCategoryValuePresence\n | HKCategoryValueMenstrualFlow\n | HKCategoryValueSleepAnalysis\n | HKCategoryValueCervicalMucusQuality\n | HKCategoryValueOvulationTestResult\n | number;\n\nexport enum HKInsulinDeliveryReason {\n basal = 1,\n bolus = 2,\n}\n\nexport type MetadataMapperForQuantityIdentifier<\n TQuantityTypeIdentifier = HKQuantityTypeIdentifier\n> = TQuantityTypeIdentifier extends HKQuantityTypeIdentifier.insulinDelivery\n ? HKGenericMetadata & {\n HKInsulinDeliveryReason: HKInsulinDeliveryReason;\n }\n : TQuantityTypeIdentifier extends HKQuantityTypeIdentifier.bloodGlucose\n ? HKGenericMetadata & {\n HKBloodGlucoseMealTime?: number;\n }\n : TQuantityTypeIdentifier extends HKQuantityTypeIdentifier.heartRate\n ? HKGenericMetadata & {\n HKHeartRateMotionContext?: HKHeartRateMotionContext;\n }\n : HKGenericMetadata;\n\nexport type MetadataMapperForCorrelationIdentifier<\n TCorrelationTypeIdentifier = HKCorrelationTypeIdentifier\n> = TCorrelationTypeIdentifier extends HKCorrelationTypeIdentifier.food\n ? HKGenericMetadata & {\n HKFoodType?: string;\n }\n : HKGenericMetadata;\n\nexport type HKCategoryValueForIdentifier<T extends HKCategoryTypeIdentifier> =\n T extends HKCategoryTypeIdentifier.cervicalMucusQuality\n ? HKCategoryValueCervicalMucusQuality\n : T extends HKCategoryTypeIdentifier.menstrualFlow\n ? HKCategoryValueMenstrualFlow\n : T extends HKCategoryTypeIdentifier.ovulationTestResult\n ? HKCategoryValueOvulationTestResult\n : T extends HKCategoryTypeIdentifier.sleepAnalysis\n ? HKCategoryValueSleepAnalysis\n : T extends HKCategoryTypeIdentifier.mindfulSession\n ? HKCategoryValueNotApplicable\n : T extends HKCategoryTypeIdentifier.intermenstrualBleeding\n ? HKCategoryValueNotApplicable\n : T extends HKCategoryTypeIdentifier.highHeartRateEvent\n ? HKCategoryValueNotApplicable\n : T extends HKCategoryTypeIdentifier.sexualActivity\n ? HKCategoryValueNotApplicable\n : T extends HKCategoryTypeIdentifier.appleStandHour\n ? HKCategoryValueAppleStandHour\n : number;\n\nexport type MetadataMapperForCategoryIdentifier<\n T extends HKCategoryTypeIdentifier\n> = T extends HKCategoryTypeIdentifier.sexualActivity\n ? HKGenericMetadata & {\n HKSexualActivityProtectionUsed: boolean;\n }\n : T extends HKCategoryTypeIdentifier.menstrualFlow\n ? HKGenericMetadata & {\n HKMenstrualCycleStart: boolean;\n }\n : HKGenericMetadata;\n\n// Maps directly to https://developer.apple.com/documentation/healthkit/hkwheelchairuse\nexport enum HKWheelchairUse {\n notSet = 0,\n no = 1,\n yes = 2,\n}\n\n// Unit types are a straight mapping from here https://developer.apple.com/documentation/healthkit/hkunit/1615733-init\nexport enum HKUnitSIPrefix {\n Pico = 'p',\n Nano = 'n',\n Micro = 'mc',\n Milli = 'm',\n Centi = 'c',\n Deci = 'd',\n Deca = 'da',\n Hecto = 'h',\n Kilo = 'k',\n Mega = 'M',\n Giga = 'G',\n Tera = 'T',\n}\n\nexport enum HKUnitSI {\n Grams = 'g',\n Joules = 'J',\n Kelvin = 'K',\n Liters = 'l',\n Meters = 'm',\n Pascals = 'Pa',\n Seconds = 's',\n Siemens = 'S',\n}\n\nexport enum HKUnit {\n Grams = 'g',\n Joules = 'J',\n Kelvin = 'K',\n Liters = 'l',\n Meters = 'm',\n Pascals = 'Pa',\n Seconds = 's',\n Siemens = 'S',\n\n Atmospheres = 'atm',\n CentimetersOfWater = 'cmAq',\n Count = 'count',\n Days = 'd',\n DecibelHearingLevel = 'dBHL',\n DecibelSoundPressureLevel = 'dBASPL',\n DegreesCelsius = 'degC',\n DegreesFahrenheit = 'degF',\n Feet = 'ft',\n Hertz = 'Hz',\n Hours = 'hr',\n ImperialCup = 'cup_imp',\n ImperialFluidOunces = 'fl_oz_imp',\n ImperialPint = 'pt_imp',\n Inches = 'in',\n InternationalUnit = 'IU',\n Kilocalories = 'kcal',\n LargeCalories = 'Cal',\n Miles = 'mi',\n MillimetersOfMercury = 'mmHg',\n Minutes = 'min',\n Ounces = 'oz',\n Percent = '%',\n Pounds = 'lb',\n SmallCalories = 'cal',\n Stones = 'st',\n USCup = 'cup_us',\n USFluidOunces = 'fl_oz_us',\n USPint = 'pt_us',\n Yard = 'yd',\n\n GlucoseMmolPerL = 'mmol<180.15588000005408>/l',\n GlucoseMgPerDl = 'mg/dL',\n}\n\nexport type HKDevice = {\n name: string;\n firmwareVersion: string;\n hardwareVersion: string;\n localIdentifier: string;\n manufacturer: string;\n model: string;\n softwareVersion: string;\n};\n\nexport type HKSource = {\n name: string;\n bundleIdentifier: string;\n};\n\nexport type HKSourceRevision = {\n source: HKSource;\n version: string;\n operatingSystemVersion?: string;\n productType?: string;\n};\n\nexport type HKQuantitySampleRaw<\n TQuantityIdentifier extends HKQuantityTypeIdentifier = HKQuantityTypeIdentifier,\n TUnit extends HKUnit = HKUnit\n> = {\n uuid: string;\n device?: HKDevice;\n quantityType: TQuantityIdentifier;\n startDate: string;\n endDate: string;\n quantity: number;\n unit: TUnit;\n metadata: MetadataMapperForQuantityIdentifier<TQuantityIdentifier>;\n sourceRevision?: HKSourceRevision;\n};\n\nexport type HKWorkoutRaw<TEnergy extends HKUnit, TDistance extends HKUnit> = {\n workoutActivityType: HKWorkoutActivityType;\n duration: number;\n totalDistance?: HKQuantity<TDistance>;\n totalEnergyBurned?: HKQuantity<TEnergy>;\n totalSwimmingStrokeCount?: HKQuantity<HKUnit.Count>;\n totalFlightsClimbed?: HKQuantity<HKUnit.Count>;\n startDate: string;\n endDate: string;\n metadata?: HKWorkoutMetadata;\n sourceRevision?: HKSourceRevision;\n};\n\n// Straight mapping to https://developer.apple.com/documentation/healthkit/hkcharacteristictypeidentifier\nexport enum HKCharacteristicTypeIdentifier {\n fitzpatrickSkinType = 'HKCharacteristicTypeIdentifierFitzpatrickSkinType',\n biologicalSex = 'HKCharacteristicTypeIdentifierBiologicalSex',\n bloodType = 'HKCharacteristicTypeIdentifierBloodType',\n dateOfBirth = 'HKCharacteristicTypeIdentifierDateOfBirth',\n wheelchairUse = 'HKCharacteristicTypeIdentifierWheelchairUse',\n}\n\nexport type WritePermssions = {\n [key in\n | HKCharacteristicTypeIdentifier\n | HKQuantityTypeIdentifier\n | HKCategoryTypeIdentifier]: boolean;\n};\n\nexport type ReadPermssions = {\n [key in\n | HKQuantityTypeIdentifier\n | HKCharacteristicTypeIdentifier\n | HKCategoryTypeIdentifier]: boolean;\n};\n\nexport type HKCategorySampleRaw<\n T extends HKCategoryTypeIdentifier = HKCategoryTypeIdentifier\n> = {\n uuid: string;\n device?: HKDevice;\n categoryType: T;\n startDate: string;\n endDate: string;\n value: HKCategoryValueForIdentifier<T>;\n metadata: MetadataMapperForCategoryIdentifier<T>;\n sourceRevision?: HKSourceRevision;\n};\n\nexport type HKCorrelationRaw<TIdentifier extends HKCorrelationTypeIdentifier> =\n {\n correlationType: HKCorrelationTypeIdentifier;\n objects: (HKQuantitySampleRaw | HKCategorySampleRaw)[];\n metadata: MetadataMapperForCorrelationIdentifier<TIdentifier>;\n startDate: string;\n endDate: string;\n };\n\ntype QueryId = string;\n\nexport enum HKCorrelationTypeIdentifier {\n bloodPressure = 'HKCorrelationTypeIdentifierBloodPressure',\n food = 'HKCorrelationTypeIdentifierFood',\n}\n\nexport enum HKUpdateFrequency {\n immediate = 1,\n hourly = 2,\n daily = 3,\n weekly = 4,\n}\n\ntype ReactNativeHealthkitTypeNative = {\n isHealthDataAvailable(): Promise<boolean>;\n getBloodType(): Promise<HKBloodType>;\n getDateOfBirth(): Promise<string>;\n getBiologicalSex(): Promise<HKBiologicalSex>;\n getFitzpatrickSkinType(): Promise<HKFitzpatrickSkinType>;\n getWheelchairUse: () => Promise<HKWheelchairUse>;\n\n enableBackgroundDelivery: (\n typeIdentifier: HKSampleTypeIdentifier,\n updateFrequency: HKUpdateFrequency\n ) => Promise<boolean>;\n disableBackgroundDelivery: (\n typeIdentifier: HKSampleTypeIdentifier\n ) => Promise<boolean>;\n disableAllBackgroundDelivery: () => Promise<boolean>;\n\n saveCorrelationSample: <TIdentifier extends HKCorrelationTypeIdentifier>(\n typeIdentifier: TIdentifier,\n samples: Omit<\n HKQuantitySampleRaw | HKCategorySampleRaw,\n 'startDate' | 'endDate' | 'uuid' | 'device'\n >[],\n start: string,\n end: string,\n metadata: MetadataMapperForCorrelationIdentifier<TIdentifier>\n ) => Promise<boolean>;\n\n saveWorkoutSample: (\n typeIdentifier: HKWorkoutActivityType,\n quantities: Omit<\n HKQuantitySampleRaw,\n 'startDate' | 'endDate' | 'uuid' | 'device'\n >[],\n start: string,\n end: string,\n metadata: HKWorkoutMetadata\n ) => Promise<boolean>;\n\n queryCorrelationSamples: <TIdentifier extends HKCorrelationTypeIdentifier>(\n typeIdentifier: TIdentifier,\n from: string,\n to: string\n ) => Promise<HKCorrelationRaw<TIdentifier>[]>;\n\n subscribeToObserverQuery(\n identifier: HKSampleTypeIdentifier\n ): Promise<QueryId>;\n unsubscribeQuery(queryId: QueryId): Promise<boolean>;\n authorizationStatusFor(\n type: HKSampleTypeIdentifier | HKCharacteristicTypeIdentifier\n ): Promise<boolean>;\n getRequestStatusForAuthorization(\n write: WritePermssions | {},\n read: ReadPermssions | {}\n ): Promise<HKAuthorizationRequestStatus>;\n requestAuthorization(\n write: WritePermssions | {},\n read: ReadPermssions | {}\n ): Promise<boolean>;\n saveQuantitySample: (\n identifier: HKQuantityTypeIdentifier,\n unit: HKUnit,\n value: number,\n start: string,\n end: string,\n metadata: Object\n ) => Promise<boolean>;\n queryWorkoutSamples: <TEnergy extends HKUnit, TDistance extends HKUnit>(\n energyUnit: TEnergy,\n distanceUnit: TDistance,\n from: string,\n to: string,\n limit: Number,\n ascending: boolean\n ) => Promise<HKWorkoutRaw<TEnergy, TDistance>[]>;\n queryCategorySamples: <T extends HKCategoryTypeIdentifier>(\n identifier: T,\n from: string,\n to: string,\n limit: Number,\n ascending: boolean\n ) => Promise<HKCategorySampleRaw<T>[]>;\n queryQuantitySamples: <\n TUnit extends HKUnit,\n TIdentifier extends HKQuantityTypeIdentifier\n >(\n identifier: TIdentifier,\n unit: TUnit,\n from: string,\n to: string,\n limit: Number,\n ascending: boolean\n ) => Promise<HKQuantitySampleRaw<TIdentifier, TUnit>[]>;\n saveCategorySample: <T extends HKCategoryTypeIdentifier>(\n identifier: T,\n value: HKCategoryValueForIdentifier<T>,\n start: string,\n end: string,\n metadata: Object\n ) => Promise<boolean>;\n queryStatisticsForQuantity: <TUnit extends HKUnit>(\n identifier: HKQuantityTypeIdentifier,\n unit: TUnit,\n from: string,\n to: string,\n options: HKStatisticsOptions[]\n ) => Promise<QueryStatisticsResponseRaw<TUnit>>;\n getPreferredUnits: (\n identifiers: HKQuantityTypeIdentifier[]\n ) => Promise<TypeToUnitMapping>;\n};\n\nconst Native =\n NativeModules.ReactNativeHealthkit as ReactNativeHealthkitTypeNative;\n\ntype OnChangeCallback = ({\n typeIdentifier,\n}: {\n typeIdentifier: HKSampleTypeIdentifier;\n}) => void;\n\ninterface HealthkitEventEmitter extends NativeEventEmitter {\n addListener: (\n eventType: 'onChange',\n callback: OnChangeCallback\n ) => EmitterSubscription;\n}\n\nexport const EventEmitter = new NativeEventEmitter(\n NativeModules.ReactNativeHealthkit\n) as HealthkitEventEmitter;\n\nexport default Native;\n"]}
@@ -0,0 +1,3 @@
1
+ import 'expo-dev-client';
2
+ declare const App: () => JSX.Element;
3
+ export default App;
File without changes
@@ -242,6 +242,13 @@ export declare enum HKQuantityTypeIdentifier {
242
242
  dietaryPotassium = "HKQuantityTypeIdentifierDietaryPotassium",
243
243
  dietaryCaffeine = "HKQuantityTypeIdentifierDietaryCaffeine",
244
244
  dietaryWater = "HKQuantityTypeIdentifierDietaryWater",
245
+ sixMinuteWalkTestDistance = "HKQuantityTypeIdentifierSixMinuteWalkTestDistance",
246
+ walkingSpeed = "HKQuantityTypeIdentifierWalkingSpeed",
247
+ walkingStepLength = "HKQuantityTypeIdentifierWalkingStepLength",
248
+ walkingAsymmetryPercentage = "HKQuantityTypeIdentifierWalkingAsymmetryPercentage",
249
+ walkingDoubleSupportPercentage = "HKQuantityTypeIdentifierWalkingDoubleSupportPercentage",
250
+ stairAscentSpeed = "HKQuantityTypeIdentifierStairAscentSpeed",
251
+ stairDescentSpeed = "HKQuantityTypeIdentifierStairDescentSpeed",
245
252
  uvExposure = "HKQuantityTypeIdentifierUvExposure"
246
253
  }
247
254
  export declare enum HKAuthorizationRequestStatus {
@@ -447,6 +454,16 @@ export declare type HKDevice = {
447
454
  model: string;
448
455
  softwareVersion: string;
449
456
  };
457
+ export declare type HKSource = {
458
+ name: string;
459
+ bundleIdentifier: string;
460
+ };
461
+ export declare type HKSourceRevision = {
462
+ source: HKSource;
463
+ version: string;
464
+ operatingSystemVersion?: string;
465
+ productType?: string;
466
+ };
450
467
  export declare type HKQuantitySampleRaw<TQuantityIdentifier extends HKQuantityTypeIdentifier = HKQuantityTypeIdentifier, TUnit extends HKUnit = HKUnit> = {
451
468
  uuid: string;
452
469
  device?: HKDevice;
@@ -456,6 +473,7 @@ export declare type HKQuantitySampleRaw<TQuantityIdentifier extends HKQuantityTy
456
473
  quantity: number;
457
474
  unit: TUnit;
458
475
  metadata: MetadataMapperForQuantityIdentifier<TQuantityIdentifier>;
476
+ sourceRevision?: HKSourceRevision;
459
477
  };
460
478
  export declare type HKWorkoutRaw<TEnergy extends HKUnit, TDistance extends HKUnit> = {
461
479
  workoutActivityType: HKWorkoutActivityType;
@@ -467,6 +485,7 @@ export declare type HKWorkoutRaw<TEnergy extends HKUnit, TDistance extends HKUni
467
485
  startDate: string;
468
486
  endDate: string;
469
487
  metadata?: HKWorkoutMetadata;
488
+ sourceRevision?: HKSourceRevision;
470
489
  };
471
490
  export declare enum HKCharacteristicTypeIdentifier {
472
491
  fitzpatrickSkinType = "HKCharacteristicTypeIdentifierFitzpatrickSkinType",
@@ -489,6 +508,7 @@ export declare type HKCategorySampleRaw<T extends HKCategoryTypeIdentifier = HKC
489
508
  endDate: string;
490
509
  value: HKCategoryValueForIdentifier<T>;
491
510
  metadata: MetadataMapperForCategoryIdentifier<T>;
511
+ sourceRevision?: HKSourceRevision;
492
512
  };
493
513
  export declare type HKCorrelationRaw<TIdentifier extends HKCorrelationTypeIdentifier> = {
494
514
  correlationType: HKCorrelationTypeIdentifier;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kingstinct/react-native-healthkit",
3
- "version": "4.0.1",
3
+ "version": "4.2.0",
4
4
  "description": "React Native bindings for HealthKit",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -44,22 +44,23 @@
44
44
  },
45
45
  "homepage": "https://github.com/kingstinct/react-native-healthkit#readme",
46
46
  "devDependencies": {
47
- "@commitlint/config-conventional": "^8.3.4",
47
+ "@commitlint/config-conventional": "12",
48
48
  "@react-native-community/eslint-config": "^2.0.0",
49
49
  "@release-it/conventional-changelog": "2",
50
- "@types/jest": "^26.0.0",
51
- "@types/react": "^16.9.19",
52
- "@types/react-native": "0.62.13",
53
- "commitlint": "^8.3.5",
50
+ "@types/jest": "27",
51
+ "@types/react": "17",
52
+ "@types/react-native": "0.67",
53
+ "commitlint": "12",
54
54
  "eslint": "^7.2.0",
55
- "eslint-config-prettier": "^6.11.0",
55
+ "eslint-config-prettier": "8",
56
56
  "eslint-plugin-prettier": "^3.1.3",
57
57
  "husky": "^4.2.5",
58
- "jest": "^26.0.1",
58
+ "jest": "28",
59
+ "metro-react-native-babel-preset": "^0.70.3",
59
60
  "pod-install": "^0.1.0",
60
61
  "prettier": "^2.0.5",
61
- "react": "16.11.0",
62
- "react-native": "0.62.0",
62
+ "react": "17",
63
+ "react-native": "0.68",
63
64
  "react-native-builder-bob": "^0.18.1",
64
65
  "release-it": "14",
65
66
  "typescript": "4"
@@ -0,0 +1 @@
1
+ it.todo('write a test');
package/src/index.ios.tsx CHANGED
@@ -291,16 +291,14 @@ const queryStatisticsForQuantity: QueryStatisticsForQuantityFn = async (
291
291
  ) => {
292
292
  const actualUnit = await ensureUnit(identifier, unit);
293
293
  const toDate = to || new Date();
294
- const {
295
- mostRecentQuantityDateInterval,
296
- ...rawResponse
297
- } = await Native.queryStatisticsForQuantity(
298
- identifier,
299
- actualUnit,
300
- from.toISOString(),
301
- toDate.toISOString(),
302
- options
303
- );
294
+ const { mostRecentQuantityDateInterval, ...rawResponse } =
295
+ await Native.queryStatisticsForQuantity(
296
+ identifier,
297
+ actualUnit,
298
+ from.toISOString(),
299
+ toDate.toISOString(),
300
+ options
301
+ );
304
302
 
305
303
  const response = {
306
304
  ...rawResponse,
@@ -279,6 +279,15 @@ export enum HKQuantityTypeIdentifier {
279
279
  dietaryCaffeine = 'HKQuantityTypeIdentifierDietaryCaffeine', // Mass, Cumulative
280
280
  dietaryWater = 'HKQuantityTypeIdentifierDietaryWater', // Volume, Cumulative
281
281
 
282
+ // Mobility
283
+ sixMinuteWalkTestDistance = 'HKQuantityTypeIdentifierSixMinuteWalkTestDistance',
284
+ walkingSpeed = 'HKQuantityTypeIdentifierWalkingSpeed',
285
+ walkingStepLength = 'HKQuantityTypeIdentifierWalkingStepLength',
286
+ walkingAsymmetryPercentage = 'HKQuantityTypeIdentifierWalkingAsymmetryPercentage',
287
+ walkingDoubleSupportPercentage = 'HKQuantityTypeIdentifierWalkingDoubleSupportPercentage',
288
+ stairAscentSpeed = 'HKQuantityTypeIdentifierStairAscentSpeed',
289
+ stairDescentSpeed = 'HKQuantityTypeIdentifierStairDescentSpeed',
290
+
282
291
  uvExposure = 'HKQuantityTypeIdentifierUvExposure', // Scalar (Count), Discrete
283
292
  }
284
293
 
@@ -436,27 +445,26 @@ export type MetadataMapperForCorrelationIdentifier<
436
445
  }
437
446
  : HKGenericMetadata;
438
447
 
439
- export type HKCategoryValueForIdentifier<
440
- T extends HKCategoryTypeIdentifier
441
- > = T extends HKCategoryTypeIdentifier.cervicalMucusQuality
442
- ? HKCategoryValueCervicalMucusQuality
443
- : T extends HKCategoryTypeIdentifier.menstrualFlow
444
- ? HKCategoryValueMenstrualFlow
445
- : T extends HKCategoryTypeIdentifier.ovulationTestResult
446
- ? HKCategoryValueOvulationTestResult
447
- : T extends HKCategoryTypeIdentifier.sleepAnalysis
448
- ? HKCategoryValueSleepAnalysis
449
- : T extends HKCategoryTypeIdentifier.mindfulSession
450
- ? HKCategoryValueNotApplicable
451
- : T extends HKCategoryTypeIdentifier.intermenstrualBleeding
452
- ? HKCategoryValueNotApplicable
453
- : T extends HKCategoryTypeIdentifier.highHeartRateEvent
454
- ? HKCategoryValueNotApplicable
455
- : T extends HKCategoryTypeIdentifier.sexualActivity
456
- ? HKCategoryValueNotApplicable
457
- : T extends HKCategoryTypeIdentifier.appleStandHour
458
- ? HKCategoryValueAppleStandHour
459
- : number;
448
+ export type HKCategoryValueForIdentifier<T extends HKCategoryTypeIdentifier> =
449
+ T extends HKCategoryTypeIdentifier.cervicalMucusQuality
450
+ ? HKCategoryValueCervicalMucusQuality
451
+ : T extends HKCategoryTypeIdentifier.menstrualFlow
452
+ ? HKCategoryValueMenstrualFlow
453
+ : T extends HKCategoryTypeIdentifier.ovulationTestResult
454
+ ? HKCategoryValueOvulationTestResult
455
+ : T extends HKCategoryTypeIdentifier.sleepAnalysis
456
+ ? HKCategoryValueSleepAnalysis
457
+ : T extends HKCategoryTypeIdentifier.mindfulSession
458
+ ? HKCategoryValueNotApplicable
459
+ : T extends HKCategoryTypeIdentifier.intermenstrualBleeding
460
+ ? HKCategoryValueNotApplicable
461
+ : T extends HKCategoryTypeIdentifier.highHeartRateEvent
462
+ ? HKCategoryValueNotApplicable
463
+ : T extends HKCategoryTypeIdentifier.sexualActivity
464
+ ? HKCategoryValueNotApplicable
465
+ : T extends HKCategoryTypeIdentifier.appleStandHour
466
+ ? HKCategoryValueAppleStandHour
467
+ : number;
460
468
 
461
469
  export type MetadataMapperForCategoryIdentifier<
462
470
  T extends HKCategoryTypeIdentifier
@@ -559,6 +567,18 @@ export type HKDevice = {
559
567
  softwareVersion: string;
560
568
  };
561
569
 
570
+ export type HKSource = {
571
+ name: string;
572
+ bundleIdentifier: string;
573
+ };
574
+
575
+ export type HKSourceRevision = {
576
+ source: HKSource;
577
+ version: string;
578
+ operatingSystemVersion?: string;
579
+ productType?: string;
580
+ };
581
+
562
582
  export type HKQuantitySampleRaw<
563
583
  TQuantityIdentifier extends HKQuantityTypeIdentifier = HKQuantityTypeIdentifier,
564
584
  TUnit extends HKUnit = HKUnit
@@ -571,6 +591,7 @@ export type HKQuantitySampleRaw<
571
591
  quantity: number;
572
592
  unit: TUnit;
573
593
  metadata: MetadataMapperForQuantityIdentifier<TQuantityIdentifier>;
594
+ sourceRevision?: HKSourceRevision;
574
595
  };
575
596
 
576
597
  export type HKWorkoutRaw<TEnergy extends HKUnit, TDistance extends HKUnit> = {
@@ -583,6 +604,7 @@ export type HKWorkoutRaw<TEnergy extends HKUnit, TDistance extends HKUnit> = {
583
604
  startDate: string;
584
605
  endDate: string;
585
606
  metadata?: HKWorkoutMetadata;
607
+ sourceRevision?: HKSourceRevision;
586
608
  };
587
609
 
588
610
  // Straight mapping to https://developer.apple.com/documentation/healthkit/hkcharacteristictypeidentifier
@@ -618,17 +640,17 @@ export type HKCategorySampleRaw<
618
640
  endDate: string;
619
641
  value: HKCategoryValueForIdentifier<T>;
620
642
  metadata: MetadataMapperForCategoryIdentifier<T>;
643
+ sourceRevision?: HKSourceRevision;
621
644
  };
622
645
 
623
- export type HKCorrelationRaw<
624
- TIdentifier extends HKCorrelationTypeIdentifier
625
- > = {
626
- correlationType: HKCorrelationTypeIdentifier;
627
- objects: (HKQuantitySampleRaw | HKCategorySampleRaw)[];
628
- metadata: MetadataMapperForCorrelationIdentifier<TIdentifier>;
629
- startDate: string;
630
- endDate: string;
631
- };
646
+ export type HKCorrelationRaw<TIdentifier extends HKCorrelationTypeIdentifier> =
647
+ {
648
+ correlationType: HKCorrelationTypeIdentifier;
649
+ objects: (HKQuantitySampleRaw | HKCategorySampleRaw)[];
650
+ metadata: MetadataMapperForCorrelationIdentifier<TIdentifier>;
651
+ startDate: string;
652
+ endDate: string;
653
+ };
632
654
 
633
655
  type QueryId = string;
634
656
 
@@ -757,7 +779,8 @@ type ReactNativeHealthkitTypeNative = {
757
779
  ) => Promise<TypeToUnitMapping>;
758
780
  };
759
781
 
760
- const Native = NativeModules.ReactNativeHealthkit as ReactNativeHealthkitTypeNative;
782
+ const Native =
783
+ NativeModules.ReactNativeHealthkit as ReactNativeHealthkitTypeNative;
761
784
 
762
785
  type OnChangeCallback = ({
763
786
  typeIdentifier,