whio-api-sdk 1.1.21 → 1.1.23

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 (54) hide show
  1. package/dist/src/sdk/exampleuse.js +0 -5
  2. package/dist/src/sdk/index.d.ts +9 -2
  3. package/dist/src/sdk/index.js +13 -2
  4. package/dist/src/sdk/modules/session/index.d.ts +3 -0
  5. package/dist/src/sdk/modules/session/index.js +3 -0
  6. package/dist/src/sdk/modules/session/orgadmin-session.module.d.ts +15 -0
  7. package/dist/src/sdk/modules/session/orgadmin-session.module.js +83 -0
  8. package/dist/src/sdk/modules/session/session.module.d.ts +21 -0
  9. package/dist/src/sdk/modules/session/session.module.js +95 -0
  10. package/dist/src/sdk/modules/session/superuser-session.module.d.ts +15 -0
  11. package/dist/src/sdk/modules/session/superuser-session.module.js +83 -0
  12. package/dist/src/sdk/modules/session.module.d.ts +13 -2
  13. package/dist/src/sdk/modules/session.module.js +111 -36
  14. package/dist/src/sdk/modules/template.module.d.ts +1 -8
  15. package/dist/src/sdk/modules/template.module.js +0 -53
  16. package/dist/src/sdk/modules/transcription-summary.module.d.ts +0 -1
  17. package/dist/src/sdk/modules/transcription-summary.module.js +0 -14
  18. package/dist/src/sdk/modules/websocket.module.d.ts +5 -2
  19. package/dist/src/sdk/modules/websocket.module.js +6 -5
  20. package/dist/src/sdk/sdk.d.ts +12 -10
  21. package/dist/src/sdk/sdk.js +63 -51
  22. package/dist/src/sdk/types/team.types.d.ts +0 -2
  23. package/dist/src/sdk/types/template.types.d.ts +0 -36
  24. package/dist/src/sdk/types/websocket.types.d.ts +7 -0
  25. package/dist/src/sdk/urls.d.ts +0 -2
  26. package/dist/src/sdk/urls.js +0 -2
  27. package/dist/src/sdk/whio-orgadmin-sdk.d.ts +104 -0
  28. package/dist/src/sdk/whio-orgadmin-sdk.js +437 -0
  29. package/dist/src/sdk/whio-sdk.d.ts +102 -0
  30. package/dist/src/sdk/whio-sdk.js +389 -0
  31. package/dist/src/sdk/whio-superuser-sdk.d.ts +135 -0
  32. package/dist/src/sdk/whio-superuser-sdk.js +576 -0
  33. package/dist/src/sdk/whio-teamadmin-sdk.d.ts +104 -0
  34. package/dist/src/sdk/whio-teamadmin-sdk.js +388 -0
  35. package/package.json +1 -1
  36. package/src/sdk/exampleuse.ts +0 -16
  37. package/src/sdk/index.ts +17 -3
  38. package/src/sdk/modules/session/index.ts +3 -0
  39. package/src/sdk/modules/session/orgadmin-session.module.ts +64 -0
  40. package/src/sdk/modules/session/session.module.ts +75 -0
  41. package/src/sdk/modules/session/superuser-session.module.ts +64 -0
  42. package/src/sdk/modules/session.module.ts +84 -15
  43. package/src/sdk/modules/template.module.ts +0 -54
  44. package/src/sdk/modules/transcription-summary.module.ts +0 -17
  45. package/src/sdk/modules/websocket.module.ts +15 -8
  46. package/src/sdk/sdk.ts +51 -41
  47. package/src/sdk/types/team.types.ts +0 -2
  48. package/src/sdk/types/template.types.ts +0 -45
  49. package/src/sdk/types/websocket.types.ts +12 -4
  50. package/src/sdk/urls.ts +1 -3
  51. package/src/sdk/whio-orgadmin-sdk.ts +408 -0
  52. package/src/sdk/whio-sdk.ts +374 -0
  53. package/src/sdk/whio-superuser-sdk.ts +530 -0
  54. package/src/sdk/whio-teamadmin-sdk.ts +372 -0
@@ -0,0 +1,372 @@
1
+ // WhioTeamAdminSDK - SDK for team administrators
2
+ import { SDKConfig, User } from './types';
3
+ import { BaseClient } from './modules/base-client';
4
+ import { AuthModule } from './modules/auth.module';
5
+ import { UserModule } from './modules/user.module';
6
+ import { OrganizationModule } from './modules/organization.module';
7
+ import { TeamModule } from './modules/team.module';
8
+ import { TemplateModule } from './modules/template.module';
9
+ import { TranscriptionSummaryModule } from './modules/transcription-summary.module';
10
+ import { SessionModule } from './modules/session/session.module';
11
+ import { AgentModule } from './modules/agent.module';
12
+ import { AudioModule } from './modules/audio.module';
13
+ import { WorkflowModule } from './modules/workflow.module';
14
+ import { IntegrationActionModule } from './modules/integration-action.module';
15
+ import { LogModule } from './modules/log.module';
16
+ import { DebugModule } from './modules/debug.module';
17
+ import { ExternalIntegrationModule } from './modules/external-integration.module';
18
+ import { WebSocketModule } from './modules/websocket.module';
19
+ import { ReportsModule } from './modules/reports.module';
20
+ import { PatientModule } from './modules/patient.module';
21
+ import { DataStrategyModule } from './modules/data-strategy.module';
22
+ import { SystemSnapshotModule } from './modules/system-snapshot.module';
23
+ import { RatingModule } from './modules/rating.module';
24
+ import { TiakiModule } from './modules/tiaki.module';
25
+
26
+ /**
27
+ * WhioTeamAdminSDK - SDK for team administrators
28
+ * Provides access to team-level operations
29
+ *
30
+ * Note: Team admin specific modules will be added as endpoints are implemented
31
+ */
32
+ export class WhioTeamAdminSDK extends BaseClient {
33
+ private readonly authModule: AuthModule;
34
+ private readonly usersModule: UserModule;
35
+ private readonly organizationsModule: OrganizationModule;
36
+ private readonly teamsModule: TeamModule;
37
+ private readonly templatesModule: TemplateModule;
38
+ private readonly transcriptionSummariesModule: TranscriptionSummaryModule;
39
+ private readonly sessionsModule: SessionModule;
40
+ private readonly agentsModule: AgentModule;
41
+ private readonly audioModule: AudioModule;
42
+ private readonly workflowsModule: WorkflowModule;
43
+ private readonly integrationActionsModule: IntegrationActionModule;
44
+ private readonly logsModule: LogModule;
45
+ private readonly debugModule: DebugModule;
46
+ private readonly externalIntegrationsModule: ExternalIntegrationModule;
47
+ private readonly websocketModule: WebSocketModule | null;
48
+ private readonly reportsModule: ReportsModule;
49
+ private readonly patientsModule: PatientModule;
50
+ private readonly dataStrategiesModule: DataStrategyModule;
51
+ private readonly systemSnapshotsModule: SystemSnapshotModule;
52
+ private readonly ratingsModule: RatingModule;
53
+ private readonly tiakiModule: TiakiModule;
54
+
55
+ private modules: BaseClient[];
56
+ private sdkInitialized: boolean = false;
57
+
58
+ constructor(config: SDKConfig = {}) {
59
+ super(config);
60
+
61
+ this.authModule = new AuthModule(config);
62
+ this.usersModule = new UserModule(config);
63
+ this.organizationsModule = new OrganizationModule(config);
64
+ this.teamsModule = new TeamModule(config);
65
+ this.templatesModule = new TemplateModule(config);
66
+ this.transcriptionSummariesModule = new TranscriptionSummaryModule(config);
67
+ this.sessionsModule = new SessionModule(config);
68
+ this.agentsModule = new AgentModule(config);
69
+ this.audioModule = new AudioModule(config);
70
+ this.workflowsModule = new WorkflowModule(config);
71
+ this.integrationActionsModule = new IntegrationActionModule(config);
72
+ this.logsModule = new LogModule(config);
73
+ this.debugModule = new DebugModule(config);
74
+ this.externalIntegrationsModule = new ExternalIntegrationModule(config);
75
+ this.websocketModule = config.skipWebsocket ? null : new WebSocketModule(config);
76
+ this.reportsModule = new ReportsModule(config);
77
+ this.patientsModule = new PatientModule(config);
78
+ this.dataStrategiesModule = new DataStrategyModule(config);
79
+ this.systemSnapshotsModule = new SystemSnapshotModule(config);
80
+ this.ratingsModule = new RatingModule(config);
81
+ this.tiakiModule = new TiakiModule(config);
82
+
83
+ this.modules = [
84
+ this.authModule, this.usersModule, this.organizationsModule, this.teamsModule, this.templatesModule,
85
+ this.transcriptionSummariesModule, this.sessionsModule, this.agentsModule, this.audioModule,
86
+ this.workflowsModule, this.integrationActionsModule, this.logsModule, this.debugModule, this.externalIntegrationsModule,
87
+ this.reportsModule, this.patientsModule, this.dataStrategiesModule, this.systemSnapshotsModule, this.ratingsModule,
88
+ this.tiakiModule,
89
+ ...(this.websocketModule ? [this.websocketModule] : [])
90
+ ];
91
+
92
+ this.initialize().catch(error => {
93
+ console.error('Failed to initialize SDK:', error);
94
+ });
95
+ }
96
+
97
+ public async initialize(): Promise<void> {
98
+ if (this.sdkInitialized) {
99
+ return;
100
+ }
101
+ await super.initialize();
102
+ await Promise.all(this.modules.map(module => module.initialize()));
103
+ await this.syncUserStateAcrossModules();
104
+ this.sdkInitialized = true;
105
+ }
106
+
107
+ public isReady(): boolean {
108
+ return this.sdkInitialized;
109
+ }
110
+
111
+ private async syncUserStateAcrossModules(): Promise<void> {
112
+ const currentUser = this.getCurrentUser();
113
+ const accessToken = this.getAccessToken();
114
+ const refreshToken = this.getRefreshToken();
115
+ await Promise.all(
116
+ this.modules.map(module =>
117
+ module.syncUserState(currentUser, accessToken, refreshToken)
118
+ )
119
+ );
120
+ }
121
+
122
+ public async syncUserState(user: User | null, accessToken: string | null, refreshToken: string | null): Promise<void> {
123
+ await super.syncUserState(user, accessToken, refreshToken);
124
+ await Promise.all(
125
+ this.modules.map(module =>
126
+ module.syncUserState(user, accessToken, refreshToken)
127
+ )
128
+ );
129
+ }
130
+
131
+ // ======================
132
+ // AUTH METHODS
133
+ // ======================
134
+
135
+ public async login(...args: Parameters<AuthModule['login']>) {
136
+ const result = await this.authModule.login(...args);
137
+ await this.syncUserState(result.user, result.access_token, result.refresh_token);
138
+ return result;
139
+ }
140
+
141
+ public async logout(...args: Parameters<AuthModule['logout']>) {
142
+ const result = await this.authModule.logout(...args);
143
+ await this.syncUserState(null, null, null);
144
+ return result;
145
+ }
146
+
147
+ public async loginWithCode(...args: Parameters<AuthModule['loginWithCode']>) {
148
+ const result = await this.authModule.loginWithCode(...args);
149
+ await this.syncUserState(result.user, result.access_token, result.refresh_token);
150
+ return result;
151
+ }
152
+
153
+ public async getProfile(...args: Parameters<AuthModule['getProfile']>) {
154
+ return this.authModule.getProfile(...args);
155
+ }
156
+
157
+ public async changePassword(...args: Parameters<AuthModule['changePassword']>) {
158
+ return this.authModule.changePassword(...args);
159
+ }
160
+
161
+ public async requestLoginCode(...args: Parameters<AuthModule['requestLoginCode']>) {
162
+ return this.authModule.requestLoginCode(...args);
163
+ }
164
+
165
+ // ======================
166
+ // SESSION METHODS (User - own sessions only)
167
+ // ======================
168
+
169
+ public async createSession(...args: Parameters<SessionModule['createSession']>) {
170
+ return this.sessionsModule.createSession(...args);
171
+ }
172
+
173
+ public async getSessions(...args: Parameters<SessionModule['getSessions']>) {
174
+ return this.sessionsModule.getSessions(...args);
175
+ }
176
+
177
+ public async getSession(...args: Parameters<SessionModule['getSession']>) {
178
+ return this.sessionsModule.getSession(...args);
179
+ }
180
+
181
+ public async updateSession(...args: Parameters<SessionModule['updateSession']>) {
182
+ return this.sessionsModule.updateSession(...args);
183
+ }
184
+
185
+ public async deleteSession(...args: Parameters<SessionModule['deleteSession']>) {
186
+ return this.sessionsModule.deleteSession(...args);
187
+ }
188
+
189
+ public async searchSessions(...args: Parameters<SessionModule['searchSessions']>) {
190
+ return this.sessionsModule.searchSessions(...args);
191
+ }
192
+
193
+ public async setPrimaryTranscriptionSummary(...args: Parameters<SessionModule['setPrimaryTranscriptionSummary']>) {
194
+ return this.sessionsModule.setPrimaryTranscriptionSummary(...args);
195
+ }
196
+
197
+ public async rerunTranscription(...args: Parameters<SessionModule['rerunTranscription']>) {
198
+ return this.sessionsModule.rerunTranscription(...args);
199
+ }
200
+
201
+ public async setAudioStreamStatus(...args: Parameters<SessionModule['setAudioStreamStatus']>) {
202
+ return this.sessionsModule.setAudioStreamStatus(...args);
203
+ }
204
+
205
+ public async forwardToTiaki(...args: Parameters<SessionModule['forwardToTiaki']>) {
206
+ return this.sessionsModule.forwardToTiaki(...args);
207
+ }
208
+
209
+ // ======================
210
+ // USER METHODS
211
+ // ======================
212
+
213
+ public async getUser(...args: Parameters<UserModule['getUser']>) {
214
+ return this.usersModule.getUser(...args);
215
+ }
216
+
217
+ public async updateUser(...args: Parameters<UserModule['updateUser']>) {
218
+ return this.usersModule.updateUser(...args);
219
+ }
220
+
221
+ public async addExpoPushToken(...args: Parameters<UserModule['addExpoPushToken']>) {
222
+ return this.usersModule.addExpoPushToken(...args);
223
+ }
224
+
225
+ // ======================
226
+ // TEMPLATE METHODS
227
+ // ======================
228
+
229
+ public async getTemplates(...args: Parameters<TemplateModule['getTemplates']>) {
230
+ return this.templatesModule.getTemplates(...args);
231
+ }
232
+
233
+ public async getTemplate(...args: Parameters<TemplateModule['getTemplate']>) {
234
+ return this.templatesModule.getTemplate(...args);
235
+ }
236
+
237
+ public async getTemplatesByOrganization(...args: Parameters<TemplateModule['getTemplatesByOrganization']>) {
238
+ return this.templatesModule.getTemplatesByOrganization(...args);
239
+ }
240
+
241
+ public async getTemplateCategories(...args: Parameters<TemplateModule['getTemplateCategories']>) {
242
+ return this.templatesModule.getTemplateCategories(...args);
243
+ }
244
+
245
+ public async getTemplateCategory(...args: Parameters<TemplateModule['getTemplateCategory']>) {
246
+ return this.templatesModule.getTemplateCategory(...args);
247
+ }
248
+
249
+ // ======================
250
+ // TRANSCRIPTION SUMMARY METHODS
251
+ // ======================
252
+
253
+ public async generateTranscriptionSummary(...args: Parameters<TranscriptionSummaryModule['generateTranscriptionSummary']>) {
254
+ return this.transcriptionSummariesModule.generateTranscriptionSummary(...args);
255
+ }
256
+
257
+ public async updateTranscriptionSummary(...args: Parameters<TranscriptionSummaryModule['updateTranscriptionSummary']>) {
258
+ return this.transcriptionSummariesModule.updateTranscriptionSummary(...args);
259
+ }
260
+
261
+ public async getTranscriptionSummaries(...args: Parameters<TranscriptionSummaryModule['getTranscriptionSummaries']>) {
262
+ return this.transcriptionSummariesModule.getTranscriptionSummaries(...args);
263
+ }
264
+
265
+ public async getTranscriptionSummary(...args: Parameters<TranscriptionSummaryModule['getTranscriptionSummary']>) {
266
+ return this.transcriptionSummariesModule.getTranscriptionSummary(...args);
267
+ }
268
+
269
+ public async cloneTranscriptionSummary(...args: Parameters<TranscriptionSummaryModule['cloneTranscriptionSummary']>) {
270
+ return this.transcriptionSummariesModule.cloneTranscriptionSummary(...args);
271
+ }
272
+
273
+ public async deleteTranscriptionSummary(...args: Parameters<TranscriptionSummaryModule['deleteTranscriptionSummary']>) {
274
+ return this.transcriptionSummariesModule.deleteTranscriptionSummary(...args);
275
+ }
276
+
277
+ // ======================
278
+ // AUDIO METHODS
279
+ // ======================
280
+
281
+ public async uploadAudioFile(...args: Parameters<TemplateModule['uploadAudioFile']>) {
282
+ return this.templatesModule.uploadAudioFile(...args);
283
+ }
284
+
285
+ public async uploadLargeAudioFile(...args: Parameters<TemplateModule['uploadLargeAudioFile']>) {
286
+ return this.templatesModule.uploadLargeAudioFile(...args);
287
+ }
288
+
289
+ public async transcribeBase64Audio(...args: Parameters<TemplateModule['transcribeBase64Audio']>) {
290
+ return this.templatesModule.transcribeBase64Audio(...args);
291
+ }
292
+
293
+ public async uploadAudioFileToSession(...args: Parameters<AudioModule['uploadAudioFileToSession']>) {
294
+ return this.audioModule.uploadAudioFileToSession(...args);
295
+ }
296
+
297
+ public async getMyAudioFiles(...args: Parameters<AudioModule['getMyAudioFiles']>) {
298
+ return this.audioModule.getMyAudioFiles(...args);
299
+ }
300
+
301
+ public async getAudioFilesBySession(...args: Parameters<AudioModule['getAudioFilesBySession']>) {
302
+ return this.audioModule.getAudioFilesBySession(...args);
303
+ }
304
+
305
+ public async getAudioFile(...args: Parameters<AudioModule['getAudioFile']>) {
306
+ return this.audioModule.getAudioFile(...args);
307
+ }
308
+
309
+ public async downloadAudioFile(...args: Parameters<AudioModule['downloadAudioFile']>) {
310
+ return this.audioModule.downloadAudioFile(...args);
311
+ }
312
+
313
+ public async downloadAudioFileAsUrl(...args: Parameters<AudioModule['downloadAudioFileAsUrl']>) {
314
+ return this.audioModule.downloadAudioFileAsUrl(...args);
315
+ }
316
+
317
+ // ======================
318
+ // WORKFLOW METHODS
319
+ // ======================
320
+
321
+ public async getWorkflows(...args: Parameters<WorkflowModule['getWorkflows']>) {
322
+ return this.workflowsModule.getWorkflows(...args);
323
+ }
324
+
325
+ public async getWorkflow(...args: Parameters<WorkflowModule['getWorkflow']>) {
326
+ return this.workflowsModule.getWorkflow(...args);
327
+ }
328
+
329
+ public async getWorkflowsByOrganization(...args: Parameters<WorkflowModule['getWorkflowsByOrganization']>) {
330
+ return this.workflowsModule.getWorkflowsByOrganization(...args);
331
+ }
332
+
333
+ // ======================
334
+ // AGENT METHODS
335
+ // ======================
336
+
337
+ public async getAgents(...args: Parameters<AgentModule['getAgents']>) {
338
+ return this.agentsModule.getAgents(...args);
339
+ }
340
+
341
+ public async getAgent(...args: Parameters<AgentModule['getAgent']>) {
342
+ return this.agentsModule.getAgent(...args);
343
+ }
344
+
345
+ // ======================
346
+ // RATING METHODS
347
+ // ======================
348
+
349
+ public async createRating(...args: Parameters<RatingModule['createRating']>) {
350
+ return this.ratingsModule.createRating(...args);
351
+ }
352
+
353
+ public async getRatingsBySession(...args: Parameters<RatingModule['getRatingsBySession']>) {
354
+ return this.ratingsModule.getRatingsBySession(...args);
355
+ }
356
+
357
+ // ======================
358
+ // TIAKI METHODS
359
+ // ======================
360
+
361
+ public async createTiakiCalendarEvent(...args: Parameters<TiakiModule['createCalendarEvent']>) {
362
+ return this.tiakiModule.createCalendarEvent(...args);
363
+ }
364
+
365
+ // ======================
366
+ // PATIENT METHODS
367
+ // ======================
368
+
369
+ public async getPatientsFromIntegration(...args: Parameters<PatientModule['getPatientsFromIntegration']>) {
370
+ return this.patientsModule.getPatientsFromIntegration(...args);
371
+ }
372
+ }