@medrunner/api-client 0.2.7 → 0.3.1
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/dist/index.d.mts +21 -12
- package/dist/index.d.ts +21 -12
- package/dist/index.js +79 -46
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +78 -46
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
package/dist/index.d.mts
CHANGED
|
@@ -40,6 +40,15 @@ interface ApiConfig {
|
|
|
40
40
|
baseUrl?: string;
|
|
41
41
|
accessToken?: string;
|
|
42
42
|
refreshToken?: string;
|
|
43
|
+
cookieAuth?: boolean;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
declare class DefaultApiConfig {
|
|
47
|
+
readonly baseUrl: string;
|
|
48
|
+
readonly accessToken?: string;
|
|
49
|
+
readonly refreshToken?: string;
|
|
50
|
+
readonly cookieAuth: boolean;
|
|
51
|
+
constructor(config: ApiConfig);
|
|
43
52
|
}
|
|
44
53
|
|
|
45
54
|
declare class TokenManager extends ApiEndpoint {
|
|
@@ -49,7 +58,7 @@ declare class TokenManager extends ApiEndpoint {
|
|
|
49
58
|
private accessTokenExpiration?;
|
|
50
59
|
private refreshTokenExpiration?;
|
|
51
60
|
private tokenFetchPromise?;
|
|
52
|
-
constructor(config:
|
|
61
|
+
constructor(config: DefaultApiConfig, refreshCallback?: AsyncAction<TokenGrant> | undefined, log?: Logger, headerProvider?: HeaderProvider);
|
|
53
62
|
protected endpoint(): string;
|
|
54
63
|
getAccessToken(source?: string): Promise<string | undefined>;
|
|
55
64
|
private fetchToken;
|
|
@@ -59,8 +68,8 @@ declare abstract class ApiEndpoint {
|
|
|
59
68
|
readonly tokenManager: TokenManager;
|
|
60
69
|
protected readonly log?: Logger | undefined;
|
|
61
70
|
private readonly headerProvider?;
|
|
62
|
-
readonly
|
|
63
|
-
protected constructor(
|
|
71
|
+
readonly config: DefaultApiConfig;
|
|
72
|
+
protected constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger | undefined, headerProvider?: HeaderProvider | undefined);
|
|
64
73
|
protected abstract endpoint(): string;
|
|
65
74
|
protected endpointUrl(): string;
|
|
66
75
|
private headersForRequest;
|
|
@@ -89,7 +98,7 @@ interface SignOutRequest {
|
|
|
89
98
|
}
|
|
90
99
|
|
|
91
100
|
declare class AuthEndpoint extends ApiEndpoint {
|
|
92
|
-
constructor(
|
|
101
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
93
102
|
protected endpoint(): string;
|
|
94
103
|
signOut(oldToken: SignOutRequest): Promise<ApiResponse>;
|
|
95
104
|
getApiTokens(): Promise<ApiResponse<ApiToken[]>>;
|
|
@@ -115,7 +124,7 @@ interface ChatMessageRequest {
|
|
|
115
124
|
}
|
|
116
125
|
|
|
117
126
|
declare class ChatMessageEndpoint extends ApiEndpoint {
|
|
118
|
-
constructor(
|
|
127
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
119
128
|
protected endpoint(): string;
|
|
120
129
|
getHistory(emergencyId: string, limit: number, paginationToken?: string): Promise<ApiResponse<PaginatedResponse<ChatMessage>>>;
|
|
121
130
|
sendMessage(message: ChatMessageRequest): Promise<ApiResponse<ChatMessage>>;
|
|
@@ -188,7 +197,7 @@ declare enum CodeType {
|
|
|
188
197
|
}
|
|
189
198
|
|
|
190
199
|
declare class ClientEndpoint extends ApiEndpoint {
|
|
191
|
-
constructor(
|
|
200
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
192
201
|
protected endpoint(): string;
|
|
193
202
|
get(): Promise<ApiResponse<Person>>;
|
|
194
203
|
getHistory(limit: number, paginationToken?: string): Promise<ApiResponse<PaginatedResponse<ClientHistory>>>;
|
|
@@ -200,7 +209,7 @@ declare class ClientEndpoint extends ApiEndpoint {
|
|
|
200
209
|
}
|
|
201
210
|
|
|
202
211
|
declare class CodeEndpoint extends ApiEndpoint {
|
|
203
|
-
constructor(
|
|
212
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
204
213
|
protected endpoint(): string;
|
|
205
214
|
redeem(code: string): Promise<ApiResponse>;
|
|
206
215
|
}
|
|
@@ -420,7 +429,7 @@ interface ResponderDetails {
|
|
|
420
429
|
}
|
|
421
430
|
|
|
422
431
|
declare class EmergencyEndpoint extends ApiEndpoint {
|
|
423
|
-
constructor(
|
|
432
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
424
433
|
protected endpoint(): string;
|
|
425
434
|
getEmergency(id: string): Promise<ApiResponse<Emergency>>;
|
|
426
435
|
getEmergencies(ids: string[]): Promise<ApiResponse<Emergency[]>>;
|
|
@@ -474,7 +483,7 @@ declare enum ServiceStatus {
|
|
|
474
483
|
}
|
|
475
484
|
|
|
476
485
|
declare class OrgSettingsEndpoint extends ApiEndpoint {
|
|
477
|
-
constructor(
|
|
486
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
478
487
|
protected endpoint(): string;
|
|
479
488
|
getPublicSettings(): Promise<ApiResponse<PublicOrgSettings>>;
|
|
480
489
|
}
|
|
@@ -485,13 +494,13 @@ interface MedalInformation {
|
|
|
485
494
|
}
|
|
486
495
|
|
|
487
496
|
declare class StaffEndpoint extends ApiEndpoint {
|
|
488
|
-
constructor(
|
|
497
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
489
498
|
protected endpoint(): string;
|
|
490
499
|
medalsInformation(): Promise<ApiResponse<MedalInformation[]>>;
|
|
491
500
|
}
|
|
492
501
|
|
|
493
502
|
declare class WebsocketEndpoint extends ApiEndpoint {
|
|
494
|
-
constructor(
|
|
503
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
495
504
|
private websocketManager;
|
|
496
505
|
protected endpoint(): string;
|
|
497
506
|
initialize(): Promise<HubConnection>;
|
|
@@ -530,4 +539,4 @@ declare enum ClientType {
|
|
|
530
539
|
STAFF_PORTAL = 2
|
|
531
540
|
}
|
|
532
541
|
|
|
533
|
-
export { AccountDeactivationReason, type AfterActionReport, type AfterActionReportEdit, type ApiClient, type ApiConfig, ApiEndpoint, type ApiResponse, type ApiToken, type AsyncAction, type AsyncProvider, AuthEndpoint, type BlockedStatus, CancellationReason, type ChatMessage, ChatMessageEndpoint, type ChatMessageRequest, Class, type ClientData, ClientEndpoint, type ClientHistory, type ClientStats, ClientType, CodeEndpoint, CodeType, type CreateEmergencyRequest, type DateRange, type DbItem, type Deployment, type Emergency, EmergencyEndpoint, type EmergencyStats, type Func, type HeaderProvider, type Headers, Level, type Location, type LocationDetail, type LocationSettings, LocationType, type MedalInformation, MedrunnerApiClient, type MessageCache, type MessageOfTheDay, MissionServices, MissionStatus, type OrgSettings, OrgSettingsEndpoint, Origin, type PaginatedResponse, type Person, PersonType, type PublicOrgSettings, type RedeemedCode, type ResponderDetails, type RespondingTeam, ResponseRating, ServiceStatus, type SpaceLocation, SpaceLocationType, StaffEndpoint, SubmissionSource, type Team, type TeamDetailsResponse, type TeamMember, ThreatLevel, type TokenGrant, TokenManager, UserRoles, WebsocketEndpoint, type WritableDbItem };
|
|
542
|
+
export { AccountDeactivationReason, type AfterActionReport, type AfterActionReportEdit, type ApiClient, type ApiConfig, ApiEndpoint, type ApiResponse, type ApiToken, type AsyncAction, type AsyncProvider, AuthEndpoint, type BlockedStatus, CancellationReason, type ChatMessage, ChatMessageEndpoint, type ChatMessageRequest, Class, type ClientData, ClientEndpoint, type ClientHistory, type ClientStats, ClientType, CodeEndpoint, CodeType, type CreateEmergencyRequest, type DateRange, type DbItem, DefaultApiConfig, type Deployment, type Emergency, EmergencyEndpoint, type EmergencyStats, type Func, type HeaderProvider, type Headers, Level, type Location, type LocationDetail, type LocationSettings, LocationType, type MedalInformation, MedrunnerApiClient, type MessageCache, type MessageOfTheDay, MissionServices, MissionStatus, type OrgSettings, OrgSettingsEndpoint, Origin, type PaginatedResponse, type Person, PersonType, type PublicOrgSettings, type RedeemedCode, type ResponderDetails, type RespondingTeam, ResponseRating, ServiceStatus, type SpaceLocation, SpaceLocationType, StaffEndpoint, SubmissionSource, type Team, type TeamDetailsResponse, type TeamMember, ThreatLevel, type TokenGrant, TokenManager, UserRoles, WebsocketEndpoint, type WritableDbItem };
|
package/dist/index.d.ts
CHANGED
|
@@ -40,6 +40,15 @@ interface ApiConfig {
|
|
|
40
40
|
baseUrl?: string;
|
|
41
41
|
accessToken?: string;
|
|
42
42
|
refreshToken?: string;
|
|
43
|
+
cookieAuth?: boolean;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
declare class DefaultApiConfig {
|
|
47
|
+
readonly baseUrl: string;
|
|
48
|
+
readonly accessToken?: string;
|
|
49
|
+
readonly refreshToken?: string;
|
|
50
|
+
readonly cookieAuth: boolean;
|
|
51
|
+
constructor(config: ApiConfig);
|
|
43
52
|
}
|
|
44
53
|
|
|
45
54
|
declare class TokenManager extends ApiEndpoint {
|
|
@@ -49,7 +58,7 @@ declare class TokenManager extends ApiEndpoint {
|
|
|
49
58
|
private accessTokenExpiration?;
|
|
50
59
|
private refreshTokenExpiration?;
|
|
51
60
|
private tokenFetchPromise?;
|
|
52
|
-
constructor(config:
|
|
61
|
+
constructor(config: DefaultApiConfig, refreshCallback?: AsyncAction<TokenGrant> | undefined, log?: Logger, headerProvider?: HeaderProvider);
|
|
53
62
|
protected endpoint(): string;
|
|
54
63
|
getAccessToken(source?: string): Promise<string | undefined>;
|
|
55
64
|
private fetchToken;
|
|
@@ -59,8 +68,8 @@ declare abstract class ApiEndpoint {
|
|
|
59
68
|
readonly tokenManager: TokenManager;
|
|
60
69
|
protected readonly log?: Logger | undefined;
|
|
61
70
|
private readonly headerProvider?;
|
|
62
|
-
readonly
|
|
63
|
-
protected constructor(
|
|
71
|
+
readonly config: DefaultApiConfig;
|
|
72
|
+
protected constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger | undefined, headerProvider?: HeaderProvider | undefined);
|
|
64
73
|
protected abstract endpoint(): string;
|
|
65
74
|
protected endpointUrl(): string;
|
|
66
75
|
private headersForRequest;
|
|
@@ -89,7 +98,7 @@ interface SignOutRequest {
|
|
|
89
98
|
}
|
|
90
99
|
|
|
91
100
|
declare class AuthEndpoint extends ApiEndpoint {
|
|
92
|
-
constructor(
|
|
101
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
93
102
|
protected endpoint(): string;
|
|
94
103
|
signOut(oldToken: SignOutRequest): Promise<ApiResponse>;
|
|
95
104
|
getApiTokens(): Promise<ApiResponse<ApiToken[]>>;
|
|
@@ -115,7 +124,7 @@ interface ChatMessageRequest {
|
|
|
115
124
|
}
|
|
116
125
|
|
|
117
126
|
declare class ChatMessageEndpoint extends ApiEndpoint {
|
|
118
|
-
constructor(
|
|
127
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
119
128
|
protected endpoint(): string;
|
|
120
129
|
getHistory(emergencyId: string, limit: number, paginationToken?: string): Promise<ApiResponse<PaginatedResponse<ChatMessage>>>;
|
|
121
130
|
sendMessage(message: ChatMessageRequest): Promise<ApiResponse<ChatMessage>>;
|
|
@@ -188,7 +197,7 @@ declare enum CodeType {
|
|
|
188
197
|
}
|
|
189
198
|
|
|
190
199
|
declare class ClientEndpoint extends ApiEndpoint {
|
|
191
|
-
constructor(
|
|
200
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
192
201
|
protected endpoint(): string;
|
|
193
202
|
get(): Promise<ApiResponse<Person>>;
|
|
194
203
|
getHistory(limit: number, paginationToken?: string): Promise<ApiResponse<PaginatedResponse<ClientHistory>>>;
|
|
@@ -200,7 +209,7 @@ declare class ClientEndpoint extends ApiEndpoint {
|
|
|
200
209
|
}
|
|
201
210
|
|
|
202
211
|
declare class CodeEndpoint extends ApiEndpoint {
|
|
203
|
-
constructor(
|
|
212
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
204
213
|
protected endpoint(): string;
|
|
205
214
|
redeem(code: string): Promise<ApiResponse>;
|
|
206
215
|
}
|
|
@@ -420,7 +429,7 @@ interface ResponderDetails {
|
|
|
420
429
|
}
|
|
421
430
|
|
|
422
431
|
declare class EmergencyEndpoint extends ApiEndpoint {
|
|
423
|
-
constructor(
|
|
432
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
424
433
|
protected endpoint(): string;
|
|
425
434
|
getEmergency(id: string): Promise<ApiResponse<Emergency>>;
|
|
426
435
|
getEmergencies(ids: string[]): Promise<ApiResponse<Emergency[]>>;
|
|
@@ -474,7 +483,7 @@ declare enum ServiceStatus {
|
|
|
474
483
|
}
|
|
475
484
|
|
|
476
485
|
declare class OrgSettingsEndpoint extends ApiEndpoint {
|
|
477
|
-
constructor(
|
|
486
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
478
487
|
protected endpoint(): string;
|
|
479
488
|
getPublicSettings(): Promise<ApiResponse<PublicOrgSettings>>;
|
|
480
489
|
}
|
|
@@ -485,13 +494,13 @@ interface MedalInformation {
|
|
|
485
494
|
}
|
|
486
495
|
|
|
487
496
|
declare class StaffEndpoint extends ApiEndpoint {
|
|
488
|
-
constructor(
|
|
497
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
489
498
|
protected endpoint(): string;
|
|
490
499
|
medalsInformation(): Promise<ApiResponse<MedalInformation[]>>;
|
|
491
500
|
}
|
|
492
501
|
|
|
493
502
|
declare class WebsocketEndpoint extends ApiEndpoint {
|
|
494
|
-
constructor(
|
|
503
|
+
constructor(config: DefaultApiConfig, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
|
|
495
504
|
private websocketManager;
|
|
496
505
|
protected endpoint(): string;
|
|
497
506
|
initialize(): Promise<HubConnection>;
|
|
@@ -530,4 +539,4 @@ declare enum ClientType {
|
|
|
530
539
|
STAFF_PORTAL = 2
|
|
531
540
|
}
|
|
532
541
|
|
|
533
|
-
export { AccountDeactivationReason, type AfterActionReport, type AfterActionReportEdit, type ApiClient, type ApiConfig, ApiEndpoint, type ApiResponse, type ApiToken, type AsyncAction, type AsyncProvider, AuthEndpoint, type BlockedStatus, CancellationReason, type ChatMessage, ChatMessageEndpoint, type ChatMessageRequest, Class, type ClientData, ClientEndpoint, type ClientHistory, type ClientStats, ClientType, CodeEndpoint, CodeType, type CreateEmergencyRequest, type DateRange, type DbItem, type Deployment, type Emergency, EmergencyEndpoint, type EmergencyStats, type Func, type HeaderProvider, type Headers, Level, type Location, type LocationDetail, type LocationSettings, LocationType, type MedalInformation, MedrunnerApiClient, type MessageCache, type MessageOfTheDay, MissionServices, MissionStatus, type OrgSettings, OrgSettingsEndpoint, Origin, type PaginatedResponse, type Person, PersonType, type PublicOrgSettings, type RedeemedCode, type ResponderDetails, type RespondingTeam, ResponseRating, ServiceStatus, type SpaceLocation, SpaceLocationType, StaffEndpoint, SubmissionSource, type Team, type TeamDetailsResponse, type TeamMember, ThreatLevel, type TokenGrant, TokenManager, UserRoles, WebsocketEndpoint, type WritableDbItem };
|
|
542
|
+
export { AccountDeactivationReason, type AfterActionReport, type AfterActionReportEdit, type ApiClient, type ApiConfig, ApiEndpoint, type ApiResponse, type ApiToken, type AsyncAction, type AsyncProvider, AuthEndpoint, type BlockedStatus, CancellationReason, type ChatMessage, ChatMessageEndpoint, type ChatMessageRequest, Class, type ClientData, ClientEndpoint, type ClientHistory, type ClientStats, ClientType, CodeEndpoint, CodeType, type CreateEmergencyRequest, type DateRange, type DbItem, DefaultApiConfig, type Deployment, type Emergency, EmergencyEndpoint, type EmergencyStats, type Func, type HeaderProvider, type Headers, Level, type Location, type LocationDetail, type LocationSettings, LocationType, type MedalInformation, MedrunnerApiClient, type MessageCache, type MessageOfTheDay, MissionServices, MissionStatus, type OrgSettings, OrgSettingsEndpoint, Origin, type PaginatedResponse, type Person, PersonType, type PublicOrgSettings, type RedeemedCode, type ResponderDetails, type RespondingTeam, ResponseRating, ServiceStatus, type SpaceLocation, SpaceLocationType, StaffEndpoint, SubmissionSource, type Team, type TeamDetailsResponse, type TeamMember, ThreatLevel, type TokenGrant, TokenManager, UserRoles, WebsocketEndpoint, type WritableDbItem };
|
package/dist/index.js
CHANGED
|
@@ -41,6 +41,7 @@ __export(src_exports, {
|
|
|
41
41
|
ClientType: () => ClientType,
|
|
42
42
|
CodeEndpoint: () => CodeEndpoint,
|
|
43
43
|
CodeType: () => CodeType,
|
|
44
|
+
DefaultApiConfig: () => DefaultApiConfig,
|
|
44
45
|
EmergencyEndpoint: () => EmergencyEndpoint,
|
|
45
46
|
Level: () => Level,
|
|
46
47
|
LocationType: () => LocationType,
|
|
@@ -62,26 +63,44 @@ __export(src_exports, {
|
|
|
62
63
|
});
|
|
63
64
|
module.exports = __toCommonJS(src_exports);
|
|
64
65
|
|
|
66
|
+
// src/api/endpoints/DefaultApiConfig.ts
|
|
67
|
+
var DefaultApiConfig = class {
|
|
68
|
+
static {
|
|
69
|
+
__name(this, "DefaultApiConfig");
|
|
70
|
+
}
|
|
71
|
+
baseUrl;
|
|
72
|
+
accessToken;
|
|
73
|
+
refreshToken;
|
|
74
|
+
cookieAuth;
|
|
75
|
+
constructor(config) {
|
|
76
|
+
this.baseUrl = config.baseUrl ?? "https://api.medrunner.space";
|
|
77
|
+
this.accessToken = config.accessToken;
|
|
78
|
+
this.refreshToken = config.refreshToken;
|
|
79
|
+
this.cookieAuth = config.cookieAuth ?? false;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
|
|
65
83
|
// src/api/endpoints/ApiEndpoint.ts
|
|
66
84
|
var import_axios = __toESM(require("axios"));
|
|
67
85
|
var ApiEndpoint = class {
|
|
68
|
-
constructor(
|
|
86
|
+
constructor(config, tokenManager, log, headerProvider) {
|
|
69
87
|
this.tokenManager = tokenManager;
|
|
70
88
|
this.log = log;
|
|
71
89
|
this.headerProvider = headerProvider;
|
|
72
|
-
this.
|
|
90
|
+
this.config = config;
|
|
73
91
|
}
|
|
74
92
|
static {
|
|
75
93
|
__name(this, "ApiEndpoint");
|
|
76
94
|
}
|
|
77
|
-
|
|
95
|
+
config;
|
|
78
96
|
endpointUrl() {
|
|
79
|
-
return `${this.baseUrl}/${this.endpoint()}`;
|
|
97
|
+
return `${this.config.baseUrl}/${this.endpoint()}`;
|
|
80
98
|
}
|
|
81
99
|
async headersForRequest(noAuthentication) {
|
|
82
100
|
const config = {
|
|
83
|
-
baseURL: this.baseUrl,
|
|
84
|
-
headers: {}
|
|
101
|
+
baseURL: this.config.baseUrl,
|
|
102
|
+
headers: {},
|
|
103
|
+
withCredentials: this.config.cookieAuth
|
|
85
104
|
};
|
|
86
105
|
if (config.headers !== void 0) {
|
|
87
106
|
if (!noAuthentication) {
|
|
@@ -163,8 +182,8 @@ var AuthEndpoint = class extends ApiEndpoint {
|
|
|
163
182
|
static {
|
|
164
183
|
__name(this, "AuthEndpoint");
|
|
165
184
|
}
|
|
166
|
-
constructor(
|
|
167
|
-
super(
|
|
185
|
+
constructor(config, tokenManager, log, headerProvider) {
|
|
186
|
+
super(config, tokenManager, log, headerProvider);
|
|
168
187
|
}
|
|
169
188
|
endpoint() {
|
|
170
189
|
return "auth";
|
|
@@ -214,7 +233,7 @@ var AuthEndpoint = class extends ApiEndpoint {
|
|
|
214
233
|
// src/api/endpoints/auth/TokenManager.ts
|
|
215
234
|
var TokenManager = class extends ApiEndpoint {
|
|
216
235
|
constructor(config, refreshCallback, log, headerProvider) {
|
|
217
|
-
super(config
|
|
236
|
+
super(config, null, log, headerProvider);
|
|
218
237
|
this.refreshCallback = refreshCallback;
|
|
219
238
|
this.accessToken = config.accessToken;
|
|
220
239
|
this.refreshToken = config.refreshToken;
|
|
@@ -232,15 +251,19 @@ var TokenManager = class extends ApiEndpoint {
|
|
|
232
251
|
}
|
|
233
252
|
async getAccessToken(source = "unknown") {
|
|
234
253
|
this.log?.debug(`getAccessToken: New token requested from ${source}`);
|
|
235
|
-
if (this.accessToken !== void 0 && this.accessTokenExpiration !== void 0) {
|
|
254
|
+
if ((this.accessToken !== void 0 || this.config.cookieAuth) && this.accessTokenExpiration !== void 0) {
|
|
236
255
|
const exp = Math.trunc(new Date(this.accessTokenExpiration).getTime() / 1e3);
|
|
237
256
|
const now = Math.trunc(Date.now() / 1e3);
|
|
238
257
|
if (exp - 300 > now) {
|
|
239
258
|
this.log?.debug(`getAccessToken: ${source} => Token valid and simply returned`);
|
|
240
|
-
|
|
259
|
+
if (!this.config.cookieAuth) {
|
|
260
|
+
return this.accessToken;
|
|
261
|
+
} else {
|
|
262
|
+
return void 0;
|
|
263
|
+
}
|
|
241
264
|
}
|
|
242
265
|
}
|
|
243
|
-
if (this.refreshToken === void 0) {
|
|
266
|
+
if (this.refreshToken === void 0 && !this.config.cookieAuth) {
|
|
244
267
|
this.log?.debug(`getAccessToken: ${source} => Missing refresh token, returning stored access token`);
|
|
245
268
|
return this.accessToken;
|
|
246
269
|
}
|
|
@@ -251,9 +274,11 @@ var TokenManager = class extends ApiEndpoint {
|
|
|
251
274
|
try {
|
|
252
275
|
this.log?.debug(`getAccessToken: ${source} => Waiting for token fetch to complete`);
|
|
253
276
|
const tokens = await this.tokenFetchPromise;
|
|
254
|
-
this.log?.debug(`getAccessToken: ${source} => Setting new tokens in memory`);
|
|
255
|
-
this.
|
|
256
|
-
|
|
277
|
+
this.log?.debug(`getAccessToken: ${source} => Setting new tokens in memory if no cookieAuth`);
|
|
278
|
+
if (!this.config.cookieAuth) {
|
|
279
|
+
this.accessToken = tokens.accessToken;
|
|
280
|
+
this.refreshToken = tokens.refreshToken;
|
|
281
|
+
}
|
|
257
282
|
this.accessTokenExpiration = tokens.accessTokenExpiration;
|
|
258
283
|
if (tokens.refreshTokenExpiration) this.refreshTokenExpiration = tokens.refreshTokenExpiration;
|
|
259
284
|
if (this.refreshCallback !== void 0) {
|
|
@@ -264,11 +289,16 @@ var TokenManager = class extends ApiEndpoint {
|
|
|
264
289
|
this.tokenFetchPromise = void 0;
|
|
265
290
|
}
|
|
266
291
|
this.log?.debug(`getAccessToken: ${source} => Returning new access token`);
|
|
267
|
-
|
|
292
|
+
if (!this.config.cookieAuth) {
|
|
293
|
+
return this.accessToken;
|
|
294
|
+
} else {
|
|
295
|
+
return void 0;
|
|
296
|
+
}
|
|
268
297
|
}
|
|
269
298
|
async fetchToken(refreshToken, source = "unknown") {
|
|
270
299
|
this.log?.debug(`getAccessToken: ${source} => Fetching new tokens`);
|
|
271
|
-
const
|
|
300
|
+
const body = this.config.cookieAuth ? void 0 : { refreshToken };
|
|
301
|
+
const result = await this.postRequest("/exchange", body, true);
|
|
272
302
|
if (!result.success || result.data === void 0) {
|
|
273
303
|
throw Error(result.statusCode?.toString());
|
|
274
304
|
}
|
|
@@ -282,8 +312,8 @@ var ChatMessageEndpoint = class extends ApiEndpoint {
|
|
|
282
312
|
static {
|
|
283
313
|
__name(this, "ChatMessageEndpoint");
|
|
284
314
|
}
|
|
285
|
-
constructor(
|
|
286
|
-
super(
|
|
315
|
+
constructor(config, tokenManager, log, headerProvider) {
|
|
316
|
+
super(config, tokenManager, log, headerProvider);
|
|
287
317
|
}
|
|
288
318
|
endpoint() {
|
|
289
319
|
return "chatMessage";
|
|
@@ -315,8 +345,8 @@ var ClientEndpoint = class extends ApiEndpoint {
|
|
|
315
345
|
static {
|
|
316
346
|
__name(this, "ClientEndpoint");
|
|
317
347
|
}
|
|
318
|
-
constructor(
|
|
319
|
-
super(
|
|
348
|
+
constructor(config, tokenManager, log, headerProvider) {
|
|
349
|
+
super(config, tokenManager, log, headerProvider);
|
|
320
350
|
}
|
|
321
351
|
endpoint() {
|
|
322
352
|
return "client";
|
|
@@ -383,8 +413,8 @@ var CodeEndpoint = class extends ApiEndpoint {
|
|
|
383
413
|
static {
|
|
384
414
|
__name(this, "CodeEndpoint");
|
|
385
415
|
}
|
|
386
|
-
constructor(
|
|
387
|
-
super(
|
|
416
|
+
constructor(config, tokenManager, log, headerProvider) {
|
|
417
|
+
super(config, tokenManager, log, headerProvider);
|
|
388
418
|
}
|
|
389
419
|
endpoint() {
|
|
390
420
|
return "code";
|
|
@@ -404,8 +434,8 @@ var EmergencyEndpoint = class extends ApiEndpoint {
|
|
|
404
434
|
static {
|
|
405
435
|
__name(this, "EmergencyEndpoint");
|
|
406
436
|
}
|
|
407
|
-
constructor(
|
|
408
|
-
super(
|
|
437
|
+
constructor(config, tokenManager, log, headerProvider) {
|
|
438
|
+
super(config, tokenManager, log, headerProvider);
|
|
409
439
|
}
|
|
410
440
|
endpoint() {
|
|
411
441
|
return "emergency";
|
|
@@ -489,11 +519,11 @@ var OrgSettingsEndpoint = class extends ApiEndpoint {
|
|
|
489
519
|
static {
|
|
490
520
|
__name(this, "OrgSettingsEndpoint");
|
|
491
521
|
}
|
|
492
|
-
constructor(
|
|
493
|
-
super(
|
|
522
|
+
constructor(config, tokenManager, log, headerProvider) {
|
|
523
|
+
super(config, tokenManager, log, headerProvider);
|
|
494
524
|
}
|
|
495
525
|
endpoint() {
|
|
496
|
-
return "
|
|
526
|
+
return "orgSettings";
|
|
497
527
|
}
|
|
498
528
|
/**
|
|
499
529
|
* Get the public org settings.
|
|
@@ -509,8 +539,8 @@ var StaffEndpoint = class extends ApiEndpoint {
|
|
|
509
539
|
static {
|
|
510
540
|
__name(this, "StaffEndpoint");
|
|
511
541
|
}
|
|
512
|
-
constructor(
|
|
513
|
-
super(
|
|
542
|
+
constructor(config, tokenManager, log, headerProvider) {
|
|
543
|
+
super(config, tokenManager, log, headerProvider);
|
|
514
544
|
}
|
|
515
545
|
endpoint() {
|
|
516
546
|
return "staff";
|
|
@@ -553,8 +583,8 @@ var WSLogger = class {
|
|
|
553
583
|
}
|
|
554
584
|
};
|
|
555
585
|
var WebsocketManager = class {
|
|
556
|
-
constructor(
|
|
557
|
-
this.
|
|
586
|
+
constructor(config, tokenManager, logger) {
|
|
587
|
+
this.config = config;
|
|
558
588
|
this.tokenManager = tokenManager;
|
|
559
589
|
this.logger = logger;
|
|
560
590
|
}
|
|
@@ -566,8 +596,9 @@ var WebsocketManager = class {
|
|
|
566
596
|
async establishConnection() {
|
|
567
597
|
return new import_signalr.HubConnectionBuilder().withAutomaticReconnect({
|
|
568
598
|
nextRetryDelayInMilliseconds: /* @__PURE__ */ __name((retryContext) => retryContext.previousRetryCount > 5 ? null : 2e3, "nextRetryDelayInMilliseconds")
|
|
569
|
-
}).withUrl(`${this.baseUrl}/hub/emergency`, {
|
|
570
|
-
|
|
599
|
+
}).withUrl(`${this.config.baseUrl}/hub/emergency`, {
|
|
600
|
+
withCredentials: this.config.cookieAuth,
|
|
601
|
+
accessTokenFactory: this.config.cookieAuth ? async () => await this.tokenManager.getAccessToken("WS accessTokenFactory") ?? "" : void 0
|
|
571
602
|
}).configureLogging(new WSLogger(this.logger)).build();
|
|
572
603
|
}
|
|
573
604
|
};
|
|
@@ -577,10 +608,10 @@ var WebsocketEndpoint = class extends ApiEndpoint {
|
|
|
577
608
|
static {
|
|
578
609
|
__name(this, "WebsocketEndpoint");
|
|
579
610
|
}
|
|
580
|
-
constructor(
|
|
581
|
-
super(
|
|
611
|
+
constructor(config, tokenManager, log, headerProvider) {
|
|
612
|
+
super(config, tokenManager, log, headerProvider);
|
|
582
613
|
}
|
|
583
|
-
websocketManager = new WebsocketManager(this.
|
|
614
|
+
websocketManager = new WebsocketManager(this.config, this.tokenManager, this.log);
|
|
584
615
|
endpoint() {
|
|
585
616
|
return "websocket";
|
|
586
617
|
}
|
|
@@ -619,16 +650,17 @@ var MedrunnerApiClient = class _MedrunnerApiClient {
|
|
|
619
650
|
* @param log - A logger which logs request details
|
|
620
651
|
* */
|
|
621
652
|
static buildClient(config, refreshCallback, log) {
|
|
622
|
-
const
|
|
653
|
+
const configWithDefaults = new DefaultApiConfig(config);
|
|
654
|
+
const tokenManager = new TokenManager(configWithDefaults, refreshCallback, log);
|
|
623
655
|
return new _MedrunnerApiClient(
|
|
624
|
-
new EmergencyEndpoint(
|
|
625
|
-
new ClientEndpoint(
|
|
626
|
-
new StaffEndpoint(
|
|
627
|
-
new OrgSettingsEndpoint(
|
|
628
|
-
new ChatMessageEndpoint(
|
|
629
|
-
new CodeEndpoint(
|
|
630
|
-
new AuthEndpoint(
|
|
631
|
-
new WebsocketEndpoint(
|
|
656
|
+
new EmergencyEndpoint(configWithDefaults, tokenManager, log),
|
|
657
|
+
new ClientEndpoint(configWithDefaults, tokenManager, log),
|
|
658
|
+
new StaffEndpoint(configWithDefaults, tokenManager, log),
|
|
659
|
+
new OrgSettingsEndpoint(configWithDefaults, tokenManager, log),
|
|
660
|
+
new ChatMessageEndpoint(configWithDefaults, tokenManager, log),
|
|
661
|
+
new CodeEndpoint(configWithDefaults, tokenManager, log),
|
|
662
|
+
new AuthEndpoint(configWithDefaults, tokenManager, log),
|
|
663
|
+
new WebsocketEndpoint(configWithDefaults, tokenManager, log)
|
|
632
664
|
);
|
|
633
665
|
}
|
|
634
666
|
};
|
|
@@ -823,6 +855,7 @@ var ClientType = /* @__PURE__ */ ((ClientType2) => {
|
|
|
823
855
|
ClientType,
|
|
824
856
|
CodeEndpoint,
|
|
825
857
|
CodeType,
|
|
858
|
+
DefaultApiConfig,
|
|
826
859
|
EmergencyEndpoint,
|
|
827
860
|
Level,
|
|
828
861
|
LocationType,
|