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