@nativesquare/soma 0.1.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 (194) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +142 -0
  3. package/dist/client/_generated/_ignore.d.ts +1 -0
  4. package/dist/client/_generated/_ignore.d.ts.map +1 -0
  5. package/dist/client/_generated/_ignore.js +3 -0
  6. package/dist/client/_generated/_ignore.js.map +1 -0
  7. package/dist/client/index.d.ts +279 -0
  8. package/dist/client/index.d.ts.map +1 -0
  9. package/dist/client/index.js +264 -0
  10. package/dist/client/index.js.map +1 -0
  11. package/dist/client/types.d.ts +5 -0
  12. package/dist/client/types.d.ts.map +1 -0
  13. package/dist/client/types.js +2 -0
  14. package/dist/client/types.js.map +1 -0
  15. package/dist/component/_generated/api.d.ts +62 -0
  16. package/dist/component/_generated/api.d.ts.map +1 -0
  17. package/dist/component/_generated/api.js +31 -0
  18. package/dist/component/_generated/api.js.map +1 -0
  19. package/dist/component/_generated/component.d.ts +1063 -0
  20. package/dist/component/_generated/component.d.ts.map +1 -0
  21. package/dist/component/_generated/component.js +11 -0
  22. package/dist/component/_generated/component.js.map +1 -0
  23. package/dist/component/_generated/dataModel.d.ts +46 -0
  24. package/dist/component/_generated/dataModel.d.ts.map +1 -0
  25. package/dist/component/_generated/dataModel.js +11 -0
  26. package/dist/component/_generated/dataModel.js.map +1 -0
  27. package/dist/component/_generated/server.d.ts +121 -0
  28. package/dist/component/_generated/server.d.ts.map +1 -0
  29. package/dist/component/_generated/server.js +78 -0
  30. package/dist/component/_generated/server.js.map +1 -0
  31. package/dist/component/convex.config.d.ts +3 -0
  32. package/dist/component/convex.config.d.ts.map +1 -0
  33. package/dist/component/convex.config.js +3 -0
  34. package/dist/component/convex.config.js.map +1 -0
  35. package/dist/component/private.d.ts +33 -0
  36. package/dist/component/private.d.ts.map +1 -0
  37. package/dist/component/private.js +45 -0
  38. package/dist/component/private.js.map +1 -0
  39. package/dist/component/public.d.ts +1107 -0
  40. package/dist/component/public.d.ts.map +1 -0
  41. package/dist/component/public.js +310 -0
  42. package/dist/component/public.js.map +1 -0
  43. package/dist/component/schema.d.ts +4419 -0
  44. package/dist/component/schema.d.ts.map +1 -0
  45. package/dist/component/schema.js +106 -0
  46. package/dist/component/schema.js.map +1 -0
  47. package/dist/component/validators/activity.d.ts +747 -0
  48. package/dist/component/validators/activity.d.ts.map +1 -0
  49. package/dist/component/validators/activity.js +146 -0
  50. package/dist/component/validators/activity.js.map +1 -0
  51. package/dist/component/validators/athlete.d.ts +18 -0
  52. package/dist/component/validators/athlete.d.ts.map +1 -0
  53. package/dist/component/validators/athlete.js +25 -0
  54. package/dist/component/validators/athlete.js.map +1 -0
  55. package/dist/component/validators/body.d.ts +634 -0
  56. package/dist/component/validators/body.d.ts.map +1 -0
  57. package/dist/component/validators/body.js +70 -0
  58. package/dist/component/validators/body.js.map +1 -0
  59. package/dist/component/validators/connection.d.ts +7 -0
  60. package/dist/component/validators/connection.d.ts.map +1 -0
  61. package/dist/component/validators/connection.js +16 -0
  62. package/dist/component/validators/connection.js.map +1 -0
  63. package/dist/component/validators/daily.d.ts +650 -0
  64. package/dist/component/validators/daily.d.ts.map +1 -0
  65. package/dist/component/validators/daily.js +119 -0
  66. package/dist/component/validators/daily.js.map +1 -0
  67. package/dist/component/validators/enums.d.ts +24 -0
  68. package/dist/component/validators/enums.d.ts.map +1 -0
  69. package/dist/component/validators/enums.js +69 -0
  70. package/dist/component/validators/enums.js.map +1 -0
  71. package/dist/component/validators/index.d.ts +13 -0
  72. package/dist/component/validators/index.d.ts.map +1 -0
  73. package/dist/component/validators/index.js +16 -0
  74. package/dist/component/validators/index.js.map +1 -0
  75. package/dist/component/validators/menstruation.d.ts +51 -0
  76. package/dist/component/validators/menstruation.d.ts.map +1 -0
  77. package/dist/component/validators/menstruation.js +32 -0
  78. package/dist/component/validators/menstruation.js.map +1 -0
  79. package/dist/component/validators/nutrition.d.ts +498 -0
  80. package/dist/component/validators/nutrition.d.ts.map +1 -0
  81. package/dist/component/validators/nutrition.js +31 -0
  82. package/dist/component/validators/nutrition.js.map +1 -0
  83. package/dist/component/validators/plannedWorkout.d.ts +277 -0
  84. package/dist/component/validators/plannedWorkout.d.ts.map +1 -0
  85. package/dist/component/validators/plannedWorkout.js +105 -0
  86. package/dist/component/validators/plannedWorkout.js.map +1 -0
  87. package/dist/component/validators/samples.d.ts +609 -0
  88. package/dist/component/validators/samples.d.ts.map +1 -0
  89. package/dist/component/validators/samples.js +336 -0
  90. package/dist/component/validators/samples.js.map +1 -0
  91. package/dist/component/validators/shared.d.ts +402 -0
  92. package/dist/component/validators/shared.d.ts.map +1 -0
  93. package/dist/component/validators/shared.js +146 -0
  94. package/dist/component/validators/shared.js.map +1 -0
  95. package/dist/component/validators/sleep.d.ts +438 -0
  96. package/dist/component/validators/sleep.d.ts.map +1 -0
  97. package/dist/component/validators/sleep.js +95 -0
  98. package/dist/component/validators/sleep.js.map +1 -0
  99. package/dist/healthkit/activity.d.ts +75 -0
  100. package/dist/healthkit/activity.d.ts.map +1 -0
  101. package/dist/healthkit/activity.js +93 -0
  102. package/dist/healthkit/activity.js.map +1 -0
  103. package/dist/healthkit/athlete.d.ts +26 -0
  104. package/dist/healthkit/athlete.d.ts.map +1 -0
  105. package/dist/healthkit/athlete.js +34 -0
  106. package/dist/healthkit/athlete.js.map +1 -0
  107. package/dist/healthkit/body.d.ts +102 -0
  108. package/dist/healthkit/body.d.ts.map +1 -0
  109. package/dist/healthkit/body.js +167 -0
  110. package/dist/healthkit/body.js.map +1 -0
  111. package/dist/healthkit/daily.d.ts +119 -0
  112. package/dist/healthkit/daily.d.ts.map +1 -0
  113. package/dist/healthkit/daily.js +160 -0
  114. package/dist/healthkit/daily.js.map +1 -0
  115. package/dist/healthkit/index.d.ts +21 -0
  116. package/dist/healthkit/index.d.ts.map +1 -0
  117. package/dist/healthkit/index.js +21 -0
  118. package/dist/healthkit/index.js.map +1 -0
  119. package/dist/healthkit/maps/activity-type.d.ts +6 -0
  120. package/dist/healthkit/maps/activity-type.d.ts.map +1 -0
  121. package/dist/healthkit/maps/activity-type.js +184 -0
  122. package/dist/healthkit/maps/activity-type.js.map +1 -0
  123. package/dist/healthkit/maps/menstruation-flow.d.ts +6 -0
  124. package/dist/healthkit/maps/menstruation-flow.d.ts.map +1 -0
  125. package/dist/healthkit/maps/menstruation-flow.js +21 -0
  126. package/dist/healthkit/maps/menstruation-flow.js.map +1 -0
  127. package/dist/healthkit/maps/sleep-level.d.ts +11 -0
  128. package/dist/healthkit/maps/sleep-level.d.ts.map +1 -0
  129. package/dist/healthkit/maps/sleep-level.js +32 -0
  130. package/dist/healthkit/maps/sleep-level.js.map +1 -0
  131. package/dist/healthkit/menstruation.d.ts +35 -0
  132. package/dist/healthkit/menstruation.d.ts.map +1 -0
  133. package/dist/healthkit/menstruation.js +37 -0
  134. package/dist/healthkit/menstruation.js.map +1 -0
  135. package/dist/healthkit/nutrition.d.ts +77 -0
  136. package/dist/healthkit/nutrition.d.ts.map +1 -0
  137. package/dist/healthkit/nutrition.js +135 -0
  138. package/dist/healthkit/nutrition.js.map +1 -0
  139. package/dist/healthkit/sleep.d.ts +60 -0
  140. package/dist/healthkit/sleep.d.ts.map +1 -0
  141. package/dist/healthkit/sleep.js +108 -0
  142. package/dist/healthkit/sleep.js.map +1 -0
  143. package/dist/healthkit/types.d.ts +94 -0
  144. package/dist/healthkit/types.d.ts.map +1 -0
  145. package/dist/healthkit/types.js +26 -0
  146. package/dist/healthkit/types.js.map +1 -0
  147. package/dist/healthkit/utils.d.ts +63 -0
  148. package/dist/healthkit/utils.d.ts.map +1 -0
  149. package/dist/healthkit/utils.js +93 -0
  150. package/dist/healthkit/utils.js.map +1 -0
  151. package/dist/react/index.d.ts +2 -0
  152. package/dist/react/index.d.ts.map +1 -0
  153. package/dist/react/index.js +6 -0
  154. package/dist/react/index.js.map +1 -0
  155. package/package.json +112 -0
  156. package/src/client/_generated/_ignore.ts +1 -0
  157. package/src/client/index.ts +371 -0
  158. package/src/client/types.ts +18 -0
  159. package/src/component/_generated/api.ts +78 -0
  160. package/src/component/_generated/component.ts +1090 -0
  161. package/src/component/_generated/dataModel.ts +60 -0
  162. package/src/component/_generated/server.ts +156 -0
  163. package/src/component/convex.config.ts +3 -0
  164. package/src/component/private.ts +50 -0
  165. package/src/component/public.ts +358 -0
  166. package/src/component/schema.ts +115 -0
  167. package/src/component/validators/activity.ts +216 -0
  168. package/src/component/validators/athlete.ts +25 -0
  169. package/src/component/validators/body.ts +114 -0
  170. package/src/component/validators/connection.ts +16 -0
  171. package/src/component/validators/daily.ts +173 -0
  172. package/src/component/validators/enums.ts +119 -0
  173. package/src/component/validators/index.ts +16 -0
  174. package/src/component/validators/menstruation.ts +36 -0
  175. package/src/component/validators/nutrition.ts +37 -0
  176. package/src/component/validators/plannedWorkout.ts +110 -0
  177. package/src/component/validators/samples.ts +380 -0
  178. package/src/component/validators/shared.ts +165 -0
  179. package/src/component/validators/sleep.ts +133 -0
  180. package/src/healthkit/activity.ts +120 -0
  181. package/src/healthkit/athlete.ts +43 -0
  182. package/src/healthkit/body.ts +266 -0
  183. package/src/healthkit/daily.ts +245 -0
  184. package/src/healthkit/index.ts +59 -0
  185. package/src/healthkit/maps/activity-type.ts +185 -0
  186. package/src/healthkit/maps/menstruation-flow.ts +23 -0
  187. package/src/healthkit/maps/sleep-level.ts +37 -0
  188. package/src/healthkit/menstruation.ts +52 -0
  189. package/src/healthkit/nutrition.ts +162 -0
  190. package/src/healthkit/sleep.ts +136 -0
  191. package/src/healthkit/types.ts +219 -0
  192. package/src/healthkit/utils.ts +122 -0
  193. package/src/react/index.ts +7 -0
  194. package/src/test.ts +18 -0
@@ -0,0 +1,650 @@
1
+ export declare const dailyValidator: {
2
+ connectionId: import("convex/values").VId<import("convex/values").GenericId<"connections">, "required">;
3
+ userId: import("convex/values").VString<string, "required">;
4
+ active_durations_data: import("convex/values").VObject<{
5
+ activity_levels_samples?: {
6
+ timestamp?: string | undefined;
7
+ level?: number | undefined;
8
+ }[] | undefined;
9
+ activity_seconds?: number | undefined;
10
+ inactivity_seconds?: number | undefined;
11
+ low_intensity_seconds?: number | undefined;
12
+ moderate_intensity_seconds?: number | undefined;
13
+ num_continuous_inactive_periods?: number | undefined;
14
+ rest_seconds?: number | undefined;
15
+ standing_hours_count?: number | undefined;
16
+ standing_seconds?: number | undefined;
17
+ vigorous_intensity_seconds?: number | undefined;
18
+ } | undefined, {
19
+ activity_levels_samples: import("convex/values").VArray<{
20
+ timestamp?: string | undefined;
21
+ level?: number | undefined;
22
+ }[] | undefined, import("convex/values").VObject<{
23
+ timestamp?: string | undefined;
24
+ level?: number | undefined;
25
+ }, {
26
+ timestamp: import("convex/values").VString<string | undefined, "optional">;
27
+ level: import("convex/values").VFloat64<number | undefined, "optional">;
28
+ }, "required", "timestamp" | "level">, "optional">;
29
+ activity_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
30
+ inactivity_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
31
+ low_intensity_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
32
+ moderate_intensity_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
33
+ num_continuous_inactive_periods: import("convex/values").VFloat64<number | undefined, "optional">;
34
+ rest_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
35
+ standing_hours_count: import("convex/values").VFloat64<number | undefined, "optional">;
36
+ standing_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
37
+ vigorous_intensity_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
38
+ }, "optional", "activity_levels_samples" | "activity_seconds" | "inactivity_seconds" | "low_intensity_seconds" | "moderate_intensity_seconds" | "num_continuous_inactive_periods" | "rest_seconds" | "standing_hours_count" | "standing_seconds" | "vigorous_intensity_seconds">;
39
+ calories_data: import("convex/values").VObject<{
40
+ BMR_calories?: number | undefined;
41
+ calorie_samples?: {
42
+ timestamp?: string | undefined;
43
+ timer_duration_seconds?: number | undefined;
44
+ calories?: number | undefined;
45
+ }[] | undefined;
46
+ net_activity_calories?: number | undefined;
47
+ net_intake_calories?: number | undefined;
48
+ total_burned_calories?: number | undefined;
49
+ } | undefined, {
50
+ BMR_calories: import("convex/values").VFloat64<number | undefined, "optional">;
51
+ calorie_samples: import("convex/values").VArray<{
52
+ timestamp?: string | undefined;
53
+ timer_duration_seconds?: number | undefined;
54
+ calories?: number | undefined;
55
+ }[] | undefined, import("convex/values").VObject<{
56
+ timestamp?: string | undefined;
57
+ timer_duration_seconds?: number | undefined;
58
+ calories?: number | undefined;
59
+ }, {
60
+ timestamp: import("convex/values").VString<string | undefined, "optional">;
61
+ calories: import("convex/values").VFloat64<number | undefined, "optional">;
62
+ timer_duration_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
63
+ }, "required", "timestamp" | "timer_duration_seconds" | "calories">, "optional">;
64
+ net_activity_calories: import("convex/values").VFloat64<number | undefined, "optional">;
65
+ net_intake_calories: import("convex/values").VFloat64<number | undefined, "optional">;
66
+ total_burned_calories: import("convex/values").VFloat64<number | undefined, "optional">;
67
+ }, "optional", "BMR_calories" | "calorie_samples" | "net_activity_calories" | "net_intake_calories" | "total_burned_calories">;
68
+ data_enrichment: import("convex/values").VObject<{
69
+ start_time?: string | undefined;
70
+ cardiovascular_contributors?: {
71
+ contributor_name: string;
72
+ contributor_score: number;
73
+ }[] | undefined;
74
+ cardiovascular_score?: number | undefined;
75
+ immune_contributors?: {
76
+ contributor_name: string;
77
+ contributor_score: number;
78
+ }[] | undefined;
79
+ immune_index?: number | undefined;
80
+ readiness_contributors?: {
81
+ contributor_name: string;
82
+ contributor_score: number;
83
+ }[] | undefined;
84
+ readiness_score?: number | undefined;
85
+ respiratory_contributors?: {
86
+ contributor_name: string;
87
+ contributor_score: number;
88
+ }[] | undefined;
89
+ respiratory_score?: number | undefined;
90
+ stress_contributors?: {
91
+ contributor_name: string;
92
+ contributor_score: number;
93
+ }[] | undefined;
94
+ total_stress_score?: number | undefined;
95
+ } | undefined, {
96
+ cardiovascular_contributors: import("convex/values").VArray<{
97
+ contributor_name: string;
98
+ contributor_score: number;
99
+ }[] | undefined, import("convex/values").VObject<{
100
+ contributor_name: string;
101
+ contributor_score: number;
102
+ }, {
103
+ contributor_name: import("convex/values").VString<string, "required">;
104
+ contributor_score: import("convex/values").VFloat64<number, "required">;
105
+ }, "required", "contributor_name" | "contributor_score">, "optional">;
106
+ cardiovascular_score: import("convex/values").VFloat64<number | undefined, "optional">;
107
+ immune_contributors: import("convex/values").VArray<{
108
+ contributor_name: string;
109
+ contributor_score: number;
110
+ }[] | undefined, import("convex/values").VObject<{
111
+ contributor_name: string;
112
+ contributor_score: number;
113
+ }, {
114
+ contributor_name: import("convex/values").VString<string, "required">;
115
+ contributor_score: import("convex/values").VFloat64<number, "required">;
116
+ }, "required", "contributor_name" | "contributor_score">, "optional">;
117
+ immune_index: import("convex/values").VFloat64<number | undefined, "optional">;
118
+ readiness_contributors: import("convex/values").VArray<{
119
+ contributor_name: string;
120
+ contributor_score: number;
121
+ }[] | undefined, import("convex/values").VObject<{
122
+ contributor_name: string;
123
+ contributor_score: number;
124
+ }, {
125
+ contributor_name: import("convex/values").VString<string, "required">;
126
+ contributor_score: import("convex/values").VFloat64<number, "required">;
127
+ }, "required", "contributor_name" | "contributor_score">, "optional">;
128
+ readiness_score: import("convex/values").VFloat64<number | undefined, "optional">;
129
+ respiratory_contributors: import("convex/values").VArray<{
130
+ contributor_name: string;
131
+ contributor_score: number;
132
+ }[] | undefined, import("convex/values").VObject<{
133
+ contributor_name: string;
134
+ contributor_score: number;
135
+ }, {
136
+ contributor_name: import("convex/values").VString<string, "required">;
137
+ contributor_score: import("convex/values").VFloat64<number, "required">;
138
+ }, "required", "contributor_name" | "contributor_score">, "optional">;
139
+ respiratory_score: import("convex/values").VFloat64<number | undefined, "optional">;
140
+ start_time: import("convex/values").VString<string | undefined, "optional">;
141
+ stress_contributors: import("convex/values").VArray<{
142
+ contributor_name: string;
143
+ contributor_score: number;
144
+ }[] | undefined, import("convex/values").VObject<{
145
+ contributor_name: string;
146
+ contributor_score: number;
147
+ }, {
148
+ contributor_name: import("convex/values").VString<string, "required">;
149
+ contributor_score: import("convex/values").VFloat64<number, "required">;
150
+ }, "required", "contributor_name" | "contributor_score">, "optional">;
151
+ total_stress_score: import("convex/values").VFloat64<number | undefined, "optional">;
152
+ }, "optional", "start_time" | "cardiovascular_contributors" | "cardiovascular_score" | "immune_contributors" | "immune_index" | "readiness_contributors" | "readiness_score" | "respiratory_contributors" | "respiratory_score" | "stress_contributors" | "total_stress_score">;
153
+ device_data: import("convex/values").VObject<{
154
+ name?: string | undefined;
155
+ manufacturer?: string | undefined;
156
+ serial_number?: string | undefined;
157
+ software_version?: string | undefined;
158
+ hardware_version?: string | undefined;
159
+ last_upload_date?: string | undefined;
160
+ activation_timestamp?: string | undefined;
161
+ data_provided?: string[] | undefined;
162
+ other_devices?: {
163
+ name?: string | undefined;
164
+ manufacturer?: string | undefined;
165
+ serial_number?: string | undefined;
166
+ software_version?: string | undefined;
167
+ hardware_version?: string | undefined;
168
+ last_upload_date?: string | undefined;
169
+ activation_timestamp?: string | undefined;
170
+ data_provided?: string[] | undefined;
171
+ }[] | undefined;
172
+ sensor_state?: string | undefined;
173
+ } | undefined, {
174
+ activation_timestamp: import("convex/values").VString<string | undefined, "optional">;
175
+ data_provided: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
176
+ hardware_version: import("convex/values").VString<string | undefined, "optional">;
177
+ last_upload_date: import("convex/values").VString<string | undefined, "optional">;
178
+ manufacturer: import("convex/values").VString<string | undefined, "optional">;
179
+ name: import("convex/values").VString<string | undefined, "optional">;
180
+ other_devices: import("convex/values").VArray<{
181
+ name?: string | undefined;
182
+ manufacturer?: string | undefined;
183
+ serial_number?: string | undefined;
184
+ software_version?: string | undefined;
185
+ hardware_version?: string | undefined;
186
+ last_upload_date?: string | undefined;
187
+ activation_timestamp?: string | undefined;
188
+ data_provided?: string[] | undefined;
189
+ }[] | undefined, import("convex/values").VObject<{
190
+ name?: string | undefined;
191
+ manufacturer?: string | undefined;
192
+ serial_number?: string | undefined;
193
+ software_version?: string | undefined;
194
+ hardware_version?: string | undefined;
195
+ last_upload_date?: string | undefined;
196
+ activation_timestamp?: string | undefined;
197
+ data_provided?: string[] | undefined;
198
+ }, {
199
+ name: import("convex/values").VString<string | undefined, "optional">;
200
+ manufacturer: import("convex/values").VString<string | undefined, "optional">;
201
+ serial_number: import("convex/values").VString<string | undefined, "optional">;
202
+ software_version: import("convex/values").VString<string | undefined, "optional">;
203
+ hardware_version: import("convex/values").VString<string | undefined, "optional">;
204
+ last_upload_date: import("convex/values").VString<string | undefined, "optional">;
205
+ activation_timestamp: import("convex/values").VString<string | undefined, "optional">;
206
+ data_provided: import("convex/values").VArray<string[] | undefined, import("convex/values").VString<string, "required">, "optional">;
207
+ }, "required", "name" | "manufacturer" | "serial_number" | "software_version" | "hardware_version" | "last_upload_date" | "activation_timestamp" | "data_provided">, "optional">;
208
+ serial_number: import("convex/values").VString<string | undefined, "optional">;
209
+ sensor_state: import("convex/values").VString<string | undefined, "optional">;
210
+ software_version: import("convex/values").VString<string | undefined, "optional">;
211
+ }, "optional", "name" | "manufacturer" | "serial_number" | "software_version" | "hardware_version" | "last_upload_date" | "activation_timestamp" | "data_provided" | "other_devices" | "sensor_state">;
212
+ distance_data: import("convex/values").VObject<{
213
+ distance_meters?: number | undefined;
214
+ steps?: number | undefined;
215
+ floors_climbed?: number | undefined;
216
+ detailed?: {
217
+ distance_samples?: {
218
+ timestamp?: string | undefined;
219
+ timer_duration_seconds?: number | undefined;
220
+ distance_meters?: number | undefined;
221
+ }[] | undefined;
222
+ elevation_samples?: {
223
+ timestamp?: string | undefined;
224
+ timer_duration_seconds?: number | undefined;
225
+ elev_meters?: number | undefined;
226
+ }[] | undefined;
227
+ floors_climbed_samples?: {
228
+ timestamp?: string | undefined;
229
+ timer_duration_seconds?: number | undefined;
230
+ floors_climbed?: number | undefined;
231
+ }[] | undefined;
232
+ step_samples?: {
233
+ timestamp?: string | undefined;
234
+ timer_duration_seconds?: number | undefined;
235
+ steps?: number | undefined;
236
+ }[] | undefined;
237
+ } | undefined;
238
+ elevation?: {
239
+ avg_meters?: number | undefined;
240
+ gain_actual_meters?: number | undefined;
241
+ gain_planned_meters?: number | undefined;
242
+ loss_actual_meters?: number | undefined;
243
+ max_meters?: number | undefined;
244
+ min_meters?: number | undefined;
245
+ } | undefined;
246
+ swimming?: {
247
+ num_laps?: number | undefined;
248
+ num_strokes?: number | undefined;
249
+ pool_length_meters?: number | undefined;
250
+ } | undefined;
251
+ } | undefined, {
252
+ detailed: import("convex/values").VObject<{
253
+ distance_samples?: {
254
+ timestamp?: string | undefined;
255
+ timer_duration_seconds?: number | undefined;
256
+ distance_meters?: number | undefined;
257
+ }[] | undefined;
258
+ elevation_samples?: {
259
+ timestamp?: string | undefined;
260
+ timer_duration_seconds?: number | undefined;
261
+ elev_meters?: number | undefined;
262
+ }[] | undefined;
263
+ floors_climbed_samples?: {
264
+ timestamp?: string | undefined;
265
+ timer_duration_seconds?: number | undefined;
266
+ floors_climbed?: number | undefined;
267
+ }[] | undefined;
268
+ step_samples?: {
269
+ timestamp?: string | undefined;
270
+ timer_duration_seconds?: number | undefined;
271
+ steps?: number | undefined;
272
+ }[] | undefined;
273
+ } | undefined, {
274
+ distance_samples: import("convex/values").VArray<{
275
+ timestamp?: string | undefined;
276
+ timer_duration_seconds?: number | undefined;
277
+ distance_meters?: number | undefined;
278
+ }[] | undefined, import("convex/values").VObject<{
279
+ timestamp?: string | undefined;
280
+ timer_duration_seconds?: number | undefined;
281
+ distance_meters?: number | undefined;
282
+ }, {
283
+ timestamp: import("convex/values").VString<string | undefined, "optional">;
284
+ distance_meters: import("convex/values").VFloat64<number | undefined, "optional">;
285
+ timer_duration_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
286
+ }, "required", "timestamp" | "timer_duration_seconds" | "distance_meters">, "optional">;
287
+ elevation_samples: import("convex/values").VArray<{
288
+ timestamp?: string | undefined;
289
+ timer_duration_seconds?: number | undefined;
290
+ elev_meters?: number | undefined;
291
+ }[] | undefined, import("convex/values").VObject<{
292
+ timestamp?: string | undefined;
293
+ timer_duration_seconds?: number | undefined;
294
+ elev_meters?: number | undefined;
295
+ }, {
296
+ timestamp: import("convex/values").VString<string | undefined, "optional">;
297
+ elev_meters: import("convex/values").VFloat64<number | undefined, "optional">;
298
+ timer_duration_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
299
+ }, "required", "timestamp" | "timer_duration_seconds" | "elev_meters">, "optional">;
300
+ floors_climbed_samples: import("convex/values").VArray<{
301
+ timestamp?: string | undefined;
302
+ timer_duration_seconds?: number | undefined;
303
+ floors_climbed?: number | undefined;
304
+ }[] | undefined, import("convex/values").VObject<{
305
+ timestamp?: string | undefined;
306
+ timer_duration_seconds?: number | undefined;
307
+ floors_climbed?: number | undefined;
308
+ }, {
309
+ timestamp: import("convex/values").VString<string | undefined, "optional">;
310
+ floors_climbed: import("convex/values").VFloat64<number | undefined, "optional">;
311
+ timer_duration_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
312
+ }, "required", "timestamp" | "timer_duration_seconds" | "floors_climbed">, "optional">;
313
+ step_samples: import("convex/values").VArray<{
314
+ timestamp?: string | undefined;
315
+ timer_duration_seconds?: number | undefined;
316
+ steps?: number | undefined;
317
+ }[] | undefined, import("convex/values").VObject<{
318
+ timestamp?: string | undefined;
319
+ timer_duration_seconds?: number | undefined;
320
+ steps?: number | undefined;
321
+ }, {
322
+ timestamp: import("convex/values").VString<string | undefined, "optional">;
323
+ steps: import("convex/values").VFloat64<number | undefined, "optional">;
324
+ timer_duration_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
325
+ }, "required", "timestamp" | "timer_duration_seconds" | "steps">, "optional">;
326
+ }, "optional", "distance_samples" | "elevation_samples" | "floors_climbed_samples" | "step_samples">;
327
+ distance_meters: import("convex/values").VFloat64<number | undefined, "optional">;
328
+ elevation: import("convex/values").VObject<{
329
+ avg_meters?: number | undefined;
330
+ gain_actual_meters?: number | undefined;
331
+ gain_planned_meters?: number | undefined;
332
+ loss_actual_meters?: number | undefined;
333
+ max_meters?: number | undefined;
334
+ min_meters?: number | undefined;
335
+ } | undefined, {
336
+ avg_meters: import("convex/values").VFloat64<number | undefined, "optional">;
337
+ gain_actual_meters: import("convex/values").VFloat64<number | undefined, "optional">;
338
+ gain_planned_meters: import("convex/values").VFloat64<number | undefined, "optional">;
339
+ loss_actual_meters: import("convex/values").VFloat64<number | undefined, "optional">;
340
+ max_meters: import("convex/values").VFloat64<number | undefined, "optional">;
341
+ min_meters: import("convex/values").VFloat64<number | undefined, "optional">;
342
+ }, "optional", "avg_meters" | "gain_actual_meters" | "gain_planned_meters" | "loss_actual_meters" | "max_meters" | "min_meters">;
343
+ floors_climbed: import("convex/values").VFloat64<number | undefined, "optional">;
344
+ steps: import("convex/values").VFloat64<number | undefined, "optional">;
345
+ swimming: import("convex/values").VObject<{
346
+ num_laps?: number | undefined;
347
+ num_strokes?: number | undefined;
348
+ pool_length_meters?: number | undefined;
349
+ } | undefined, {
350
+ num_laps: import("convex/values").VFloat64<number | undefined, "optional">;
351
+ num_strokes: import("convex/values").VFloat64<number | undefined, "optional">;
352
+ pool_length_meters: import("convex/values").VFloat64<number | undefined, "optional">;
353
+ }, "optional", "num_laps" | "num_strokes" | "pool_length_meters">;
354
+ }, "optional", "distance_meters" | "steps" | "floors_climbed" | "detailed" | "elevation" | "swimming" | "elevation.avg_meters" | "elevation.gain_actual_meters" | "elevation.gain_planned_meters" | "elevation.loss_actual_meters" | "elevation.max_meters" | "elevation.min_meters" | "swimming.num_laps" | "swimming.num_strokes" | "swimming.pool_length_meters" | "detailed.distance_samples" | "detailed.elevation_samples" | "detailed.floors_climbed_samples" | "detailed.step_samples">;
355
+ heart_rate_data: import("convex/values").VObject<{
356
+ summary?: {
357
+ avg_hr_bpm?: number | undefined;
358
+ avg_hrv_rmssd?: number | undefined;
359
+ avg_hrv_sdnn?: number | undefined;
360
+ hr_zone_data?: {
361
+ zone?: number | undefined;
362
+ start_percentage?: number | undefined;
363
+ end_percentage?: number | undefined;
364
+ name?: string | undefined;
365
+ duration_seconds?: number | undefined;
366
+ }[] | undefined;
367
+ max_hr_bpm?: number | undefined;
368
+ min_hr_bpm?: number | undefined;
369
+ resting_hr_bpm?: number | undefined;
370
+ user_max_hr_bpm?: number | undefined;
371
+ } | undefined;
372
+ detailed?: {
373
+ hr_samples?: {
374
+ timestamp?: string | undefined;
375
+ bpm?: number | undefined;
376
+ timer_duration_seconds?: number | undefined;
377
+ context?: number | undefined;
378
+ }[] | undefined;
379
+ hrv_samples_rmssd?: {
380
+ timestamp?: string | undefined;
381
+ hrv_rmssd?: number | undefined;
382
+ }[] | undefined;
383
+ hrv_samples_sdnn?: {
384
+ timestamp?: string | undefined;
385
+ hrv_sdnn?: number | undefined;
386
+ }[] | undefined;
387
+ } | undefined;
388
+ } | undefined, {
389
+ detailed: import("convex/values").VObject<{
390
+ hr_samples?: {
391
+ timestamp?: string | undefined;
392
+ bpm?: number | undefined;
393
+ timer_duration_seconds?: number | undefined;
394
+ context?: number | undefined;
395
+ }[] | undefined;
396
+ hrv_samples_rmssd?: {
397
+ timestamp?: string | undefined;
398
+ hrv_rmssd?: number | undefined;
399
+ }[] | undefined;
400
+ hrv_samples_sdnn?: {
401
+ timestamp?: string | undefined;
402
+ hrv_sdnn?: number | undefined;
403
+ }[] | undefined;
404
+ } | undefined, {
405
+ hr_samples: import("convex/values").VArray<{
406
+ timestamp?: string | undefined;
407
+ bpm?: number | undefined;
408
+ timer_duration_seconds?: number | undefined;
409
+ context?: number | undefined;
410
+ }[] | undefined, import("convex/values").VObject<{
411
+ timestamp?: string | undefined;
412
+ bpm?: number | undefined;
413
+ timer_duration_seconds?: number | undefined;
414
+ context?: number | undefined;
415
+ }, {
416
+ timestamp: import("convex/values").VString<string | undefined, "optional">;
417
+ bpm: import("convex/values").VFloat64<number | undefined, "optional">;
418
+ timer_duration_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
419
+ context: import("convex/values").VFloat64<number | undefined, "optional">;
420
+ }, "required", "timestamp" | "bpm" | "timer_duration_seconds" | "context">, "optional">;
421
+ hrv_samples_rmssd: import("convex/values").VArray<{
422
+ timestamp?: string | undefined;
423
+ hrv_rmssd?: number | undefined;
424
+ }[] | undefined, import("convex/values").VObject<{
425
+ timestamp?: string | undefined;
426
+ hrv_rmssd?: number | undefined;
427
+ }, {
428
+ timestamp: import("convex/values").VString<string | undefined, "optional">;
429
+ hrv_rmssd: import("convex/values").VFloat64<number | undefined, "optional">;
430
+ }, "required", "timestamp" | "hrv_rmssd">, "optional">;
431
+ hrv_samples_sdnn: import("convex/values").VArray<{
432
+ timestamp?: string | undefined;
433
+ hrv_sdnn?: number | undefined;
434
+ }[] | undefined, import("convex/values").VObject<{
435
+ timestamp?: string | undefined;
436
+ hrv_sdnn?: number | undefined;
437
+ }, {
438
+ timestamp: import("convex/values").VString<string | undefined, "optional">;
439
+ hrv_sdnn: import("convex/values").VFloat64<number | undefined, "optional">;
440
+ }, "required", "timestamp" | "hrv_sdnn">, "optional">;
441
+ }, "optional", "hr_samples" | "hrv_samples_rmssd" | "hrv_samples_sdnn">;
442
+ summary: import("convex/values").VObject<{
443
+ avg_hr_bpm?: number | undefined;
444
+ avg_hrv_rmssd?: number | undefined;
445
+ avg_hrv_sdnn?: number | undefined;
446
+ hr_zone_data?: {
447
+ zone?: number | undefined;
448
+ start_percentage?: number | undefined;
449
+ end_percentage?: number | undefined;
450
+ name?: string | undefined;
451
+ duration_seconds?: number | undefined;
452
+ }[] | undefined;
453
+ max_hr_bpm?: number | undefined;
454
+ min_hr_bpm?: number | undefined;
455
+ resting_hr_bpm?: number | undefined;
456
+ user_max_hr_bpm?: number | undefined;
457
+ } | undefined, {
458
+ avg_hr_bpm: import("convex/values").VFloat64<number | undefined, "optional">;
459
+ avg_hrv_rmssd: import("convex/values").VFloat64<number | undefined, "optional">;
460
+ avg_hrv_sdnn: import("convex/values").VFloat64<number | undefined, "optional">;
461
+ hr_zone_data: import("convex/values").VArray<{
462
+ zone?: number | undefined;
463
+ start_percentage?: number | undefined;
464
+ end_percentage?: number | undefined;
465
+ name?: string | undefined;
466
+ duration_seconds?: number | undefined;
467
+ }[] | undefined, import("convex/values").VObject<{
468
+ zone?: number | undefined;
469
+ start_percentage?: number | undefined;
470
+ end_percentage?: number | undefined;
471
+ name?: string | undefined;
472
+ duration_seconds?: number | undefined;
473
+ }, {
474
+ zone: import("convex/values").VFloat64<number | undefined, "optional">;
475
+ start_percentage: import("convex/values").VFloat64<number | undefined, "optional">;
476
+ end_percentage: import("convex/values").VFloat64<number | undefined, "optional">;
477
+ name: import("convex/values").VString<string | undefined, "optional">;
478
+ duration_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
479
+ }, "required", "zone" | "start_percentage" | "end_percentage" | "name" | "duration_seconds">, "optional">;
480
+ max_hr_bpm: import("convex/values").VFloat64<number | undefined, "optional">;
481
+ min_hr_bpm: import("convex/values").VFloat64<number | undefined, "optional">;
482
+ resting_hr_bpm: import("convex/values").VFloat64<number | undefined, "optional">;
483
+ user_max_hr_bpm: import("convex/values").VFloat64<number | undefined, "optional">;
484
+ }, "optional", "avg_hr_bpm" | "avg_hrv_rmssd" | "avg_hrv_sdnn" | "hr_zone_data" | "max_hr_bpm" | "min_hr_bpm" | "resting_hr_bpm" | "user_max_hr_bpm">;
485
+ }, "optional", "summary" | "detailed" | "summary.avg_hr_bpm" | "summary.avg_hrv_rmssd" | "summary.avg_hrv_sdnn" | "summary.hr_zone_data" | "summary.max_hr_bpm" | "summary.min_hr_bpm" | "summary.resting_hr_bpm" | "summary.user_max_hr_bpm" | "detailed.hr_samples" | "detailed.hrv_samples_rmssd" | "detailed.hrv_samples_sdnn">;
486
+ MET_data: import("convex/values").VObject<{
487
+ MET_samples?: {
488
+ timestamp?: string | undefined;
489
+ level?: number | undefined;
490
+ }[] | undefined;
491
+ avg_level?: number | undefined;
492
+ num_high_intensity_minutes?: number | undefined;
493
+ num_inactive_minutes?: number | undefined;
494
+ num_low_intensity_minutes?: number | undefined;
495
+ num_moderate_intensity_minutes?: number | undefined;
496
+ } | undefined, {
497
+ MET_samples: import("convex/values").VArray<{
498
+ timestamp?: string | undefined;
499
+ level?: number | undefined;
500
+ }[] | undefined, import("convex/values").VObject<{
501
+ timestamp?: string | undefined;
502
+ level?: number | undefined;
503
+ }, {
504
+ timestamp: import("convex/values").VString<string | undefined, "optional">;
505
+ level: import("convex/values").VFloat64<number | undefined, "optional">;
506
+ }, "required", "timestamp" | "level">, "optional">;
507
+ avg_level: import("convex/values").VFloat64<number | undefined, "optional">;
508
+ num_high_intensity_minutes: import("convex/values").VFloat64<number | undefined, "optional">;
509
+ num_inactive_minutes: import("convex/values").VFloat64<number | undefined, "optional">;
510
+ num_low_intensity_minutes: import("convex/values").VFloat64<number | undefined, "optional">;
511
+ num_moderate_intensity_minutes: import("convex/values").VFloat64<number | undefined, "optional">;
512
+ }, "optional", "MET_samples" | "avg_level" | "num_high_intensity_minutes" | "num_inactive_minutes" | "num_low_intensity_minutes" | "num_moderate_intensity_minutes">;
513
+ metadata: import("convex/values").VObject<{
514
+ timestamp_localization?: number | undefined;
515
+ start_time: string;
516
+ end_time: string;
517
+ upload_type: number;
518
+ }, {
519
+ end_time: import("convex/values").VString<string, "required">;
520
+ start_time: import("convex/values").VString<string, "required">;
521
+ timestamp_localization: import("convex/values").VFloat64<number | undefined, "optional">;
522
+ upload_type: import("convex/values").VFloat64<number, "required">;
523
+ }, "required", "start_time" | "end_time" | "timestamp_localization" | "upload_type">;
524
+ oxygen_data: import("convex/values").VObject<{
525
+ vo2max_ml_per_min_per_kg?: number | undefined;
526
+ avg_saturation_percentage?: number | undefined;
527
+ saturation_samples?: {
528
+ type?: number | undefined;
529
+ timestamp?: string | undefined;
530
+ percentage?: number | undefined;
531
+ }[] | undefined;
532
+ vo2_samples?: {
533
+ timestamp?: string | undefined;
534
+ vo2max_ml_per_min_per_kg?: number | undefined;
535
+ }[] | undefined;
536
+ } | undefined, {
537
+ avg_saturation_percentage: import("convex/values").VFloat64<number | undefined, "optional">;
538
+ saturation_samples: import("convex/values").VArray<{
539
+ type?: number | undefined;
540
+ timestamp?: string | undefined;
541
+ percentage?: number | undefined;
542
+ }[] | undefined, import("convex/values").VObject<{
543
+ type?: number | undefined;
544
+ timestamp?: string | undefined;
545
+ percentage?: number | undefined;
546
+ }, {
547
+ timestamp: import("convex/values").VString<string | undefined, "optional">;
548
+ percentage: import("convex/values").VFloat64<number | undefined, "optional">;
549
+ type: import("convex/values").VFloat64<number | undefined, "optional">;
550
+ }, "required", "type" | "timestamp" | "percentage">, "optional">;
551
+ vo2_samples: import("convex/values").VArray<{
552
+ timestamp?: string | undefined;
553
+ vo2max_ml_per_min_per_kg?: number | undefined;
554
+ }[] | undefined, import("convex/values").VObject<{
555
+ timestamp?: string | undefined;
556
+ vo2max_ml_per_min_per_kg?: number | undefined;
557
+ }, {
558
+ timestamp: import("convex/values").VString<string | undefined, "optional">;
559
+ vo2max_ml_per_min_per_kg: import("convex/values").VFloat64<number | undefined, "optional">;
560
+ }, "required", "timestamp" | "vo2max_ml_per_min_per_kg">, "optional">;
561
+ vo2max_ml_per_min_per_kg: import("convex/values").VFloat64<number | undefined, "optional">;
562
+ }, "optional", "vo2max_ml_per_min_per_kg" | "avg_saturation_percentage" | "saturation_samples" | "vo2_samples">;
563
+ scores: import("convex/values").VObject<{
564
+ activity?: number | undefined;
565
+ recovery?: number | undefined;
566
+ sleep?: number | undefined;
567
+ biological_age?: number | undefined;
568
+ } | undefined, {
569
+ activity: import("convex/values").VFloat64<number | undefined, "optional">;
570
+ recovery: import("convex/values").VFloat64<number | undefined, "optional">;
571
+ sleep: import("convex/values").VFloat64<number | undefined, "optional">;
572
+ biological_age: import("convex/values").VFloat64<number | undefined, "optional">;
573
+ }, "optional", "activity" | "recovery" | "sleep" | "biological_age">;
574
+ strain_data: import("convex/values").VObject<{
575
+ strain_level?: number | undefined;
576
+ } | undefined, {
577
+ strain_level: import("convex/values").VFloat64<number | undefined, "optional">;
578
+ }, "optional", "strain_level">;
579
+ stress_data: import("convex/values").VObject<{
580
+ activity_stress_duration_seconds?: number | undefined;
581
+ avg_stress_level?: number | undefined;
582
+ body_battery_samples?: {
583
+ timestamp?: string | undefined;
584
+ level?: number | undefined;
585
+ }[] | undefined;
586
+ high_stress_duration_seconds?: number | undefined;
587
+ low_stress_duration_seconds?: number | undefined;
588
+ max_stress_level?: number | undefined;
589
+ medium_stress_duration_seconds?: number | undefined;
590
+ rest_stress_duration_seconds?: number | undefined;
591
+ samples?: {
592
+ timestamp?: string | undefined;
593
+ level?: number | undefined;
594
+ }[] | undefined;
595
+ stress_duration_seconds?: number | undefined;
596
+ stress_rating?: number | undefined;
597
+ } | undefined, {
598
+ activity_stress_duration_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
599
+ avg_stress_level: import("convex/values").VFloat64<number | undefined, "optional">;
600
+ body_battery_samples: import("convex/values").VArray<{
601
+ timestamp?: string | undefined;
602
+ level?: number | undefined;
603
+ }[] | undefined, import("convex/values").VObject<{
604
+ timestamp?: string | undefined;
605
+ level?: number | undefined;
606
+ }, {
607
+ timestamp: import("convex/values").VString<string | undefined, "optional">;
608
+ level: import("convex/values").VFloat64<number | undefined, "optional">;
609
+ }, "required", "timestamp" | "level">, "optional">;
610
+ high_stress_duration_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
611
+ low_stress_duration_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
612
+ max_stress_level: import("convex/values").VFloat64<number | undefined, "optional">;
613
+ medium_stress_duration_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
614
+ rest_stress_duration_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
615
+ samples: import("convex/values").VArray<{
616
+ timestamp?: string | undefined;
617
+ level?: number | undefined;
618
+ }[] | undefined, import("convex/values").VObject<{
619
+ timestamp?: string | undefined;
620
+ level?: number | undefined;
621
+ }, {
622
+ timestamp: import("convex/values").VString<string | undefined, "optional">;
623
+ level: import("convex/values").VFloat64<number | undefined, "optional">;
624
+ }, "required", "timestamp" | "level">, "optional">;
625
+ stress_duration_seconds: import("convex/values").VFloat64<number | undefined, "optional">;
626
+ stress_rating: import("convex/values").VFloat64<number | undefined, "optional">;
627
+ }, "optional", "activity_stress_duration_seconds" | "avg_stress_level" | "body_battery_samples" | "high_stress_duration_seconds" | "low_stress_duration_seconds" | "max_stress_level" | "medium_stress_duration_seconds" | "rest_stress_duration_seconds" | "samples" | "stress_duration_seconds" | "stress_rating">;
628
+ tag_data: import("convex/values").VObject<{
629
+ tags?: {
630
+ timestamp: string;
631
+ tag_name: string;
632
+ notes: string;
633
+ }[] | undefined;
634
+ } | undefined, {
635
+ tags: import("convex/values").VArray<{
636
+ timestamp: string;
637
+ tag_name: string;
638
+ notes: string;
639
+ }[] | undefined, import("convex/values").VObject<{
640
+ timestamp: string;
641
+ tag_name: string;
642
+ notes: string;
643
+ }, {
644
+ timestamp: import("convex/values").VString<string, "required">;
645
+ tag_name: import("convex/values").VString<string, "required">;
646
+ notes: import("convex/values").VString<string, "required">;
647
+ }, "required", "timestamp" | "tag_name" | "notes">, "optional">;
648
+ }, "optional", "tags">;
649
+ };
650
+ //# sourceMappingURL=daily.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daily.d.ts","sourceRoot":"","sources":["../../../src/component/validators/daily.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiJ1B,CAAC"}