@ovok/native 1.5.1 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/android/build.gradle +43 -0
  2. package/android/src/main/AndroidManifest.xml +23 -0
  3. package/android/src/main/java/com/ovok/sdk/backgroundsync/BackgroundSyncNotification.java +78 -0
  4. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBackgroundSyncModule.java +109 -0
  5. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBackgroundSyncPackage.java +26 -0
  6. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokBluetoothForegroundService.java +28 -0
  7. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokHealthConnectTaskService.java +45 -0
  8. package/android/src/main/java/com/ovok/sdk/backgroundsync/OvokHealthConnectWorker.java +28 -0
  9. package/lib/commonjs/index.js +11 -0
  10. package/lib/commonjs/index.js.map +1 -1
  11. package/lib/commonjs/modules/background-sync/android-background-sync.js +69 -0
  12. package/lib/commonjs/modules/background-sync/android-background-sync.js.map +1 -0
  13. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js +49 -0
  14. package/lib/commonjs/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -0
  15. package/lib/commonjs/modules/background-sync/index.js +28 -0
  16. package/lib/commonjs/modules/background-sync/index.js.map +1 -0
  17. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js +7 -1
  18. package/lib/commonjs/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  19. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +24 -2
  20. package/lib/commonjs/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -1
  21. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js +9 -6
  22. package/lib/commonjs/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  23. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.device.js +16 -0
  24. package/lib/commonjs/modules/bt-management/services/devices/uebe/mysense.device.js.map +1 -1
  25. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js +10 -5
  26. package/lib/commonjs/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  27. package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js +5 -3
  28. package/lib/commonjs/modules/data-sync/components/android/android-health-sync.js.map +1 -1
  29. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js +7 -4
  30. package/lib/commonjs/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  31. package/lib/commonjs/modules/data-sync/hooks/use-listen-changes.js +27 -11
  32. package/lib/commonjs/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
  33. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js +4 -3
  34. package/lib/commonjs/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  35. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js +9 -5
  36. package/lib/commonjs/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  37. package/lib/commonjs/modules/data-sync/services/managers/sync-state-manager.js +4 -1
  38. package/lib/commonjs/modules/data-sync/services/managers/sync-state-manager.js.map +1 -1
  39. package/lib/module/index.js +1 -0
  40. package/lib/module/index.js.map +1 -1
  41. package/lib/module/modules/background-sync/android-background-sync.js +61 -0
  42. package/lib/module/modules/background-sync/android-background-sync.js.map +1 -0
  43. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js +44 -0
  44. package/lib/module/modules/background-sync/android-bluetooth-foreground-service.js.map +1 -0
  45. package/lib/module/modules/background-sync/index.js +5 -0
  46. package/lib/module/modules/background-sync/index.js.map +1 -0
  47. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js +7 -2
  48. package/lib/module/modules/bt-management/components/bt-provider-child-wrapper.js.map +1 -1
  49. package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js +24 -2
  50. package/lib/module/modules/bt-management/services/devices/bc01/bc01-frame-parser.js.map +1 -1
  51. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js +9 -6
  52. package/lib/module/modules/bt-management/services/devices/custom/custom.device.js.map +1 -1
  53. package/lib/module/modules/bt-management/services/devices/uebe/mysense.device.js +16 -0
  54. package/lib/module/modules/bt-management/services/devices/uebe/mysense.device.js.map +1 -1
  55. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js +10 -5
  56. package/lib/module/modules/data-sync/components/android/android-health-connect-authorization-provider.js.map +1 -1
  57. package/lib/module/modules/data-sync/components/android/android-health-sync.js +5 -3
  58. package/lib/module/modules/data-sync/components/android/android-health-sync.js.map +1 -1
  59. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js +7 -4
  60. package/lib/module/modules/data-sync/components/apple/apple-health-sync.js.map +1 -1
  61. package/lib/module/modules/data-sync/hooks/use-listen-changes.js +27 -10
  62. package/lib/module/modules/data-sync/hooks/use-listen-changes.js.map +1 -1
  63. package/lib/module/modules/data-sync/services/base-health-sync-service.js +4 -3
  64. package/lib/module/modules/data-sync/services/base-health-sync-service.js.map +1 -1
  65. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js +9 -5
  66. package/lib/module/modules/data-sync/services/managers/sync-progress-manager.js.map +1 -1
  67. package/lib/module/modules/data-sync/services/managers/sync-state-manager.js +4 -1
  68. package/lib/module/modules/data-sync/services/managers/sync-state-manager.js.map +1 -1
  69. package/lib/typescript/commonjs/src/index.d.ts +1 -0
  70. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  71. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts +39 -0
  72. package/lib/typescript/commonjs/src/modules/background-sync/android-background-sync.d.ts.map +1 -0
  73. package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts +12 -0
  74. package/lib/typescript/commonjs/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -0
  75. package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts +3 -0
  76. package/lib/typescript/commonjs/src/modules/background-sync/index.d.ts.map +1 -0
  77. package/lib/typescript/commonjs/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  78. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +11 -4
  79. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -1
  80. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts +4 -0
  81. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  82. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts +3 -0
  83. package/lib/typescript/commonjs/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts.map +1 -1
  84. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts +8 -0
  85. package/lib/typescript/commonjs/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  86. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts +1 -1
  87. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  88. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-sync.d.ts +1 -1
  89. package/lib/typescript/commonjs/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
  90. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts +1 -1
  91. package/lib/typescript/commonjs/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  92. package/lib/typescript/commonjs/src/modules/data-sync/components/data-sync.d.ts +3 -3
  93. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts +1 -1
  94. package/lib/typescript/commonjs/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
  95. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts +2 -1
  96. package/lib/typescript/commonjs/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  97. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +3 -3
  98. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
  99. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-state-manager.d.ts +3 -1
  100. package/lib/typescript/commonjs/src/modules/data-sync/services/managers/sync-state-manager.d.ts.map +1 -1
  101. package/lib/typescript/commonjs/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts +4 -1
  102. package/lib/typescript/commonjs/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts.map +1 -1
  103. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -2
  104. package/lib/typescript/commonjs/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  105. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts +6 -0
  106. package/lib/typescript/commonjs/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts +4 -1
  108. package/lib/typescript/commonjs/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  109. package/lib/typescript/module/src/index.d.ts +1 -0
  110. package/lib/typescript/module/src/index.d.ts.map +1 -1
  111. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts +39 -0
  112. package/lib/typescript/module/src/modules/background-sync/android-background-sync.d.ts.map +1 -0
  113. package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts +12 -0
  114. package/lib/typescript/module/src/modules/background-sync/android-bluetooth-foreground-service.d.ts.map +1 -0
  115. package/lib/typescript/module/src/modules/background-sync/index.d.ts +3 -0
  116. package/lib/typescript/module/src/modules/background-sync/index.d.ts.map +1 -0
  117. package/lib/typescript/module/src/modules/bt-management/components/bt-provider-child-wrapper.d.ts.map +1 -1
  118. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts +11 -4
  119. package/lib/typescript/module/src/modules/bt-management/services/devices/bc01/bc01-frame-parser.d.ts.map +1 -1
  120. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts +4 -0
  121. package/lib/typescript/module/src/modules/bt-management/services/devices/custom/custom.device.d.ts.map +1 -1
  122. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts +3 -0
  123. package/lib/typescript/module/src/modules/bt-management/services/devices/uebe/mysense.device.d.ts.map +1 -1
  124. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts +8 -0
  125. package/lib/typescript/module/src/modules/bt-management/types/background-sync.d.ts.map +1 -1
  126. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts +1 -1
  127. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-connect-authorization-provider.d.ts.map +1 -1
  128. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-sync.d.ts +1 -1
  129. package/lib/typescript/module/src/modules/data-sync/components/android/android-health-sync.d.ts.map +1 -1
  130. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts +1 -1
  131. package/lib/typescript/module/src/modules/data-sync/components/apple/apple-health-sync.d.ts.map +1 -1
  132. package/lib/typescript/module/src/modules/data-sync/components/data-sync.d.ts +3 -3
  133. package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts +1 -1
  134. package/lib/typescript/module/src/modules/data-sync/hooks/use-listen-changes.d.ts.map +1 -1
  135. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts +2 -1
  136. package/lib/typescript/module/src/modules/data-sync/services/base-health-sync-service.d.ts.map +1 -1
  137. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts +3 -3
  138. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-progress-manager.d.ts.map +1 -1
  139. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-state-manager.d.ts +3 -1
  140. package/lib/typescript/module/src/modules/data-sync/services/managers/sync-state-manager.d.ts.map +1 -1
  141. package/lib/typescript/module/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts +4 -1
  142. package/lib/typescript/module/src/modules/data-sync/types/android-health-connect-authorization-provider-props.d.ts.map +1 -1
  143. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts +7 -2
  144. package/lib/typescript/module/src/modules/data-sync/types/apple-health-sync-props.d.ts.map +1 -1
  145. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts +6 -0
  146. package/lib/typescript/module/src/modules/data-sync/types/health-sync-props.d.ts.map +1 -1
  147. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts +4 -1
  148. package/lib/typescript/module/src/modules/data-sync/types/sync-progress.d.ts.map +1 -1
  149. package/package.json +6 -3
  150. package/react-native.config.js +11 -0
@@ -1 +1 @@
1
- {"version":3,"names":["_dataProcessor","require","_storageManager","_syncProgressManager","_syncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","SyncProgressManager","updateProgress","stateManager","SyncStateManager","storageManager","StorageManager","getProviderName","dataProcessor","DataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","currentHasAnchor","getObservationBodiesForType","entries","generateObservationEntries","incrementSyncedObservations","length","result","saveObservations","addResult","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_dataProcessor","require","_storageManager","_syncProgressManager","_syncStateManager","BaseHealthSyncService","constructor","props","client","patientId","dataToSync","onSyncError","progressManager","SyncProgressManager","updateProgress","stateManager","SyncStateManager","storageManager","StorageManager","getProviderName","dataProcessor","DataProcessor","chunkSize","getTotalCountsFunction","getDataFromProviderFunction","getConverterFunction","startSync","once","runSync","isInitialized","Error","resume","setNotStartedStatuses","initialDataFetched","initializeSync","processAllDataTypes","setPauseStatuses","pauseReason","error","stopSync","resetAll","reset","shouldStopSync","pauseSync","reason","pause","latestObservationDates","getLatestObservationDates","calculateTotalCounts","key","Object","keys","measurementTypeKey","data","getDataForMeasurementType","latestValidStartDate","getLatestValidStartDate","totalCount","getTotalRecordsCountForType","setTotalObservations","setStatus","syncDataByType","hasAnchor","observationBodies","currentHasAnchor","getObservationBodiesForType","entries","generateObservationEntries","incrementSyncedObservations","length","result","saveObservations","addResult","exports"],"sourceRoot":"../../../../../src","sources":["modules/data-sync/services/base-health-sync-service.ts"],"mappings":"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","ignoreList":[]}
@@ -20,12 +20,12 @@ class SyncProgressManager {
20
20
  };
21
21
  }
22
22
  }
23
- setPauseStatuses() {
23
+ setPauseStatuses(reason) {
24
24
  for (const key of Object.keys(this.syncData)) {
25
25
  const measurementTypeKey = key;
26
26
  const currentStatus = this.getStatus(measurementTypeKey);
27
27
  if (currentStatus !== "completed") {
28
- this.setStatus(measurementTypeKey, "paused");
28
+ this.setStatus(measurementTypeKey, "paused", reason);
29
29
  }
30
30
  }
31
31
  }
@@ -53,9 +53,10 @@ class SyncProgressManager {
53
53
  this.syncData[measurementTypeKey].syncedObservations += count;
54
54
  this.notifyProgress(measurementTypeKey, "syncing");
55
55
  }
56
- setStatus(measurementTypeKey, status) {
56
+ setStatus(measurementTypeKey, status, reason) {
57
57
  this.syncData[measurementTypeKey].status = status;
58
- this.notifyProgress(measurementTypeKey, status);
58
+ this.syncData[measurementTypeKey].reason = status === "paused" ? reason : undefined;
59
+ this.notifyProgress(measurementTypeKey, status, reason);
59
60
  }
60
61
  getStatus(measurementTypeKey) {
61
62
  return this.syncData[measurementTypeKey].status;
@@ -69,10 +70,13 @@ class SyncProgressManager {
69
70
  this.notifyProgress(measurementTypeKey, "idle");
70
71
  });
71
72
  }
72
- notifyProgress(measurementTypeKey, status) {
73
+ notifyProgress(measurementTypeKey, status, reason) {
73
74
  this.updateProgress({
74
75
  measurementTypeKey,
75
76
  status,
77
+ ...(status === "paused" && reason ? {
78
+ reason
79
+ } : {}),
76
80
  progress: this.getProgress(measurementTypeKey)
77
81
  });
78
82
  }
@@ -1 +1 @@
1
- {"version":3,"names":["defaultSyncData","syncedObservations","totalObservations","status","SyncProgressManager","syncData","constructor","updateProgress","dataToSync","key","Object","keys","measurementTypeKey","setPauseStatuses","currentStatus","getStatus","setStatus","setNotStartedStatuses","getProgress","done","total","setTotalObservations","notifyProgress","incrementSyncedObservations","count","resetAll","forEach","progress","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-progress-manager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["defaultSyncData","syncedObservations","totalObservations","status","SyncProgressManager","syncData","constructor","updateProgress","dataToSync","key","Object","keys","measurementTypeKey","setPauseStatuses","reason","currentStatus","getStatus","setStatus","setNotStartedStatuses","getProgress","done","total","setTotalObservations","notifyProgress","incrementSyncedObservations","count","undefined","resetAll","forEach","progress","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-progress-manager.ts"],"mappings":"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","ignoreList":[]}
@@ -33,15 +33,18 @@ class SyncStateManager {
33
33
  }
34
34
  reset() {
35
35
  this.shouldStopSync = false;
36
+ this.pauseReason = undefined;
36
37
  this.initialDataFetched = false;
37
38
  this.latestObservationDates = [];
38
39
  this.results = [];
39
40
  }
40
- pause() {
41
+ pause(reason) {
41
42
  this.shouldStopSync = true;
43
+ this.pauseReason = reason;
42
44
  }
43
45
  resume() {
44
46
  this.shouldStopSync = false;
47
+ this.pauseReason = undefined;
45
48
  }
46
49
  }
47
50
  exports.SyncStateManager = SyncStateManager;
@@ -1 +1 @@
1
- {"version":3,"names":["SyncStateManager","shouldStopSync","initialDataFetched","latestObservationDates","results","addResult","result","push","once","sync","inFlight","finally","undefined","reset","pause","resume","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-state-manager.ts"],"mappings":";;;;;;AAEO,MAAMA,gBAAgB,CAAC;EAC5B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGSC,cAAc,GAAG,KAAK;EACtBC,kBAAkB,GAAG,KAAK;EAC1BC,sBAAsB,GAGxB,EAAE;EACAC,OAAO,GAA0B,EAAE;EAE1CC,SAASA,CAACC,MAA2B,EAAQ;IAC3C,IAAI,CAACF,OAAO,CAACG,IAAI,CAACD,MAAM,CAAC;EAC3B;;EAEA;EACA,MAAME,IAAIA,CAACC,IAAyB,EAAiB;IACnD,IAAI,CAACC,QAAQ,KAAKD,IAAI,CAAC,CAAC,CAACE,OAAO,CAAC,MAAM;MACrC,IAAI,CAACD,QAAQ,GAAGE,SAAS;IAC3B,CAAC,CAAC;IAEF,OAAO,IAAI,CAACF,QAAQ;EACtB;EAEAG,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACZ,cAAc,GAAG,KAAK;IAC3B,IAAI,CAACC,kBAAkB,GAAG,KAAK;IAC/B,IAAI,CAACC,sBAAsB,GAAG,EAAE;IAChC,IAAI,CAACC,OAAO,GAAG,EAAE;EACnB;EAEAU,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACb,cAAc,GAAG,IAAI;EAC5B;EAEAc,MAAMA,CAAA,EAAS;IACb,IAAI,CAACd,cAAc,GAAG,KAAK;EAC7B;AACF;AAACe,OAAA,CAAAhB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["SyncStateManager","shouldStopSync","initialDataFetched","latestObservationDates","results","addResult","result","push","once","sync","inFlight","finally","undefined","reset","pauseReason","pause","reason","resume","exports"],"sourceRoot":"../../../../../../src","sources":["modules/data-sync/services/managers/sync-state-manager.ts"],"mappings":";;;;;;AAIO,MAAMA,gBAAgB,CAAC;EAC5B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;EAGSC,cAAc,GAAG,KAAK;EAEtBC,kBAAkB,GAAG,KAAK;EAC1BC,sBAAsB,GAGxB,EAAE;EACAC,OAAO,GAA0B,EAAE;EAE1CC,SAASA,CAACC,MAA2B,EAAQ;IAC3C,IAAI,CAACF,OAAO,CAACG,IAAI,CAACD,MAAM,CAAC;EAC3B;;EAEA;EACA,MAAME,IAAIA,CAACC,IAAyB,EAAiB;IACnD,IAAI,CAACC,QAAQ,KAAKD,IAAI,CAAC,CAAC,CAACE,OAAO,CAAC,MAAM;MACrC,IAAI,CAACD,QAAQ,GAAGE,SAAS;IAC3B,CAAC,CAAC;IAEF,OAAO,IAAI,CAACF,QAAQ;EACtB;EAEAG,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACZ,cAAc,GAAG,KAAK;IAC3B,IAAI,CAACa,WAAW,GAAGF,SAAS;IAC5B,IAAI,CAACV,kBAAkB,GAAG,KAAK;IAC/B,IAAI,CAACC,sBAAsB,GAAG,EAAE;IAChC,IAAI,CAACC,OAAO,GAAG,EAAE;EACnB;EAEAW,KAAKA,CAACC,MAAwB,EAAQ;IACpC,IAAI,CAACf,cAAc,GAAG,IAAI;IAC1B,IAAI,CAACa,WAAW,GAAGE,MAAM;EAC3B;EAEAC,MAAMA,CAAA,EAAS;IACb,IAAI,CAAChB,cAAc,GAAG,KAAK;IAC3B,IAAI,CAACa,WAAW,GAAGF,SAAS;EAC9B;AACF;AAACM,OAAA,CAAAlB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -25,4 +25,5 @@ export * from "./modules/socket/index.js";
25
25
  export * from "./modules/questionnaire-response-form/index.js";
26
26
  export * from "./modules/image/index.js";
27
27
  export * from "./modules/data-sync/index.js";
28
+ export * from "./modules/background-sync/index.js";
28
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,cAAc,4BAAmB;AACjC,cAAc,0BAAiB;AAC/B,cAAc,yBAAgB;AAC9B,cAAc,yBAAgB;AAC9B,cAAc,4BAAmB;AACjC,cAAc,0BAAiB;AAC/B,cAAc,gCAAuB;AACrC,cAAc,wBAAe;AAC7B,cAAc,uCAA8B;AAC5C,cAAc,4BAAmB;AACjC,cAAc,kCAAyB;AACvC,cAAc,sBAAa;AAC3B,cAAc,wBAAe;AAC7B,cAAc,iCAAwB;AACtC,cAAc,8BAAqB;AACnC,cAAc,sCAA6B;AAC3C,cAAc,4BAAmB;AACjC,cAAc,uCAA8B;AAC5C,cAAc,iCAAwB;AACtC,cAAc,4BAAmB;AACjC,cAAc,mDAAgD;AAC9D,cAAc,2BAAkB;AAChC,cAAc,gDAAuC;AACrD,cAAc,0BAAiB;AAC/B,cAAc,8BAAqB","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,cAAc,4BAAmB;AACjC,cAAc,0BAAiB;AAC/B,cAAc,yBAAgB;AAC9B,cAAc,yBAAgB;AAC9B,cAAc,4BAAmB;AACjC,cAAc,0BAAiB;AAC/B,cAAc,gCAAuB;AACrC,cAAc,wBAAe;AAC7B,cAAc,uCAA8B;AAC5C,cAAc,4BAAmB;AACjC,cAAc,kCAAyB;AACvC,cAAc,sBAAa;AAC3B,cAAc,wBAAe;AAC7B,cAAc,iCAAwB;AACtC,cAAc,8BAAqB;AACnC,cAAc,sCAA6B;AAC3C,cAAc,4BAAmB;AACjC,cAAc,uCAA8B;AAC5C,cAAc,iCAAwB;AACtC,cAAc,4BAAmB;AACjC,cAAc,mDAAgD;AAC9D,cAAc,2BAAkB;AAChC,cAAc,gDAAuC;AACrD,cAAc,0BAAiB;AAC/B,cAAc,8BAAqB;AACnC,cAAc,oCAA2B","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ import { AppRegistry, NativeModules, Platform } from "react-native";
4
+ const ANDROID_HEALTH_CONNECT_BACKGROUND_TASK = "OvokHealthConnectBackgroundSync";
5
+ const getNativeModule = () => {
6
+ const nativeModule = NativeModules.OvokBackgroundSync;
7
+ if (!nativeModule) {
8
+ throw new Error("Ovok Android background sync requires a native Android build. Rebuild the app after installing @ovok/native.");
9
+ }
10
+ return nativeModule;
11
+ };
12
+
13
+ /**
14
+ * Starts the Android connected-device foreground service. Mount this alongside
15
+ * the BTProvider that owns the scan; the service keeps that app process alive
16
+ * while Android has the app in the background.
17
+ */
18
+ const startAndroidBluetoothForegroundService = async (options = {}) => {
19
+ if (Platform.OS !== "android") {
20
+ return;
21
+ }
22
+ await getNativeModule().startBluetoothForegroundService(options);
23
+ };
24
+ const stopAndroidBluetoothForegroundService = async () => {
25
+ if (Platform.OS !== "android") {
26
+ return;
27
+ }
28
+ await getNativeModule().stopBluetoothForegroundService();
29
+ };
30
+
31
+ /**
32
+ * Schedules a WorkManager wake-up that starts the registered headless JS task.
33
+ * The task must create the host app's authenticated client and run the desired
34
+ * AndroidHealthSync service; the SDK cannot serialize a client or auth token.
35
+ */
36
+ const scheduleAndroidHealthConnectSync = async (options = {}) => {
37
+ if (Platform.OS !== "android") {
38
+ return;
39
+ }
40
+ await getNativeModule().scheduleHealthConnectSync(options);
41
+ };
42
+ const cancelAndroidHealthConnectSync = async () => {
43
+ if (Platform.OS !== "android") {
44
+ return;
45
+ }
46
+ await getNativeModule().cancelHealthConnectSync();
47
+ };
48
+
49
+ /**
50
+ * Registers the JS entry point WorkManager invokes after process death. Call
51
+ * this once from the app entry point, not from a screen component, so it is
52
+ * registered before Android wakes the headless runtime.
53
+ */
54
+ const registerAndroidHealthConnectBackgroundTask = (task, taskName = ANDROID_HEALTH_CONNECT_BACKGROUND_TASK) => {
55
+ if (Platform.OS !== "android") {
56
+ return;
57
+ }
58
+ AppRegistry.registerHeadlessTask(taskName, () => task);
59
+ };
60
+ export { ANDROID_HEALTH_CONNECT_BACKGROUND_TASK, cancelAndroidHealthConnectSync, registerAndroidHealthConnectBackgroundTask, scheduleAndroidHealthConnectSync, startAndroidBluetoothForegroundService, stopAndroidBluetoothForegroundService };
61
+ //# sourceMappingURL=android-background-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AppRegistry","NativeModules","Platform","ANDROID_HEALTH_CONNECT_BACKGROUND_TASK","getNativeModule","nativeModule","OvokBackgroundSync","Error","startAndroidBluetoothForegroundService","options","OS","startBluetoothForegroundService","stopAndroidBluetoothForegroundService","stopBluetoothForegroundService","scheduleAndroidHealthConnectSync","scheduleHealthConnectSync","cancelAndroidHealthConnectSync","cancelHealthConnectSync","registerAndroidHealthConnectBackgroundTask","task","taskName","registerHeadlessTask"],"sourceRoot":"../../../../src","sources":["modules/background-sync/android-background-sync.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEnE,MAAMC,sCAAsC,GAC1C,iCAAiC;AAmCnC,MAAMC,eAAe,GAAGA,CAAA,KAAkC;EACxD,MAAMC,YAAY,GAAGJ,aAAa,CAACK,kBAEtB;EAEb,IAAI,CAACD,YAAY,EAAE;IACjB,MAAM,IAAIE,KAAK,CACb,8GACF,CAAC;EACH;EAEA,OAAOF,YAAY;AACrB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMG,sCAAsC,GAAG,MAAAA,CAC7CC,OAAiD,GAAG,CAAC,CAAC,KACpC;EAClB,IAAIP,QAAQ,CAACQ,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMN,eAAe,CAAC,CAAC,CAACO,+BAA+B,CAACF,OAAO,CAAC;AAClE,CAAC;AAED,MAAMG,qCAAqC,GAAG,MAAAA,CAAA,KAA2B;EACvE,IAAIV,QAAQ,CAACQ,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMN,eAAe,CAAC,CAAC,CAACS,8BAA8B,CAAC,CAAC;AAC1D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMC,gCAAgC,GAAG,MAAAA,CACvCL,OAAkD,GAAG,CAAC,CAAC,KACrC;EAClB,IAAIP,QAAQ,CAACQ,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMN,eAAe,CAAC,CAAC,CAACW,yBAAyB,CAACN,OAAO,CAAC;AAC5D,CAAC;AAED,MAAMO,8BAA8B,GAAG,MAAAA,CAAA,KAA2B;EAChE,IAAId,QAAQ,CAACQ,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEA,MAAMN,eAAe,CAAC,CAAC,CAACa,uBAAuB,CAAC,CAAC;AACnD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMC,0CAA0C,GAAGA,CACjDC,IAAwC,EACxCC,QAAQ,GAAGjB,sCAAsC,KACxC;EACT,IAAID,QAAQ,CAACQ,EAAE,KAAK,SAAS,EAAE;IAC7B;EACF;EAEAV,WAAW,CAACqB,oBAAoB,CAACD,QAAQ,EAAE,MAAMD,IAAI,CAAC;AACxD,CAAC;AAED,SACEhB,sCAAsC,EAItCa,8BAA8B,EAC9BE,0CAA0C,EAC1CJ,gCAAgC,EAChCN,sCAAsC,EACtCI,qCAAqC","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ import * as React from "react";
4
+ import { Platform } from "react-native";
5
+ import { startAndroidBluetoothForegroundService, stopAndroidBluetoothForegroundService } from "./android-background-sync.js";
6
+ import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
7
+ const AndroidBluetoothForegroundService = ({
8
+ enabled,
9
+ children,
10
+ options,
11
+ onError
12
+ }) => {
13
+ const notificationBody = options?.notificationBody;
14
+ const notificationTitle = options?.notificationTitle;
15
+ React.useEffect(() => {
16
+ if (Platform.OS !== "android" || !enabled) {
17
+ return;
18
+ }
19
+ void startAndroidBluetoothForegroundService({
20
+ ...(notificationBody === undefined ? {} : {
21
+ notificationBody
22
+ }),
23
+ ...(notificationTitle === undefined ? {} : {
24
+ notificationTitle
25
+ })
26
+ }).catch(error => {
27
+ onError?.({
28
+ error: error instanceof Error ? error : String(error)
29
+ });
30
+ });
31
+ return () => {
32
+ void stopAndroidBluetoothForegroundService().catch(error => {
33
+ onError?.({
34
+ error: error instanceof Error ? error : String(error)
35
+ });
36
+ });
37
+ };
38
+ }, [enabled, notificationBody, notificationTitle, onError]);
39
+ return /*#__PURE__*/_jsx(_Fragment, {
40
+ children: children
41
+ });
42
+ };
43
+ export { AndroidBluetoothForegroundService };
44
+ //# sourceMappingURL=android-bluetooth-foreground-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Platform","startAndroidBluetoothForegroundService","stopAndroidBluetoothForegroundService","Fragment","_Fragment","jsx","_jsx","AndroidBluetoothForegroundService","enabled","children","options","onError","notificationBody","notificationTitle","useEffect","OS","undefined","catch","error","Error","String"],"sourceRoot":"../../../../src","sources":["modules/background-sync/android-bluetooth-foreground-service.tsx"],"mappings":";;AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,QAAQ,cAAc;AAIvC,SACEC,sCAAsC,EACtCC,qCAAqC,QAEhC,8BAA2B;AAAC,SAAAC,QAAA,IAAAC,SAAA,EAAAC,GAAA,IAAAC,IAAA;AASnC,MAAMC,iCAAiC,GAAGA,CAAC;EACzCC,OAAO;EACPC,QAAQ;EACRC,OAAO;EACPC;AACsC,CAAC,KAAK;EAC5C,MAAMC,gBAAgB,GAAGF,OAAO,EAAEE,gBAAgB;EAClD,MAAMC,iBAAiB,GAAGH,OAAO,EAAEG,iBAAiB;EAEpDd,KAAK,CAACe,SAAS,CAAC,MAAM;IACpB,IAAId,QAAQ,CAACe,EAAE,KAAK,SAAS,IAAI,CAACP,OAAO,EAAE;MACzC;IACF;IAEA,KAAKP,sCAAsC,CAAC;MAC1C,IAAIW,gBAAgB,KAAKI,SAAS,GAAG,CAAC,CAAC,GAAG;QAAEJ;MAAiB,CAAC,CAAC;MAC/D,IAAIC,iBAAiB,KAAKG,SAAS,GAAG,CAAC,CAAC,GAAG;QAAEH;MAAkB,CAAC;IAClE,CAAC,CAAC,CAACI,KAAK,CAAEC,KAAc,IAAK;MACzBP,OAAO,GAAG;QACRO,KAAK,EAAEA,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAGE,MAAM,CAACF,KAAK;MACtD,CAAC,CAAC;IACJ,CAAC,CAAC;IAEJ,OAAO,MAAM;MACX,KAAKhB,qCAAqC,CAAC,CAAC,CAACe,KAAK,CAAEC,KAAc,IAAK;QACrEP,OAAO,GAAG;UACRO,KAAK,EAAEA,KAAK,YAAYC,KAAK,GAAGD,KAAK,GAAGE,MAAM,CAACF,KAAK;QACtD,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,EAAE,CAACV,OAAO,EAAEI,gBAAgB,EAAEC,iBAAiB,EAAEF,OAAO,CAAC,CAAC;EAE3D,oBAAOL,IAAA,CAAAF,SAAA;IAAAK,QAAA,EAAGA;EAAQ,CAAG,CAAC;AACxB,CAAC;AAED,SAASF,iCAAiC","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ export * from "./android-background-sync.js";
4
+ export * from "./android-bluetooth-foreground-service.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["modules/background-sync/index.ts"],"mappings":";;AAAA,cAAc,8BAA2B;AACzC,cAAc,2CAAwC","ignoreList":[]}
@@ -1,14 +1,16 @@
1
1
  "use strict";
2
2
 
3
+ /* eslint-disable max-lines */
3
4
  import * as React from "react";
4
5
  import { AppState } from "react-native";
6
+ import { AndroidBluetoothForegroundService } from "../../background-sync/index.js";
5
7
  import { useDeviceList } from "../../bt-device/components/hooks/use-device-list.js";
6
8
  import { sentryLogger } from "../../helpers/utils/sentry-logger.js";
7
9
  import { getRestoredBleState } from "../services/background-sync/background-ble-manager.js";
8
10
  import { getBackgroundServiceUUIDs } from "../services/background-sync/background-service-uuids.js";
9
11
  import { BackgroundSyncCoordinator } from "../services/background-sync/background-sync-coordinator.js";
10
12
  import { BTManager } from "../services/bt-manager.js";
11
- import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
13
+ import { jsx as _jsx } from "react/jsx-runtime";
12
14
  export const BTProviderChildWrapper = /*#__PURE__*/React.memo(({
13
15
  bleManager,
14
16
  acceptedDevices = [],
@@ -179,7 +181,10 @@ export const BTProviderChildWrapper = /*#__PURE__*/React.memo(({
179
181
  listener.remove();
180
182
  };
181
183
  }, [onError]);
182
- return /*#__PURE__*/_jsx(_Fragment, {
184
+ return /*#__PURE__*/_jsx(AndroidBluetoothForegroundService, {
185
+ enabled: backgroundSync?.enabled === true,
186
+ options: backgroundSync?.android?.foregroundService,
187
+ onError: onError,
183
188
  children: children
184
189
  });
185
190
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","AppState","useDeviceList","sentryLogger","getRestoredBleState","getBackgroundServiceUUIDs","BackgroundSyncCoordinator","BTManager","Fragment","_Fragment","jsx","_jsx","BTProviderChildWrapper","memo","bleManager","acceptedDevices","children","oneReadingPerConnection","deliveredEcgFileNames","onDeviceFound","onError","onDeviceStatusChanged","onResult","backgroundSync","btManagerRef","useRef","backgroundSyncRef","backgroundSyncCoordinatorRef","setDeviceListItems","current","useEffect","length","currentBackgroundSync","isBackgroundEnabled","enabled","backgroundOptions","backgroundEnabled","serviceUUIDs","undefined","managerOptions","btManager","Object","keys","coordinator","result","latest","setBackgroundScanEnabled","currentState","startScan","destroy","maxRetries","retryBackoffMs","storage","storageKey","callback","data","enqueue","catch","error","Error","String","status","deviceData","measurementTypeKey","prev","newList","index","findIndex","item","deviceType","name","restoredState","restoreStateIdentifier","connectedPeripherals","restoreDevices","flush","includeExhausted","resetExhausted","listener","addEventListener","state","remove"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/components/bt-provider-child-wrapper.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","AppState","AndroidBluetoothForegroundService","useDeviceList","sentryLogger","getRestoredBleState","getBackgroundServiceUUIDs","BackgroundSyncCoordinator","BTManager","jsx","_jsx","BTProviderChildWrapper","memo","bleManager","acceptedDevices","children","oneReadingPerConnection","deliveredEcgFileNames","onDeviceFound","onError","onDeviceStatusChanged","onResult","backgroundSync","btManagerRef","useRef","backgroundSyncRef","backgroundSyncCoordinatorRef","setDeviceListItems","current","useEffect","length","currentBackgroundSync","isBackgroundEnabled","enabled","backgroundOptions","backgroundEnabled","serviceUUIDs","undefined","managerOptions","btManager","Object","keys","coordinator","result","latest","setBackgroundScanEnabled","currentState","startScan","destroy","maxRetries","retryBackoffMs","storage","storageKey","callback","data","enqueue","catch","error","Error","String","status","deviceData","measurementTypeKey","prev","newList","index","findIndex","item","deviceType","name","restoredState","restoreStateIdentifier","connectedPeripherals","restoreDevices","flush","includeExhausted","resetExhausted","listener","addEventListener","state","remove","options","android","foregroundService"],"sourceRoot":"../../../../../src","sources":["modules/bt-management/components/bt-provider-child-wrapper.tsx"],"mappings":"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","ignoreList":[]}
@@ -33,6 +33,25 @@ const SECOND_MASK = 0x3f;
33
33
  * field the vendor's own catalog calls "vc" and no other name is documented.
34
34
  */
35
35
  const BC01_ANALYTE_ORDER = ["uro", "bld", "bil", "ket", "glu", "pro", "ph", "nit", "leu", "sg", "vc"];
36
+ /**
37
+ * BC401's packed values are colour-chart indexes, not measurements. These
38
+ * values mirror the tables in Contec's BC401 integration (PHMS M1/a.java):
39
+ * the index is zero-based and `7` remains the device's unmeasured sentinel.
40
+ * The pH table is the URS-7 strip scale, which includes half-point readings.
41
+ */
42
+ const BC01_ANALYTE_VALUES = {
43
+ uro: [0.2, 2, 4, 8],
44
+ bld: [0, 10, 25, 50, 250],
45
+ bil: [0, 1, 3, 6],
46
+ ket: [0, 15, 40, 80],
47
+ glu: [0, 50, 100, 250, 500, 1000],
48
+ pro: [0, 15, 30, 100, 300],
49
+ ph: [5, 6, 6.5, 7, 7.5, 8, 8.5],
50
+ nit: [0, 1],
51
+ leu: [0, 15, 70, 125, 500],
52
+ sg: [1.005, 1.01, 1.015, 1.02, 1.025, 1.03],
53
+ vc: [0, 10, 25, 50, 100]
54
+ };
36
55
 
37
56
  /** Where the packed analyte pairs start in a 16-byte E1/E2 frame. */
38
57
  const ANALYTES_START = 8;
@@ -84,7 +103,10 @@ const parseBc01Record = frame => {
84
103
  if (level === UNMEASURED) {
85
104
  return;
86
105
  }
87
- values[analyte] = level;
106
+ const value = BC01_ANALYTE_VALUES[analyte][level];
107
+ if (value !== undefined) {
108
+ values[analyte] = value;
109
+ }
88
110
  });
89
111
  return {
90
112
  timestamp,
@@ -106,5 +128,5 @@ const isBc01Record = frame => {
106
128
  const opcode = hexToByte(frame[0] ?? "");
107
129
  return opcode === BC01_URS_OPCODE || opcode === BC01_PAGED_URS_OPCODE;
108
130
  };
109
- export { BC01_ANALYTE_ORDER, BC01_LAST_OF_SET_BIT, BC01_PAGED_URS_OPCODE, BC01_RECORD_LENGTH, BC01_URS_OPCODE, isBc01Record, parseBc01Record };
131
+ export { BC01_ANALYTE_ORDER, BC01_ANALYTE_VALUES, BC01_LAST_OF_SET_BIT, BC01_PAGED_URS_OPCODE, BC01_RECORD_LENGTH, BC01_URS_OPCODE, isBc01Record, parseBc01Record };
110
132
  //# sourceMappingURL=bc01-frame-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["hexToByte","BC01_RECORD_LENGTH","BC01_URS_OPCODE","BC01_PAGED_URS_OPCODE","BC01_LAST_OF_SET_BIT","UNMEASURED","YEAR_BASE","MONTH_MASK","DAY_MASK","HOUR_MASK","MINUTE_MASK","SECOND_MASK","BC01_ANALYTE_ORDER","ANALYTES_START","readPad","packed","slot","parseBc01Record","frame","length","undefined","opcode","flags","yy","mm","dd","hh","mi","ss","timestamp","Date","values","forEach","analyte","position","byteIndex","Math","floor","level","lastOfSet","pageIndex","isBc01Record"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01-frame-parser.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["hexToByte","BC01_RECORD_LENGTH","BC01_URS_OPCODE","BC01_PAGED_URS_OPCODE","BC01_LAST_OF_SET_BIT","UNMEASURED","YEAR_BASE","MONTH_MASK","DAY_MASK","HOUR_MASK","MINUTE_MASK","SECOND_MASK","BC01_ANALYTE_ORDER","BC01_ANALYTE_VALUES","uro","bld","bil","ket","glu","pro","ph","nit","leu","sg","vc","ANALYTES_START","readPad","packed","slot","parseBc01Record","frame","length","undefined","opcode","flags","yy","mm","dd","hh","mi","ss","timestamp","Date","values","forEach","analyte","position","byteIndex","Math","floor","level","value","lastOfSet","pageIndex","isBc01Record"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/bc01/bc01-frame-parser.ts"],"mappings":"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","ignoreList":[]}
@@ -138,6 +138,9 @@ export class CustomDevice extends BTManagedDevice {
138
138
  return;
139
139
  }
140
140
 
141
+ /** Adds protocol-specific metadata to a validated reading before it is emitted. */
142
+ decorateReading = (reading, _frame, _recordOffset) => reading;
143
+
141
144
  /**
142
145
  * Reports what the frame carried, which may be more than one reading.
143
146
  *
@@ -149,12 +152,12 @@ export class CustomDevice extends BTManagedDevice {
149
152
  reportFrame(data) {
150
153
  const repeated = data.parsingCase.repeatedRecords;
151
154
  if (!repeated || !data.frame) {
152
- this.report(data.parsedData, data.parsingCase);
155
+ this.report(data.parsedData, data.parsingCase, data.frame);
153
156
  return;
154
157
  }
155
158
  const records = Math.floor((data.frame.length - repeated.from) / repeated.recordBytes);
156
159
  for (let record = 0; record < records; record++) {
157
- this.report(parseMeasurement(data.frame, data.parsingCase, repeated.from + record * repeated.recordBytes), data.parsingCase);
160
+ this.report(parseMeasurement(data.frame, data.parsingCase, repeated.from + record * repeated.recordBytes), data.parsingCase, data.frame, repeated.from + record * repeated.recordBytes);
158
161
  }
159
162
  }
160
163
 
@@ -169,18 +172,18 @@ export class CustomDevice extends BTManagedDevice {
169
172
  * A reading that fails its checks is discarded on its own. A temperature the device could
170
173
  * not take is no reason to withhold the heart rate in the same frame.
171
174
  */
172
- report(parsedData, parsingCase) {
175
+ report(parsedData, parsingCase, frame, recordOffset) {
173
176
  const measurements = parsingCase.measurements ?? [];
174
177
  if (measurements.length === 0) {
175
178
  this.discard("a result frame carries no measurement type", parsedData);
176
179
  return;
177
180
  }
178
- measurements.forEach(measurement => this.reportMeasurement(parsedData, measurement));
181
+ measurements.forEach(measurement => this.reportMeasurement(parsedData, measurement, frame, recordOffset));
179
182
  }
180
183
  discard(reason, parsedData) {
181
184
  this.onError?.(discardedReadingError(this.definition.id, reason, parsedData));
182
185
  }
183
- reportMeasurement(parsedData, measurement) {
186
+ reportMeasurement(parsedData, measurement, frame, recordOffset) {
184
187
  const reading = {
185
188
  caseType: parsedData.caseType,
186
189
  measurementTypeKey: measurement.measurementTypeKey
@@ -193,7 +196,7 @@ export class CustomDevice extends BTManagedDevice {
193
196
  this.discard(rejection, reading);
194
197
  return;
195
198
  }
196
- this.onResult?.(reading);
199
+ this.onResult?.(this.decorateReading(reading, frame, recordOffset));
197
200
  }
198
201
  }
199
202
  //# sourceMappingURL=custom.device.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MeasurementTypeKey","CaseType","createFrameValidator","parseMeasurement","discardedReadingError","rejectCustomReading","BTManagedDevice","LepuCommandBuilder","LepuFileTransfer","LepuFrameReader","decodeViatomEcgRecording","recordedAtFromViatomFileName","createLepuSequencer","recordLepuIdentity","CustomDevice","validators","Map","constructor","device","params","definition","oneReadingPerConnection","deliveredEcgFileNames","Set","mainServices","stuckDataTimeout","preferredMtu","undefined","declareLepuProtocol","frames","forEach","frame","uuid","set","lepu","frameReader","startBytes","createCommandSequencer","fileTransfer","write","serviceUuid","characteristicUuid","builder","onFile","reportViatomEcgFile","skipFiles","afterTransfer","pollCommand","build","onError","reason","Error","onIdentified","onRefused","onIdentityRefused","file","decoded","content","samples","length","name","onResult","measurementTypeKey","ecg","caseType","RESULT","diagramPoints","duration","recordedAt","recordingId","info","deviceData","id","validatePackage","pkg","validate","get","String","toLowerCase","handleDependentResult","data","shouldReportDependentResult","reportFrame","error","parsingCase","OTHER","_data","handleSuccessResult","repeated","repeatedRecords","report","parsedData","records","Math","floor","from","recordBytes","record","measurements","discard","measurement","reportMeasurement","reading","fieldNames","rejection","map","fields","find","message"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom.device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","CaseType","createFrameValidator","parseMeasurement","discardedReadingError","rejectCustomReading","BTManagedDevice","LepuCommandBuilder","LepuFileTransfer","LepuFrameReader","decodeViatomEcgRecording","recordedAtFromViatomFileName","createLepuSequencer","recordLepuIdentity","CustomDevice","validators","Map","constructor","device","params","definition","oneReadingPerConnection","deliveredEcgFileNames","Set","mainServices","stuckDataTimeout","preferredMtu","undefined","declareLepuProtocol","frames","forEach","frame","uuid","set","lepu","frameReader","startBytes","createCommandSequencer","fileTransfer","write","serviceUuid","characteristicUuid","builder","onFile","reportViatomEcgFile","skipFiles","afterTransfer","pollCommand","build","onError","reason","Error","onIdentified","onRefused","onIdentityRefused","file","decoded","content","samples","length","name","onResult","measurementTypeKey","ecg","caseType","RESULT","diagramPoints","duration","recordedAt","recordingId","info","deviceData","id","validatePackage","pkg","validate","get","String","toLowerCase","handleDependentResult","data","shouldReportDependentResult","reportFrame","error","parsingCase","OTHER","_data","handleSuccessResult","decorateReading","reading","_frame","_recordOffset","repeated","repeatedRecords","report","parsedData","records","Math","floor","from","recordBytes","record","recordOffset","measurements","discard","measurement","reportMeasurement","fieldNames","rejection","map","fields","find","message"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/custom/custom.device.ts"],"mappings":"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","ignoreList":[]}
@@ -1,12 +1,21 @@
1
1
  "use strict";
2
2
 
3
3
  import { MeasurementTypeKey } from "@ovok/core";
4
+ import { hexToByte } from "../../../utils/hex-to-byte.js";
4
5
  import { defineCustomDevice } from "../../custom/define-custom-device.js";
5
6
  import { CustomDevice } from "../custom/custom.device.js";
6
7
  import { MySenseFrameReader } from "./mysense.frame-reader.js";
7
8
  import { MySenseSequencer } from "./mysense.sequencer.js";
8
9
  const SERVICE = "0000fff0-0000-1000-8000-00805f9b34fb";
9
10
  const NOTIFY = "0000fff1-0000-1000-8000-00805f9b34fb";
11
+ const recordedAtFromMySenseRecord = record => {
12
+ if (record.length < 5) {
13
+ return undefined;
14
+ }
15
+ const [year, month, day, hour, minute] = record.slice(0, 5).map(byte => hexToByte(byte));
16
+ const recordedAt = new Date(2000 + year, month - 1, day, hour, minute);
17
+ return recordedAt.getFullYear() === 2000 + year && recordedAt.getMonth() === month - 1 && recordedAt.getDate() === day && recordedAt.getHours() === hour && recordedAt.getMinutes() === minute ? recordedAt : undefined;
18
+ };
10
19
  const definition = defineCustomDevice({
11
20
  id: "cyclotest-mysense",
12
21
  nameMatch: "mySense",
@@ -69,5 +78,12 @@ export class MySenseDevice extends CustomDevice {
69
78
  this.reportedHistory = true;
70
79
  return true;
71
80
  };
81
+ decorateReading = (reading, frame, recordOffset = 0) => {
82
+ const recordedAt = frame ? recordedAtFromMySenseRecord(frame.slice(recordOffset, recordOffset + 5)) : undefined;
83
+ return recordedAt ? {
84
+ ...reading,
85
+ recordedAt
86
+ } : reading;
87
+ };
72
88
  }
73
89
  //# sourceMappingURL=mysense.device.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MeasurementTypeKey","defineCustomDevice","CustomDevice","MySenseFrameReader","MySenseSequencer","SERVICE","NOTIFY","definition","id","nameMatch","stuckDataTimeoutMs","services","uuid","monitor","frame","minLengthBytes","caseSelectorBytes","cases","selector","kind","description","repeatedRecords","recordBytes","from","measurementTypeKey","temperature","fields","name","byteIndexes","encoding","unit","decimals","MySenseDevice","reportedHistory","constructor","device","params","frameReader","createCommandSequencer","onGreeting","deviceData","sn","slice","join","shouldReportDependentResult","data","parsingCase","caseValue"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/uebe/mysense.device.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,YAAY;AAQ/C,SAASC,kBAAkB,QAAQ,sCAAmC;AACtE,SAASC,YAAY,QAAQ,4BAAyB;AAEtD,SAASC,kBAAkB,QAAQ,2BAAwB;AAC3D,SAASC,gBAAgB,QAAQ,wBAAqB;AAEtD,MAAMC,OAAO,GAAG,sCAAsC;AACtD,MAAMC,MAAM,GAAG,sCAAsC;AAMrD,MAAMC,UAAU,GAAGN,kBAAkB,CAAC;EACpCO,EAAE,EAAE,mBAAmB;EACvBC,SAAS,EAAE,SAAS;EACpBC,kBAAkB,EAAE,MAAM;EAC1BC,QAAQ,EAAE,CACR;IACEC,IAAI,EAAEP,OAAO;IACbQ,OAAO,EAAE,CACP;MACED,IAAI,EAAEN,MAAM;MACZQ,KAAK,EAAE;QAAEC,cAAc,EAAE;MAAG,CAAC;MAC7BC,iBAAiB,EAAE,CAAC,CAAC,CAAC;MACtBC,KAAK,EAAE,CACL;QACEC,QAAQ,EAAE,IAAI;QACdC,IAAI,EAAE,MAAM;QACZJ,cAAc,EAAE,EAAE;QAClBK,WAAW,EAAE;MACf,CAAC,EACD;QACEF,QAAQ,EAAE,IAAI;QACdC,IAAI,EAAE,QAAQ;QACdJ,cAAc,EAAE,EAAE;QAClBM,eAAe,EAAE;UAAEC,WAAW,EAAE,CAAC;UAAEC,IAAI,EAAE;QAAE,CAAC;QAC5CC,kBAAkB,EAAExB,kBAAkB,CAACyB,WAAW;QAClDL,WAAW,EAAE,oCAAoC;QACjDM,MAAM,EAAE,CACN;UACEC,IAAI,EAAE,UAAU;UAChBC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;UACnBC,QAAQ,EAAE,cAAc;UACxBC,IAAI,EAAE,KAAK;UACXC,QAAQ,EAAE;QACZ,CAAC;MAEL,CAAC;IAEL,CAAC;EAEL,CAAC;AAEL,CAAC,CAAC;AAEF,OAAO,MAAMC,aAAa,SAAS9B,YAAY,CAAC;EACtC+B,eAAe,GAAG,KAAK;EAExBC,WAAWA,CAChBC,MAAc,EACdC,MAAqD,EACrD;IACA,KAAK,CACHD,MAAM,EACNC,MAAM,EACN7B,UACF,CAAC;IAED,IAAI,CAAC8B,WAAW,GAAG,IAAIlC,kBAAkB,CAAC,CAAC;IAC3C,IAAI,CAACmC,sBAAsB,GAAG,MAAM;MAClC,IAAI,CAACL,eAAe,GAAG,KAAK;MAE5B,OAAO,IAAI7B,gBAAgB,CAAC;QAC1BmC,UAAU,EAAGzB,KAAK,IAAK;UACrB,IAAI,CAAC0B,UAAU,CAACC,EAAE,GAAG3B,KAAK,CAAC4B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;QACnD;MACF,CAAC,CAAC;IACJ,CAAC;EACH;EAEUC,2BAA2B,GAAIC,IAAmB,IAAc;IACxE,IAAIA,IAAI,CAACC,WAAW,CAACC,SAAS,KAAK,IAAI,EAAE;MACvC,OAAO,IAAI;IACb;IAEA,IAAI,IAAI,CAACd,eAAe,EAAE;MACxB,OAAO,KAAK;IACd;IAEA,IAAI,CAACA,eAAe,GAAG,IAAI;IAE3B,OAAO,IAAI;EACb,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"names":["MeasurementTypeKey","hexToByte","defineCustomDevice","CustomDevice","MySenseFrameReader","MySenseSequencer","SERVICE","NOTIFY","recordedAtFromMySenseRecord","record","length","undefined","year","month","day","hour","minute","slice","map","byte","recordedAt","Date","getFullYear","getMonth","getDate","getHours","getMinutes","definition","id","nameMatch","stuckDataTimeoutMs","services","uuid","monitor","frame","minLengthBytes","caseSelectorBytes","cases","selector","kind","description","repeatedRecords","recordBytes","from","measurementTypeKey","temperature","fields","name","byteIndexes","encoding","unit","decimals","MySenseDevice","reportedHistory","constructor","device","params","frameReader","createCommandSequencer","onGreeting","deviceData","sn","join","shouldReportDependentResult","data","parsingCase","caseValue","decorateReading","reading","recordOffset"],"sourceRoot":"../../../../../../../src","sources":["modules/bt-management/services/devices/uebe/mysense.device.ts"],"mappings":"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","ignoreList":[]}