@mongrov/analytics 0.6.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. package/README.md +23 -10
  2. package/UPGRADING.md +456 -0
  3. package/dist/core/device-events.d.ts +14 -0
  4. package/dist/core/device-events.d.ts.map +1 -0
  5. package/dist/core/device-events.js +13 -0
  6. package/dist/core/device-events.js.map +1 -0
  7. package/dist/core/errors.d.ts +1 -1
  8. package/dist/core/errors.d.ts.map +1 -1
  9. package/dist/core/errors.js.map +1 -1
  10. package/dist/core/extensions.d.ts +21 -4
  11. package/dist/core/extensions.d.ts.map +1 -1
  12. package/dist/core/extensions.js +21 -4
  13. package/dist/core/extensions.js.map +1 -1
  14. package/dist/core/factory.d.ts.map +1 -1
  15. package/dist/core/factory.js +125 -23
  16. package/dist/core/factory.js.map +1 -1
  17. package/dist/core/hooks.js +1 -1
  18. package/dist/core/hooks.js.map +1 -1
  19. package/dist/core/index.d.ts +13 -1
  20. package/dist/core/index.d.ts.map +1 -1
  21. package/dist/core/index.js +18 -0
  22. package/dist/core/index.js.map +1 -1
  23. package/dist/core/insight.d.ts +44 -0
  24. package/dist/core/insight.d.ts.map +1 -0
  25. package/dist/core/insight.js +62 -0
  26. package/dist/core/insight.js.map +1 -0
  27. package/dist/core/metric_metadata.d.ts +55 -0
  28. package/dist/core/metric_metadata.d.ts.map +1 -1
  29. package/dist/core/metric_metadata.js +35 -7
  30. package/dist/core/metric_metadata.js.map +1 -1
  31. package/dist/core/migrations.d.ts.map +1 -1
  32. package/dist/core/migrations.js +103 -2
  33. package/dist/core/migrations.js.map +1 -1
  34. package/dist/core/retention.d.ts +44 -13
  35. package/dist/core/retention.d.ts.map +1 -1
  36. package/dist/core/retention.js +49 -22
  37. package/dist/core/retention.js.map +1 -1
  38. package/dist/core/sampling.d.ts +70 -0
  39. package/dist/core/sampling.d.ts.map +1 -0
  40. package/dist/core/sampling.js +107 -0
  41. package/dist/core/sampling.js.map +1 -0
  42. package/dist/core/schemas.d.ts +73 -2
  43. package/dist/core/schemas.d.ts.map +1 -1
  44. package/dist/core/schemas.js +160 -5
  45. package/dist/core/schemas.js.map +1 -1
  46. package/dist/core/table_metadata.d.ts.map +1 -1
  47. package/dist/core/table_metadata.js +3 -0
  48. package/dist/core/table_metadata.js.map +1 -1
  49. package/dist/core/types.d.ts +45 -10
  50. package/dist/core/types.d.ts.map +1 -1
  51. package/dist/core/warehouse.d.ts +28 -0
  52. package/dist/core/warehouse.d.ts.map +1 -1
  53. package/dist/core/warehouse.js +44 -0
  54. package/dist/core/warehouse.js.map +1 -1
  55. package/dist/core/watermark-cache.d.ts +75 -0
  56. package/dist/core/watermark-cache.d.ts.map +1 -0
  57. package/dist/core/watermark-cache.js +0 -0
  58. package/dist/core/watermark-cache.js.map +1 -0
  59. package/dist/rules/__fakes__/fakeEngine.d.ts +2 -0
  60. package/dist/rules/__fakes__/fakeEngine.d.ts.map +1 -1
  61. package/dist/rules/__fakes__/fakeEngine.js +4 -0
  62. package/dist/rules/__fakes__/fakeEngine.js.map +1 -1
  63. package/dist/rules/baseline-reader.d.ts +55 -0
  64. package/dist/rules/baseline-reader.d.ts.map +1 -0
  65. package/dist/rules/baseline-reader.js +111 -0
  66. package/dist/rules/baseline-reader.js.map +1 -0
  67. package/dist/rules/compiler.d.ts +36 -1
  68. package/dist/rules/compiler.d.ts.map +1 -1
  69. package/dist/rules/compiler.js +185 -39
  70. package/dist/rules/compiler.js.map +1 -1
  71. package/dist/rules/defaults/luminx.d.ts.map +1 -1
  72. package/dist/rules/defaults/luminx.js +8 -0
  73. package/dist/rules/defaults/luminx.js.map +1 -1
  74. package/dist/rules/defaults/viva.d.ts.map +1 -1
  75. package/dist/rules/defaults/viva.js +7 -0
  76. package/dist/rules/defaults/viva.js.map +1 -1
  77. package/dist/rules/defaults/yogaring.d.ts.map +1 -1
  78. package/dist/rules/defaults/yogaring.js +7 -0
  79. package/dist/rules/defaults/yogaring.js.map +1 -1
  80. package/dist/rules/defaults/ziva.d.ts.map +1 -1
  81. package/dist/rules/defaults/ziva.js +100 -24
  82. package/dist/rules/defaults/ziva.js.map +1 -1
  83. package/dist/rules/evaluator.d.ts +14 -3
  84. package/dist/rules/evaluator.d.ts.map +1 -1
  85. package/dist/rules/evaluator.js +157 -5
  86. package/dist/rules/evaluator.js.map +1 -1
  87. package/dist/rules/factory.d.ts.map +1 -1
  88. package/dist/rules/factory.js +5 -1
  89. package/dist/rules/factory.js.map +1 -1
  90. package/dist/rules/index.d.ts +2 -1
  91. package/dist/rules/index.d.ts.map +1 -1
  92. package/dist/rules/index.js +2 -1
  93. package/dist/rules/index.js.map +1 -1
  94. package/dist/rules/schema.d.ts +75 -4
  95. package/dist/rules/schema.d.ts.map +1 -1
  96. package/dist/rules/schema.js +44 -0
  97. package/dist/rules/schema.js.map +1 -1
  98. package/dist/rules/types.d.ts +16 -1
  99. package/dist/rules/types.d.ts.map +1 -1
  100. package/dist/rules/validator.d.ts.map +1 -1
  101. package/dist/rules/validator.js +89 -0
  102. package/dist/rules/validator.js.map +1 -1
  103. package/dist/sync/baseline-compute.d.ts +63 -0
  104. package/dist/sync/baseline-compute.d.ts.map +1 -0
  105. package/dist/sync/baseline-compute.js +211 -0
  106. package/dist/sync/baseline-compute.js.map +1 -0
  107. package/dist/sync/events.d.ts +19 -5
  108. package/dist/sync/events.d.ts.map +1 -1
  109. package/dist/sync/events.js +17 -0
  110. package/dist/sync/events.js.map +1 -1
  111. package/dist/sync/factory.d.ts +54 -8
  112. package/dist/sync/factory.d.ts.map +1 -1
  113. package/dist/sync/factory.js +145 -46
  114. package/dist/sync/factory.js.map +1 -1
  115. package/dist/sync/fetcher.d.ts +15 -2
  116. package/dist/sync/fetcher.d.ts.map +1 -1
  117. package/dist/sync/fetcher.js +43 -7
  118. package/dist/sync/fetcher.js.map +1 -1
  119. package/dist/sync/flusher.d.ts +52 -2
  120. package/dist/sync/flusher.d.ts.map +1 -1
  121. package/dist/sync/flusher.js +78 -9
  122. package/dist/sync/flusher.js.map +1 -1
  123. package/dist/sync/index.d.ts +3 -1
  124. package/dist/sync/index.d.ts.map +1 -1
  125. package/dist/sync/index.js +1 -0
  126. package/dist/sync/index.js.map +1 -1
  127. package/dist/sync/mapper/activity.d.ts.map +1 -1
  128. package/dist/sync/mapper/activity.js +2 -1
  129. package/dist/sync/mapper/activity.js.map +1 -1
  130. package/dist/sync/mapper/firmware.d.ts +3 -12
  131. package/dist/sync/mapper/firmware.d.ts.map +1 -1
  132. package/dist/sync/mapper/firmware.js +2 -8
  133. package/dist/sync/mapper/firmware.js.map +1 -1
  134. package/dist/sync/mapper/ring-config.d.ts +76 -28
  135. package/dist/sync/mapper/ring-config.d.ts.map +1 -1
  136. package/dist/sync/mapper/ring-config.js +118 -35
  137. package/dist/sync/mapper/ring-config.js.map +1 -1
  138. package/dist/sync/mapper/schema.d.ts +669 -0
  139. package/dist/sync/mapper/schema.d.ts.map +1 -0
  140. package/dist/sync/mapper/schema.js +160 -0
  141. package/dist/sync/mapper/schema.js.map +1 -0
  142. package/dist/sync/mapper/sleep.d.ts +58 -13
  143. package/dist/sync/mapper/sleep.d.ts.map +1 -1
  144. package/dist/sync/mapper/sleep.js +141 -44
  145. package/dist/sync/mapper/sleep.js.map +1 -1
  146. package/dist/sync/mapper/types.d.ts +118 -29
  147. package/dist/sync/mapper/types.d.ts.map +1 -1
  148. package/dist/sync/pending_closes.js +2 -2
  149. package/dist/sync/pending_closes.js.map +1 -1
  150. package/dist/sync/pusher.js +2 -2
  151. package/dist/sync/pusher.js.map +1 -1
  152. package/dist/sync/scheduler.d.ts +7 -0
  153. package/dist/sync/scheduler.d.ts.map +1 -1
  154. package/dist/sync/scheduler.js +14 -0
  155. package/dist/sync/scheduler.js.map +1 -1
  156. package/dist/tools/__fakes__/engine.d.ts +2 -0
  157. package/dist/tools/__fakes__/engine.d.ts.map +1 -1
  158. package/dist/tools/__fakes__/engine.js +10 -0
  159. package/dist/tools/__fakes__/engine.js.map +1 -1
  160. package/dist/tools/authorize.d.ts +19 -12
  161. package/dist/tools/authorize.d.ts.map +1 -1
  162. package/dist/tools/authorize.js +31 -40
  163. package/dist/tools/authorize.js.map +1 -1
  164. package/dist/tools/factory.d.ts +2 -0
  165. package/dist/tools/factory.d.ts.map +1 -1
  166. package/dist/tools/factory.js +12 -1
  167. package/dist/tools/factory.js.map +1 -1
  168. package/dist/tools/formatters/copy-guidelines.d.ts +57 -0
  169. package/dist/tools/formatters/copy-guidelines.d.ts.map +1 -0
  170. package/dist/tools/formatters/copy-guidelines.js +110 -0
  171. package/dist/tools/formatters/copy-guidelines.js.map +1 -0
  172. package/dist/tools/formatters/index.d.ts +14 -0
  173. package/dist/tools/formatters/index.d.ts.map +1 -0
  174. package/dist/tools/formatters/index.js +14 -0
  175. package/dist/tools/formatters/index.js.map +1 -0
  176. package/dist/tools/formatters/spo2.d.ts +21 -0
  177. package/dist/tools/formatters/spo2.d.ts.map +1 -0
  178. package/dist/tools/formatters/spo2.js +79 -0
  179. package/dist/tools/formatters/spo2.js.map +1 -0
  180. package/dist/tools/{formatters.d.ts → formatters/text.d.ts} +1 -1
  181. package/dist/tools/formatters/text.d.ts.map +1 -0
  182. package/dist/tools/{formatters.js → formatters/text.js} +1 -1
  183. package/dist/tools/formatters/text.js.map +1 -0
  184. package/dist/tools/impls/activity.d.ts +2 -2
  185. package/dist/tools/impls/activity.js +7 -3
  186. package/dist/tools/impls/activity.js.map +1 -1
  187. package/dist/tools/impls/anomaly.d.ts +2 -2
  188. package/dist/tools/impls/anomaly.js +8 -4
  189. package/dist/tools/impls/anomaly.js.map +1 -1
  190. package/dist/tools/impls/compare.d.ts +2 -2
  191. package/dist/tools/impls/compare.js +8 -4
  192. package/dist/tools/impls/compare.js.map +1 -1
  193. package/dist/tools/impls/hrv.d.ts +2 -2
  194. package/dist/tools/impls/hrv.js +6 -2
  195. package/dist/tools/impls/hrv.js.map +1 -1
  196. package/dist/tools/impls/insights.d.ts +4 -4
  197. package/dist/tools/impls/insights.d.ts.map +1 -1
  198. package/dist/tools/impls/insights.js +10 -3
  199. package/dist/tools/impls/insights.js.map +1 -1
  200. package/dist/tools/impls/sleep.d.ts +2 -2
  201. package/dist/tools/impls/sleep.js +6 -2
  202. package/dist/tools/impls/sleep.js.map +1 -1
  203. package/dist/tools/impls/spo2.d.ts +52 -0
  204. package/dist/tools/impls/spo2.d.ts.map +1 -0
  205. package/dist/tools/impls/spo2.js +65 -0
  206. package/dist/tools/impls/spo2.js.map +1 -0
  207. package/dist/tools/index.d.ts +1 -0
  208. package/dist/tools/index.d.ts.map +1 -1
  209. package/dist/tools/index.js +4 -0
  210. package/dist/tools/index.js.map +1 -1
  211. package/dist/tools/mcp/guard.d.ts +28 -11
  212. package/dist/tools/mcp/guard.d.ts.map +1 -1
  213. package/dist/tools/mcp/guard.js +45 -15
  214. package/dist/tools/mcp/guard.js.map +1 -1
  215. package/dist/tools/mcp/index.d.ts +1 -1
  216. package/dist/tools/mcp/index.d.ts.map +1 -1
  217. package/dist/tools/mcp/index.js +1 -1
  218. package/dist/tools/mcp/index.js.map +1 -1
  219. package/dist/tools/mcp/server.d.ts.map +1 -1
  220. package/dist/tools/mcp/server.js +4 -0
  221. package/dist/tools/mcp/server.js.map +1 -1
  222. package/dist/tools/mcp/transports/http.d.ts.map +1 -1
  223. package/dist/tools/mcp/transports/http.js +4 -0
  224. package/dist/tools/mcp/transports/http.js.map +1 -1
  225. package/package.json +8 -5
  226. package/dist/tools/formatters.d.ts.map +0 -1
  227. package/dist/tools/formatters.js.map +0 -1
@@ -0,0 +1,669 @@
1
+ /**
2
+ * Zod contract for the firmware export payload (principle 60 — firmware
3
+ * fixture governance).
4
+ *
5
+ * Models `FirmwareExport` from `./types.ts` EXACTLY, with `.strict()` on
6
+ * every object so unknown keys fail parsing. This is the CI gate: when the
7
+ * firmware team lands a new versioned fixture, any key the mapper doesn't
8
+ * know about surfaces as a test failure — a PR-blocking event that forces a
9
+ * deliberate schema + mapper update instead of a silent drop.
10
+ *
11
+ * `FIRMWARE_EXPORT_KEY_PATHS` is the same contract expressed as a key-path
12
+ * set (`heartrate`, `heartrate[].timestamp`, ...) for the fixture key-diff
13
+ * test in `__tests__/schema.test.ts`. Keep both in lockstep with
14
+ * `FirmwareExport` — the key-diff test asserts the fixture corpus exercises
15
+ * exactly this set.
16
+ */
17
+ import { z } from 'zod';
18
+ export declare const firmwareHRRowSchema: z.ZodObject<{
19
+ timestamp: z.ZodString;
20
+ singleHR: z.ZodNumber;
21
+ }, "strict", z.ZodTypeAny, {
22
+ timestamp: string;
23
+ singleHR: number;
24
+ }, {
25
+ timestamp: string;
26
+ singleHR: number;
27
+ }>;
28
+ export declare const firmwareHRVRowSchema: z.ZodObject<{
29
+ timestamp: z.ZodString;
30
+ hrv: z.ZodOptional<z.ZodNumber>;
31
+ stress: z.ZodOptional<z.ZodNumber>;
32
+ heartRate: z.ZodOptional<z.ZodNumber>;
33
+ systolicBP: z.ZodOptional<z.ZodNumber>;
34
+ diastolicBP: z.ZodOptional<z.ZodNumber>;
35
+ vascularAging: z.ZodOptional<z.ZodNumber>;
36
+ }, "strict", z.ZodTypeAny, {
37
+ timestamp: string;
38
+ hrv?: number | undefined;
39
+ stress?: number | undefined;
40
+ heartRate?: number | undefined;
41
+ systolicBP?: number | undefined;
42
+ diastolicBP?: number | undefined;
43
+ vascularAging?: number | undefined;
44
+ }, {
45
+ timestamp: string;
46
+ hrv?: number | undefined;
47
+ stress?: number | undefined;
48
+ heartRate?: number | undefined;
49
+ systolicBP?: number | undefined;
50
+ diastolicBP?: number | undefined;
51
+ vascularAging?: number | undefined;
52
+ }>;
53
+ export declare const firmwareSpO2RowSchema: z.ZodObject<{
54
+ timestamp: z.ZodString;
55
+ automaticSpo2Data: z.ZodNumber;
56
+ }, "strict", z.ZodTypeAny, {
57
+ timestamp: string;
58
+ automaticSpo2Data: number;
59
+ }, {
60
+ timestamp: string;
61
+ automaticSpo2Data: number;
62
+ }>;
63
+ export declare const firmwareTempRowSchema: z.ZodObject<{
64
+ timestamp: z.ZodString;
65
+ temperature: z.ZodNumber;
66
+ }, "strict", z.ZodTypeAny, {
67
+ temperature: number;
68
+ timestamp: string;
69
+ }, {
70
+ temperature: number;
71
+ timestamp: string;
72
+ }>;
73
+ export declare const firmwareActivityRowSchema: z.ZodObject<{
74
+ timestamp: z.ZodString;
75
+ step: z.ZodNumber;
76
+ calories: z.ZodNumber;
77
+ distance: z.ZodNumber;
78
+ arraySteps: z.ZodArray<z.ZodNumber, "many">;
79
+ }, "strict", z.ZodTypeAny, {
80
+ calories: number;
81
+ timestamp: string;
82
+ step: number;
83
+ distance: number;
84
+ arraySteps: number[];
85
+ }, {
86
+ calories: number;
87
+ timestamp: string;
88
+ step: number;
89
+ distance: number;
90
+ arraySteps: number[];
91
+ }>;
92
+ export declare const firmwareSleepRowSchema: z.ZodObject<{
93
+ start: z.ZodString;
94
+ end: z.ZodString;
95
+ block_type: z.ZodString;
96
+ confidence: z.ZodNumber;
97
+ timestamp: z.ZodString;
98
+ }, "strict", z.ZodTypeAny, {
99
+ start: string;
100
+ timestamp: string;
101
+ end: string;
102
+ block_type: string;
103
+ confidence: number;
104
+ }, {
105
+ start: string;
106
+ timestamp: string;
107
+ end: string;
108
+ block_type: string;
109
+ confidence: number;
110
+ }>;
111
+ export declare const firmwareBatteryRowSchema: z.ZodObject<{
112
+ timestamp: z.ZodString;
113
+ battery: z.ZodNumber;
114
+ }, "strict", z.ZodTypeAny, {
115
+ timestamp: string;
116
+ battery: number;
117
+ }, {
118
+ timestamp: string;
119
+ battery: number;
120
+ }>;
121
+ export declare const firmwareWeekdaysSchema: z.ZodObject<{
122
+ sunday: z.ZodBoolean;
123
+ monday: z.ZodBoolean;
124
+ Tuesday: z.ZodBoolean;
125
+ Wednesday: z.ZodBoolean;
126
+ Thursday: z.ZodBoolean;
127
+ Friday: z.ZodBoolean;
128
+ Saturday: z.ZodBoolean;
129
+ }, "strict", z.ZodTypeAny, {
130
+ sunday: boolean;
131
+ monday: boolean;
132
+ Tuesday: boolean;
133
+ Wednesday: boolean;
134
+ Thursday: boolean;
135
+ Friday: boolean;
136
+ Saturday: boolean;
137
+ }, {
138
+ sunday: boolean;
139
+ monday: boolean;
140
+ Tuesday: boolean;
141
+ Wednesday: boolean;
142
+ Thursday: boolean;
143
+ Friday: boolean;
144
+ Saturday: boolean;
145
+ }>;
146
+ /**
147
+ * Mirrors `AutomaticMonitoring_J2301A` from the JStyle SDK. `dataType` is
148
+ * the firmware enum (1=heartRate, 2=spo2, 3=temperature, 4=HRV) and is
149
+ * translated away at the mapper boundary — see `mapper/ring-config.ts`.
150
+ */
151
+ export declare const firmwareMonitoringWindowSchema: z.ZodObject<{
152
+ dataType: z.ZodNumber;
153
+ intervalTime: z.ZodNumber;
154
+ startTime_Hour: z.ZodNumber;
155
+ startTime_Minutes: z.ZodNumber;
156
+ endTime_Hour: z.ZodNumber;
157
+ endTime_Minutes: z.ZodNumber;
158
+ weeks: z.ZodObject<{
159
+ sunday: z.ZodBoolean;
160
+ monday: z.ZodBoolean;
161
+ Tuesday: z.ZodBoolean;
162
+ Wednesday: z.ZodBoolean;
163
+ Thursday: z.ZodBoolean;
164
+ Friday: z.ZodBoolean;
165
+ Saturday: z.ZodBoolean;
166
+ }, "strict", z.ZodTypeAny, {
167
+ sunday: boolean;
168
+ monday: boolean;
169
+ Tuesday: boolean;
170
+ Wednesday: boolean;
171
+ Thursday: boolean;
172
+ Friday: boolean;
173
+ Saturday: boolean;
174
+ }, {
175
+ sunday: boolean;
176
+ monday: boolean;
177
+ Tuesday: boolean;
178
+ Wednesday: boolean;
179
+ Thursday: boolean;
180
+ Friday: boolean;
181
+ Saturday: boolean;
182
+ }>;
183
+ mode: z.ZodOptional<z.ZodNumber>;
184
+ }, "strict", z.ZodTypeAny, {
185
+ weeks: {
186
+ sunday: boolean;
187
+ monday: boolean;
188
+ Tuesday: boolean;
189
+ Wednesday: boolean;
190
+ Thursday: boolean;
191
+ Friday: boolean;
192
+ Saturday: boolean;
193
+ };
194
+ dataType: number;
195
+ intervalTime: number;
196
+ startTime_Hour: number;
197
+ startTime_Minutes: number;
198
+ endTime_Hour: number;
199
+ endTime_Minutes: number;
200
+ mode?: number | undefined;
201
+ }, {
202
+ weeks: {
203
+ sunday: boolean;
204
+ monday: boolean;
205
+ Tuesday: boolean;
206
+ Wednesday: boolean;
207
+ Thursday: boolean;
208
+ Friday: boolean;
209
+ Saturday: boolean;
210
+ };
211
+ dataType: number;
212
+ intervalTime: number;
213
+ startTime_Hour: number;
214
+ startTime_Minutes: number;
215
+ endTime_Hour: number;
216
+ endTime_Minutes: number;
217
+ mode?: number | undefined;
218
+ }>;
219
+ export declare const firmwareRingConfigSchema: z.ZodObject<{
220
+ automaticMonitoringData: z.ZodArray<z.ZodObject<{
221
+ dataType: z.ZodNumber;
222
+ intervalTime: z.ZodNumber;
223
+ startTime_Hour: z.ZodNumber;
224
+ startTime_Minutes: z.ZodNumber;
225
+ endTime_Hour: z.ZodNumber;
226
+ endTime_Minutes: z.ZodNumber;
227
+ weeks: z.ZodObject<{
228
+ sunday: z.ZodBoolean;
229
+ monday: z.ZodBoolean;
230
+ Tuesday: z.ZodBoolean;
231
+ Wednesday: z.ZodBoolean;
232
+ Thursday: z.ZodBoolean;
233
+ Friday: z.ZodBoolean;
234
+ Saturday: z.ZodBoolean;
235
+ }, "strict", z.ZodTypeAny, {
236
+ sunday: boolean;
237
+ monday: boolean;
238
+ Tuesday: boolean;
239
+ Wednesday: boolean;
240
+ Thursday: boolean;
241
+ Friday: boolean;
242
+ Saturday: boolean;
243
+ }, {
244
+ sunday: boolean;
245
+ monday: boolean;
246
+ Tuesday: boolean;
247
+ Wednesday: boolean;
248
+ Thursday: boolean;
249
+ Friday: boolean;
250
+ Saturday: boolean;
251
+ }>;
252
+ mode: z.ZodOptional<z.ZodNumber>;
253
+ }, "strict", z.ZodTypeAny, {
254
+ weeks: {
255
+ sunday: boolean;
256
+ monday: boolean;
257
+ Tuesday: boolean;
258
+ Wednesday: boolean;
259
+ Thursday: boolean;
260
+ Friday: boolean;
261
+ Saturday: boolean;
262
+ };
263
+ dataType: number;
264
+ intervalTime: number;
265
+ startTime_Hour: number;
266
+ startTime_Minutes: number;
267
+ endTime_Hour: number;
268
+ endTime_Minutes: number;
269
+ mode?: number | undefined;
270
+ }, {
271
+ weeks: {
272
+ sunday: boolean;
273
+ monday: boolean;
274
+ Tuesday: boolean;
275
+ Wednesday: boolean;
276
+ Thursday: boolean;
277
+ Friday: boolean;
278
+ Saturday: boolean;
279
+ };
280
+ dataType: number;
281
+ intervalTime: number;
282
+ startTime_Hour: number;
283
+ startTime_Minutes: number;
284
+ endTime_Hour: number;
285
+ endTime_Minutes: number;
286
+ mode?: number | undefined;
287
+ }>, "many">;
288
+ }, "strict", z.ZodTypeAny, {
289
+ automaticMonitoringData: {
290
+ weeks: {
291
+ sunday: boolean;
292
+ monday: boolean;
293
+ Tuesday: boolean;
294
+ Wednesday: boolean;
295
+ Thursday: boolean;
296
+ Friday: boolean;
297
+ Saturday: boolean;
298
+ };
299
+ dataType: number;
300
+ intervalTime: number;
301
+ startTime_Hour: number;
302
+ startTime_Minutes: number;
303
+ endTime_Hour: number;
304
+ endTime_Minutes: number;
305
+ mode?: number | undefined;
306
+ }[];
307
+ }, {
308
+ automaticMonitoringData: {
309
+ weeks: {
310
+ sunday: boolean;
311
+ monday: boolean;
312
+ Tuesday: boolean;
313
+ Wednesday: boolean;
314
+ Thursday: boolean;
315
+ Friday: boolean;
316
+ Saturday: boolean;
317
+ };
318
+ dataType: number;
319
+ intervalTime: number;
320
+ startTime_Hour: number;
321
+ startTime_Minutes: number;
322
+ endTime_Hour: number;
323
+ endTime_Minutes: number;
324
+ mode?: number | undefined;
325
+ }[];
326
+ }>;
327
+ export declare const firmwareExportSchema: z.ZodObject<{
328
+ $comment: z.ZodOptional<z.ZodString>;
329
+ heartrate: z.ZodArray<z.ZodObject<{
330
+ timestamp: z.ZodString;
331
+ singleHR: z.ZodNumber;
332
+ }, "strict", z.ZodTypeAny, {
333
+ timestamp: string;
334
+ singleHR: number;
335
+ }, {
336
+ timestamp: string;
337
+ singleHR: number;
338
+ }>, "many">;
339
+ hrv_table: z.ZodArray<z.ZodObject<{
340
+ timestamp: z.ZodString;
341
+ hrv: z.ZodOptional<z.ZodNumber>;
342
+ stress: z.ZodOptional<z.ZodNumber>;
343
+ heartRate: z.ZodOptional<z.ZodNumber>;
344
+ systolicBP: z.ZodOptional<z.ZodNumber>;
345
+ diastolicBP: z.ZodOptional<z.ZodNumber>;
346
+ vascularAging: z.ZodOptional<z.ZodNumber>;
347
+ }, "strict", z.ZodTypeAny, {
348
+ timestamp: string;
349
+ hrv?: number | undefined;
350
+ stress?: number | undefined;
351
+ heartRate?: number | undefined;
352
+ systolicBP?: number | undefined;
353
+ diastolicBP?: number | undefined;
354
+ vascularAging?: number | undefined;
355
+ }, {
356
+ timestamp: string;
357
+ hrv?: number | undefined;
358
+ stress?: number | undefined;
359
+ heartRate?: number | undefined;
360
+ systolicBP?: number | undefined;
361
+ diastolicBP?: number | undefined;
362
+ vascularAging?: number | undefined;
363
+ }>, "many">;
364
+ spo2: z.ZodArray<z.ZodObject<{
365
+ timestamp: z.ZodString;
366
+ automaticSpo2Data: z.ZodNumber;
367
+ }, "strict", z.ZodTypeAny, {
368
+ timestamp: string;
369
+ automaticSpo2Data: number;
370
+ }, {
371
+ timestamp: string;
372
+ automaticSpo2Data: number;
373
+ }>, "many">;
374
+ temperature_table: z.ZodArray<z.ZodObject<{
375
+ timestamp: z.ZodString;
376
+ temperature: z.ZodNumber;
377
+ }, "strict", z.ZodTypeAny, {
378
+ temperature: number;
379
+ timestamp: string;
380
+ }, {
381
+ temperature: number;
382
+ timestamp: string;
383
+ }>, "many">;
384
+ activitydetails: z.ZodArray<z.ZodObject<{
385
+ timestamp: z.ZodString;
386
+ step: z.ZodNumber;
387
+ calories: z.ZodNumber;
388
+ distance: z.ZodNumber;
389
+ arraySteps: z.ZodArray<z.ZodNumber, "many">;
390
+ }, "strict", z.ZodTypeAny, {
391
+ calories: number;
392
+ timestamp: string;
393
+ step: number;
394
+ distance: number;
395
+ arraySteps: number[];
396
+ }, {
397
+ calories: number;
398
+ timestamp: string;
399
+ step: number;
400
+ distance: number;
401
+ arraySteps: number[];
402
+ }>, "many">;
403
+ sleep_processed: z.ZodArray<z.ZodObject<{
404
+ start: z.ZodString;
405
+ end: z.ZodString;
406
+ block_type: z.ZodString;
407
+ confidence: z.ZodNumber;
408
+ timestamp: z.ZodString;
409
+ }, "strict", z.ZodTypeAny, {
410
+ start: string;
411
+ timestamp: string;
412
+ end: string;
413
+ block_type: string;
414
+ confidence: number;
415
+ }, {
416
+ start: string;
417
+ timestamp: string;
418
+ end: string;
419
+ block_type: string;
420
+ confidence: number;
421
+ }>, "many">;
422
+ battery_table: z.ZodArray<z.ZodObject<{
423
+ timestamp: z.ZodString;
424
+ battery: z.ZodNumber;
425
+ }, "strict", z.ZodTypeAny, {
426
+ timestamp: string;
427
+ battery: number;
428
+ }, {
429
+ timestamp: string;
430
+ battery: number;
431
+ }>, "many">;
432
+ ring: z.ZodObject<{
433
+ automaticMonitoringData: z.ZodArray<z.ZodObject<{
434
+ dataType: z.ZodNumber;
435
+ intervalTime: z.ZodNumber;
436
+ startTime_Hour: z.ZodNumber;
437
+ startTime_Minutes: z.ZodNumber;
438
+ endTime_Hour: z.ZodNumber;
439
+ endTime_Minutes: z.ZodNumber;
440
+ weeks: z.ZodObject<{
441
+ sunday: z.ZodBoolean;
442
+ monday: z.ZodBoolean;
443
+ Tuesday: z.ZodBoolean;
444
+ Wednesday: z.ZodBoolean;
445
+ Thursday: z.ZodBoolean;
446
+ Friday: z.ZodBoolean;
447
+ Saturday: z.ZodBoolean;
448
+ }, "strict", z.ZodTypeAny, {
449
+ sunday: boolean;
450
+ monday: boolean;
451
+ Tuesday: boolean;
452
+ Wednesday: boolean;
453
+ Thursday: boolean;
454
+ Friday: boolean;
455
+ Saturday: boolean;
456
+ }, {
457
+ sunday: boolean;
458
+ monday: boolean;
459
+ Tuesday: boolean;
460
+ Wednesday: boolean;
461
+ Thursday: boolean;
462
+ Friday: boolean;
463
+ Saturday: boolean;
464
+ }>;
465
+ mode: z.ZodOptional<z.ZodNumber>;
466
+ }, "strict", z.ZodTypeAny, {
467
+ weeks: {
468
+ sunday: boolean;
469
+ monday: boolean;
470
+ Tuesday: boolean;
471
+ Wednesday: boolean;
472
+ Thursday: boolean;
473
+ Friday: boolean;
474
+ Saturday: boolean;
475
+ };
476
+ dataType: number;
477
+ intervalTime: number;
478
+ startTime_Hour: number;
479
+ startTime_Minutes: number;
480
+ endTime_Hour: number;
481
+ endTime_Minutes: number;
482
+ mode?: number | undefined;
483
+ }, {
484
+ weeks: {
485
+ sunday: boolean;
486
+ monday: boolean;
487
+ Tuesday: boolean;
488
+ Wednesday: boolean;
489
+ Thursday: boolean;
490
+ Friday: boolean;
491
+ Saturday: boolean;
492
+ };
493
+ dataType: number;
494
+ intervalTime: number;
495
+ startTime_Hour: number;
496
+ startTime_Minutes: number;
497
+ endTime_Hour: number;
498
+ endTime_Minutes: number;
499
+ mode?: number | undefined;
500
+ }>, "many">;
501
+ }, "strict", z.ZodTypeAny, {
502
+ automaticMonitoringData: {
503
+ weeks: {
504
+ sunday: boolean;
505
+ monday: boolean;
506
+ Tuesday: boolean;
507
+ Wednesday: boolean;
508
+ Thursday: boolean;
509
+ Friday: boolean;
510
+ Saturday: boolean;
511
+ };
512
+ dataType: number;
513
+ intervalTime: number;
514
+ startTime_Hour: number;
515
+ startTime_Minutes: number;
516
+ endTime_Hour: number;
517
+ endTime_Minutes: number;
518
+ mode?: number | undefined;
519
+ }[];
520
+ }, {
521
+ automaticMonitoringData: {
522
+ weeks: {
523
+ sunday: boolean;
524
+ monday: boolean;
525
+ Tuesday: boolean;
526
+ Wednesday: boolean;
527
+ Thursday: boolean;
528
+ Friday: boolean;
529
+ Saturday: boolean;
530
+ };
531
+ dataType: number;
532
+ intervalTime: number;
533
+ startTime_Hour: number;
534
+ startTime_Minutes: number;
535
+ endTime_Hour: number;
536
+ endTime_Minutes: number;
537
+ mode?: number | undefined;
538
+ }[];
539
+ }>;
540
+ }, "strict", z.ZodTypeAny, {
541
+ spo2: {
542
+ timestamp: string;
543
+ automaticSpo2Data: number;
544
+ }[];
545
+ heartrate: {
546
+ timestamp: string;
547
+ singleHR: number;
548
+ }[];
549
+ hrv_table: {
550
+ timestamp: string;
551
+ hrv?: number | undefined;
552
+ stress?: number | undefined;
553
+ heartRate?: number | undefined;
554
+ systolicBP?: number | undefined;
555
+ diastolicBP?: number | undefined;
556
+ vascularAging?: number | undefined;
557
+ }[];
558
+ temperature_table: {
559
+ temperature: number;
560
+ timestamp: string;
561
+ }[];
562
+ activitydetails: {
563
+ calories: number;
564
+ timestamp: string;
565
+ step: number;
566
+ distance: number;
567
+ arraySteps: number[];
568
+ }[];
569
+ sleep_processed: {
570
+ start: string;
571
+ timestamp: string;
572
+ end: string;
573
+ block_type: string;
574
+ confidence: number;
575
+ }[];
576
+ battery_table: {
577
+ timestamp: string;
578
+ battery: number;
579
+ }[];
580
+ ring: {
581
+ automaticMonitoringData: {
582
+ weeks: {
583
+ sunday: boolean;
584
+ monday: boolean;
585
+ Tuesday: boolean;
586
+ Wednesday: boolean;
587
+ Thursday: boolean;
588
+ Friday: boolean;
589
+ Saturday: boolean;
590
+ };
591
+ dataType: number;
592
+ intervalTime: number;
593
+ startTime_Hour: number;
594
+ startTime_Minutes: number;
595
+ endTime_Hour: number;
596
+ endTime_Minutes: number;
597
+ mode?: number | undefined;
598
+ }[];
599
+ };
600
+ $comment?: string | undefined;
601
+ }, {
602
+ spo2: {
603
+ timestamp: string;
604
+ automaticSpo2Data: number;
605
+ }[];
606
+ heartrate: {
607
+ timestamp: string;
608
+ singleHR: number;
609
+ }[];
610
+ hrv_table: {
611
+ timestamp: string;
612
+ hrv?: number | undefined;
613
+ stress?: number | undefined;
614
+ heartRate?: number | undefined;
615
+ systolicBP?: number | undefined;
616
+ diastolicBP?: number | undefined;
617
+ vascularAging?: number | undefined;
618
+ }[];
619
+ temperature_table: {
620
+ temperature: number;
621
+ timestamp: string;
622
+ }[];
623
+ activitydetails: {
624
+ calories: number;
625
+ timestamp: string;
626
+ step: number;
627
+ distance: number;
628
+ arraySteps: number[];
629
+ }[];
630
+ sleep_processed: {
631
+ start: string;
632
+ timestamp: string;
633
+ end: string;
634
+ block_type: string;
635
+ confidence: number;
636
+ }[];
637
+ battery_table: {
638
+ timestamp: string;
639
+ battery: number;
640
+ }[];
641
+ ring: {
642
+ automaticMonitoringData: {
643
+ weeks: {
644
+ sunday: boolean;
645
+ monday: boolean;
646
+ Tuesday: boolean;
647
+ Wednesday: boolean;
648
+ Thursday: boolean;
649
+ Friday: boolean;
650
+ Saturday: boolean;
651
+ };
652
+ dataType: number;
653
+ intervalTime: number;
654
+ startTime_Hour: number;
655
+ startTime_Minutes: number;
656
+ endTime_Hour: number;
657
+ endTime_Minutes: number;
658
+ mode?: number | undefined;
659
+ }[];
660
+ };
661
+ $comment?: string | undefined;
662
+ }>;
663
+ export type FirmwareExportParsed = z.infer<typeof firmwareExportSchema>;
664
+ /**
665
+ * Every key-path the schema knows about. Array elements are flattened as
666
+ * `section[].key`. Used by the fixture key-diff test (principle 60).
667
+ */
668
+ export declare const FIRMWARE_EXPORT_KEY_PATHS: ReadonlySet<string>;
669
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/sync/mapper/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AASvB,eAAO,MAAM,mBAAmB;;;;;;;;;EAGrB,CAAA;AAEX,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;EAQtB,CAAA;AAEX,eAAO,MAAM,qBAAqB;;;;;;;;;EAGvB,CAAA;AAEX,eAAO,MAAM,qBAAqB;;;;;;;;;EAGvB,CAAA;AAEX,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;EAM3B,CAAA;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;EAMxB,CAAA;AAEX,eAAO,MAAM,wBAAwB;;;;;;;;;EAG1B,CAAA;AAEX,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;EAQxB,CAAA;AAEX;;;;GAIG;AACH,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAShC,CAAA;AAEX,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE1B,CAAA;AAEX,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYtB,CAAA;AAEX,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AASvE;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,WAAW,CAAC,MAAM,CAsDxD,CAAA"}