@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 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: ApiConfig, refreshCallback?: AsyncAction<TokenGrant> | undefined, log?: Logger, headerProvider?: HeaderProvider);
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 baseUrl: string;
63
- protected constructor(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger | undefined, headerProvider?: HeaderProvider | undefined);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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: ApiConfig, refreshCallback?: AsyncAction<TokenGrant> | undefined, log?: Logger, headerProvider?: HeaderProvider);
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 baseUrl: string;
63
- protected constructor(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger | undefined, headerProvider?: HeaderProvider | undefined);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl: string | undefined, tokenManager: TokenManager, log?: Logger, headerProvider?: HeaderProvider);
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(baseUrl, tokenManager, log, headerProvider) {
86
+ constructor(config, tokenManager, log, headerProvider) {
69
87
  this.tokenManager = tokenManager;
70
88
  this.log = log;
71
89
  this.headerProvider = headerProvider;
72
- this.baseUrl = baseUrl ?? "https://api.medrunner.space";
90
+ this.config = config;
73
91
  }
74
92
  static {
75
93
  __name(this, "ApiEndpoint");
76
94
  }
77
- baseUrl;
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(baseUrl, tokenManager, log, headerProvider) {
167
- super(baseUrl, tokenManager, log, headerProvider);
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.baseUrl, null, log, headerProvider);
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
- return this.accessToken;
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.accessToken = tokens.accessToken;
256
- this.refreshToken = tokens.refreshToken;
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
- return this.accessToken;
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 result = await this.postRequest("/exchange", { refreshToken }, true);
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(baseUrl, tokenManager, log, headerProvider) {
286
- super(baseUrl, tokenManager, log, headerProvider);
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(baseUrl, tokenManager, log, headerProvider) {
319
- super(baseUrl, tokenManager, log, headerProvider);
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(baseUrl, tokenManager, log, headerProvider) {
387
- super(baseUrl, tokenManager, log, headerProvider);
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(baseUrl, tokenManager, log, headerProvider) {
408
- super(baseUrl, tokenManager, log, headerProvider);
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(baseUrl, tokenManager, log, headerProvider) {
493
- super(baseUrl, tokenManager, log, headerProvider);
522
+ constructor(config, tokenManager, log, headerProvider) {
523
+ super(config, tokenManager, log, headerProvider);
494
524
  }
495
525
  endpoint() {
496
- return "orgsettings";
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(baseUrl, tokenManager, log, headerProvider) {
513
- super(baseUrl, tokenManager, log, headerProvider);
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(baseUrl, tokenManager, logger) {
557
- this.baseUrl = baseUrl;
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
- accessTokenFactory: /* @__PURE__ */ __name(async () => await this.tokenManager.getAccessToken("WS accessTokenFactory") ?? "", "accessTokenFactory")
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(baseUrl, tokenManager, log, headerProvider) {
581
- super(baseUrl, tokenManager, log, headerProvider);
611
+ constructor(config, tokenManager, log, headerProvider) {
612
+ super(config, tokenManager, log, headerProvider);
582
613
  }
583
- websocketManager = new WebsocketManager(this.baseUrl, this.tokenManager, this.log);
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 tokenManager = new TokenManager(config, refreshCallback, log);
653
+ const configWithDefaults = new DefaultApiConfig(config);
654
+ const tokenManager = new TokenManager(configWithDefaults, refreshCallback, log);
623
655
  return new _MedrunnerApiClient(
624
- new EmergencyEndpoint(config.baseUrl, tokenManager, log),
625
- new ClientEndpoint(config.baseUrl, tokenManager, log),
626
- new StaffEndpoint(config.baseUrl, tokenManager, log),
627
- new OrgSettingsEndpoint(config.baseUrl, tokenManager, log),
628
- new ChatMessageEndpoint(config.baseUrl, tokenManager, log),
629
- new CodeEndpoint(config.baseUrl, tokenManager, log),
630
- new AuthEndpoint(config.baseUrl, tokenManager, log),
631
- new WebsocketEndpoint(config.baseUrl, tokenManager, log)
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,