@kingstinct/react-native-healthkit 4.4.3 → 4.4.4

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.
@@ -208,8 +208,6 @@ function useSubscribeToChanges(identifier, onChange) {
208
208
  }, [identifier, onChange]);
209
209
  }
210
210
 
211
- useSubscribeToChanges(_nativeTypes.HKCategoryTypeIdentifier.appleStandHour, () => {});
212
-
213
211
  function useMostRecentCategorySample(identifier) {
214
212
  const [category, setCategory] = (0, _react.useState)(null);
215
213
  const updater = (0, _react.useCallback)(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["getPreferredUnit","type","unit","getPreferredUnits","ensureUnit","providedUnit","Native","deserializeSample","sample","startDate","Date","endDate","deserializeWorkout","deserializCategorySample","serializeDate","date","toISOString","prepareOptions","options","limit","Infinity","ascending","from","to","queryQuantitySamples","identifier","opts","quantitySamples","map","getPreferredUnitsTyped","energyUnit","distanceUnit","units","HKQuantityTypeIdentifier","distanceWalkingRunning","activeEnergyBurned","HKUnit","Kilocalories","Meters","subscribeToChanges","callback","subscription","EventEmitter","addListener","typeIdentifier","queryId","subscribeToObserverQuery","catch","error","remove","Promise","reject","unsubscribeQuery","getMostRecentQuantitySample","samples","useMostRecentWorkout","workout","setWorkout","useState","useEffect","cancelSubscription","init","w","getMostRecentWorkout","getMostRecentCategorySample","queryCategorySamples","useSubscribeToChanges","onChange","HKCategoryTypeIdentifier","appleStandHour","useMostRecentCategorySample","category","setCategory","updater","useCallback","then","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","queryWorkouts","workouts","queryWorkoutSamples","saveCategorySample","identifiers","i","buildUnitWithPrefix","prefix","deserializeCorrelation","s","objects","o","quantity","undefined","ensureMetadata","queryCorrelationSamples","correlations","saveCorrelationSample","saveWorkoutSample","quantities","_start","getWorkoutRoutes","workoutUUID","Healthkit","authorizationStatusFor","bind","isHealthDataAvailable","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType","useIsHealthDataAvailable","isAvailable","setIsAvailable","res","useHealthkitAuthorization","status","setStatus","refreshAuthStatus","auth","request"],"sources":["index.ios.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nimport Native, {\n EventEmitter,\n HKQuantityTypeIdentifier,\n HKUnit,\n HKCategoryTypeIdentifier,\n} from './native-types'\n\nimport type {\n HealthkitReadAuthorization,\n HealthkitWriteAuthorization,\n HKAuthorizationRequestStatus,\n HKCategorySampleRaw,\n HKCategoryValueForIdentifier,\n HKCorrelationRaw,\n HKCorrelationTypeIdentifier,\n HKQuantitySampleRaw,\n HKUnitSI,\n HKUnitSIPrefix,\n HKWorkoutRaw,\n MetadataMapperForCategoryIdentifier,\n ReadPermissions,\n WritePermissions,\n HKSampleTypeIdentifier,\n} from './native-types'\nimport type {\n GenericQueryOptions,\n GetMostRecentCategorySampleFn,\n GetMostRecentQuantitySampleFn,\n GetMostRecentWorkoutFn,\n GetPreferredUnitFn,\n GetPreferredUnitsFn,\n GetWorkoutRoutesFn,\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 ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n})\n\nconst serializeDate = (date?: Date | null): string => (date ? date.toISOString() : new Date(0).toISOString())\n\nconst prepareOptions = (options: GenericQueryOptions) => {\n const limit = !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 {\n limit, ascending, from, to,\n }\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\nasync function getPreferredUnitsTyped<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly 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 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 async (error) => {\n subscription.remove()\n return Promise.reject(error)\n },\n )\n\n return async () => {\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,\n })\n return samples[0]\n}\n\nfunction useMostRecentWorkout<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly 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 async () => {\n const w = await getMostRecentWorkout({ energyUnit, distanceUnit })\n setWorkout(w)\n },\n )\n }\n void init()\n return () => {\n void 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 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 void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier, onChange])\n}\n\nuseSubscribeToChanges(HKCategoryTypeIdentifier.appleStandHour, () => {})\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 void getMostRecentCategorySample(identifier).then(setCategory)\n }, [identifier])\n\n useSubscribeToChanges(identifier, updater)\n\n return category\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, async () => {\n const value = await getMostRecentQuantitySample(identifier, actualUnit)\n setLastSample(value)\n })\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier, unit])\n\n return lastSample\n}\n\nconst saveQuantitySample: SaveQuantitySampleFn = async (\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 } = 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 = async (\n read: readonly HealthkitReadAuthorization[],\n write: readonly HealthkitWriteAuthorization[] = [],\n): Promise<boolean> => {\n const readPermissions = read.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as ReadPermissions)\n\n const writePermissions = write.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as WritePermissions)\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 = async (\n read: readonly HealthkitReadAuthorization[],\n write: readonly HealthkitWriteAuthorization[] = [],\n) => {\n const readPermissions = read.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as ReadPermissions)\n\n const writePermissions = write.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as WritePermissions)\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\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\nasync function saveCategorySample<T extends HKCategoryTypeIdentifier>(\n identifier: T,\n value: HKCategoryValueForIdentifier<T>,\n options?: {\n readonly start?: Date;\n readonly end?: Date;\n readonly 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) => `${prefix}${unit}` as HKUnit\n\nfunction deserializeCorrelation<\n TIdentifier extends HKCorrelationTypeIdentifier\n>(s: HKCorrelationRaw<TIdentifier>): HKCorrelation<TIdentifier> {\n return {\n ...s,\n objects: s.objects.map((o) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\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 = async (\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 getWorkoutRoutes: GetWorkoutRoutesFn = async (workoutUUID: string) => Native.getWorkoutRoutes(workoutUUID)\n\nconst Healthkit: ReactNativeHealthkit = {\n authorizationStatusFor: Native.authorizationStatusFor.bind(Native),\n\n isHealthDataAvailable: Native.isHealthDataAvailable.bind(Native),\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.bind(Native),\n getFitzpatrickSkinType: Native.getFitzpatrickSkinType.bind(Native),\n getWheelchairUse: Native.getWheelchairUse,\n getBloodType: Native.getBloodType.bind(Native),\n getDateOfBirth,\n\n getMostRecentQuantitySample,\n getMostRecentCategorySample,\n getMostRecentWorkout,\n\n getPreferredUnit,\n getPreferredUnits,\n getRequestStatusForAuthorization,\n\n getWorkoutRoutes,\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 useIsHealthDataAvailable: () => {\n const [isAvailable, setIsAvailable] = useState<boolean | null>(null)\n useEffect(() => {\n const init = async () => {\n const res = await Native.isHealthDataAvailable()\n setIsAvailable(res)\n }\n void init()\n }, [])\n return isAvailable\n },\n useHealthkitAuthorization: (read, write) => {\n const [status, setStatus] = useState<HKAuthorizationRequestStatus | null>(null)\n const refreshAuthStatus = useCallback(async () => {\n const auth = await getRequestStatusForAuthorization(read, write)\n setStatus(auth)\n return auth\n }, [])\n\n const request = useCallback(async () => {\n await requestAuthorization(read, write)\n return refreshAuthStatus()\n }, [])\n\n useEffect(() => {\n void refreshAuthStatus()\n }, [])\n\n return [status, request]\n },\n}\n\nexport * from './native-types'\nexport * from './types'\n\nexport default Healthkit\n"],"mappings":"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"}
1
+ {"version":3,"names":["getPreferredUnit","type","unit","getPreferredUnits","ensureUnit","providedUnit","Native","deserializeSample","sample","startDate","Date","endDate","deserializeWorkout","deserializCategorySample","serializeDate","date","toISOString","prepareOptions","options","limit","Infinity","ascending","from","to","queryQuantitySamples","identifier","opts","quantitySamples","map","getPreferredUnitsTyped","energyUnit","distanceUnit","units","HKQuantityTypeIdentifier","distanceWalkingRunning","activeEnergyBurned","HKUnit","Kilocalories","Meters","subscribeToChanges","callback","subscription","EventEmitter","addListener","typeIdentifier","queryId","subscribeToObserverQuery","catch","error","remove","Promise","reject","unsubscribeQuery","getMostRecentQuantitySample","samples","useMostRecentWorkout","workout","setWorkout","useState","useEffect","cancelSubscription","init","w","getMostRecentWorkout","getMostRecentCategorySample","queryCategorySamples","useSubscribeToChanges","onChange","useMostRecentCategorySample","category","setCategory","updater","useCallback","then","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","queryWorkouts","workouts","queryWorkoutSamples","saveCategorySample","identifiers","i","buildUnitWithPrefix","prefix","deserializeCorrelation","s","objects","o","quantity","undefined","ensureMetadata","queryCorrelationSamples","correlations","saveCorrelationSample","saveWorkoutSample","quantities","_start","getWorkoutRoutes","workoutUUID","Healthkit","authorizationStatusFor","bind","isHealthDataAvailable","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType","useIsHealthDataAvailable","isAvailable","setIsAvailable","res","useHealthkitAuthorization","status","setStatus","refreshAuthStatus","auth","request"],"sources":["index.ios.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nimport Native, {\n EventEmitter,\n HKQuantityTypeIdentifier,\n HKUnit,\n} from './native-types'\n\nimport type {\n HealthkitReadAuthorization,\n HealthkitWriteAuthorization,\n HKAuthorizationRequestStatus,\n HKCategorySampleRaw,\n HKCategoryValueForIdentifier,\n HKCorrelationRaw,\n HKCorrelationTypeIdentifier,\n HKQuantitySampleRaw,\n HKUnitSI,\n HKUnitSIPrefix,\n HKWorkoutRaw,\n MetadataMapperForCategoryIdentifier,\n ReadPermissions,\n WritePermissions,\n HKSampleTypeIdentifier,\n HKCategoryTypeIdentifier,\n} from './native-types'\nimport type {\n GenericQueryOptions,\n GetMostRecentCategorySampleFn,\n GetMostRecentQuantitySampleFn,\n GetMostRecentWorkoutFn,\n GetPreferredUnitFn,\n GetPreferredUnitsFn,\n GetWorkoutRoutesFn,\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 ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n})\n\nconst serializeDate = (date?: Date | null): string => (date ? date.toISOString() : new Date(0).toISOString())\n\nconst prepareOptions = (options: GenericQueryOptions) => {\n const limit = !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 {\n limit, ascending, from, to,\n }\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\nasync function getPreferredUnitsTyped<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly 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 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 async (error) => {\n subscription.remove()\n return Promise.reject(error)\n },\n )\n\n return async () => {\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,\n })\n return samples[0]\n}\n\nfunction useMostRecentWorkout<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly 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 async () => {\n const w = await getMostRecentWorkout({ energyUnit, distanceUnit })\n setWorkout(w)\n },\n )\n }\n void init()\n return () => {\n void 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 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 void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier, onChange])\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 void getMostRecentCategorySample(identifier).then(setCategory)\n }, [identifier])\n\n useSubscribeToChanges(identifier, updater)\n\n return category\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, async () => {\n const value = await getMostRecentQuantitySample(identifier, actualUnit)\n setLastSample(value)\n })\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier, unit])\n\n return lastSample\n}\n\nconst saveQuantitySample: SaveQuantitySampleFn = async (\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 } = 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 = async (\n read: readonly HealthkitReadAuthorization[],\n write: readonly HealthkitWriteAuthorization[] = [],\n): Promise<boolean> => {\n const readPermissions = read.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as ReadPermissions)\n\n const writePermissions = write.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as WritePermissions)\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 = async (\n read: readonly HealthkitReadAuthorization[],\n write: readonly HealthkitWriteAuthorization[] = [],\n) => {\n const readPermissions = read.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as ReadPermissions)\n\n const writePermissions = write.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as WritePermissions)\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\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\nasync function saveCategorySample<T extends HKCategoryTypeIdentifier>(\n identifier: T,\n value: HKCategoryValueForIdentifier<T>,\n options?: {\n readonly start?: Date;\n readonly end?: Date;\n readonly 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) => `${prefix}${unit}` as HKUnit\n\nfunction deserializeCorrelation<\n TIdentifier extends HKCorrelationTypeIdentifier\n>(s: HKCorrelationRaw<TIdentifier>): HKCorrelation<TIdentifier> {\n return {\n ...s,\n objects: s.objects.map((o) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\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 = async (\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 getWorkoutRoutes: GetWorkoutRoutesFn = async (workoutUUID: string) => Native.getWorkoutRoutes(workoutUUID)\n\nconst Healthkit: ReactNativeHealthkit = {\n authorizationStatusFor: Native.authorizationStatusFor.bind(Native),\n\n isHealthDataAvailable: Native.isHealthDataAvailable.bind(Native),\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.bind(Native),\n getFitzpatrickSkinType: Native.getFitzpatrickSkinType.bind(Native),\n getWheelchairUse: Native.getWheelchairUse,\n getBloodType: Native.getBloodType.bind(Native),\n getDateOfBirth,\n\n getMostRecentQuantitySample,\n getMostRecentCategorySample,\n getMostRecentWorkout,\n\n getPreferredUnit,\n getPreferredUnits,\n getRequestStatusForAuthorization,\n\n getWorkoutRoutes,\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 useIsHealthDataAvailable: () => {\n const [isAvailable, setIsAvailable] = useState<boolean | null>(null)\n useEffect(() => {\n const init = async () => {\n const res = await Native.isHealthDataAvailable()\n setIsAvailable(res)\n }\n void init()\n }, [])\n return isAvailable\n },\n useHealthkitAuthorization: (read, write) => {\n const [status, setStatus] = useState<HKAuthorizationRequestStatus | null>(null)\n const refreshAuthStatus = useCallback(async () => {\n const auth = await getRequestStatusForAuthorization(read, write)\n setStatus(auth)\n return auth\n }, [])\n\n const request = useCallback(async () => {\n await requestAuthorization(read, write)\n return refreshAuthStatus()\n }, [])\n\n useEffect(() => {\n void refreshAuthStatus()\n }, [])\n\n return [status, request]\n },\n}\n\nexport * from './native-types'\nexport * from './types'\n\nexport default Healthkit\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { useCallback, useEffect, useState } from 'react';
2
- import Native, { EventEmitter, HKQuantityTypeIdentifier, HKUnit, HKCategoryTypeIdentifier } from './native-types';
2
+ import Native, { EventEmitter, HKQuantityTypeIdentifier, HKUnit } from './native-types';
3
3
 
4
4
  const getPreferredUnit = async type => {
5
5
  const [unit] = await getPreferredUnits([type]);
@@ -168,8 +168,6 @@ function useSubscribeToChanges(identifier, onChange) {
168
168
  }, [identifier, onChange]);
169
169
  }
170
170
 
171
- useSubscribeToChanges(HKCategoryTypeIdentifier.appleStandHour, () => {});
172
-
173
171
  function useMostRecentCategorySample(identifier) {
174
172
  const [category, setCategory] = useState(null);
175
173
  const updater = useCallback(() => {
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useState","Native","EventEmitter","HKQuantityTypeIdentifier","HKUnit","HKCategoryTypeIdentifier","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","getPreferredUnitsTyped","energyUnit","distanceUnit","units","distanceWalkingRunning","activeEnergyBurned","Kilocalories","Meters","subscribeToChanges","callback","subscription","addListener","typeIdentifier","queryId","subscribeToObserverQuery","catch","error","remove","Promise","reject","unsubscribeQuery","getMostRecentQuantitySample","samples","useMostRecentWorkout","workout","setWorkout","cancelSubscription","init","w","getMostRecentWorkout","getMostRecentCategorySample","queryCategorySamples","useSubscribeToChanges","onChange","appleStandHour","useMostRecentCategorySample","category","setCategory","updater","then","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","queryWorkouts","workouts","queryWorkoutSamples","saveCategorySample","identifiers","i","buildUnitWithPrefix","prefix","deserializeCorrelation","s","objects","o","quantity","undefined","ensureMetadata","queryCorrelationSamples","correlations","saveCorrelationSample","saveWorkoutSample","quantities","_start","getWorkoutRoutes","workoutUUID","Healthkit","authorizationStatusFor","bind","isHealthDataAvailable","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType","useIsHealthDataAvailable","isAvailable","setIsAvailable","res","useHealthkitAuthorization","status","setStatus","refreshAuthStatus","auth","request"],"sources":["index.ios.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nimport Native, {\n EventEmitter,\n HKQuantityTypeIdentifier,\n HKUnit,\n HKCategoryTypeIdentifier,\n} from './native-types'\n\nimport type {\n HealthkitReadAuthorization,\n HealthkitWriteAuthorization,\n HKAuthorizationRequestStatus,\n HKCategorySampleRaw,\n HKCategoryValueForIdentifier,\n HKCorrelationRaw,\n HKCorrelationTypeIdentifier,\n HKQuantitySampleRaw,\n HKUnitSI,\n HKUnitSIPrefix,\n HKWorkoutRaw,\n MetadataMapperForCategoryIdentifier,\n ReadPermissions,\n WritePermissions,\n HKSampleTypeIdentifier,\n} from './native-types'\nimport type {\n GenericQueryOptions,\n GetMostRecentCategorySampleFn,\n GetMostRecentQuantitySampleFn,\n GetMostRecentWorkoutFn,\n GetPreferredUnitFn,\n GetPreferredUnitsFn,\n GetWorkoutRoutesFn,\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 ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n})\n\nconst serializeDate = (date?: Date | null): string => (date ? date.toISOString() : new Date(0).toISOString())\n\nconst prepareOptions = (options: GenericQueryOptions) => {\n const limit = !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 {\n limit, ascending, from, to,\n }\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\nasync function getPreferredUnitsTyped<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly 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 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 async (error) => {\n subscription.remove()\n return Promise.reject(error)\n },\n )\n\n return async () => {\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,\n })\n return samples[0]\n}\n\nfunction useMostRecentWorkout<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly 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 async () => {\n const w = await getMostRecentWorkout({ energyUnit, distanceUnit })\n setWorkout(w)\n },\n )\n }\n void init()\n return () => {\n void 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 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 void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier, onChange])\n}\n\nuseSubscribeToChanges(HKCategoryTypeIdentifier.appleStandHour, () => {})\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 void getMostRecentCategorySample(identifier).then(setCategory)\n }, [identifier])\n\n useSubscribeToChanges(identifier, updater)\n\n return category\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, async () => {\n const value = await getMostRecentQuantitySample(identifier, actualUnit)\n setLastSample(value)\n })\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier, unit])\n\n return lastSample\n}\n\nconst saveQuantitySample: SaveQuantitySampleFn = async (\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 } = 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 = async (\n read: readonly HealthkitReadAuthorization[],\n write: readonly HealthkitWriteAuthorization[] = [],\n): Promise<boolean> => {\n const readPermissions = read.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as ReadPermissions)\n\n const writePermissions = write.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as WritePermissions)\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 = async (\n read: readonly HealthkitReadAuthorization[],\n write: readonly HealthkitWriteAuthorization[] = [],\n) => {\n const readPermissions = read.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as ReadPermissions)\n\n const writePermissions = write.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as WritePermissions)\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\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\nasync function saveCategorySample<T extends HKCategoryTypeIdentifier>(\n identifier: T,\n value: HKCategoryValueForIdentifier<T>,\n options?: {\n readonly start?: Date;\n readonly end?: Date;\n readonly 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) => `${prefix}${unit}` as HKUnit\n\nfunction deserializeCorrelation<\n TIdentifier extends HKCorrelationTypeIdentifier\n>(s: HKCorrelationRaw<TIdentifier>): HKCorrelation<TIdentifier> {\n return {\n ...s,\n objects: s.objects.map((o) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\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 = async (\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 getWorkoutRoutes: GetWorkoutRoutesFn = async (workoutUUID: string) => Native.getWorkoutRoutes(workoutUUID)\n\nconst Healthkit: ReactNativeHealthkit = {\n authorizationStatusFor: Native.authorizationStatusFor.bind(Native),\n\n isHealthDataAvailable: Native.isHealthDataAvailable.bind(Native),\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.bind(Native),\n getFitzpatrickSkinType: Native.getFitzpatrickSkinType.bind(Native),\n getWheelchairUse: Native.getWheelchairUse,\n getBloodType: Native.getBloodType.bind(Native),\n getDateOfBirth,\n\n getMostRecentQuantitySample,\n getMostRecentCategorySample,\n getMostRecentWorkout,\n\n getPreferredUnit,\n getPreferredUnits,\n getRequestStatusForAuthorization,\n\n getWorkoutRoutes,\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 useIsHealthDataAvailable: () => {\n const [isAvailable, setIsAvailable] = useState<boolean | null>(null)\n useEffect(() => {\n const init = async () => {\n const res = await Native.isHealthDataAvailable()\n setIsAvailable(res)\n }\n void init()\n }, [])\n return isAvailable\n },\n useHealthkitAuthorization: (read, write) => {\n const [status, setStatus] = useState<HKAuthorizationRequestStatus | null>(null)\n const refreshAuthStatus = useCallback(async () => {\n const auth = await getRequestStatusForAuthorization(read, write)\n setStatus(auth)\n return auth\n }, [])\n\n const request = useCallback(async () => {\n await requestAuthorization(read, write)\n return refreshAuthStatus()\n }, [])\n\n useEffect(() => {\n void refreshAuthStatus()\n }, [])\n\n return [status, request]\n },\n}\n\nexport * from './native-types'\nexport * from './types'\n\nexport default Healthkit\n"],"mappings":"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"}
1
+ {"version":3,"names":["useCallback","useEffect","useState","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","getPreferredUnitsTyped","energyUnit","distanceUnit","units","distanceWalkingRunning","activeEnergyBurned","Kilocalories","Meters","subscribeToChanges","callback","subscription","addListener","typeIdentifier","queryId","subscribeToObserverQuery","catch","error","remove","Promise","reject","unsubscribeQuery","getMostRecentQuantitySample","samples","useMostRecentWorkout","workout","setWorkout","cancelSubscription","init","w","getMostRecentWorkout","getMostRecentCategorySample","queryCategorySamples","useSubscribeToChanges","onChange","useMostRecentCategorySample","category","setCategory","updater","then","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","queryWorkouts","workouts","queryWorkoutSamples","saveCategorySample","identifiers","i","buildUnitWithPrefix","prefix","deserializeCorrelation","s","objects","o","quantity","undefined","ensureMetadata","queryCorrelationSamples","correlations","saveCorrelationSample","saveWorkoutSample","quantities","_start","getWorkoutRoutes","workoutUUID","Healthkit","authorizationStatusFor","bind","isHealthDataAvailable","disableAllBackgroundDelivery","disableBackgroundDelivery","enableBackgroundDelivery","getBiologicalSex","getFitzpatrickSkinType","getWheelchairUse","getBloodType","useIsHealthDataAvailable","isAvailable","setIsAvailable","res","useHealthkitAuthorization","status","setStatus","refreshAuthStatus","auth","request"],"sources":["index.ios.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nimport Native, {\n EventEmitter,\n HKQuantityTypeIdentifier,\n HKUnit,\n} from './native-types'\n\nimport type {\n HealthkitReadAuthorization,\n HealthkitWriteAuthorization,\n HKAuthorizationRequestStatus,\n HKCategorySampleRaw,\n HKCategoryValueForIdentifier,\n HKCorrelationRaw,\n HKCorrelationTypeIdentifier,\n HKQuantitySampleRaw,\n HKUnitSI,\n HKUnitSIPrefix,\n HKWorkoutRaw,\n MetadataMapperForCategoryIdentifier,\n ReadPermissions,\n WritePermissions,\n HKSampleTypeIdentifier,\n HKCategoryTypeIdentifier,\n} from './native-types'\nimport type {\n GenericQueryOptions,\n GetMostRecentCategorySampleFn,\n GetMostRecentQuantitySampleFn,\n GetMostRecentWorkoutFn,\n GetPreferredUnitFn,\n GetPreferredUnitsFn,\n GetWorkoutRoutesFn,\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 ...sample,\n startDate: new Date(sample.startDate),\n endDate: new Date(sample.endDate),\n})\n\nconst serializeDate = (date?: Date | null): string => (date ? date.toISOString() : new Date(0).toISOString())\n\nconst prepareOptions = (options: GenericQueryOptions) => {\n const limit = !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 {\n limit, ascending, from, to,\n }\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\nasync function getPreferredUnitsTyped<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly 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 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 async (error) => {\n subscription.remove()\n return Promise.reject(error)\n },\n )\n\n return async () => {\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,\n })\n return samples[0]\n}\n\nfunction useMostRecentWorkout<\n TEnergy extends HKUnit,\n TDistance extends HKUnit\n>(options?: { readonly energyUnit?: TEnergy; readonly 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 async () => {\n const w = await getMostRecentWorkout({ energyUnit, distanceUnit })\n setWorkout(w)\n },\n )\n }\n void init()\n return () => {\n void 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 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 void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier, onChange])\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 void getMostRecentCategorySample(identifier).then(setCategory)\n }, [identifier])\n\n useSubscribeToChanges(identifier, updater)\n\n return category\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, async () => {\n const value = await getMostRecentQuantitySample(identifier, actualUnit)\n setLastSample(value)\n })\n }\n void init()\n\n return () => {\n void cancelSubscription?.()\n }\n }, [identifier, unit])\n\n return lastSample\n}\n\nconst saveQuantitySample: SaveQuantitySampleFn = async (\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 } = 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 = async (\n read: readonly HealthkitReadAuthorization[],\n write: readonly HealthkitWriteAuthorization[] = [],\n): Promise<boolean> => {\n const readPermissions = read.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as ReadPermissions)\n\n const writePermissions = write.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as WritePermissions)\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 = async (\n read: readonly HealthkitReadAuthorization[],\n write: readonly HealthkitWriteAuthorization[] = [],\n) => {\n const readPermissions = read.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as ReadPermissions)\n\n const writePermissions = write.reduce((obj, cur) => ({ ...obj, [cur]: true }), {} as WritePermissions)\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\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\nasync function saveCategorySample<T extends HKCategoryTypeIdentifier>(\n identifier: T,\n value: HKCategoryValueForIdentifier<T>,\n options?: {\n readonly start?: Date;\n readonly end?: Date;\n readonly 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) => `${prefix}${unit}` as HKUnit\n\nfunction deserializeCorrelation<\n TIdentifier extends HKCorrelationTypeIdentifier\n>(s: HKCorrelationRaw<TIdentifier>): HKCorrelation<TIdentifier> {\n return {\n ...s,\n objects: s.objects.map((o) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\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 = async (\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 getWorkoutRoutes: GetWorkoutRoutesFn = async (workoutUUID: string) => Native.getWorkoutRoutes(workoutUUID)\n\nconst Healthkit: ReactNativeHealthkit = {\n authorizationStatusFor: Native.authorizationStatusFor.bind(Native),\n\n isHealthDataAvailable: Native.isHealthDataAvailable.bind(Native),\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.bind(Native),\n getFitzpatrickSkinType: Native.getFitzpatrickSkinType.bind(Native),\n getWheelchairUse: Native.getWheelchairUse,\n getBloodType: Native.getBloodType.bind(Native),\n getDateOfBirth,\n\n getMostRecentQuantitySample,\n getMostRecentCategorySample,\n getMostRecentWorkout,\n\n getPreferredUnit,\n getPreferredUnits,\n getRequestStatusForAuthorization,\n\n getWorkoutRoutes,\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 useIsHealthDataAvailable: () => {\n const [isAvailable, setIsAvailable] = useState<boolean | null>(null)\n useEffect(() => {\n const init = async () => {\n const res = await Native.isHealthDataAvailable()\n setIsAvailable(res)\n }\n void init()\n }, [])\n return isAvailable\n },\n useHealthkitAuthorization: (read, write) => {\n const [status, setStatus] = useState<HKAuthorizationRequestStatus | null>(null)\n const refreshAuthStatus = useCallback(async () => {\n const auth = await getRequestStatusForAuthorization(read, write)\n setStatus(auth)\n return auth\n }, [])\n\n const request = useCallback(async () => {\n await requestAuthorization(read, write)\n return refreshAuthStatus()\n }, [])\n\n useEffect(() => {\n void refreshAuthStatus()\n }, [])\n\n return [status, request]\n },\n}\n\nexport * from './native-types'\nexport * from './types'\n\nexport default Healthkit\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kingstinct/react-native-healthkit",
3
- "version": "4.4.3",
3
+ "version": "4.4.4",
4
4
  "description": "React Native bindings for HealthKit",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/index.ios.tsx CHANGED
@@ -4,7 +4,6 @@ import Native, {
4
4
  EventEmitter,
5
5
  HKQuantityTypeIdentifier,
6
6
  HKUnit,
7
- HKCategoryTypeIdentifier,
8
7
  } from './native-types'
9
8
 
10
9
  import type {
@@ -23,6 +22,7 @@ import type {
23
22
  ReadPermissions,
24
23
  WritePermissions,
25
24
  HKSampleTypeIdentifier,
25
+ HKCategoryTypeIdentifier,
26
26
  } from './native-types'
27
27
  import type {
28
28
  GenericQueryOptions,
@@ -254,8 +254,6 @@ function useSubscribeToChanges<TIdentifier extends HKSampleTypeIdentifier>(
254
254
  }, [identifier, onChange])
255
255
  }
256
256
 
257
- useSubscribeToChanges(HKCategoryTypeIdentifier.appleStandHour, () => {})
258
-
259
257
  function useMostRecentCategorySample<
260
258
  TCategory extends HKCategoryTypeIdentifier
261
259
  >(identifier: TCategory) {