react-native-spike-sdk 0.1.1 → 0.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.
package/README.md CHANGED
@@ -88,6 +88,15 @@ useSpikeEvents({
88
88
  onDataFailure: () => {
89
89
  console.log('Event: onDataFailure');
90
90
  },
91
+ onWorkoutDataResult: (result) => {
92
+ console.log(`Event: onWorkoutDataResult: ${JSON.stringify(result)}`);
93
+ },
94
+ onWorkoutDataFailure: () => {
95
+ console.log('Event: onWorkoutDataFailure');
96
+ },
97
+ onLog: (log) => {
98
+ console.log(`Event Spike log: ${log}`);
99
+ },
91
100
  });
92
101
  ```
93
102
 
@@ -114,6 +123,8 @@ Spike.clearData()
114
123
  ### Get data <a name="get_data"></a>
115
124
 
116
125
  Get data for specified Spike Data types.
126
+ Data will be provided for last 3 days.
127
+ You can optionally provide date range which will return data for each day separately.
117
128
 
118
129
  ```
119
130
  import Spike, { SpikeDataTypesAll } from 'react-native-spike-sdk';
@@ -129,6 +140,12 @@ or
129
140
  Spike.getData(['DataTypeHeartRate', 'DataTypeBasalEnergy'])
130
141
  ```
131
142
 
143
+ with date range (ex. get data for each 10 days of January 2023)
144
+
145
+ ```
146
+ Spike.getDataInRange(SpikeDataTypesAll, new Date('2023-01-01'), new Date('2023-01-10'));
147
+ ```
148
+
132
149
  All available Data types `SpikeDataType` or use all of the instantly `SpikeDataTypesAll`:
133
150
  `DataTypeStep`
134
151
  `DataTypeHeartRate`
@@ -137,12 +154,17 @@ All available Data types `SpikeDataType` or use all of the instantly `SpikeDataT
137
154
  `DataTypeBasalEnergy`
138
155
  `DataTypeAppleMoveTime`
139
156
  `DataTypeAppleExerciseTime`
157
+ `DataTypeDistanceWalkingRunning`
158
+ `DataTypeWorkout`
159
+
160
+ Getting `DataTypeWorkout` data will return result through the `onWorkoutDataResult` and `onWorkoutDataFailure` callbacks of `useSpikeEvents` hook.
140
161
 
141
162
  ### Enable debug mode <a name="debug"></a>
142
163
 
143
164
  With enabled debug mode SpikeSDK will print performed actions.
144
- You can see logs directly running application from Xcode. Use logs filter `[SpikeSDK]`.
145
- It is better to call this before calling `Spike.initialize();`.
165
+ You can handle logs through the `onLog` callback of `useSpikeEvents` hook or
166
+ see logs directly running application from Xcode. Use logs filter `[SpikeSDK]`.
167
+ It is better to enable debug before calling `Spike.initialize();`.
146
168
 
147
169
  ```
148
170
  Spike.enableDebug();
package/ios/SpikeSdk.m CHANGED
@@ -26,6 +26,10 @@ RCT_EXTERN_METHOD(clearData)
26
26
 
27
27
  RCT_EXTERN_METHOD(getData: (NSArray<NSString>)dataTypes)
28
28
 
29
+ RCT_EXTERN_METHOD(getDataInRange: (NSArray<NSString>)dataTypes
30
+ withStartDateMillis: (double)startDateMillis
31
+ withEndDateMillis: (double)endDateMillis)
32
+
29
33
  RCT_EXTERN_METHOD(enableBackgroundDelivery: (NSArray<NSString>)dataTypes
30
34
  withResolver: (RCTPromiseResolveBlock)resolve
31
35
  withRejecter: (RCTPromiseRejectBlock)reject)
@@ -50,13 +50,21 @@ class SpikeSdk: RCTEventEmitter {
50
50
  func clearData() {
51
51
  Spike.shared.clearData()
52
52
  }
53
-
53
+
54
54
  @objc(getData:)
55
55
  func getData(dataTypes: [String]) {
56
56
  let types = extractDataTypes(dataTypes)
57
57
  Spike.shared.getData(for: types)
58
58
  }
59
59
 
60
+ @objc(getDataInRange:withStartDateMillis:withEndDateMillis:)
61
+ func getDataInRange(dataTypes: [String], startDateMillis: Double, endDateMillis: Double) {
62
+ let startDate = Date(timeIntervalSince1970: startDateMillis/1000)
63
+ let endDate = Date(timeIntervalSince1970: endDateMillis/1000)
64
+ let types = extractDataTypes(dataTypes)
65
+ Spike.shared.getData(for: types, from: startDate, to: endDate)
66
+ }
67
+
60
68
  @objc(enableBackgroundDelivery:withResolver:withRejecter:)
61
69
  func enableBackgroundDelivery(dataTypes: [String],
62
70
  resolve: @escaping RCTPromiseResolveBlock,
@@ -80,6 +88,9 @@ class SpikeSdk: RCTEventEmitter {
80
88
  "onInitializationFailure",
81
89
  "onDataResult",
82
90
  "onDataFailure",
91
+ "onWorkoutDataResult",
92
+ "onWorkoutDataFailure",
93
+ "onLog",
83
94
  ]
84
95
  }
85
96
 
@@ -104,6 +115,10 @@ class SpikeSdk: RCTEventEmitter {
104
115
  return SpikeDataTypes.appleMoveTime
105
116
  case "DataTypeAppleExerciseTime":
106
117
  return SpikeDataTypes.appleExerciseTime
118
+ case "DataTypeDistanceWalkingRunning":
119
+ return SpikeDataTypes.distanceWalkingRunning
120
+ case "DataTypeWorkout":
121
+ return SpikeDataTypes.workout
107
122
  default:
108
123
  return nil
109
124
  }
@@ -132,4 +147,20 @@ extension SpikeSdk: SpikeDelegate {
132
147
  func spikeDataFailure() {
133
148
  sendEvent(withName: "onDataFailure", body: [:])
134
149
  }
150
+
151
+ func spikeWorkoutDataResult(_ result: [SpikeSDK.SpikeResultData]) {
152
+ if let dataString = try? String(data: JSONEncoder().encode(result), encoding: .utf8){
153
+ sendEvent(withName: "onWorkoutDataResult", body: ["resultJson": dataString])
154
+ } else {
155
+ sendEvent(withName: "onWorkoutDataResult", body: ["resultJson": "[]"])
156
+ }
157
+ }
158
+
159
+ func spikeWorkoutDataFailure() {
160
+ sendEvent(withName: "onWorkoutDataFailure", body: [:])
161
+ }
162
+
163
+ func debubLog(_ log: String) {
164
+ sendEvent(withName: "onLog", body: ["log": log])
165
+ }
135
166
  }
@@ -53,6 +53,11 @@ class Spike {
53
53
  _SpikeSdk.SpikeSdk.getData(dataTypes);
54
54
  }
55
55
  }
56
+ getDataInRange(dataTypes, startDate, endDate) {
57
+ if (_reactNative.Platform.OS === 'ios') {
58
+ _SpikeSdk.SpikeSdk.getDataInRange(dataTypes, startDate.getTime(), endDate.getTime());
59
+ }
60
+ }
56
61
  async enableBackgroundDelivery(dataTypes) {
57
62
  if (_reactNative.Platform.OS === 'ios') {
58
63
  return _SpikeSdk.SpikeSdk.enableBackgroundDelivery(dataTypes);
@@ -1 +1 @@
1
- {"version":3,"names":["Spike","isBackgroundUpdateEnabled","Platform","OS","SpikeSdk","enableDebug","initialize","setup","clientId","authToken","userId","postbackURL","undefined","setupWithURL","getCurrentUUID","uuid","clearData","getData","dataTypes","enableBackgroundDelivery","disableAllBackgroundDelivery"],"sourceRoot":"../../src","sources":["Spike.ts"],"mappings":";;;;;;AAAA;AAGA;AAEO,MAAMA,KAAK,CAA2B;EAC3C,MAAMC,yBAAyB,GAAqB;IAClD,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOC,kBAAQ,CAACH,yBAAyB,EAAE;IAC7C;IACA,OAAO,KAAK;EACd;EAEAI,WAAW,GAAS;IAClB,IAAIH,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBC,kBAAQ,CAACC,WAAW,EAAE;IACxB;EACF;EAEAC,UAAU,GAAS;IACjB,IAAIJ,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBC,kBAAQ,CAACE,UAAU,EAAE;IACvB;EACF;EAEAC,KAAK,CACHC,QAAgB,EAChBC,SAAiB,EACjBC,MAAc,EACdC,WAAoB,EACd;IACN,IAAIT,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,IAAIQ,WAAW,KAAKC,SAAS,EAAE;QAC7BR,kBAAQ,CAACS,YAAY,CAACL,QAAQ,EAAEC,SAAS,EAAEC,MAAM,EAAEC,WAAW,CAAC;MACjE,CAAC,MAAM;QACLP,kBAAQ,CAACG,KAAK,CAACC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,CAAC;MAC7C;IACF;EACF;EAEA,MAAMI,cAAc,GAAgC;IAClD,IAAIZ,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,MAAMY,IAAY,GAAG,MAAMX,kBAAQ,CAACU,cAAc,EAAE;MACpD,IAAIC,IAAI,EAAE;QACR,OAAOA,IAAI;MACb,CAAC,MAAM;QACL,OAAOH,SAAS;MAClB;IACF;IACA,OAAOA,SAAS;EAClB;EAEAI,SAAS,GAAS;IAChB,IAAId,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBC,kBAAQ,CAACY,SAAS,EAAE;IACtB;EACF;EAEAC,OAAO,CAACC,SAA0B,EAAQ;IACxC,IAAIhB,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBC,kBAAQ,CAACa,OAAO,CAACC,SAAS,CAAC;IAC7B;EACF;EAEA,MAAMC,wBAAwB,CAACD,SAA0B,EAAiB;IACxE,IAAIhB,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOC,kBAAQ,CAACe,wBAAwB,CAACD,SAAS,CAAC;IACrD;EACF;EAEA,MAAME,4BAA4B,GAAkB;IAClD,IAAIlB,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOC,kBAAQ,CAACgB,4BAA4B,EAAE;IAChD;EACF;AACF;AAAC"}
1
+ {"version":3,"names":["Spike","isBackgroundUpdateEnabled","Platform","OS","SpikeSdk","enableDebug","initialize","setup","clientId","authToken","userId","postbackURL","undefined","setupWithURL","getCurrentUUID","uuid","clearData","getData","dataTypes","getDataInRange","startDate","endDate","getTime","enableBackgroundDelivery","disableAllBackgroundDelivery"],"sourceRoot":"../../src","sources":["Spike.ts"],"mappings":";;;;;;AAAA;AAGA;AAEO,MAAMA,KAAK,CAA2B;EAC3C,MAAMC,yBAAyB,GAAqB;IAClD,IAAIC,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOC,kBAAQ,CAACH,yBAAyB,EAAE;IAC7C;IACA,OAAO,KAAK;EACd;EAEAI,WAAW,GAAS;IAClB,IAAIH,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBC,kBAAQ,CAACC,WAAW,EAAE;IACxB;EACF;EAEAC,UAAU,GAAS;IACjB,IAAIJ,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBC,kBAAQ,CAACE,UAAU,EAAE;IACvB;EACF;EAEAC,KAAK,CACHC,QAAgB,EAChBC,SAAiB,EACjBC,MAAc,EACdC,WAAoB,EACd;IACN,IAAIT,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,IAAIQ,WAAW,KAAKC,SAAS,EAAE;QAC7BR,kBAAQ,CAACS,YAAY,CAACL,QAAQ,EAAEC,SAAS,EAAEC,MAAM,EAAEC,WAAW,CAAC;MACjE,CAAC,MAAM;QACLP,kBAAQ,CAACG,KAAK,CAACC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,CAAC;MAC7C;IACF;EACF;EAEA,MAAMI,cAAc,GAAgC;IAClD,IAAIZ,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,MAAMY,IAAY,GAAG,MAAMX,kBAAQ,CAACU,cAAc,EAAE;MACpD,IAAIC,IAAI,EAAE;QACR,OAAOA,IAAI;MACb,CAAC,MAAM;QACL,OAAOH,SAAS;MAClB;IACF;IACA,OAAOA,SAAS;EAClB;EAEAI,SAAS,GAAS;IAChB,IAAId,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBC,kBAAQ,CAACY,SAAS,EAAE;IACtB;EACF;EAEAC,OAAO,CAACC,SAA0B,EAAQ;IACxC,IAAIhB,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBC,kBAAQ,CAACa,OAAO,CAACC,SAAS,CAAC;IAC7B;EACF;EAEAC,cAAc,CACZD,SAA0B,EAC1BE,SAAe,EACfC,OAAa,EACP;IACN,IAAInB,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzBC,kBAAQ,CAACe,cAAc,CACrBD,SAAS,EACTE,SAAS,CAACE,OAAO,EAAE,EACnBD,OAAO,CAACC,OAAO,EAAE,CAClB;IACH;EACF;EAEA,MAAMC,wBAAwB,CAACL,SAA0B,EAAiB;IACxE,IAAIhB,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOC,kBAAQ,CAACmB,wBAAwB,CAACL,SAAS,CAAC;IACrD;EACF;EAEA,MAAMM,4BAA4B,GAAkB;IAClD,IAAItB,qBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOC,kBAAQ,CAACoB,4BAA4B,EAAE;IAChD;EACF;AACF;AAAC"}
@@ -14,6 +14,6 @@ var _Spike = require("./Spike");
14
14
  var _useSpikeEvents = require("./useSpikeEvents");
15
15
  var _default = new _Spike.Spike();
16
16
  exports.default = _default;
17
- const SpikeDataTypesAll = ['DataTypeStep', 'DataTypeHeartRate', 'DataTypeRestingHeartRate', 'DataTypeActiveEnergy', 'DataTypeBasalEnergy', 'DataTypeAppleMoveTime', 'DataTypeAppleExerciseTime'];
17
+ const SpikeDataTypesAll = ['DataTypeStep', 'DataTypeHeartRate', 'DataTypeRestingHeartRate', 'DataTypeActiveEnergy', 'DataTypeBasalEnergy', 'DataTypeAppleMoveTime', 'DataTypeAppleExerciseTime', 'DataTypeDistanceWalkingRunning', 'DataTypeWorkout'];
18
18
  exports.SpikeDataTypesAll = SpikeDataTypesAll;
19
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Spike","SpikeDataTypesAll"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;AAAA;AAGA;AAAkD,eAEnC,IAAIA,YAAK,EAAE;AAAA;AAInB,MAAMC,iBAAkC,GAAG,CAChD,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,CAC5B;AAAC"}
1
+ {"version":3,"names":["Spike","SpikeDataTypesAll"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;AAAA;AAGA;AAAkD,eAEnC,IAAIA,YAAK,EAAE;AAAA;AAInB,MAAMC,iBAAkC,GAAG,CAChD,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,gCAAgC,EAChC,iBAAiB,CAClB;AAAC"}
@@ -12,7 +12,10 @@ const useSpikeEvents = _ref => {
12
12
  onInitialize,
13
13
  onInitializationFailure,
14
14
  onDataResult,
15
- onDataFailure
15
+ onDataFailure,
16
+ onWorkoutDataResult,
17
+ onWorkoutDataFailure,
18
+ onLog
16
19
  } = _ref;
17
20
  (0, _react.useEffect)(() => {
18
21
  const SpikeSdkEvents = new _reactNative.NativeEventEmitter(_SpikeSdk.SpikeSdk);
@@ -29,11 +32,24 @@ const useSpikeEvents = _ref => {
29
32
  SpikeSdkEvents.addListener('onDataFailure', () => {
30
33
  onDataFailure === null || onDataFailure === void 0 ? void 0 : onDataFailure();
31
34
  });
35
+ SpikeSdkEvents.addListener('onWorkoutDataResult', data => {
36
+ const result = JSON.parse(data.resultJson);
37
+ onWorkoutDataResult === null || onWorkoutDataResult === void 0 ? void 0 : onWorkoutDataResult(result);
38
+ });
39
+ SpikeSdkEvents.addListener('onWorkoutDataFailure', () => {
40
+ onWorkoutDataFailure === null || onWorkoutDataFailure === void 0 ? void 0 : onWorkoutDataFailure();
41
+ });
42
+ SpikeSdkEvents.addListener('onLog', data => {
43
+ onLog === null || onLog === void 0 ? void 0 : onLog(data.log);
44
+ });
32
45
  return () => {
33
46
  SpikeSdkEvents.removeAllListeners('onInitialize');
34
47
  SpikeSdkEvents.removeAllListeners('onInitializationFailure');
35
48
  SpikeSdkEvents.removeAllListeners('onDataResult');
36
49
  SpikeSdkEvents.removeAllListeners('onDataFailure');
50
+ SpikeSdkEvents.removeAllListeners('onWorkoutDataResult');
51
+ SpikeSdkEvents.removeAllListeners('onWorkoutDataFailure');
52
+ SpikeSdkEvents.removeAllListeners('onLog');
37
53
  };
38
54
  }, [onInitialize, onInitializationFailure, onDataResult, onDataFailure]);
39
55
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useSpikeEvents","onInitialize","onInitializationFailure","onDataResult","onDataFailure","useEffect","SpikeSdkEvents","NativeEventEmitter","SpikeSdk","addListener","data","uuid","result","JSON","parse","resultJson","removeAllListeners"],"sourceRoot":"../../src","sources":["useSpikeEvents.ts"],"mappings":";;;;;;AAAA;AACA;AAEA;AASO,MAAMA,cAAc,GAAG,QAKjB;EAAA,IALkB;IAC7BC,YAAY;IACZC,uBAAuB;IACvBC,YAAY;IACZC;EACK,CAAC;EACN,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,cAAc,GAAG,IAAIC,+BAAkB,CAACC,kBAAQ,CAAC;IAEvDF,cAAc,CAACG,WAAW,CAAC,cAAc,EAAGC,IAAsB,IAAK;MACrET,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGS,IAAI,CAACC,IAAI,CAAC;IAC3B,CAAC,CAAC;IACFL,cAAc,CAACG,WAAW,CAAC,yBAAyB,EAAE,MAAM;MAC1DP,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,EAAI;IAC7B,CAAC,CAAC;IACFI,cAAc,CAACG,WAAW,CACxB,cAAc,EACbC,IAA4B,IAAK;MAChC,MAAME,MAAuB,GAAGC,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACK,UAAU,CAAC;MAC3DZ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGS,MAAM,CAAC;IACxB,CAAC,CACF;IACDN,cAAc,CAACG,WAAW,CAAC,eAAe,EAAE,MAAM;MAChDL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,EAAI;IACnB,CAAC,CAAC;IAEF,OAAO,MAAM;MACXE,cAAc,CAACU,kBAAkB,CAAC,cAAc,CAAC;MACjDV,cAAc,CAACU,kBAAkB,CAAC,yBAAyB,CAAC;MAC5DV,cAAc,CAACU,kBAAkB,CAAC,cAAc,CAAC;MACjDV,cAAc,CAACU,kBAAkB,CAAC,eAAe,CAAC;IACpD,CAAC;EACH,CAAC,EAAE,CAACf,YAAY,EAAEC,uBAAuB,EAAEC,YAAY,EAAEC,aAAa,CAAC,CAAC;AAC1E,CAAC;AAAC"}
1
+ {"version":3,"names":["useSpikeEvents","onInitialize","onInitializationFailure","onDataResult","onDataFailure","onWorkoutDataResult","onWorkoutDataFailure","onLog","useEffect","SpikeSdkEvents","NativeEventEmitter","SpikeSdk","addListener","data","uuid","result","JSON","parse","resultJson","log","removeAllListeners"],"sourceRoot":"../../src","sources":["useSpikeEvents.ts"],"mappings":";;;;;;AAAA;AACA;AAEA;AAYO,MAAMA,cAAc,GAAG,QAQjB;EAAA,IARkB;IAC7BC,YAAY;IACZC,uBAAuB;IACvBC,YAAY;IACZC,aAAa;IACbC,mBAAmB;IACnBC,oBAAoB;IACpBC;EACK,CAAC;EACN,IAAAC,gBAAS,EAAC,MAAM;IACd,MAAMC,cAAc,GAAG,IAAIC,+BAAkB,CAACC,kBAAQ,CAAC;IAEvDF,cAAc,CAACG,WAAW,CAAC,cAAc,EAAGC,IAAsB,IAAK;MACrEZ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGY,IAAI,CAACC,IAAI,CAAC;IAC3B,CAAC,CAAC;IACFL,cAAc,CAACG,WAAW,CAAC,yBAAyB,EAAE,MAAM;MAC1DV,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,EAAI;IAC7B,CAAC,CAAC;IACFO,cAAc,CAACG,WAAW,CACxB,cAAc,EACbC,IAA4B,IAAK;MAChC,MAAME,MAAuB,GAAGC,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACK,UAAU,CAAC;MAC3Df,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGY,MAAM,CAAC;IACxB,CAAC,CACF;IACDN,cAAc,CAACG,WAAW,CAAC,eAAe,EAAE,MAAM;MAChDR,aAAa,aAAbA,aAAa,uBAAbA,aAAa,EAAI;IACnB,CAAC,CAAC;IACFK,cAAc,CAACG,WAAW,CACxB,qBAAqB,EACpBC,IAA4B,IAAK;MAChC,MAAME,MAAuB,GAAGC,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACK,UAAU,CAAC;MAC3Db,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAGU,MAAM,CAAC;IAC/B,CAAC,CACF;IACDN,cAAc,CAACG,WAAW,CAAC,sBAAsB,EAAE,MAAM;MACvDN,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,EAAI;IAC1B,CAAC,CAAC;IAEFG,cAAc,CAACG,WAAW,CAAC,OAAO,EAAGC,IAAqB,IAAK;MAC7DN,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAGM,IAAI,CAACM,GAAG,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO,MAAM;MACXV,cAAc,CAACW,kBAAkB,CAAC,cAAc,CAAC;MACjDX,cAAc,CAACW,kBAAkB,CAAC,yBAAyB,CAAC;MAC5DX,cAAc,CAACW,kBAAkB,CAAC,cAAc,CAAC;MACjDX,cAAc,CAACW,kBAAkB,CAAC,eAAe,CAAC;MAClDX,cAAc,CAACW,kBAAkB,CAAC,qBAAqB,CAAC;MACxDX,cAAc,CAACW,kBAAkB,CAAC,sBAAsB,CAAC;MACzDX,cAAc,CAACW,kBAAkB,CAAC,OAAO,CAAC;IAC5C,CAAC;EACH,CAAC,EAAE,CAACnB,YAAY,EAAEC,uBAAuB,EAAEC,YAAY,EAAEC,aAAa,CAAC,CAAC;AAC1E,CAAC;AAAC"}
@@ -47,6 +47,11 @@ export class Spike {
47
47
  SpikeSdk.getData(dataTypes);
48
48
  }
49
49
  }
50
+ getDataInRange(dataTypes, startDate, endDate) {
51
+ if (Platform.OS === 'ios') {
52
+ SpikeSdk.getDataInRange(dataTypes, startDate.getTime(), endDate.getTime());
53
+ }
54
+ }
50
55
  async enableBackgroundDelivery(dataTypes) {
51
56
  if (Platform.OS === 'ios') {
52
57
  return SpikeSdk.enableBackgroundDelivery(dataTypes);
@@ -1 +1 @@
1
- {"version":3,"names":["Platform","SpikeSdk","Spike","isBackgroundUpdateEnabled","OS","enableDebug","initialize","setup","clientId","authToken","userId","postbackURL","undefined","setupWithURL","getCurrentUUID","uuid","clearData","getData","dataTypes","enableBackgroundDelivery","disableAllBackgroundDelivery"],"sourceRoot":"../../src","sources":["Spike.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAGvC,SAASC,QAAQ,QAAQ,YAAY;AAErC,OAAO,MAAMC,KAAK,CAA2B;EAC3C,MAAMC,yBAAyB,GAAqB;IAClD,IAAIH,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOH,QAAQ,CAACE,yBAAyB,EAAE;IAC7C;IACA,OAAO,KAAK;EACd;EAEAE,WAAW,GAAS;IAClB,IAAIL,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzBH,QAAQ,CAACI,WAAW,EAAE;IACxB;EACF;EAEAC,UAAU,GAAS;IACjB,IAAIN,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzBH,QAAQ,CAACK,UAAU,EAAE;IACvB;EACF;EAEAC,KAAK,CACHC,QAAgB,EAChBC,SAAiB,EACjBC,MAAc,EACdC,WAAoB,EACd;IACN,IAAIX,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzB,IAAIO,WAAW,KAAKC,SAAS,EAAE;QAC7BX,QAAQ,CAACY,YAAY,CAACL,QAAQ,EAAEC,SAAS,EAAEC,MAAM,EAAEC,WAAW,CAAC;MACjE,CAAC,MAAM;QACLV,QAAQ,CAACM,KAAK,CAACC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,CAAC;MAC7C;IACF;EACF;EAEA,MAAMI,cAAc,GAAgC;IAClD,IAAId,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzB,MAAMW,IAAY,GAAG,MAAMd,QAAQ,CAACa,cAAc,EAAE;MACpD,IAAIC,IAAI,EAAE;QACR,OAAOA,IAAI;MACb,CAAC,MAAM;QACL,OAAOH,SAAS;MAClB;IACF;IACA,OAAOA,SAAS;EAClB;EAEAI,SAAS,GAAS;IAChB,IAAIhB,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzBH,QAAQ,CAACe,SAAS,EAAE;IACtB;EACF;EAEAC,OAAO,CAACC,SAA0B,EAAQ;IACxC,IAAIlB,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzBH,QAAQ,CAACgB,OAAO,CAACC,SAAS,CAAC;IAC7B;EACF;EAEA,MAAMC,wBAAwB,CAACD,SAA0B,EAAiB;IACxE,IAAIlB,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOH,QAAQ,CAACkB,wBAAwB,CAACD,SAAS,CAAC;IACrD;EACF;EAEA,MAAME,4BAA4B,GAAkB;IAClD,IAAIpB,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOH,QAAQ,CAACmB,4BAA4B,EAAE;IAChD;EACF;AACF"}
1
+ {"version":3,"names":["Platform","SpikeSdk","Spike","isBackgroundUpdateEnabled","OS","enableDebug","initialize","setup","clientId","authToken","userId","postbackURL","undefined","setupWithURL","getCurrentUUID","uuid","clearData","getData","dataTypes","getDataInRange","startDate","endDate","getTime","enableBackgroundDelivery","disableAllBackgroundDelivery"],"sourceRoot":"../../src","sources":["Spike.ts"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AAGvC,SAASC,QAAQ,QAAQ,YAAY;AAErC,OAAO,MAAMC,KAAK,CAA2B;EAC3C,MAAMC,yBAAyB,GAAqB;IAClD,IAAIH,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOH,QAAQ,CAACE,yBAAyB,EAAE;IAC7C;IACA,OAAO,KAAK;EACd;EAEAE,WAAW,GAAS;IAClB,IAAIL,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzBH,QAAQ,CAACI,WAAW,EAAE;IACxB;EACF;EAEAC,UAAU,GAAS;IACjB,IAAIN,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzBH,QAAQ,CAACK,UAAU,EAAE;IACvB;EACF;EAEAC,KAAK,CACHC,QAAgB,EAChBC,SAAiB,EACjBC,MAAc,EACdC,WAAoB,EACd;IACN,IAAIX,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzB,IAAIO,WAAW,KAAKC,SAAS,EAAE;QAC7BX,QAAQ,CAACY,YAAY,CAACL,QAAQ,EAAEC,SAAS,EAAEC,MAAM,EAAEC,WAAW,CAAC;MACjE,CAAC,MAAM;QACLV,QAAQ,CAACM,KAAK,CAACC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,CAAC;MAC7C;IACF;EACF;EAEA,MAAMI,cAAc,GAAgC;IAClD,IAAId,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzB,MAAMW,IAAY,GAAG,MAAMd,QAAQ,CAACa,cAAc,EAAE;MACpD,IAAIC,IAAI,EAAE;QACR,OAAOA,IAAI;MACb,CAAC,MAAM;QACL,OAAOH,SAAS;MAClB;IACF;IACA,OAAOA,SAAS;EAClB;EAEAI,SAAS,GAAS;IAChB,IAAIhB,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzBH,QAAQ,CAACe,SAAS,EAAE;IACtB;EACF;EAEAC,OAAO,CAACC,SAA0B,EAAQ;IACxC,IAAIlB,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzBH,QAAQ,CAACgB,OAAO,CAACC,SAAS,CAAC;IAC7B;EACF;EAEAC,cAAc,CACZD,SAA0B,EAC1BE,SAAe,EACfC,OAAa,EACP;IACN,IAAIrB,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzBH,QAAQ,CAACkB,cAAc,CACrBD,SAAS,EACTE,SAAS,CAACE,OAAO,EAAE,EACnBD,OAAO,CAACC,OAAO,EAAE,CAClB;IACH;EACF;EAEA,MAAMC,wBAAwB,CAACL,SAA0B,EAAiB;IACxE,IAAIlB,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOH,QAAQ,CAACsB,wBAAwB,CAACL,SAAS,CAAC;IACrD;EACF;EAEA,MAAMM,4BAA4B,GAAkB;IAClD,IAAIxB,QAAQ,CAACI,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOH,QAAQ,CAACuB,4BAA4B,EAAE;IAChD;EACF;AACF"}
@@ -2,5 +2,5 @@ import { Spike } from './Spike';
2
2
  import { useSpikeEvents } from './useSpikeEvents';
3
3
  export default new Spike();
4
4
  export { useSpikeEvents };
5
- export const SpikeDataTypesAll = ['DataTypeStep', 'DataTypeHeartRate', 'DataTypeRestingHeartRate', 'DataTypeActiveEnergy', 'DataTypeBasalEnergy', 'DataTypeAppleMoveTime', 'DataTypeAppleExerciseTime'];
5
+ export const SpikeDataTypesAll = ['DataTypeStep', 'DataTypeHeartRate', 'DataTypeRestingHeartRate', 'DataTypeActiveEnergy', 'DataTypeBasalEnergy', 'DataTypeAppleMoveTime', 'DataTypeAppleExerciseTime', 'DataTypeDistanceWalkingRunning', 'DataTypeWorkout'];
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Spike","useSpikeEvents","SpikeDataTypesAll"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,KAAK,QAAQ,SAAS;AAG/B,SAASC,cAAc,QAAQ,kBAAkB;AAEjD,eAAe,IAAID,KAAK,EAAE;AAE1B,SAASC,cAAc;AAEvB,OAAO,MAAMC,iBAAkC,GAAG,CAChD,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,CAC5B"}
1
+ {"version":3,"names":["Spike","useSpikeEvents","SpikeDataTypesAll"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,KAAK,QAAQ,SAAS;AAG/B,SAASC,cAAc,QAAQ,kBAAkB;AAEjD,eAAe,IAAID,KAAK,EAAE;AAE1B,SAASC,cAAc;AAEvB,OAAO,MAAMC,iBAAkC,GAAG,CAChD,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,2BAA2B,EAC3B,gCAAgC,EAChC,iBAAiB,CAClB"}
@@ -6,7 +6,10 @@ export const useSpikeEvents = _ref => {
6
6
  onInitialize,
7
7
  onInitializationFailure,
8
8
  onDataResult,
9
- onDataFailure
9
+ onDataFailure,
10
+ onWorkoutDataResult,
11
+ onWorkoutDataFailure,
12
+ onLog
10
13
  } = _ref;
11
14
  useEffect(() => {
12
15
  const SpikeSdkEvents = new NativeEventEmitter(SpikeSdk);
@@ -23,11 +26,24 @@ export const useSpikeEvents = _ref => {
23
26
  SpikeSdkEvents.addListener('onDataFailure', () => {
24
27
  onDataFailure === null || onDataFailure === void 0 ? void 0 : onDataFailure();
25
28
  });
29
+ SpikeSdkEvents.addListener('onWorkoutDataResult', data => {
30
+ const result = JSON.parse(data.resultJson);
31
+ onWorkoutDataResult === null || onWorkoutDataResult === void 0 ? void 0 : onWorkoutDataResult(result);
32
+ });
33
+ SpikeSdkEvents.addListener('onWorkoutDataFailure', () => {
34
+ onWorkoutDataFailure === null || onWorkoutDataFailure === void 0 ? void 0 : onWorkoutDataFailure();
35
+ });
36
+ SpikeSdkEvents.addListener('onLog', data => {
37
+ onLog === null || onLog === void 0 ? void 0 : onLog(data.log);
38
+ });
26
39
  return () => {
27
40
  SpikeSdkEvents.removeAllListeners('onInitialize');
28
41
  SpikeSdkEvents.removeAllListeners('onInitializationFailure');
29
42
  SpikeSdkEvents.removeAllListeners('onDataResult');
30
43
  SpikeSdkEvents.removeAllListeners('onDataFailure');
44
+ SpikeSdkEvents.removeAllListeners('onWorkoutDataResult');
45
+ SpikeSdkEvents.removeAllListeners('onWorkoutDataFailure');
46
+ SpikeSdkEvents.removeAllListeners('onLog');
31
47
  };
32
48
  }, [onInitialize, onInitializationFailure, onDataResult, onDataFailure]);
33
49
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","NativeEventEmitter","SpikeSdk","useSpikeEvents","onInitialize","onInitializationFailure","onDataResult","onDataFailure","SpikeSdkEvents","addListener","data","uuid","result","JSON","parse","resultJson","removeAllListeners"],"sourceRoot":"../../src","sources":["useSpikeEvents.ts"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,kBAAkB,QAAQ,cAAc;AAEjD,SAASC,QAAQ,QAAQ,YAAY;AASrC,OAAO,MAAMC,cAAc,GAAG,QAKjB;EAAA,IALkB;IAC7BC,YAAY;IACZC,uBAAuB;IACvBC,YAAY;IACZC;EACK,CAAC;EACNP,SAAS,CAAC,MAAM;IACd,MAAMQ,cAAc,GAAG,IAAIP,kBAAkB,CAACC,QAAQ,CAAC;IAEvDM,cAAc,CAACC,WAAW,CAAC,cAAc,EAAGC,IAAsB,IAAK;MACrEN,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGM,IAAI,CAACC,IAAI,CAAC;IAC3B,CAAC,CAAC;IACFH,cAAc,CAACC,WAAW,CAAC,yBAAyB,EAAE,MAAM;MAC1DJ,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,EAAI;IAC7B,CAAC,CAAC;IACFG,cAAc,CAACC,WAAW,CACxB,cAAc,EACbC,IAA4B,IAAK;MAChC,MAAME,MAAuB,GAAGC,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACK,UAAU,CAAC;MAC3DT,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGM,MAAM,CAAC;IACxB,CAAC,CACF;IACDJ,cAAc,CAACC,WAAW,CAAC,eAAe,EAAE,MAAM;MAChDF,aAAa,aAAbA,aAAa,uBAAbA,aAAa,EAAI;IACnB,CAAC,CAAC;IAEF,OAAO,MAAM;MACXC,cAAc,CAACQ,kBAAkB,CAAC,cAAc,CAAC;MACjDR,cAAc,CAACQ,kBAAkB,CAAC,yBAAyB,CAAC;MAC5DR,cAAc,CAACQ,kBAAkB,CAAC,cAAc,CAAC;MACjDR,cAAc,CAACQ,kBAAkB,CAAC,eAAe,CAAC;IACpD,CAAC;EACH,CAAC,EAAE,CAACZ,YAAY,EAAEC,uBAAuB,EAAEC,YAAY,EAAEC,aAAa,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"names":["useEffect","NativeEventEmitter","SpikeSdk","useSpikeEvents","onInitialize","onInitializationFailure","onDataResult","onDataFailure","onWorkoutDataResult","onWorkoutDataFailure","onLog","SpikeSdkEvents","addListener","data","uuid","result","JSON","parse","resultJson","log","removeAllListeners"],"sourceRoot":"../../src","sources":["useSpikeEvents.ts"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAASC,kBAAkB,QAAQ,cAAc;AAEjD,SAASC,QAAQ,QAAQ,YAAY;AAYrC,OAAO,MAAMC,cAAc,GAAG,QAQjB;EAAA,IARkB;IAC7BC,YAAY;IACZC,uBAAuB;IACvBC,YAAY;IACZC,aAAa;IACbC,mBAAmB;IACnBC,oBAAoB;IACpBC;EACK,CAAC;EACNV,SAAS,CAAC,MAAM;IACd,MAAMW,cAAc,GAAG,IAAIV,kBAAkB,CAACC,QAAQ,CAAC;IAEvDS,cAAc,CAACC,WAAW,CAAC,cAAc,EAAGC,IAAsB,IAAK;MACrET,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGS,IAAI,CAACC,IAAI,CAAC;IAC3B,CAAC,CAAC;IACFH,cAAc,CAACC,WAAW,CAAC,yBAAyB,EAAE,MAAM;MAC1DP,uBAAuB,aAAvBA,uBAAuB,uBAAvBA,uBAAuB,EAAI;IAC7B,CAAC,CAAC;IACFM,cAAc,CAACC,WAAW,CACxB,cAAc,EACbC,IAA4B,IAAK;MAChC,MAAME,MAAuB,GAAGC,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACK,UAAU,CAAC;MAC3DZ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGS,MAAM,CAAC;IACxB,CAAC,CACF;IACDJ,cAAc,CAACC,WAAW,CAAC,eAAe,EAAE,MAAM;MAChDL,aAAa,aAAbA,aAAa,uBAAbA,aAAa,EAAI;IACnB,CAAC,CAAC;IACFI,cAAc,CAACC,WAAW,CACxB,qBAAqB,EACpBC,IAA4B,IAAK;MAChC,MAAME,MAAuB,GAAGC,IAAI,CAACC,KAAK,CAACJ,IAAI,CAACK,UAAU,CAAC;MAC3DV,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAGO,MAAM,CAAC;IAC/B,CAAC,CACF;IACDJ,cAAc,CAACC,WAAW,CAAC,sBAAsB,EAAE,MAAM;MACvDH,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,EAAI;IAC1B,CAAC,CAAC;IAEFE,cAAc,CAACC,WAAW,CAAC,OAAO,EAAGC,IAAqB,IAAK;MAC7DH,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAGG,IAAI,CAACM,GAAG,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO,MAAM;MACXR,cAAc,CAACS,kBAAkB,CAAC,cAAc,CAAC;MACjDT,cAAc,CAACS,kBAAkB,CAAC,yBAAyB,CAAC;MAC5DT,cAAc,CAACS,kBAAkB,CAAC,cAAc,CAAC;MACjDT,cAAc,CAACS,kBAAkB,CAAC,eAAe,CAAC;MAClDT,cAAc,CAACS,kBAAkB,CAAC,qBAAqB,CAAC;MACxDT,cAAc,CAACS,kBAAkB,CAAC,sBAAsB,CAAC;MACzDT,cAAc,CAACS,kBAAkB,CAAC,OAAO,CAAC;IAC5C,CAAC;EACH,CAAC,EAAE,CAAChB,YAAY,EAAEC,uBAAuB,EAAEC,YAAY,EAAEC,aAAa,CAAC,CAAC;AAC1E,CAAC"}
@@ -8,6 +8,7 @@ export declare class Spike implements SpikeInterface {
8
8
  getCurrentUUID(): Promise<string | undefined>;
9
9
  clearData(): void;
10
10
  getData(dataTypes: SpikeDataType[]): void;
11
+ getDataInRange(dataTypes: SpikeDataType[], startDate: Date, endDate: Date): void;
11
12
  enableBackgroundDelivery(dataTypes: SpikeDataType[]): Promise<void>;
12
13
  disableAllBackgroundDelivery(): Promise<void>;
13
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Spike.d.ts","sourceRoot":"","sources":["../../src/Spike.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,qBAAa,KAAM,YAAW,cAAc;IACpC,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC;IAOnD,WAAW,IAAI,IAAI;IAMnB,UAAU,IAAI,IAAI;IAMlB,KAAK,CACH,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI;IAUD,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAYnD,SAAS,IAAI,IAAI;IAMjB,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI;IAMnC,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnE,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;CAKpD"}
1
+ {"version":3,"file":"Spike.d.ts","sourceRoot":"","sources":["../../src/Spike.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,qBAAa,KAAM,YAAW,cAAc;IACpC,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC;IAOnD,WAAW,IAAI,IAAI;IAMnB,UAAU,IAAI,IAAI;IAMlB,KAAK,CACH,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI;IAUD,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAYnD,SAAS,IAAI,IAAI;IAMjB,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI;IAMzC,cAAc,CACZ,SAAS,EAAE,aAAa,EAAE,EAC1B,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,GACZ,IAAI;IAUD,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMnE,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;CAKpD"}
@@ -1,2 +1,2 @@
1
- export type SpikeDataType = 'DataTypeStep' | 'DataTypeHeartRate' | 'DataTypeRestingHeartRate' | 'DataTypeActiveEnergy' | 'DataTypeBasalEnergy' | 'DataTypeAppleMoveTime' | 'DataTypeAppleExerciseTime';
1
+ export type SpikeDataType = 'DataTypeStep' | 'DataTypeHeartRate' | 'DataTypeRestingHeartRate' | 'DataTypeActiveEnergy' | 'DataTypeBasalEnergy' | 'DataTypeAppleMoveTime' | 'DataTypeAppleExerciseTime' | 'DataTypeDistanceWalkingRunning' | 'DataTypeWorkout';
2
2
  //# sourceMappingURL=SpikeDataType.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpikeDataType.d.ts","sourceRoot":"","sources":["../../src/SpikeDataType.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,mBAAmB,GACnB,0BAA0B,GAC1B,sBAAsB,GACtB,qBAAqB,GACrB,uBAAuB,GACvB,2BAA2B,CAAC"}
1
+ {"version":3,"file":"SpikeDataType.d.ts","sourceRoot":"","sources":["../../src/SpikeDataType.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,mBAAmB,GACnB,0BAA0B,GAC1B,sBAAsB,GACtB,qBAAqB,GACrB,uBAAuB,GACvB,2BAA2B,GAC3B,gCAAgC,GAChC,iBAAiB,CAAC"}
@@ -7,6 +7,7 @@ export interface SpikeInterface {
7
7
  getCurrentUUID(): Promise<string | undefined>;
8
8
  clearData(): void;
9
9
  getData(dataTypes: SpikeDataType[]): void;
10
+ getDataInRange(dataTypes: SpikeDataType[], startDate: Date, endDate: Date): void;
10
11
  enableBackgroundDelivery(dataTypes: SpikeDataType[]): Promise<void>;
11
12
  disableAllBackgroundDelivery(): Promise<void>;
12
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SpikeInterface.d.ts","sourceRoot":"","sources":["../../src/SpikeInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C,WAAW,IAAI,IAAI,CAAC;IAEpB,UAAU,IAAI,IAAI,CAAC;IAEnB,KAAK,CACH,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI,CAAC;IAER,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE9C,SAAS,IAAI,IAAI,CAAC;IAElB,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAE1C,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C"}
1
+ {"version":3,"file":"SpikeInterface.d.ts","sourceRoot":"","sources":["../../src/SpikeInterface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAE9C,WAAW,IAAI,IAAI,CAAC;IAEpB,UAAU,IAAI,IAAI,CAAC;IAEnB,KAAK,CACH,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,GACnB,IAAI,CAAC;IAER,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE9C,SAAS,IAAI,IAAI,CAAC;IAElB,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAE1C,cAAc,CACZ,SAAS,EAAE,aAAa,EAAE,EAC1B,SAAS,EAAE,IAAI,EACf,OAAO,EAAE,IAAI,GACZ,IAAI,CAAC;IAER,wBAAwB,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEpE,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;;AAElD,wBAA2B;AAE3B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AAE1D,eAAO,MAAM,iBAAiB,EAAE,aAAa,EAQ5C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;;AAElD,wBAA2B;AAE3B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AAE1D,eAAO,MAAM,iBAAiB,EAAE,aAAa,EAU5C,CAAC"}
@@ -4,7 +4,10 @@ type Props = {
4
4
  onInitializationFailure?: () => void;
5
5
  onDataResult?: (result: SpikeResultData) => void;
6
6
  onDataFailure?: () => void;
7
+ onWorkoutDataResult?: (result: SpikeResultData) => void;
8
+ onWorkoutDataFailure?: () => void;
9
+ onLog?: (log: string) => void;
7
10
  };
8
- export declare const useSpikeEvents: ({ onInitialize, onInitializationFailure, onDataResult, onDataFailure, }: Props) => void;
11
+ export declare const useSpikeEvents: ({ onInitialize, onInitializationFailure, onDataResult, onDataFailure, onWorkoutDataResult, onWorkoutDataFailure, onLog, }: Props) => void;
9
12
  export {};
10
13
  //# sourceMappingURL=useSpikeEvents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSpikeEvents.d.ts","sourceRoot":"","sources":["../../src/useSpikeEvents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,KAAK,KAAK,GAAG;IACX,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,cAAc,4EAKxB,KAAK,SA4BP,CAAC"}
1
+ {"version":3,"file":"useSpikeEvents.d.ts","sourceRoot":"","sources":["../../src/useSpikeEvents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGzD,KAAK,KAAK,GAAG;IACX,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACjD,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACxD,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;IAClC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,cAAc,8HAQxB,KAAK,SA6CP,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-spike-sdk",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Spike API for health and productivity data from wearables and IoT devices",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -5,7 +5,7 @@ folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1
5
5
 
6
6
  Pod::Spec.new do |s|
7
7
  s.name = "react-native-spike-sdk"
8
- s.version = "0.1.1"
8
+ s.version = "0.2.0"
9
9
  s.summary = "Spike API for health and productivity data from wearables and IoT devices"
10
10
 
11
11
  s.description = <<-DESC
@@ -25,7 +25,7 @@ Pod::Spec.new do |s|
25
25
  s.swift_version = "5"
26
26
 
27
27
  s.dependency "React-Core"
28
- s.dependency "SpikeSDK", "0.1.5"
28
+ s.dependency "SpikeSDK", "0.2.2"
29
29
 
30
30
  # Don't install the dependencies when we run `pod install` in the old architecture.
31
31
  if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
package/src/Spike.ts CHANGED
@@ -62,6 +62,20 @@ export class Spike implements SpikeInterface {
62
62
  }
63
63
  }
64
64
 
65
+ getDataInRange(
66
+ dataTypes: SpikeDataType[],
67
+ startDate: Date,
68
+ endDate: Date
69
+ ): void {
70
+ if (Platform.OS === 'ios') {
71
+ SpikeSdk.getDataInRange(
72
+ dataTypes,
73
+ startDate.getTime(),
74
+ endDate.getTime()
75
+ );
76
+ }
77
+ }
78
+
65
79
  async enableBackgroundDelivery(dataTypes: SpikeDataType[]): Promise<void> {
66
80
  if (Platform.OS === 'ios') {
67
81
  return SpikeSdk.enableBackgroundDelivery(dataTypes);
@@ -5,4 +5,6 @@ export type SpikeDataType =
5
5
  | 'DataTypeActiveEnergy'
6
6
  | 'DataTypeBasalEnergy'
7
7
  | 'DataTypeAppleMoveTime'
8
- | 'DataTypeAppleExerciseTime';
8
+ | 'DataTypeAppleExerciseTime'
9
+ | 'DataTypeDistanceWalkingRunning'
10
+ | 'DataTypeWorkout';
@@ -20,6 +20,12 @@ export interface SpikeInterface {
20
20
 
21
21
  getData(dataTypes: SpikeDataType[]): void;
22
22
 
23
+ getDataInRange(
24
+ dataTypes: SpikeDataType[],
25
+ startDate: Date,
26
+ endDate: Date
27
+ ): void;
28
+
23
29
  enableBackgroundDelivery(dataTypes: SpikeDataType[]): Promise<void>;
24
30
 
25
31
  disableAllBackgroundDelivery(): Promise<void>;
package/src/index.ts CHANGED
@@ -15,4 +15,6 @@ export const SpikeDataTypesAll: SpikeDataType[] = [
15
15
  'DataTypeBasalEnergy',
16
16
  'DataTypeAppleMoveTime',
17
17
  'DataTypeAppleExerciseTime',
18
+ 'DataTypeDistanceWalkingRunning',
19
+ 'DataTypeWorkout',
18
20
  ];
@@ -8,6 +8,9 @@ type Props = {
8
8
  onInitializationFailure?: () => void;
9
9
  onDataResult?: (result: SpikeResultData) => void;
10
10
  onDataFailure?: () => void;
11
+ onWorkoutDataResult?: (result: SpikeResultData) => void;
12
+ onWorkoutDataFailure?: () => void;
13
+ onLog?: (log: string) => void;
11
14
  };
12
15
 
13
16
  export const useSpikeEvents = ({
@@ -15,6 +18,9 @@ export const useSpikeEvents = ({
15
18
  onInitializationFailure,
16
19
  onDataResult,
17
20
  onDataFailure,
21
+ onWorkoutDataResult,
22
+ onWorkoutDataFailure,
23
+ onLog,
18
24
  }: Props) => {
19
25
  useEffect(() => {
20
26
  const SpikeSdkEvents = new NativeEventEmitter(SpikeSdk);
@@ -35,12 +41,29 @@ export const useSpikeEvents = ({
35
41
  SpikeSdkEvents.addListener('onDataFailure', () => {
36
42
  onDataFailure?.();
37
43
  });
44
+ SpikeSdkEvents.addListener(
45
+ 'onWorkoutDataResult',
46
+ (data: { resultJson: string }) => {
47
+ const result: SpikeResultData = JSON.parse(data.resultJson);
48
+ onWorkoutDataResult?.(result);
49
+ }
50
+ );
51
+ SpikeSdkEvents.addListener('onWorkoutDataFailure', () => {
52
+ onWorkoutDataFailure?.();
53
+ });
54
+
55
+ SpikeSdkEvents.addListener('onLog', (data: { log: string }) => {
56
+ onLog?.(data.log);
57
+ });
38
58
 
39
59
  return () => {
40
60
  SpikeSdkEvents.removeAllListeners('onInitialize');
41
61
  SpikeSdkEvents.removeAllListeners('onInitializationFailure');
42
62
  SpikeSdkEvents.removeAllListeners('onDataResult');
43
63
  SpikeSdkEvents.removeAllListeners('onDataFailure');
64
+ SpikeSdkEvents.removeAllListeners('onWorkoutDataResult');
65
+ SpikeSdkEvents.removeAllListeners('onWorkoutDataFailure');
66
+ SpikeSdkEvents.removeAllListeners('onLog');
44
67
  };
45
68
  }, [onInitialize, onInitializationFailure, onDataResult, onDataFailure]);
46
69
  };