@tryvital/vital-node 0.3.9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/Activity.ts +1 -1
- package/client/Body.ts +1 -1
- package/client/Profile.ts +25 -0
- package/client/Sleep.ts +2 -2
- package/client/Testkits.ts +7 -1
- package/client/Vitals.ts +45 -45
- package/client/Webhooks.ts +7 -58
- package/client/Workouts.ts +3 -3
- package/client/index.ts +1 -1
- package/client/models/activity.ts +7 -0
- package/client/models/body_model.ts +0 -18
- package/client/models/profile_model.ts +34 -0
- package/dist/client/Activity.js +1 -1
- package/dist/client/Body.js +1 -1
- package/dist/client/Profile.d.ts +8 -0
- package/dist/client/{ProviderSpecific.js → Profile.js} +8 -12
- package/dist/client/Sleep.js +2 -2
- package/dist/client/Testkits.d.ts +1 -0
- package/dist/client/Testkits.js +13 -0
- package/dist/client/Vitals.d.ts +7 -6
- package/dist/client/Vitals.js +16 -41
- package/dist/client/Webhooks.d.ts +1 -7
- package/dist/client/Webhooks.js +4 -102
- package/dist/client/Workouts.d.ts +1 -1
- package/dist/client/Workouts.js +3 -3
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +3 -3
- package/dist/client/models/activity.d.ts +6 -0
- package/dist/client/models/body_model.d.ts +0 -18
- package/dist/client/models/profile_model.d.ts +33 -0
- package/dist/{swagger_client/models/client-activity-response.js → client/models/profile_model.js} +0 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +11 -11
- package/dist/lib/config.d.ts +0 -1
- package/dist/lib/config.js +0 -1
- package/index.ts +14 -14
- package/lib/config.ts +0 -1
- package/package.json +3 -2
- package/client/ProviderSpecific.ts +0 -31
- package/dist/client/ProviderSpecific.d.ts +0 -8
- package/dist/swagger_client/api.d.ts +0 -18
- package/dist/swagger_client/api.js +0 -32
- package/dist/swagger_client/apis/activity-api.d.ts +0 -86
- package/dist/swagger_client/apis/activity-api.js +0 -241
- package/dist/swagger_client/apis/body-api.d.ts +0 -86
- package/dist/swagger_client/apis/body-api.js +0 -241
- package/dist/swagger_client/apis/link-api.d.ts +0 -115
- package/dist/swagger_client/apis/link-api.js +0 -310
- package/dist/swagger_client/apis/provider-specific-api.d.ts +0 -90
- package/dist/swagger_client/apis/provider-specific-api.js +0 -250
- package/dist/swagger_client/apis/sleep-api.d.ts +0 -120
- package/dist/swagger_client/apis/sleep-api.js +0 -330
- package/dist/swagger_client/apis/user-api.d.ts +0 -243
- package/dist/swagger_client/apis/user-api.js +0 -657
- package/dist/swagger_client/apis/webhooks-api.d.ts +0 -138
- package/dist/swagger_client/apis/webhooks-api.js +0 -379
- package/dist/swagger_client/apis/workouts-api.d.ts +0 -120
- package/dist/swagger_client/apis/workouts-api.js +0 -330
- package/dist/swagger_client/base.d.ts +0 -55
- package/dist/swagger_client/base.js +0 -67
- package/dist/swagger_client/configuration.d.ts +0 -63
- package/dist/swagger_client/configuration.js +0 -16
- package/dist/swagger_client/index.d.ts +0 -13
- package/dist/swagger_client/index.js +0 -27
- package/dist/swagger_client/models/client-activity-response.d.ts +0 -24
- package/dist/swagger_client/models/client-body-response.d.ts +0 -24
- package/dist/swagger_client/models/client-body-response.js +0 -2
- package/dist/swagger_client/models/client-facing-activity.d.ts +0 -84
- package/dist/swagger_client/models/client-facing-activity.js +0 -2
- package/dist/swagger_client/models/client-facing-body.d.ts +0 -72
- package/dist/swagger_client/models/client-facing-body.js +0 -2
- package/dist/swagger_client/models/client-facing-sleep-stream.d.ts +0 -48
- package/dist/swagger_client/models/client-facing-sleep-stream.js +0 -2
- package/dist/swagger_client/models/client-facing-sleep.d.ts +0 -138
- package/dist/swagger_client/models/client-facing-sleep.js +0 -2
- package/dist/swagger_client/models/client-facing-source-specific.d.ts +0 -48
- package/dist/swagger_client/models/client-facing-source-specific.js +0 -2
- package/dist/swagger_client/models/client-facing-sport.d.ts +0 -30
- package/dist/swagger_client/models/client-facing-sport.js +0 -2
- package/dist/swagger_client/models/client-facing-stream.d.ts +0 -84
- package/dist/swagger_client/models/client-facing-stream.js +0 -2
- package/dist/swagger_client/models/client-facing-user.d.ts +0 -48
- package/dist/swagger_client/models/client-facing-user.js +0 -2
- package/dist/swagger_client/models/client-facing-webhook.d.ts +0 -42
- package/dist/swagger_client/models/client-facing-webhook.js +0 -2
- package/dist/swagger_client/models/client-facing-workout.d.ts +0 -150
- package/dist/swagger_client/models/client-facing-workout.js +0 -2
- package/dist/swagger_client/models/client-sleep-response.d.ts +0 -24
- package/dist/swagger_client/models/client-sleep-response.js +0 -2
- package/dist/swagger_client/models/client-source-specific-response.d.ts +0 -24
- package/dist/swagger_client/models/client-source-specific-response.js +0 -2
- package/dist/swagger_client/models/client-webhook-response.d.ts +0 -24
- package/dist/swagger_client/models/client-webhook-response.js +0 -2
- package/dist/swagger_client/models/client-workout-response.d.ts +0 -24
- package/dist/swagger_client/models/client-workout-response.js +0 -2
- package/dist/swagger_client/models/connected-source-client-facing.d.ts +0 -24
- package/dist/swagger_client/models/connected-source-client-facing.js +0 -2
- package/dist/swagger_client/models/httpvalidation-error.d.ts +0 -24
- package/dist/swagger_client/models/httpvalidation-error.js +0 -2
- package/dist/swagger_client/models/index.d.ts +0 -32
- package/dist/swagger_client/models/index.js +0 -44
- package/dist/swagger_client/models/individual-provider-data.d.ts +0 -30
- package/dist/swagger_client/models/individual-provider-data.js +0 -2
- package/dist/swagger_client/models/link-token-exchange-response.d.ts +0 -24
- package/dist/swagger_client/models/link-token-exchange-response.js +0 -2
- package/dist/swagger_client/models/link-token-exchange.d.ts +0 -30
- package/dist/swagger_client/models/link-token-exchange.js +0 -2
- package/dist/swagger_client/models/password-providers.d.ts +0 -22
- package/dist/swagger_client/models/password-providers.js +0 -28
- package/dist/swagger_client/models/provider-link-response.d.ts +0 -30
- package/dist/swagger_client/models/provider-link-response.js +0 -2
- package/dist/swagger_client/models/providers-that-require-password-auth-whoop-renpho-peloton-zwift.d.ts +0 -18
- package/dist/swagger_client/models/providers-that-require-password-auth-whoop-renpho-peloton-zwift.js +0 -2
- package/dist/swagger_client/models/providers.d.ts +0 -27
- package/dist/swagger_client/models/providers.js +0 -33
- package/dist/swagger_client/models/source-client-facing.d.ts +0 -36
- package/dist/swagger_client/models/source-client-facing.js +0 -2
- package/dist/swagger_client/models/user-create.d.ts +0 -24
- package/dist/swagger_client/models/user-create.js +0 -2
- package/dist/swagger_client/models/user-key-response.d.ts +0 -30
- package/dist/swagger_client/models/user-key-response.js +0 -2
- package/dist/swagger_client/models/user-success-response.d.ts +0 -24
- package/dist/swagger_client/models/user-success-response.js +0 -2
- package/dist/swagger_client/models/validation-error.d.ts +0 -36
- package/dist/swagger_client/models/validation-error.js +0 -2
- package/dist/swagger_client/models/webhook-register.d.ts +0 -36
- package/dist/swagger_client/models/webhook-register.js +0 -2
- package/dist/swagger_client/models/webhook-type.d.ts +0 -24
- package/dist/swagger_client/models/webhook-type.js +0 -30
- package/dist/test/data/mock_webhook.d.ts +0 -49
- package/dist/test/data/mock_webhook.js +0 -170
- package/dist/test/webhook.spec.d.ts +0 -1
- package/dist/test/webhook.spec.js +0 -160
- package/test/data/mock_webhook.ts +0 -167
- package/test/webhook.spec.ts +0 -254
package/client/Activity.ts
CHANGED
@@ -16,7 +16,7 @@ export class ActivityApi {
|
|
16
16
|
provider?: string
|
17
17
|
): Promise<ClientActivityResponse> {
|
18
18
|
const resp = await this.client.get(
|
19
|
-
this.baseURL.concat(`/activity/${userKey}`),
|
19
|
+
this.baseURL.concat(`/summary/activity/${userKey}`),
|
20
20
|
{
|
21
21
|
params: { start_date: startDate, end_date: endDate, provider },
|
22
22
|
}
|
package/client/Body.ts
CHANGED
@@ -17,7 +17,7 @@ export class BodyApi {
|
|
17
17
|
provider?: string
|
18
18
|
): Promise<ClientBodyResponse> {
|
19
19
|
const resp = await this.client.get(
|
20
|
-
this.baseURL.concat(`/body/${userKey}`),
|
20
|
+
this.baseURL.concat(`/summary/body/${userKey}`),
|
21
21
|
{
|
22
22
|
params: { start_date: startDate, end_date: endDate, provider },
|
23
23
|
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
2
|
+
import { ClientFacingProfile } from './models/profile_model';
|
3
|
+
|
4
|
+
export class ProfileApi {
|
5
|
+
baseURL: string;
|
6
|
+
client: AxiosInstance;
|
7
|
+
|
8
|
+
constructor(baseURL: string, axios: AxiosInstance) {
|
9
|
+
this.baseURL = baseURL;
|
10
|
+
this.client = axios;
|
11
|
+
}
|
12
|
+
|
13
|
+
public async get(
|
14
|
+
userKey: string,
|
15
|
+
provider?: string
|
16
|
+
): Promise<ClientFacingProfile> {
|
17
|
+
const resp = await this.client.get(
|
18
|
+
this.baseURL.concat(`/summary/profile/${userKey}`),
|
19
|
+
{
|
20
|
+
params: { provider },
|
21
|
+
}
|
22
|
+
);
|
23
|
+
return resp.data;
|
24
|
+
}
|
25
|
+
}
|
package/client/Sleep.ts
CHANGED
@@ -16,7 +16,7 @@ export class SleepApi {
|
|
16
16
|
provider?: string
|
17
17
|
): Promise<ClientSleepResponse> {
|
18
18
|
const resp = await this.client.get(
|
19
|
-
this.baseURL.concat(`/sleep/${userKey}`),
|
19
|
+
this.baseURL.concat(`/summary/sleep/${userKey}`),
|
20
20
|
{
|
21
21
|
params: { start_date: startDate, end_date: endDate, provider },
|
22
22
|
}
|
@@ -26,7 +26,7 @@ export class SleepApi {
|
|
26
26
|
|
27
27
|
public async getStream(sleepId: string): Promise<ClientSleepResponse> {
|
28
28
|
const resp = await this.client.get(
|
29
|
-
this.baseURL.concat(`/sleep/${sleepId}/stream
|
29
|
+
this.baseURL.concat(`/timeseries/sleep/${sleepId}/stream`)
|
30
30
|
);
|
31
31
|
return resp.data;
|
32
32
|
}
|
package/client/Testkits.ts
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
import { AxiosInstance } from 'axios';
|
2
|
-
import { signature } from './lib/WebhookVerification';
|
3
2
|
import {
|
4
3
|
Order,
|
5
4
|
OrderRequestResponse,
|
@@ -59,4 +58,11 @@ export class TestkitsApi {
|
|
59
58
|
);
|
60
59
|
return resp.data;
|
61
60
|
}
|
61
|
+
|
62
|
+
public async get_results(orderId: string): Promise<Order> {
|
63
|
+
const resp = await this.client.get(
|
64
|
+
this.baseURL.concat(`/testkit/orders/${orderId}/results`)
|
65
|
+
);
|
66
|
+
return resp.data;
|
67
|
+
}
|
62
68
|
}
|
package/client/Vitals.ts
CHANGED
@@ -1,11 +1,5 @@
|
|
1
1
|
import { AxiosInstance } from 'axios';
|
2
|
-
import {
|
3
|
-
ClientCholesterolResponse,
|
4
|
-
ClientGlucoseResponse,
|
5
|
-
ClientHba1cResponse,
|
6
|
-
ClientIgeResponse,
|
7
|
-
ClientIggResponse,
|
8
|
-
} from './models/activity';
|
2
|
+
import { TimeseriesPoint } from './models/activity';
|
9
3
|
|
10
4
|
export class VitalsApi {
|
11
5
|
baseURL: string;
|
@@ -15,15 +9,15 @@ export class VitalsApi {
|
|
15
9
|
this.client = axios;
|
16
10
|
}
|
17
11
|
|
18
|
-
|
19
|
-
|
20
|
-
|
12
|
+
private async timeseriesData(
|
13
|
+
user_key: string,
|
14
|
+
resource: string,
|
21
15
|
startDate: Date,
|
22
16
|
endDate: Date,
|
23
17
|
provider?: string
|
24
|
-
): Promise<
|
18
|
+
): Promise<TimeseriesPoint[]> {
|
25
19
|
const resp = await this.client.get(
|
26
|
-
this.baseURL.concat(`/
|
20
|
+
this.baseURL.concat(`/timeseries/${user_key}/${resource}`),
|
27
21
|
{
|
28
22
|
params: { start_date: startDate, end_date: endDate, provider },
|
29
23
|
}
|
@@ -31,61 +25,67 @@ export class VitalsApi {
|
|
31
25
|
return resp.data;
|
32
26
|
}
|
33
27
|
|
34
|
-
public async
|
28
|
+
public async cholesterol(
|
29
|
+
type: 'ldl' | 'total' | 'triglycerides' | 'hdl',
|
35
30
|
userKey: string,
|
36
31
|
startDate: Date,
|
37
32
|
endDate: Date,
|
38
33
|
provider?: string
|
39
|
-
): Promise<
|
40
|
-
|
41
|
-
|
42
|
-
{
|
43
|
-
|
44
|
-
|
34
|
+
): Promise<TimeseriesPoint[]> {
|
35
|
+
return this.timeseriesData(
|
36
|
+
userKey,
|
37
|
+
`cholesterol/${type}`,
|
38
|
+
startDate,
|
39
|
+
endDate,
|
40
|
+
provider
|
45
41
|
);
|
46
|
-
return resp.data;
|
47
42
|
}
|
48
43
|
|
49
|
-
public async
|
44
|
+
public async glucose(
|
50
45
|
userKey: string,
|
51
46
|
startDate: Date,
|
52
47
|
endDate: Date,
|
53
48
|
provider?: string
|
54
|
-
): Promise<
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
49
|
+
): Promise<TimeseriesPoint[]> {
|
50
|
+
return this.timeseriesData(
|
51
|
+
userKey,
|
52
|
+
'glucose',
|
53
|
+
startDate,
|
54
|
+
endDate,
|
55
|
+
provider
|
60
56
|
);
|
61
|
-
return resp.data;
|
62
57
|
}
|
63
58
|
|
64
59
|
public async ige(
|
65
60
|
userKey: string,
|
66
61
|
startDate: Date,
|
67
|
-
endDate: Date
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
{
|
72
|
-
params: { start_date: startDate, end_date: endDate },
|
73
|
-
}
|
74
|
-
);
|
75
|
-
return resp.data;
|
62
|
+
endDate: Date,
|
63
|
+
provider?: string
|
64
|
+
): Promise<TimeseriesPoint[]> {
|
65
|
+
return this.timeseriesData(userKey, 'ige', startDate, endDate, provider);
|
76
66
|
}
|
77
67
|
|
78
68
|
public async igg(
|
79
69
|
userKey: string,
|
80
70
|
startDate: Date,
|
81
|
-
endDate: Date
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
71
|
+
endDate: Date,
|
72
|
+
provider?: string
|
73
|
+
): Promise<TimeseriesPoint[]> {
|
74
|
+
return this.timeseriesData(userKey, 'igg', startDate, endDate, provider);
|
75
|
+
}
|
76
|
+
|
77
|
+
public async heartrate(
|
78
|
+
userKey: string,
|
79
|
+
startDate: Date,
|
80
|
+
endDate: Date,
|
81
|
+
provider?: string
|
82
|
+
): Promise<TimeseriesPoint[]> {
|
83
|
+
return this.timeseriesData(
|
84
|
+
userKey,
|
85
|
+
'heartrate',
|
86
|
+
startDate,
|
87
|
+
endDate,
|
88
|
+
provider
|
88
89
|
);
|
89
|
-
return resp.data;
|
90
90
|
}
|
91
91
|
}
|
package/client/Webhooks.ts
CHANGED
@@ -1,71 +1,20 @@
|
|
1
1
|
import { AxiosInstance } from 'axios';
|
2
|
-
import {
|
3
|
-
import {
|
4
|
-
ClientWebhookResponse,
|
5
|
-
WebhookEventTypes,
|
6
|
-
ClientFacingWebhook,
|
7
|
-
} from './models/webhook_models';
|
2
|
+
import { Webhook } from 'svix';
|
8
3
|
|
9
4
|
export class WebhooksApi {
|
10
|
-
DEFAULT_TOLERANCE: number;
|
11
|
-
|
12
5
|
baseURL: string;
|
13
6
|
client: AxiosInstance;
|
14
7
|
constructor(baseURL: string, axios: AxiosInstance) {
|
15
8
|
this.baseURL = baseURL;
|
16
9
|
this.client = axios;
|
17
|
-
this.DEFAULT_TOLERANCE = 300; // 5 minutes
|
18
|
-
}
|
19
|
-
|
20
|
-
public async getAll(): Promise<ClientWebhookResponse> {
|
21
|
-
const resp = await this.client.get(this.baseURL.concat('/webhooks/'));
|
22
|
-
return resp.data;
|
23
|
-
}
|
24
|
-
|
25
|
-
public async register(
|
26
|
-
callbackUrl: string,
|
27
|
-
verifyToken: string,
|
28
|
-
eventType: WebhookEventTypes
|
29
|
-
): Promise<ClientFacingWebhook> {
|
30
|
-
const resp = await this.client.post(this.baseURL.concat('/webhooks/'), {
|
31
|
-
callback_url: callbackUrl,
|
32
|
-
verify_token: verifyToken,
|
33
|
-
event_type: eventType,
|
34
|
-
});
|
35
|
-
return resp.data;
|
36
|
-
}
|
37
|
-
|
38
|
-
public async deregister(webhookId: string): Promise<ClientFacingWebhook> {
|
39
|
-
const resp = await this.client.delete(
|
40
|
-
this.baseURL.concat(`/webhooks/${webhookId}`)
|
41
|
-
);
|
42
|
-
return resp.data;
|
43
|
-
}
|
44
|
-
|
45
|
-
public async test(
|
46
|
-
event_code: 'HISTORICAL_DATA_UPDATE' | 'CREATED',
|
47
|
-
webhook_type: 'activity' | 'body' | 'sleep' | 'workouts'
|
48
|
-
): Promise<ClientFacingWebhook> {
|
49
|
-
const resp = await this.client.post(this.baseURL.concat('/webhooks/test'), {
|
50
|
-
event_code,
|
51
|
-
webhook_type,
|
52
|
-
});
|
53
|
-
return resp.data;
|
54
10
|
}
|
55
11
|
|
56
|
-
public constructWebhookEvent(
|
12
|
+
public static constructWebhookEvent(
|
57
13
|
payload: string,
|
58
|
-
|
59
|
-
secret: string
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
payload,
|
64
|
-
header,
|
65
|
-
secret,
|
66
|
-
tolerance || this.DEFAULT_TOLERANCE
|
67
|
-
);
|
68
|
-
const jsonPayload = JSON.parse(payload);
|
69
|
-
return jsonPayload;
|
14
|
+
headers: Record<string, string>,
|
15
|
+
secret: string
|
16
|
+
): unknown {
|
17
|
+
const wh = new Webhook(secret);
|
18
|
+
return wh.verify(payload, headers);
|
70
19
|
}
|
71
20
|
}
|
package/client/Workouts.ts
CHANGED
@@ -19,7 +19,7 @@ export class WorkoutsApi {
|
|
19
19
|
provider?: string
|
20
20
|
): Promise<ClientWorkoutResponse> {
|
21
21
|
const resp = await this.client.get(
|
22
|
-
this.baseURL.concat(`/workouts/${userKey}`),
|
22
|
+
this.baseURL.concat(`/summary/workouts/${userKey}`),
|
23
23
|
{
|
24
24
|
params: { start_date: startDate, end_date: endDate, provider },
|
25
25
|
}
|
@@ -27,11 +27,11 @@ export class WorkoutsApi {
|
|
27
27
|
return resp.data;
|
28
28
|
}
|
29
29
|
|
30
|
-
public async
|
30
|
+
public async getStream(
|
31
31
|
workoutId: string
|
32
32
|
): Promise<ClientWorkoutStreamResponse> {
|
33
33
|
const resp = await this.client.get(
|
34
|
-
this.baseURL.concat(`/workouts/${workoutId}/stream
|
34
|
+
this.baseURL.concat(`/timeseries/workouts/${workoutId}/stream`)
|
35
35
|
);
|
36
36
|
return resp.data;
|
37
37
|
}
|
package/client/index.ts
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
export { ActivityApi } from './Activity';
|
2
2
|
export { BodyApi } from './Body';
|
3
3
|
export { LinkApi } from './Link';
|
4
|
-
export { ProviderSpecificApi } from './ProviderSpecific';
|
5
4
|
export { SleepApi } from './Sleep';
|
6
5
|
export { UserApi } from './User';
|
7
6
|
export { WebhooksApi } from './Webhooks';
|
8
7
|
export { WorkoutsApi } from './Workouts';
|
9
8
|
export { TestkitsApi } from './Testkits';
|
9
|
+
export { ProfileApi } from './Profile';
|
@@ -94,6 +94,13 @@ export interface ClientCholesterolResponse {
|
|
94
94
|
cholesterol: ClientFacingCholesterol[];
|
95
95
|
}
|
96
96
|
|
97
|
+
export interface TimeseriesPoint {
|
98
|
+
timestamp: Date;
|
99
|
+
value: number;
|
100
|
+
type: string;
|
101
|
+
unit: string;
|
102
|
+
}
|
103
|
+
|
97
104
|
enum RespiratoryAllergen {
|
98
105
|
D_PTERONYSSINUS = 'd_pteronyssinus',
|
99
106
|
D_FARINAE = 'd_farinae',
|
@@ -30,24 +30,6 @@ export interface ClientFacingBody {
|
|
30
30
|
* @memberof ClientFacingBody
|
31
31
|
*/
|
32
32
|
fat?: number;
|
33
|
-
/**
|
34
|
-
* Age of user.::years
|
35
|
-
* @type {number}
|
36
|
-
* @memberof ClientFacingBody
|
37
|
-
*/
|
38
|
-
age?: number;
|
39
|
-
/**
|
40
|
-
* Height in cm.::cm
|
41
|
-
* @type {number}
|
42
|
-
* @memberof ClientFacingBody
|
43
|
-
*/
|
44
|
-
height?: number;
|
45
|
-
/**
|
46
|
-
* Gender of user.
|
47
|
-
* @type {string}
|
48
|
-
* @memberof ClientFacingBody
|
49
|
-
*/
|
50
|
-
gender?: string;
|
51
33
|
/**
|
52
34
|
* Source the data has come from.
|
53
35
|
* @type {SourceClientFacing}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { SourceClientFacing } from './user_models';
|
2
|
+
|
3
|
+
export interface ClientFacingProfile {
|
4
|
+
/**
|
5
|
+
* Age of user.::years
|
6
|
+
* @type {number}
|
7
|
+
* @memberof ClientFacingBody
|
8
|
+
*/
|
9
|
+
age?: number;
|
10
|
+
/**
|
11
|
+
* Height in cm.::cm
|
12
|
+
* @type {number}
|
13
|
+
* @memberof ClientFacingBody
|
14
|
+
*/
|
15
|
+
height?: number;
|
16
|
+
/**
|
17
|
+
* Gender of user.
|
18
|
+
* @type {string}
|
19
|
+
* @memberof ClientFacingBody
|
20
|
+
*/
|
21
|
+
gender?: string;
|
22
|
+
/**
|
23
|
+
* Source the data has come from.
|
24
|
+
* @type {SourceClientFacing}
|
25
|
+
* @memberof ClientFacingBody
|
26
|
+
*/
|
27
|
+
source: SourceClientFacing;
|
28
|
+
/**
|
29
|
+
* User key returned by vital create user key request. This key should be stored in your database against the user and used for all interactions with the vital api.
|
30
|
+
* @type {string}
|
31
|
+
* @memberof ClientFacingBody
|
32
|
+
*/
|
33
|
+
user_id: string;
|
34
|
+
}
|
package/dist/client/Activity.js
CHANGED
@@ -47,7 +47,7 @@ var ActivityApi = /** @class */ (function () {
|
|
47
47
|
var resp;
|
48
48
|
return __generator(this, function (_a) {
|
49
49
|
switch (_a.label) {
|
50
|
-
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/activity/" + userKey), {
|
50
|
+
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/summary/activity/" + userKey), {
|
51
51
|
params: { start_date: startDate, end_date: endDate, provider: provider },
|
52
52
|
})];
|
53
53
|
case 1:
|
package/dist/client/Body.js
CHANGED
@@ -47,7 +47,7 @@ var BodyApi = /** @class */ (function () {
|
|
47
47
|
var resp;
|
48
48
|
return __generator(this, function (_a) {
|
49
49
|
switch (_a.label) {
|
50
|
-
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/body/" + userKey), {
|
50
|
+
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/summary/body/" + userKey), {
|
51
51
|
params: { start_date: startDate, end_date: endDate, provider: provider },
|
52
52
|
})];
|
53
53
|
case 1:
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
2
|
+
import { ClientFacingProfile } from './models/profile_model';
|
3
|
+
export declare class ProfileApi {
|
4
|
+
baseURL: string;
|
5
|
+
client: AxiosInstance;
|
6
|
+
constructor(baseURL: string, axios: AxiosInstance);
|
7
|
+
get(userKey: string, provider?: string): Promise<ClientFacingProfile>;
|
8
|
+
}
|
@@ -36,23 +36,19 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
36
36
|
}
|
37
37
|
};
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
39
|
-
exports.
|
40
|
-
var
|
41
|
-
function
|
39
|
+
exports.ProfileApi = void 0;
|
40
|
+
var ProfileApi = /** @class */ (function () {
|
41
|
+
function ProfileApi(baseURL, axios) {
|
42
42
|
this.baseURL = baseURL;
|
43
43
|
this.client = axios;
|
44
44
|
}
|
45
|
-
|
45
|
+
ProfileApi.prototype.get = function (userKey, provider) {
|
46
46
|
return __awaiter(this, void 0, void 0, function () {
|
47
47
|
var resp;
|
48
48
|
return __generator(this, function (_a) {
|
49
49
|
switch (_a.label) {
|
50
|
-
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/
|
51
|
-
params: {
|
52
|
-
start_date: startDate,
|
53
|
-
end_date: endDate,
|
54
|
-
data_type: dataType,
|
55
|
-
},
|
50
|
+
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/summary/profile/" + userKey), {
|
51
|
+
params: { provider: provider },
|
56
52
|
})];
|
57
53
|
case 1:
|
58
54
|
resp = _a.sent();
|
@@ -61,6 +57,6 @@ var ProviderSpecificApi = /** @class */ (function () {
|
|
61
57
|
});
|
62
58
|
});
|
63
59
|
};
|
64
|
-
return
|
60
|
+
return ProfileApi;
|
65
61
|
}());
|
66
|
-
exports.
|
62
|
+
exports.ProfileApi = ProfileApi;
|
package/dist/client/Sleep.js
CHANGED
@@ -47,7 +47,7 @@ var SleepApi = /** @class */ (function () {
|
|
47
47
|
var resp;
|
48
48
|
return __generator(this, function (_a) {
|
49
49
|
switch (_a.label) {
|
50
|
-
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/sleep/" + userKey), {
|
50
|
+
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/summary/sleep/" + userKey), {
|
51
51
|
params: { start_date: startDate, end_date: endDate, provider: provider },
|
52
52
|
})];
|
53
53
|
case 1:
|
@@ -62,7 +62,7 @@ var SleepApi = /** @class */ (function () {
|
|
62
62
|
var resp;
|
63
63
|
return __generator(this, function (_a) {
|
64
64
|
switch (_a.label) {
|
65
|
-
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/sleep/" + sleepId + "/stream
|
65
|
+
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/timeseries/sleep/" + sleepId + "/stream"))];
|
66
66
|
case 1:
|
67
67
|
resp = _a.sent();
|
68
68
|
return [2 /*return*/, resp.data];
|
@@ -8,4 +8,5 @@ export declare class TestkitsApi {
|
|
8
8
|
get_orders(startDate: Date, endDate: Date): Promise<OrderResponse>;
|
9
9
|
order(userKey: string, testkitId: string, patientAddress: PatientAdress, patientDetails: PatientDetails): Promise<OrderRequestResponse>;
|
10
10
|
get_order(orderId: string): Promise<Order>;
|
11
|
+
get_results(orderId: string): Promise<Order>;
|
11
12
|
}
|
package/dist/client/Testkits.js
CHANGED
@@ -101,6 +101,19 @@ var TestkitsApi = /** @class */ (function () {
|
|
101
101
|
});
|
102
102
|
});
|
103
103
|
};
|
104
|
+
TestkitsApi.prototype.get_results = function (orderId) {
|
105
|
+
return __awaiter(this, void 0, void 0, function () {
|
106
|
+
var resp;
|
107
|
+
return __generator(this, function (_a) {
|
108
|
+
switch (_a.label) {
|
109
|
+
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/testkit/orders/" + orderId + "/results"))];
|
110
|
+
case 1:
|
111
|
+
resp = _a.sent();
|
112
|
+
return [2 /*return*/, resp.data];
|
113
|
+
}
|
114
|
+
});
|
115
|
+
});
|
116
|
+
};
|
104
117
|
return TestkitsApi;
|
105
118
|
}());
|
106
119
|
exports.TestkitsApi = TestkitsApi;
|
package/dist/client/Vitals.d.ts
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
import { AxiosInstance } from 'axios';
|
2
|
-
import {
|
2
|
+
import { TimeseriesPoint } from './models/activity';
|
3
3
|
export declare class VitalsApi {
|
4
4
|
baseURL: string;
|
5
5
|
client: AxiosInstance;
|
6
6
|
constructor(baseURL: string, axios: AxiosInstance);
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
ige(userKey: string, startDate: Date, endDate: Date): Promise<
|
11
|
-
igg(userKey: string, startDate: Date, endDate: Date): Promise<
|
7
|
+
private timeseriesData;
|
8
|
+
cholesterol(type: 'ldl' | 'total' | 'triglycerides' | 'hdl', userKey: string, startDate: Date, endDate: Date, provider?: string): Promise<TimeseriesPoint[]>;
|
9
|
+
glucose(userKey: string, startDate: Date, endDate: Date, provider?: string): Promise<TimeseriesPoint[]>;
|
10
|
+
ige(userKey: string, startDate: Date, endDate: Date, provider?: string): Promise<TimeseriesPoint[]>;
|
11
|
+
igg(userKey: string, startDate: Date, endDate: Date, provider?: string): Promise<TimeseriesPoint[]>;
|
12
|
+
heartrate(userKey: string, startDate: Date, endDate: Date, provider?: string): Promise<TimeseriesPoint[]>;
|
12
13
|
}
|
package/dist/client/Vitals.js
CHANGED
@@ -42,12 +42,12 @@ var VitalsApi = /** @class */ (function () {
|
|
42
42
|
this.baseURL = baseURL;
|
43
43
|
this.client = axios;
|
44
44
|
}
|
45
|
-
VitalsApi.prototype.
|
45
|
+
VitalsApi.prototype.timeseriesData = function (user_key, resource, startDate, endDate, provider) {
|
46
46
|
return __awaiter(this, void 0, void 0, function () {
|
47
47
|
var resp;
|
48
48
|
return __generator(this, function (_a) {
|
49
49
|
switch (_a.label) {
|
50
|
-
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/
|
50
|
+
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/timeseries/" + user_key + "/" + resource), {
|
51
51
|
params: { start_date: startDate, end_date: endDate, provider: provider },
|
52
52
|
})];
|
53
53
|
case 1:
|
@@ -57,63 +57,38 @@ var VitalsApi = /** @class */ (function () {
|
|
57
57
|
});
|
58
58
|
});
|
59
59
|
};
|
60
|
+
VitalsApi.prototype.cholesterol = function (type, userKey, startDate, endDate, provider) {
|
61
|
+
return __awaiter(this, void 0, void 0, function () {
|
62
|
+
return __generator(this, function (_a) {
|
63
|
+
return [2 /*return*/, this.timeseriesData(userKey, "cholesterol/" + type, startDate, endDate, provider)];
|
64
|
+
});
|
65
|
+
});
|
66
|
+
};
|
60
67
|
VitalsApi.prototype.glucose = function (userKey, startDate, endDate, provider) {
|
61
68
|
return __awaiter(this, void 0, void 0, function () {
|
62
|
-
var resp;
|
63
69
|
return __generator(this, function (_a) {
|
64
|
-
|
65
|
-
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/vitals/glucose/" + userKey), {
|
66
|
-
params: { start_date: startDate, end_date: endDate, provider: provider },
|
67
|
-
})];
|
68
|
-
case 1:
|
69
|
-
resp = _a.sent();
|
70
|
-
return [2 /*return*/, resp.data];
|
71
|
-
}
|
70
|
+
return [2 /*return*/, this.timeseriesData(userKey, 'glucose', startDate, endDate, provider)];
|
72
71
|
});
|
73
72
|
});
|
74
73
|
};
|
75
|
-
VitalsApi.prototype.
|
74
|
+
VitalsApi.prototype.ige = function (userKey, startDate, endDate, provider) {
|
76
75
|
return __awaiter(this, void 0, void 0, function () {
|
77
|
-
var resp;
|
78
76
|
return __generator(this, function (_a) {
|
79
|
-
|
80
|
-
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/vitals/hba1c/" + userKey), {
|
81
|
-
params: { start_date: startDate, end_date: endDate, provider: provider },
|
82
|
-
})];
|
83
|
-
case 1:
|
84
|
-
resp = _a.sent();
|
85
|
-
return [2 /*return*/, resp.data];
|
86
|
-
}
|
77
|
+
return [2 /*return*/, this.timeseriesData(userKey, 'ige', startDate, endDate, provider)];
|
87
78
|
});
|
88
79
|
});
|
89
80
|
};
|
90
|
-
VitalsApi.prototype.
|
81
|
+
VitalsApi.prototype.igg = function (userKey, startDate, endDate, provider) {
|
91
82
|
return __awaiter(this, void 0, void 0, function () {
|
92
|
-
var resp;
|
93
83
|
return __generator(this, function (_a) {
|
94
|
-
|
95
|
-
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/vitals/ige/" + userKey), {
|
96
|
-
params: { start_date: startDate, end_date: endDate },
|
97
|
-
})];
|
98
|
-
case 1:
|
99
|
-
resp = _a.sent();
|
100
|
-
return [2 /*return*/, resp.data];
|
101
|
-
}
|
84
|
+
return [2 /*return*/, this.timeseriesData(userKey, 'igg', startDate, endDate, provider)];
|
102
85
|
});
|
103
86
|
});
|
104
87
|
};
|
105
|
-
VitalsApi.prototype.
|
88
|
+
VitalsApi.prototype.heartrate = function (userKey, startDate, endDate, provider) {
|
106
89
|
return __awaiter(this, void 0, void 0, function () {
|
107
|
-
var resp;
|
108
90
|
return __generator(this, function (_a) {
|
109
|
-
|
110
|
-
case 0: return [4 /*yield*/, this.client.get(this.baseURL.concat("/vitals/igg/" + userKey), {
|
111
|
-
params: { start_date: startDate, end_date: endDate },
|
112
|
-
})];
|
113
|
-
case 1:
|
114
|
-
resp = _a.sent();
|
115
|
-
return [2 /*return*/, resp.data];
|
116
|
-
}
|
91
|
+
return [2 /*return*/, this.timeseriesData(userKey, 'heartrate', startDate, endDate, provider)];
|
117
92
|
});
|
118
93
|
});
|
119
94
|
};
|
@@ -1,13 +1,7 @@
|
|
1
1
|
import { AxiosInstance } from 'axios';
|
2
|
-
import { ClientWebhookResponse, WebhookEventTypes, ClientFacingWebhook } from './models/webhook_models';
|
3
2
|
export declare class WebhooksApi {
|
4
|
-
DEFAULT_TOLERANCE: number;
|
5
3
|
baseURL: string;
|
6
4
|
client: AxiosInstance;
|
7
5
|
constructor(baseURL: string, axios: AxiosInstance);
|
8
|
-
|
9
|
-
register(callbackUrl: string, verifyToken: string, eventType: WebhookEventTypes): Promise<ClientFacingWebhook>;
|
10
|
-
deregister(webhookId: string): Promise<ClientFacingWebhook>;
|
11
|
-
test(event_code: 'HISTORICAL_DATA_UPDATE' | 'CREATED', webhook_type: 'activity' | 'body' | 'sleep' | 'workouts'): Promise<ClientFacingWebhook>;
|
12
|
-
constructWebhookEvent(payload: string, header: string, secret: string, tolerance?: number): Record<string, unknown>;
|
6
|
+
static constructWebhookEvent(payload: string, headers: Record<string, string>, secret: string): unknown;
|
13
7
|
}
|