@ethora/sdk-backend 26.2.4 → 26.3.2
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/README.md +85 -23
- package/dist/config/secrets.d.ts +0 -2
- package/dist/config/secrets.d.ts.map +1 -1
- package/dist/config/secrets.js +0 -1
- package/dist/config/secrets.js.map +1 -1
- package/dist/repositories/EthoraSDKService.d.ts +31 -8
- package/dist/repositories/EthoraSDKService.d.ts.map +1 -1
- package/dist/repositories/EthoraSDKService.js +219 -42
- package/dist/repositories/EthoraSDKService.js.map +1 -1
- package/dist/scripts/test-logs.js +72 -94
- package/dist/scripts/test-logs.js.map +1 -1
- package/dist/types/index.d.ts +99 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/jwt.d.ts +4 -1
- package/dist/utils/jwt.d.ts.map +1 -1
- package/dist/utils/jwt.js +33 -7
- package/dist/utils/jwt.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
This guide will walk you through integrating the Ethora SDK into your existing Node.js backend application.
|
|
6
6
|
|
|
7
|
+
**Part of the [Ethora SDK ecosystem](https://github.com/dappros/ethora#ecosystem)** — see all SDKs, tools, and sample apps. Follow cross-SDK updates in the [Release Notes](https://github.com/dappros/ethora/blob/main/RELEASE-NOTES.md).
|
|
8
|
+
|
|
7
9
|
## Table of Contents
|
|
8
10
|
|
|
9
11
|
- [Prerequisites](#prerequisites)
|
|
@@ -25,7 +27,6 @@ This guide will walk you through integrating the Ethora SDK into your existing N
|
|
|
25
27
|
- `ETHORA_CHAT_API_URL`
|
|
26
28
|
- `ETHORA_CHAT_APP_ID`
|
|
27
29
|
- `ETHORA_CHAT_APP_SECRET`
|
|
28
|
-
- `ETHORA_CHAT_BOT_JID` (optional, for chatbot features)
|
|
29
30
|
|
|
30
31
|
## API Documentation (Swagger)
|
|
31
32
|
|
|
@@ -36,6 +37,38 @@ Ethora exposes Swagger UI from every running backend instance at:
|
|
|
36
37
|
|
|
37
38
|
If you are running a separate staging instance, the same pattern applies (e.g. `https://api.asterotoken.com/api-docs/`).
|
|
38
39
|
|
|
40
|
+
## Tenant Admin / B2B Endpoints
|
|
41
|
+
|
|
42
|
+
The SDK also exposes the explicit tenant-admin surface added in the backend:
|
|
43
|
+
|
|
44
|
+
- `listApps()`, `getApp(appId)`, `createApp(appData)`, `deleteApp(appId)`
|
|
45
|
+
- `createUsersInApp(appId, payload)`, `getUsersBatchJob(appId, jobId)`, `deleteUsersInApp(appId, userIds)`
|
|
46
|
+
- `createChatRoomInApp(appId, chatId, roomData)`, `deleteChatRoomInApp(appId, chatId)`
|
|
47
|
+
- `grantUserAccessToChatRoomInApp(appId, chatId, userIds)`, `removeUserAccessFromChatRoomInApp(appId, chatId, userIds)`
|
|
48
|
+
- `getUserChatsInApp(appId, userId, params)`, `updateChatRoomInApp(appId, chatId, updateData)`
|
|
49
|
+
|
|
50
|
+
These helpers target explicit `/v2/apps/{appId}/...` routes so a parent-app / tenant backend can manage child apps without relying on implicit token scope.
|
|
51
|
+
|
|
52
|
+
## Token Types
|
|
53
|
+
|
|
54
|
+
The Ethora API uses several JWT/token types with different purposes:
|
|
55
|
+
|
|
56
|
+
- `B2B Server JWT`: used by this SDK automatically for server-to-server API calls. The backend accepts it primarily via `x-custom-token`, and many deployments also accept it in `Authorization: Bearer ...`.
|
|
57
|
+
- `Client JWT`: created by `createChatUserJwtToken(userId)` for client/chat credential flows only.
|
|
58
|
+
- `User JWT`: returned by Ethora login endpoints and used for user-session API calls outside this SDK's main server-to-server flow.
|
|
59
|
+
- `App JWT`: legacy app-scoped runtime token. Frontend/bootstrap login and sign-up flows now prefer explicit `appId`, while old app-token auth remains accepted for backward compatibility.
|
|
60
|
+
|
|
61
|
+
If you are using explicit tenant-admin routes like `/v2/apps/{appId}/...`, the intended token for backend integrations is `B2B Server JWT`.
|
|
62
|
+
|
|
63
|
+
## API Versioning
|
|
64
|
+
|
|
65
|
+
For new integrations, prefer `/v2/...` endpoints.
|
|
66
|
+
|
|
67
|
+
- Main runtime chat/user operations in this SDK use `/v2/...`.
|
|
68
|
+
- Explicit tenant-admin helpers use `/v2/apps/{appId}/...`.
|
|
69
|
+
- A few delete operations still map to legacy `/v1/...` endpoints because that is where backend parity currently exists.
|
|
70
|
+
- Frontend/bootstrap auth flows are moving toward explicit `appId` request context rather than relying on implicit app-token scope.
|
|
71
|
+
|
|
39
72
|
## Installation
|
|
40
73
|
|
|
41
74
|
### Step 1: Install the Package
|
|
@@ -64,8 +97,6 @@ ETHORA_CHAT_API_URL=https://api.ethoradev.com
|
|
|
64
97
|
ETHORA_CHAT_APP_ID=your_app_id_here
|
|
65
98
|
ETHORA_CHAT_APP_SECRET=your_app_secret_here
|
|
66
99
|
|
|
67
|
-
# Optional (for chatbot features)
|
|
68
|
-
ETHORA_CHAT_BOT_JID=your_bot_jid@domain.com
|
|
69
100
|
```
|
|
70
101
|
|
|
71
102
|
### Step 2: Load Environment Variables
|
|
@@ -461,6 +492,33 @@ export async function chatRoutes(fastify: FastifyInstance) {
|
|
|
461
492
|
|
|
462
493
|
## Common Use Cases
|
|
463
494
|
|
|
495
|
+
### Use Case 0: Tenant-admin / child-app management
|
|
496
|
+
|
|
497
|
+
Create and manage a child app through the explicit B2B admin surface:
|
|
498
|
+
|
|
499
|
+
```typescript
|
|
500
|
+
const sdk = getEthoraSDKService();
|
|
501
|
+
|
|
502
|
+
const app = await sdk.createApp({ displayName: 'Tenant Managed Demo' });
|
|
503
|
+
const childAppId = String((app as any).app?._id || (app as any).result?._id || '');
|
|
504
|
+
|
|
505
|
+
await sdk.createUsersInApp(childAppId, {
|
|
506
|
+
bypassEmailConfirmation: true,
|
|
507
|
+
usersList: [
|
|
508
|
+
{ uuid: 'workspace-u1', email: 'workspace-u1@example.com', firstName: 'Workspace', lastName: 'One' },
|
|
509
|
+
{ uuid: 'workspace-u2', email: 'workspace-u2@example.com', firstName: 'Workspace', lastName: 'Two' },
|
|
510
|
+
],
|
|
511
|
+
});
|
|
512
|
+
|
|
513
|
+
await sdk.createChatRoomInApp(childAppId, 'workspace-room', {
|
|
514
|
+
title: 'Workspace Room',
|
|
515
|
+
uuid: 'workspace-room',
|
|
516
|
+
type: 'public',
|
|
517
|
+
});
|
|
518
|
+
|
|
519
|
+
await sdk.grantUserAccessToChatRoomInApp(childAppId, 'workspace-room', ['workspace-u1', 'workspace-u2']);
|
|
520
|
+
```
|
|
521
|
+
|
|
464
522
|
### Use Case 1: Workspace Setup Flow
|
|
465
523
|
|
|
466
524
|
When creating a new workspace, set up the chat room and initial users:
|
|
@@ -497,13 +555,6 @@ async function setupWorkspaceChat(
|
|
|
497
555
|
// 3. Grant access to all users
|
|
498
556
|
await chatService.grantUserAccessToChatRoom(workspaceId, userIds);
|
|
499
557
|
|
|
500
|
-
// 4. Grant chatbot access (if configured)
|
|
501
|
-
try {
|
|
502
|
-
await chatService.grantChatbotAccessToChatRoom(workspaceId);
|
|
503
|
-
} catch (error) {
|
|
504
|
-
console.warn('Chatbot access not configured or failed');
|
|
505
|
-
}
|
|
506
|
-
|
|
507
558
|
return { success: true };
|
|
508
559
|
} catch (error) {
|
|
509
560
|
console.error('Failed to setup workspace chat:', error);
|
|
@@ -754,6 +805,28 @@ async function getUserChatsExample(): Promise<ApiResponse> {
|
|
|
754
805
|
|
|
755
806
|
## API Reference
|
|
756
807
|
|
|
808
|
+
### Tenant-admin methods
|
|
809
|
+
|
|
810
|
+
#### `createApp(appData: CreateAppRequest): Promise<ApiResponse>`
|
|
811
|
+
|
|
812
|
+
Creates a child app through `POST /v2/apps`.
|
|
813
|
+
|
|
814
|
+
#### `createUsersInApp(appId: UUID, payload: BatchCreateUsersRequest): Promise<ApiResponse>`
|
|
815
|
+
|
|
816
|
+
Starts an async user-batch job through `POST /v2/apps/{appId}/users/batch`.
|
|
817
|
+
|
|
818
|
+
#### `createChatRoomInApp(appId: UUID, chatId: UUID, roomData?: Record<string, unknown>): Promise<ApiResponse>`
|
|
819
|
+
|
|
820
|
+
Creates a chat in a target app through `POST /v2/apps/{appId}/chats`.
|
|
821
|
+
|
|
822
|
+
#### `grantUserAccessToChatRoomInApp(appId: UUID, chatId: UUID, userId: UUID | UUID[]): Promise<ApiResponse>`
|
|
823
|
+
|
|
824
|
+
Adds user access in a target app through `POST /v2/apps/{appId}/chats/users-access`.
|
|
825
|
+
|
|
826
|
+
#### `deleteChatRoomInApp(appId: UUID, chatId: UUID): Promise<ApiResponse>`
|
|
827
|
+
|
|
828
|
+
Deletes a chat in a target app through `DELETE /v2/apps/{appId}/chats`.
|
|
829
|
+
|
|
757
830
|
### Core Methods
|
|
758
831
|
|
|
759
832
|
#### `createUser(userId: UUID, userData?: CreateUserData): Promise<ApiResponse>`
|
|
@@ -839,19 +912,6 @@ await sdk.removeUserAccessFromChatRoom("workspace-123", "user-456");
|
|
|
839
912
|
|
|
840
913
|
---
|
|
841
914
|
|
|
842
|
-
#### `grantChatbotAccessToChatRoom(chatId: UUID): Promise<ApiResponse>`
|
|
843
|
-
|
|
844
|
-
Grants chatbot access to a chat room.
|
|
845
|
-
|
|
846
|
-
**Parameters:**
|
|
847
|
-
- `chatId` (UUID): The unique identifier of the chat/workspace
|
|
848
|
-
|
|
849
|
-
**Returns:** Promise resolving to the API response
|
|
850
|
-
|
|
851
|
-
**Requires:** `ETHORA_CHAT_BOT_JID` environment variable to be set
|
|
852
|
-
|
|
853
|
-
---
|
|
854
|
-
|
|
855
915
|
#### `getUsers(params?: GetUsersQueryParams): Promise<ApiResponse>`
|
|
856
916
|
|
|
857
917
|
Retrieves users from the chat service using the `/v2/chats/users` endpoint.
|
|
@@ -1005,6 +1065,8 @@ Creates a client-side JWT token for user authentication.
|
|
|
1005
1065
|
|
|
1006
1066
|
**Returns:** The encoded JWT token for client-side authentication
|
|
1007
1067
|
|
|
1068
|
+
**Important:** Pass the same canonical user ID/UUID that your backend uses when creating that user in Ethora. Do not switch between different user-id formats when creating the user and then minting the client token.
|
|
1069
|
+
|
|
1008
1070
|
---
|
|
1009
1071
|
|
|
1010
1072
|
## Error Handling
|
package/dist/config/secrets.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/config/secrets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/config/secrets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,aAG7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,mCAAmC,CAAC;AAElE;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAoBpE;AAOD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAShE"}
|
package/dist/config/secrets.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/config/secrets.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;
|
|
1
|
+
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/config/secrets.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA+CH,wCAoBC;AAaD,gCASC;AAjED;;GAEG;AACU,QAAA,eAAe,GAAkB;IAC5C,KAAK,EAAE,KAAK,EAAE,aAAa;IAC3B,OAAO,EAAE,IAAI,EAAE,YAAY;CAC5B,CAAC;AAEF;;GAEG;AACU,QAAA,iBAAiB,GAAG,gCAAgC,CAAC;AAElE;;;;;;;;;GASG;AACH,SAAgB,cAAc,CAAC,SAA4B;IACzD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACnD,MAAM,SAAS,GAAG,SAAS,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IACzE,MAAM,aAAa,GACjB,SAAS,EAAE,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAEjE,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CACb,0FAA0F;YACxF,yBAAyB;YACzB,wBAAwB;YACxB,0BAA0B,CAC7B,CAAC;IACJ,CAAC;IAED,OAAO;QACL,UAAU;QACV,SAAS;QACT,aAAa;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,IAAI,eAAe,GAAmB,IAAI,CAAC;AAE3C;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,SAA4B;IACrD,IAAI,CAAC,eAAe,IAAI,SAAS,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,eAAe,GAAG,UAAU,CAAC;QAC/B,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @format
|
|
9
9
|
*/
|
|
10
|
-
import type { UUID, ChatRepository, ApiResponse, UpdateUserData, GetUsersQueryParams, GetUserChatsQueryParams } from '../types';
|
|
10
|
+
import type { UUID, ChatRepository, ApiResponse, UpdateUserData, GetUsersQueryParams, GetUserChatsQueryParams, CreateAppRequest, ListAppsQueryParams, BatchCreateUsersRequest, CreateAppTokenRequest, RotateAppTokenRequest, ProvisionAppRequest, UpdateAppBotRequest, CreateAppBroadcastRequest, ListAppChatsQueryParams } from '../types';
|
|
11
11
|
/**
|
|
12
12
|
* EthoraSDKService - Concrete implementation of ChatRepository
|
|
13
13
|
*/
|
|
@@ -47,6 +47,9 @@ export declare class EthoraSDKService implements ChatRepository {
|
|
|
47
47
|
* @returns The headers dictionary containing the `x-custom-token` field
|
|
48
48
|
*/
|
|
49
49
|
private getHeaders;
|
|
50
|
+
private createScopedChatName;
|
|
51
|
+
private createScopedMembers;
|
|
52
|
+
private buildQueryString;
|
|
50
53
|
/**
|
|
51
54
|
* Makes an HTTP request with error handling
|
|
52
55
|
*
|
|
@@ -82,13 +85,6 @@ export declare class EthoraSDKService implements ChatRepository {
|
|
|
82
85
|
* @returns The API response
|
|
83
86
|
*/
|
|
84
87
|
grantUserAccessToChatRoom(chatId: UUID, userId: UUID | UUID[]): Promise<ApiResponse>;
|
|
85
|
-
/**
|
|
86
|
-
* Grants chatbot access to a chat room
|
|
87
|
-
*
|
|
88
|
-
* @param chatId - The unique identifier of the chat
|
|
89
|
-
* @returns The API response
|
|
90
|
-
*/
|
|
91
|
-
grantChatbotAccessToChatRoom(chatId: UUID): Promise<ApiResponse>;
|
|
92
88
|
/**
|
|
93
89
|
* Removes a user's access to a chat room
|
|
94
90
|
*
|
|
@@ -162,6 +158,7 @@ export declare class EthoraSDKService implements ChatRepository {
|
|
|
162
158
|
* @returns The API response
|
|
163
159
|
*/
|
|
164
160
|
getUserChats(userId: UUID, params?: GetUserChatsQueryParams): Promise<ApiResponse>;
|
|
161
|
+
getUserChatsInApp(appId: UUID, userId: UUID, params?: GetUserChatsQueryParams): Promise<ApiResponse>;
|
|
165
162
|
/**
|
|
166
163
|
* Updates chat room title or description
|
|
167
164
|
*
|
|
@@ -175,6 +172,32 @@ export declare class EthoraSDKService implements ChatRepository {
|
|
|
175
172
|
title?: string;
|
|
176
173
|
description?: string;
|
|
177
174
|
}): Promise<ApiResponse>;
|
|
175
|
+
updateChatRoomInApp(appId: UUID, chatId: UUID, updateData: {
|
|
176
|
+
title?: string;
|
|
177
|
+
description?: string;
|
|
178
|
+
}): Promise<ApiResponse>;
|
|
179
|
+
listApps(params?: ListAppsQueryParams): Promise<ApiResponse>;
|
|
180
|
+
getApp(appId: UUID): Promise<ApiResponse>;
|
|
181
|
+
createApp(appData: CreateAppRequest): Promise<ApiResponse>;
|
|
182
|
+
deleteApp(appId: UUID): Promise<ApiResponse>;
|
|
183
|
+
listAppTokens(appId: UUID): Promise<ApiResponse>;
|
|
184
|
+
createAppToken(appId: UUID, payload?: CreateAppTokenRequest): Promise<ApiResponse>;
|
|
185
|
+
revokeAppToken(appId: UUID, tokenId: UUID): Promise<ApiResponse>;
|
|
186
|
+
rotateAppToken(appId: UUID, tokenId: UUID, payload?: RotateAppTokenRequest): Promise<ApiResponse>;
|
|
187
|
+
provisionApp(appId: UUID, payload?: ProvisionAppRequest): Promise<ApiResponse>;
|
|
188
|
+
getAppBot(appId: UUID): Promise<ApiResponse>;
|
|
189
|
+
updateAppBot(appId: UUID, payload: UpdateAppBotRequest): Promise<ApiResponse>;
|
|
190
|
+
broadcastToAppChats(appId: UUID, payload: CreateAppBroadcastRequest): Promise<ApiResponse>;
|
|
191
|
+
getAppBroadcastJob(appId: UUID, jobId: UUID): Promise<ApiResponse>;
|
|
192
|
+
getAppUserByXmppUsername(xmppUsername: UUID): Promise<ApiResponse>;
|
|
193
|
+
createUsersInApp(appId: UUID, payload: BatchCreateUsersRequest): Promise<ApiResponse>;
|
|
194
|
+
getUsersBatchJob(appId: UUID, jobId: UUID): Promise<ApiResponse>;
|
|
195
|
+
deleteUsersInApp(appId: UUID, userIds: UUID[]): Promise<ApiResponse>;
|
|
196
|
+
createChatRoomInApp(appId: UUID, chatId: UUID, roomData?: Record<string, unknown>): Promise<ApiResponse>;
|
|
197
|
+
listChatsInApp(appId: UUID, params?: ListAppChatsQueryParams): Promise<ApiResponse>;
|
|
198
|
+
deleteChatRoomInApp(appId: UUID, chatId: UUID): Promise<ApiResponse>;
|
|
199
|
+
grantUserAccessToChatRoomInApp(appId: UUID, chatId: UUID, userId: UUID | UUID[]): Promise<ApiResponse>;
|
|
200
|
+
removeUserAccessFromChatRoomInApp(appId: UUID, chatId: UUID, userId: UUID | UUID[]): Promise<ApiResponse>;
|
|
178
201
|
}
|
|
179
202
|
export declare function getEthoraSDKService(config?: {
|
|
180
203
|
chatAppId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EthoraSDKService.d.ts","sourceRoot":"","sources":["../../src/repositories/EthoraSDKService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EACd,WAAW,EAIX,cAAc,EAEd,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,UAAU,CAAC;AAYlB;;GAEG;AACH,qBAAa,gBAAiB,YAAW,cAAc;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;gBAE/B,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE;IAenE;;;;;;;;;OASG;IACH,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,GAAE,OAAc,GAAG,MAAM;IAW1D;;;;;;;;;OASG;IACH,sBAAsB,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM;IAK5C;;;;OAIG;IACH,OAAO,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"EthoraSDKService.d.ts","sourceRoot":"","sources":["../../src/repositories/EthoraSDKService.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,10 +75,42 @@ class EthoraSDKService {
|
|
|
75
75
|
*/
|
|
76
76
|
getHeaders() {
|
|
77
77
|
logger.debug('Retrieving headers for a server-to-server API call');
|
|
78
|
+
const serverToken = (0, jwt_1.createServerToken)(this.secrets);
|
|
78
79
|
return {
|
|
79
|
-
|
|
80
|
+
Authorization: `Bearer ${serverToken}`,
|
|
81
|
+
'x-custom-token': serverToken,
|
|
80
82
|
};
|
|
81
83
|
}
|
|
84
|
+
createScopedChatName(appId, chatId) {
|
|
85
|
+
const appIdStr = String(appId);
|
|
86
|
+
const chatIdStr = String(chatId);
|
|
87
|
+
if (chatIdStr.includes('@') || chatIdStr.startsWith(`${appIdStr}_`)) {
|
|
88
|
+
return chatIdStr;
|
|
89
|
+
}
|
|
90
|
+
return `${appIdStr}_${chatIdStr}`;
|
|
91
|
+
}
|
|
92
|
+
createScopedMembers(appId, userId) {
|
|
93
|
+
const appIdStr = String(appId);
|
|
94
|
+
const normalize = (value) => {
|
|
95
|
+
const userIdStr = String(value);
|
|
96
|
+
return userIdStr.startsWith(`${appIdStr}_`) ? userIdStr : `${appIdStr}_${userIdStr}`;
|
|
97
|
+
};
|
|
98
|
+
return Array.isArray(userId) ? userId.map(normalize) : [normalize(userId)];
|
|
99
|
+
}
|
|
100
|
+
buildQueryString(params) {
|
|
101
|
+
if (!params) {
|
|
102
|
+
return '';
|
|
103
|
+
}
|
|
104
|
+
const query = new URLSearchParams();
|
|
105
|
+
for (const [key, value] of Object.entries(params)) {
|
|
106
|
+
if (value === undefined || value === null) {
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
query.set(key, String(value));
|
|
110
|
+
}
|
|
111
|
+
const encoded = query.toString();
|
|
112
|
+
return encoded ? `?${encoded}` : '';
|
|
113
|
+
}
|
|
82
114
|
/**
|
|
83
115
|
* Makes an HTTP request with error handling
|
|
84
116
|
*
|
|
@@ -269,24 +301,6 @@ class EthoraSDKService {
|
|
|
269
301
|
data: payload,
|
|
270
302
|
});
|
|
271
303
|
}
|
|
272
|
-
/**
|
|
273
|
-
* Grants chatbot access to a chat room
|
|
274
|
-
*
|
|
275
|
-
* @param chatId - The unique identifier of the chat
|
|
276
|
-
* @returns The API response
|
|
277
|
-
*/
|
|
278
|
-
async grantChatbotAccessToChatRoom(chatId) {
|
|
279
|
-
logger.info(`Granting chatbot access to chat room ${chatId}`);
|
|
280
|
-
if (!this.secrets.chatBotJid) {
|
|
281
|
-
const error = new Error('Chatbot JID not configured. Set ETHORA_CHAT_BOT_JID environment variable.');
|
|
282
|
-
logger.error('Cannot grant chatbot access', error);
|
|
283
|
-
throw error;
|
|
284
|
-
}
|
|
285
|
-
// Extract username from JID (format: "username@domain" -> "username")
|
|
286
|
-
const chatbotUsername = this.secrets.chatBotJid.split('@')[0];
|
|
287
|
-
// Use the same grant access method with chatbot JID
|
|
288
|
-
return this.grantUserAccessToChatRoom(chatId, chatbotUsername);
|
|
289
|
-
}
|
|
290
304
|
/**
|
|
291
305
|
* Removes a user's access to a chat room
|
|
292
306
|
*
|
|
@@ -349,11 +363,12 @@ class EthoraSDKService {
|
|
|
349
363
|
});
|
|
350
364
|
}
|
|
351
365
|
catch (error) {
|
|
366
|
+
const statusCode = error?.status;
|
|
367
|
+
const responseText = error?.response?.data;
|
|
352
368
|
// Handle the case where users don't exist (422 with "not found")
|
|
353
|
-
if (
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
error.response.data.includes('not found')) {
|
|
369
|
+
if (statusCode === 422 &&
|
|
370
|
+
typeof responseText === 'string' &&
|
|
371
|
+
responseText.toLowerCase().includes('not found')) {
|
|
357
372
|
logger.info('No users to delete from the chat service. The request contained non-existent users.');
|
|
358
373
|
return { ok: false };
|
|
359
374
|
}
|
|
@@ -390,17 +405,14 @@ class EthoraSDKService {
|
|
|
390
405
|
return response;
|
|
391
406
|
}
|
|
392
407
|
catch (error) {
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
logger.warn(`Chat room '${chatName}' not found during deletion attempt (Ignored 422)`);
|
|
402
|
-
return { ok: false, reason: 'Chat room not found' };
|
|
403
|
-
}
|
|
408
|
+
const statusCode = error?.status;
|
|
409
|
+
const responseText = error?.response?.data;
|
|
410
|
+
// Handle the case where the room does not exist (Ethora returns 422 with "not found" in body)
|
|
411
|
+
if (statusCode === 422 &&
|
|
412
|
+
typeof responseText === 'string' &&
|
|
413
|
+
responseText.toLowerCase().includes('not found')) {
|
|
414
|
+
logger.warn(`Chat room '${chatName}' not found during deletion attempt (Ignored 422)`);
|
|
415
|
+
return { ok: false, reason: 'Chat room not found' };
|
|
404
416
|
}
|
|
405
417
|
// Re-throw if it's not a "not found" case
|
|
406
418
|
throw error;
|
|
@@ -490,6 +502,15 @@ class EthoraSDKService {
|
|
|
490
502
|
if (params?.xmppUsername) {
|
|
491
503
|
queryParams.push(`xmppUsername=${encodeURIComponent(params.xmppUsername)}`);
|
|
492
504
|
}
|
|
505
|
+
if (params?.userId) {
|
|
506
|
+
queryParams.push(`userId=${encodeURIComponent(params.userId)}`);
|
|
507
|
+
}
|
|
508
|
+
if (params?.limit !== undefined) {
|
|
509
|
+
queryParams.push(`limit=${params.limit}`);
|
|
510
|
+
}
|
|
511
|
+
if (params?.offset !== undefined) {
|
|
512
|
+
queryParams.push(`offset=${params.offset}`);
|
|
513
|
+
}
|
|
493
514
|
const urlWithParams = queryParams.length > 0 ? `${getUrl}?${queryParams.join('&')}` : getUrl;
|
|
494
515
|
logger.info(params
|
|
495
516
|
? `Getting users with params: ${JSON.stringify(params)}`
|
|
@@ -510,7 +531,10 @@ class EthoraSDKService {
|
|
|
510
531
|
* @returns The API response
|
|
511
532
|
*/
|
|
512
533
|
async getUserChats(userId, params) {
|
|
513
|
-
|
|
534
|
+
return this.getUserChatsInApp(this.secrets.chatAppId, userId, params);
|
|
535
|
+
}
|
|
536
|
+
async getUserChatsInApp(appId, userId, params) {
|
|
537
|
+
const getUrl = `${this.baseEthoraUrl}/v2/apps/${appId}/users/${userId}/chats`;
|
|
514
538
|
// Build query parameters
|
|
515
539
|
const queryParams = [];
|
|
516
540
|
if (params?.limit !== undefined) {
|
|
@@ -540,13 +564,11 @@ class EthoraSDKService {
|
|
|
540
564
|
* @returns The API response
|
|
541
565
|
*/
|
|
542
566
|
async updateChatRoom(chatId, updateData) {
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
}
|
|
549
|
-
const updateUrl = `${this.baseEthoraUrl}/v2/apps/${this.secrets.chatAppId}/chats/${chatName}`;
|
|
567
|
+
return this.updateChatRoomInApp(this.secrets.chatAppId, chatId, updateData);
|
|
568
|
+
}
|
|
569
|
+
async updateChatRoomInApp(appId, chatId, updateData) {
|
|
570
|
+
const chatName = this.createScopedChatName(appId, chatId);
|
|
571
|
+
const updateUrl = `${this.baseEthoraUrl}/v2/apps/${appId}/chats/${chatName}`;
|
|
550
572
|
logger.info(`Updating chat room: ${chatName}`);
|
|
551
573
|
logger.debug(`Chat service API URL: ${updateUrl}`);
|
|
552
574
|
logger.debug(`Request payload: ${JSON.stringify(updateData)}`);
|
|
@@ -556,6 +578,161 @@ class EthoraSDKService {
|
|
|
556
578
|
data: updateData,
|
|
557
579
|
});
|
|
558
580
|
}
|
|
581
|
+
async listApps(params) {
|
|
582
|
+
const url = `${this.baseEthoraUrl}/v2/apps${this.buildQueryString(params)}`;
|
|
583
|
+
return this.makeRequest({ method: 'GET', url });
|
|
584
|
+
}
|
|
585
|
+
async getApp(appId) {
|
|
586
|
+
return this.makeRequest({
|
|
587
|
+
method: 'GET',
|
|
588
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}`,
|
|
589
|
+
});
|
|
590
|
+
}
|
|
591
|
+
async createApp(appData) {
|
|
592
|
+
return this.makeRequest({
|
|
593
|
+
method: 'POST',
|
|
594
|
+
url: `${this.baseEthoraUrl}/v2/apps`,
|
|
595
|
+
data: appData,
|
|
596
|
+
});
|
|
597
|
+
}
|
|
598
|
+
async deleteApp(appId) {
|
|
599
|
+
return this.makeRequest({
|
|
600
|
+
method: 'DELETE',
|
|
601
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}`,
|
|
602
|
+
});
|
|
603
|
+
}
|
|
604
|
+
async listAppTokens(appId) {
|
|
605
|
+
return this.makeRequest({
|
|
606
|
+
method: 'GET',
|
|
607
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/tokens`,
|
|
608
|
+
});
|
|
609
|
+
}
|
|
610
|
+
async createAppToken(appId, payload) {
|
|
611
|
+
return this.makeRequest({
|
|
612
|
+
method: 'POST',
|
|
613
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/tokens`,
|
|
614
|
+
data: payload || {},
|
|
615
|
+
});
|
|
616
|
+
}
|
|
617
|
+
async revokeAppToken(appId, tokenId) {
|
|
618
|
+
return this.makeRequest({
|
|
619
|
+
method: 'DELETE',
|
|
620
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/tokens/${tokenId}`,
|
|
621
|
+
});
|
|
622
|
+
}
|
|
623
|
+
async rotateAppToken(appId, tokenId, payload) {
|
|
624
|
+
return this.makeRequest({
|
|
625
|
+
method: 'POST',
|
|
626
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/tokens/${tokenId}/rotate`,
|
|
627
|
+
data: payload || {},
|
|
628
|
+
});
|
|
629
|
+
}
|
|
630
|
+
async provisionApp(appId, payload) {
|
|
631
|
+
return this.makeRequest({
|
|
632
|
+
method: 'POST',
|
|
633
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/provision`,
|
|
634
|
+
data: payload || {},
|
|
635
|
+
});
|
|
636
|
+
}
|
|
637
|
+
async getAppBot(appId) {
|
|
638
|
+
return this.makeRequest({
|
|
639
|
+
method: 'GET',
|
|
640
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/bot`,
|
|
641
|
+
});
|
|
642
|
+
}
|
|
643
|
+
async updateAppBot(appId, payload) {
|
|
644
|
+
return this.makeRequest({
|
|
645
|
+
method: 'PUT',
|
|
646
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/bot`,
|
|
647
|
+
data: payload,
|
|
648
|
+
});
|
|
649
|
+
}
|
|
650
|
+
async broadcastToAppChats(appId, payload) {
|
|
651
|
+
return this.makeRequest({
|
|
652
|
+
method: 'POST',
|
|
653
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/chats/broadcast`,
|
|
654
|
+
data: payload,
|
|
655
|
+
});
|
|
656
|
+
}
|
|
657
|
+
async getAppBroadcastJob(appId, jobId) {
|
|
658
|
+
return this.makeRequest({
|
|
659
|
+
method: 'GET',
|
|
660
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/chats/broadcast/${jobId}`,
|
|
661
|
+
});
|
|
662
|
+
}
|
|
663
|
+
async getAppUserByXmppUsername(xmppUsername) {
|
|
664
|
+
return this.makeRequest({
|
|
665
|
+
method: 'GET',
|
|
666
|
+
url: `${this.baseEthoraUrl}/v1/apps/users/${encodeURIComponent(String(xmppUsername))}`,
|
|
667
|
+
});
|
|
668
|
+
}
|
|
669
|
+
async createUsersInApp(appId, payload) {
|
|
670
|
+
return this.makeRequest({
|
|
671
|
+
method: 'POST',
|
|
672
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/users/batch`,
|
|
673
|
+
data: payload,
|
|
674
|
+
});
|
|
675
|
+
}
|
|
676
|
+
async getUsersBatchJob(appId, jobId) {
|
|
677
|
+
return this.makeRequest({
|
|
678
|
+
method: 'GET',
|
|
679
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/users/batch/${jobId}`,
|
|
680
|
+
});
|
|
681
|
+
}
|
|
682
|
+
async deleteUsersInApp(appId, userIds) {
|
|
683
|
+
return this.makeRequest({
|
|
684
|
+
method: 'DELETE',
|
|
685
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/users/batch`,
|
|
686
|
+
data: { usersIdList: userIds.map((id) => String(id)) },
|
|
687
|
+
});
|
|
688
|
+
}
|
|
689
|
+
async createChatRoomInApp(appId, chatId, roomData) {
|
|
690
|
+
const payload = {
|
|
691
|
+
title: roomData?.title || `Chat Room ${chatId}`,
|
|
692
|
+
uuid: String(chatId),
|
|
693
|
+
type: roomData?.type || 'group',
|
|
694
|
+
...roomData,
|
|
695
|
+
};
|
|
696
|
+
return this.makeRequest({
|
|
697
|
+
method: 'POST',
|
|
698
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/chats`,
|
|
699
|
+
data: payload,
|
|
700
|
+
});
|
|
701
|
+
}
|
|
702
|
+
async listChatsInApp(appId, params) {
|
|
703
|
+
const query = this.buildQueryString(params);
|
|
704
|
+
return this.makeRequest({
|
|
705
|
+
method: 'GET',
|
|
706
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/chats${query}`,
|
|
707
|
+
});
|
|
708
|
+
}
|
|
709
|
+
async deleteChatRoomInApp(appId, chatId) {
|
|
710
|
+
return this.makeRequest({
|
|
711
|
+
method: 'DELETE',
|
|
712
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/chats`,
|
|
713
|
+
data: { name: this.createScopedChatName(appId, chatId) },
|
|
714
|
+
});
|
|
715
|
+
}
|
|
716
|
+
async grantUserAccessToChatRoomInApp(appId, chatId, userId) {
|
|
717
|
+
return this.makeRequest({
|
|
718
|
+
method: 'POST',
|
|
719
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/chats/users-access`,
|
|
720
|
+
data: {
|
|
721
|
+
chatName: this.createScopedChatName(appId, chatId),
|
|
722
|
+
members: this.createScopedMembers(appId, userId),
|
|
723
|
+
},
|
|
724
|
+
});
|
|
725
|
+
}
|
|
726
|
+
async removeUserAccessFromChatRoomInApp(appId, chatId, userId) {
|
|
727
|
+
return this.makeRequest({
|
|
728
|
+
method: 'DELETE',
|
|
729
|
+
url: `${this.baseEthoraUrl}/v2/apps/${appId}/chats/users-access`,
|
|
730
|
+
data: {
|
|
731
|
+
chatName: this.createScopedChatName(appId, chatId),
|
|
732
|
+
members: this.createScopedMembers(appId, userId),
|
|
733
|
+
},
|
|
734
|
+
});
|
|
735
|
+
}
|
|
559
736
|
}
|
|
560
737
|
exports.EthoraSDKService = EthoraSDKService;
|
|
561
738
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EthoraSDKService.js","sourceRoot":"","sources":["../../src/repositories/EthoraSDKService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EthoraSDKService.js","sourceRoot":"","sources":["../../src/repositories/EthoraSDKService.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,105 +14,83 @@ function assertResponseOk(result) {
|
|
|
14
14
|
throw new Error(`${result.name} returned ok=false`);
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
-
async function
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
const
|
|
17
|
+
async function runStep(name, request, results) {
|
|
18
|
+
logHeader(name);
|
|
19
|
+
const response = await request();
|
|
20
|
+
const result = { name, response };
|
|
21
|
+
results.push(result);
|
|
22
|
+
logStepResult(result);
|
|
23
|
+
assertResponseOk(result);
|
|
24
|
+
return response;
|
|
25
|
+
}
|
|
26
|
+
async function runReadOnlyChecks(results) {
|
|
21
27
|
const secrets = (0, index_1.getSecrets)();
|
|
22
|
-
const xmppUsername = `${secrets.chatAppId}_${userId}`;
|
|
23
28
|
const chatRepo = (0, index_1.getEthoraSDKService)();
|
|
24
|
-
|
|
29
|
+
await runStep('GET /v2/apps', () => chatRepo.listApps({ limit: 5, offset: 0 }), results);
|
|
30
|
+
await runStep(`GET /v2/apps/${secrets.chatAppId}`, () => chatRepo.getApp(secrets.chatAppId), results);
|
|
31
|
+
await runStep(`GET /v2/apps/${secrets.chatAppId}/tokens`, () => chatRepo.listAppTokens(secrets.chatAppId), results);
|
|
32
|
+
await runStep(`GET /v2/apps/${secrets.chatAppId}/bot`, () => chatRepo.getAppBot(secrets.chatAppId), results);
|
|
33
|
+
await runStep(`GET /v2/apps/${secrets.chatAppId}/chats`, () => chatRepo.listChatsInApp(secrets.chatAppId, { limit: 5, offset: 0, includeMembers: false }), results);
|
|
34
|
+
await runStep('GET /v2/chats/users', () => chatRepo.getUsers({ limit: 5, offset: 0 }), results);
|
|
35
|
+
}
|
|
36
|
+
async function runFullCycle(results) {
|
|
37
|
+
const secrets = (0, index_1.getSecrets)();
|
|
38
|
+
const chatRepo = (0, index_1.getEthoraSDKService)();
|
|
39
|
+
const runId = (0, crypto_1.randomUUID)().substring(0, 8);
|
|
40
|
+
const appUserId = `sdk-user-${runId}`;
|
|
41
|
+
const chatId = `sdk-chat-${runId}`;
|
|
42
|
+
const targetAppId = secrets.chatAppId;
|
|
43
|
+
const xmppUsername = `${targetAppId}_${appUserId}`;
|
|
44
|
+
try {
|
|
45
|
+
await runStep(`POST /v2/apps/${targetAppId}/users/batch`, () => chatRepo.createUsersInApp(targetAppId, {
|
|
46
|
+
bypassEmailConfirmation: true,
|
|
47
|
+
usersList: [
|
|
48
|
+
{
|
|
49
|
+
email: `${appUserId}@example.com`,
|
|
50
|
+
firstName: 'SDK',
|
|
51
|
+
lastName: 'User',
|
|
52
|
+
uuid: appUserId,
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
}), results);
|
|
56
|
+
await runStep(`POST /v2/apps/${targetAppId}/chats`, () => chatRepo.createChatRoomInApp(targetAppId, chatId, {
|
|
57
|
+
title: `SDK Room ${runId}`,
|
|
58
|
+
type: 'group',
|
|
59
|
+
}), results);
|
|
60
|
+
await runStep(`POST /v2/apps/${targetAppId}/chats/users-access`, () => chatRepo.grantUserAccessToChatRoomInApp(targetAppId, chatId, appUserId), results);
|
|
61
|
+
await runStep('PATCH /v2/chats/users', () => chatRepo.updateUsers([
|
|
62
|
+
{
|
|
63
|
+
xmppUsername,
|
|
64
|
+
firstName: 'SDK',
|
|
65
|
+
lastName: `Updated${runId}`,
|
|
66
|
+
},
|
|
67
|
+
]), results);
|
|
68
|
+
await runStep(`GET /v2/apps/${targetAppId}/users/${appUserId}/chats`, () => chatRepo.getUserChats(appUserId, { limit: 5, offset: 0, includeMembers: true }), results);
|
|
69
|
+
await runStep(`PATCH /v2/apps/${targetAppId}/chats/{chatId}`, () => chatRepo.updateChatRoomInApp(targetAppId, chatId, { title: `SDK Updated ${runId}` }), results);
|
|
70
|
+
await runStep(`DELETE /v2/apps/${targetAppId}/chats/users-access`, () => chatRepo.removeUserAccessFromChatRoomInApp(targetAppId, chatId, appUserId), results);
|
|
71
|
+
await runStep(`DELETE /v2/apps/${targetAppId}/users/batch`, () => chatRepo.deleteUsersInApp(targetAppId, [appUserId]), results);
|
|
72
|
+
await runStep(`DELETE /v2/apps/${targetAppId}/chats`, () => chatRepo.deleteChatRoomInApp(targetAppId, chatId), results);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
console.error('Full-cycle mode failed before cleanup completion:', error);
|
|
76
|
+
throw error;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async function main() {
|
|
80
|
+
const fullCycle = String(process.env.ETHORA_TEST_LOGS_FULL_CYCLE || '').toLowerCase() === 'true';
|
|
81
|
+
const secrets = (0, index_1.getSecrets)();
|
|
82
|
+
const runId = (0, crypto_1.randomUUID)().substring(0, 8);
|
|
83
|
+
logHeader(`Ethora B2B Requests Test (runId: ${runId})`);
|
|
25
84
|
console.log(`Base URL: ${secrets.chatApiUrl}`);
|
|
26
|
-
console.log(`
|
|
27
|
-
console.log(`
|
|
28
|
-
console.log(`XMPP Username: ${xmppUsername}`);
|
|
85
|
+
console.log(`App ID: ${secrets.chatAppId}`);
|
|
86
|
+
console.log(`Mode: ${fullCycle ? 'full-cycle' : 'read-only'}`);
|
|
29
87
|
const results = [];
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
lastName: 'User',
|
|
35
|
-
email: `${userId}@example.com`,
|
|
36
|
-
displayName: `Test User ${runId}`,
|
|
37
|
-
});
|
|
38
|
-
results.push({ name: 'createUser', response: createUserResult });
|
|
39
|
-
logStepResult(results[results.length - 1]);
|
|
40
|
-
assertResponseOk(results[results.length - 1]);
|
|
41
|
-
// 2. Create room
|
|
42
|
-
logHeader('2. createChatRoom');
|
|
43
|
-
const createRoomResult = await chatRepo.createChatRoom(chatId, {
|
|
44
|
-
title: `Test Room ${runId}`,
|
|
45
|
-
uuid: chatId,
|
|
46
|
-
type: 'group',
|
|
47
|
-
});
|
|
48
|
-
results.push({ name: 'createChatRoom', response: createRoomResult });
|
|
49
|
-
logStepResult(results[results.length - 1]);
|
|
50
|
-
assertResponseOk(results[results.length - 1]);
|
|
51
|
-
// 3. Add user to room
|
|
52
|
-
logHeader('3. grantUserAccessToChatRoom');
|
|
53
|
-
const grantResult = await chatRepo.grantUserAccessToChatRoom(chatId, userId);
|
|
54
|
-
results.push({ name: 'grantUserAccessToChatRoom', response: grantResult });
|
|
55
|
-
logStepResult(results[results.length - 1]);
|
|
56
|
-
assertResponseOk(results[results.length - 1]);
|
|
57
|
-
// 4. Get user chats (verify access)
|
|
58
|
-
logHeader('4. getUserChats');
|
|
59
|
-
const getUserChatsResult = await chatRepo.getUserChats(userId);
|
|
60
|
-
results.push({ name: 'getUserChats', response: getUserChatsResult });
|
|
61
|
-
logStepResult(results[results.length - 1]);
|
|
62
|
-
assertResponseOk(results[results.length - 1]);
|
|
63
|
-
// 5. Update chat room
|
|
64
|
-
logHeader('5. updateChatRoom');
|
|
65
|
-
const updateRoomResult = await chatRepo.updateChatRoom(chatId, {
|
|
66
|
-
title: `Updated Room Title ${runId}`,
|
|
67
|
-
description: 'Updated room description',
|
|
68
|
-
});
|
|
69
|
-
results.push({ name: 'updateChatRoom', response: updateRoomResult });
|
|
70
|
-
logStepResult(results[results.length - 1]);
|
|
71
|
-
assertResponseOk(results[results.length - 1]);
|
|
72
|
-
// 6. Update users
|
|
73
|
-
logHeader('6. updateUsers');
|
|
74
|
-
const updateUsersResult = await chatRepo.updateUsers([
|
|
75
|
-
{
|
|
76
|
-
xmppUsername: xmppUsername,
|
|
77
|
-
firstName: 'Updated',
|
|
78
|
-
lastName: 'User',
|
|
79
|
-
},
|
|
80
|
-
]);
|
|
81
|
-
results.push({ name: 'updateUsers', response: updateUsersResult });
|
|
82
|
-
logStepResult(results[results.length - 1]);
|
|
83
|
-
assertResponseOk(results[results.length - 1]);
|
|
84
|
-
// 7. Remove user from room
|
|
85
|
-
logHeader('7. removeUserAccessFromChatRoom');
|
|
86
|
-
const removeResult = await chatRepo.removeUserAccessFromChatRoom(chatId, userId);
|
|
87
|
-
results.push({ name: 'removeUserAccessFromChatRoom', response: removeResult });
|
|
88
|
-
logStepResult(results[results.length - 1]);
|
|
89
|
-
assertResponseOk(results[results.length - 1]);
|
|
90
|
-
// 8. Delete room
|
|
91
|
-
logHeader('8. deleteChatRoom');
|
|
92
|
-
const deleteRoomResult = await chatRepo.deleteChatRoom(chatId);
|
|
93
|
-
results.push({ name: 'deleteChatRoom', response: deleteRoomResult });
|
|
94
|
-
logStepResult(results[results.length - 1]);
|
|
95
|
-
assertResponseOk(results[results.length - 1]);
|
|
96
|
-
// 9. Get user (verify metadata update)
|
|
97
|
-
logHeader('9. getUsers (by xmppUsername)');
|
|
98
|
-
const getUserResult = await chatRepo.getUsers({ xmppUsername });
|
|
99
|
-
results.push({ name: 'getUsers(xmppUsername)', response: getUserResult });
|
|
100
|
-
logStepResult(results[results.length - 1]);
|
|
101
|
-
assertResponseOk(results[results.length - 1]);
|
|
102
|
-
// 10. Get users (all)
|
|
103
|
-
logHeader('10. getUsers (all)');
|
|
104
|
-
const getUsersResult = await chatRepo.getUsers();
|
|
105
|
-
results.push({ name: 'getUsers(all)', response: getUsersResult });
|
|
106
|
-
logStepResult(results[results.length - 1]);
|
|
107
|
-
assertResponseOk(results[results.length - 1]);
|
|
108
|
-
// 11. Delete user
|
|
109
|
-
logHeader('11. deleteUsers');
|
|
110
|
-
const deleteUserResult = await chatRepo.deleteUsers([userId]);
|
|
111
|
-
results.push({ name: 'deleteUsers', response: deleteUserResult });
|
|
112
|
-
logStepResult(results[results.length - 1]);
|
|
113
|
-
assertResponseOk(results[results.length - 1]);
|
|
88
|
+
await runReadOnlyChecks(results);
|
|
89
|
+
if (fullCycle) {
|
|
90
|
+
await runFullCycle(results);
|
|
91
|
+
}
|
|
114
92
|
logHeader('Done');
|
|
115
|
-
console.log(
|
|
93
|
+
console.log(`All requests completed (${results.length} steps).`);
|
|
116
94
|
}
|
|
117
95
|
main().catch((error) => {
|
|
118
96
|
console.error(`\n❌ Test run failed: ${error.message || error}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-logs.js","sourceRoot":"","sources":["../../src/scripts/test-logs.ts"],"names":[],"mappings":";;AAAA,yBAAuB;AACvB,mCAAoC;AACpC,oCAA2D;AAQ3D,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,aAAa,CAAC,MAAkB;IACvC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAkB;IAC1C,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,oBAAoB,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"test-logs.js","sourceRoot":"","sources":["../../src/scripts/test-logs.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export interface ServerTokenPayload {
|
|
|
19
19
|
data: {
|
|
20
20
|
appId: string;
|
|
21
21
|
type: "server";
|
|
22
|
+
tenantId?: string;
|
|
22
23
|
};
|
|
23
24
|
}
|
|
24
25
|
/**
|
|
@@ -40,6 +41,74 @@ export interface ApiResponse {
|
|
|
40
41
|
url?: string;
|
|
41
42
|
[key: string]: unknown;
|
|
42
43
|
}
|
|
44
|
+
export interface CreateAppRequest {
|
|
45
|
+
displayName: string;
|
|
46
|
+
domainName?: string;
|
|
47
|
+
appTagline?: string;
|
|
48
|
+
logoImage?: string;
|
|
49
|
+
sublogoImage?: string;
|
|
50
|
+
primaryColor?: string;
|
|
51
|
+
bundleId?: string;
|
|
52
|
+
[key: string]: unknown;
|
|
53
|
+
}
|
|
54
|
+
export interface ListAppsQueryParams {
|
|
55
|
+
limit?: number;
|
|
56
|
+
offset?: number;
|
|
57
|
+
order?: 'asc' | 'desc';
|
|
58
|
+
orderBy?: 'displayName' | 'createdAt';
|
|
59
|
+
}
|
|
60
|
+
export interface BatchCreateUsersRequest {
|
|
61
|
+
bypassEmailConfirmation?: boolean;
|
|
62
|
+
usersList: Array<{
|
|
63
|
+
email: string;
|
|
64
|
+
firstName: string;
|
|
65
|
+
lastName: string;
|
|
66
|
+
password?: string;
|
|
67
|
+
uuid?: string;
|
|
68
|
+
profileImage?: string;
|
|
69
|
+
[key: string]: unknown;
|
|
70
|
+
}>;
|
|
71
|
+
}
|
|
72
|
+
export interface CreateAppTokenRequest {
|
|
73
|
+
label?: string;
|
|
74
|
+
}
|
|
75
|
+
export interface RotateAppTokenRequest {
|
|
76
|
+
label?: string;
|
|
77
|
+
}
|
|
78
|
+
export interface ProvisionRoomRequest {
|
|
79
|
+
title?: string;
|
|
80
|
+
pinned?: boolean;
|
|
81
|
+
[key: string]: unknown;
|
|
82
|
+
}
|
|
83
|
+
export interface ProvisionAppRequest {
|
|
84
|
+
rooms?: ProvisionRoomRequest[];
|
|
85
|
+
[key: string]: unknown;
|
|
86
|
+
}
|
|
87
|
+
export interface UpdateAppBotRequest {
|
|
88
|
+
status?: string;
|
|
89
|
+
trigger?: string;
|
|
90
|
+
prompt?: string;
|
|
91
|
+
greetingMessage?: string;
|
|
92
|
+
chatId?: string;
|
|
93
|
+
isRAG?: boolean;
|
|
94
|
+
botFirstName?: string;
|
|
95
|
+
botLastName?: string;
|
|
96
|
+
[key: string]: unknown;
|
|
97
|
+
}
|
|
98
|
+
export interface CreateAppBroadcastRequest {
|
|
99
|
+
text: string;
|
|
100
|
+
allRooms?: boolean;
|
|
101
|
+
chatNames?: string[];
|
|
102
|
+
chatIds?: string[];
|
|
103
|
+
metadata?: Record<string, unknown>;
|
|
104
|
+
dryRun?: boolean;
|
|
105
|
+
[key: string]: unknown;
|
|
106
|
+
}
|
|
107
|
+
export interface ListAppChatsQueryParams {
|
|
108
|
+
limit?: number;
|
|
109
|
+
offset?: number;
|
|
110
|
+
includeMembers?: boolean;
|
|
111
|
+
}
|
|
43
112
|
/**
|
|
44
113
|
* Chat room creation request payload
|
|
45
114
|
*/
|
|
@@ -103,6 +172,9 @@ export interface UpdateUsersRequest {
|
|
|
103
172
|
export interface GetUsersQueryParams {
|
|
104
173
|
chatName?: string;
|
|
105
174
|
xmppUsername?: string;
|
|
175
|
+
userId?: string;
|
|
176
|
+
limit?: number;
|
|
177
|
+
offset?: number;
|
|
106
178
|
}
|
|
107
179
|
/**
|
|
108
180
|
* Get user chats query parameters
|
|
@@ -136,10 +208,6 @@ export interface ChatRepository {
|
|
|
136
208
|
* Grants a user access to a chat room
|
|
137
209
|
*/
|
|
138
210
|
grantUserAccessToChatRoom(chatId: UUID, userId: UUID | UUID[]): Promise<ApiResponse>;
|
|
139
|
-
/**
|
|
140
|
-
* Grants chatbot access to a chat room
|
|
141
|
-
*/
|
|
142
|
-
grantChatbotAccessToChatRoom(chatId: UUID): Promise<ApiResponse>;
|
|
143
211
|
/**
|
|
144
212
|
* Removes a user's access to a chat room
|
|
145
213
|
*
|
|
@@ -206,5 +274,32 @@ export interface ChatRepository {
|
|
|
206
274
|
title?: string;
|
|
207
275
|
description?: string;
|
|
208
276
|
}): Promise<ApiResponse>;
|
|
277
|
+
listApps(params?: ListAppsQueryParams): Promise<ApiResponse>;
|
|
278
|
+
getApp(appId: UUID): Promise<ApiResponse>;
|
|
279
|
+
createApp(appData: CreateAppRequest): Promise<ApiResponse>;
|
|
280
|
+
deleteApp(appId: UUID): Promise<ApiResponse>;
|
|
281
|
+
listAppTokens(appId: UUID): Promise<ApiResponse>;
|
|
282
|
+
createAppToken(appId: UUID, payload?: CreateAppTokenRequest): Promise<ApiResponse>;
|
|
283
|
+
revokeAppToken(appId: UUID, tokenId: UUID): Promise<ApiResponse>;
|
|
284
|
+
rotateAppToken(appId: UUID, tokenId: UUID, payload?: RotateAppTokenRequest): Promise<ApiResponse>;
|
|
285
|
+
provisionApp(appId: UUID, payload?: ProvisionAppRequest): Promise<ApiResponse>;
|
|
286
|
+
getAppBot(appId: UUID): Promise<ApiResponse>;
|
|
287
|
+
updateAppBot(appId: UUID, payload: UpdateAppBotRequest): Promise<ApiResponse>;
|
|
288
|
+
broadcastToAppChats(appId: UUID, payload: CreateAppBroadcastRequest): Promise<ApiResponse>;
|
|
289
|
+
getAppBroadcastJob(appId: UUID, jobId: UUID): Promise<ApiResponse>;
|
|
290
|
+
getAppUserByXmppUsername(xmppUsername: UUID): Promise<ApiResponse>;
|
|
291
|
+
createUsersInApp(appId: UUID, payload: BatchCreateUsersRequest): Promise<ApiResponse>;
|
|
292
|
+
getUsersBatchJob(appId: UUID, jobId: UUID): Promise<ApiResponse>;
|
|
293
|
+
deleteUsersInApp(appId: UUID, userIds: UUID[]): Promise<ApiResponse>;
|
|
294
|
+
createChatRoomInApp(appId: UUID, chatId: UUID, roomData?: Record<string, unknown>): Promise<ApiResponse>;
|
|
295
|
+
listChatsInApp(appId: UUID, params?: ListAppChatsQueryParams): Promise<ApiResponse>;
|
|
296
|
+
deleteChatRoomInApp(appId: UUID, chatId: UUID): Promise<ApiResponse>;
|
|
297
|
+
grantUserAccessToChatRoomInApp(appId: UUID, chatId: UUID, userId: UUID | UUID[]): Promise<ApiResponse>;
|
|
298
|
+
removeUserAccessFromChatRoomInApp(appId: UUID, chatId: UUID, userId: UUID | UUID[]): Promise<ApiResponse>;
|
|
299
|
+
getUserChatsInApp(appId: UUID, userId: UUID, params?: GetUserChatsQueryParams): Promise<ApiResponse>;
|
|
300
|
+
updateChatRoomInApp(appId: UUID, chatId: UUID, updateData: {
|
|
301
|
+
title?: string;
|
|
302
|
+
description?: string;
|
|
303
|
+
}): Promise<ApiResponse>;
|
|
209
304
|
}
|
|
210
305
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG,MAAM,CAAC;AAE1B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/jwt.d.ts
CHANGED
|
@@ -16,7 +16,10 @@ export declare function createJwtToken(payload: ServerTokenPayload | ClientToken
|
|
|
16
16
|
*
|
|
17
17
|
* @returns The encoded JWT token for server authentication
|
|
18
18
|
*/
|
|
19
|
-
export declare function createServerToken(customSecrets?: Secrets
|
|
19
|
+
export declare function createServerToken(customSecrets?: Secrets, options?: {
|
|
20
|
+
appId?: string;
|
|
21
|
+
tenantId?: string;
|
|
22
|
+
}): string;
|
|
20
23
|
/**
|
|
21
24
|
* Creates a client-side JWT token for a specific user ID
|
|
22
25
|
*
|
package/dist/utils/jwt.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/utils/jwt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAc,OAAO,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../src/utils/jwt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAc,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAYxD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,kBAAkB,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAWhH;AAiBD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,CAAC,EAAE,OAAO,EACvB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAC9C,MAAM,CAaR;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAejF;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,UAAU,CAyB5D"}
|
package/dist/utils/jwt.js
CHANGED
|
@@ -14,6 +14,12 @@ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
|
|
|
14
14
|
const secrets_1 = require("../config/secrets");
|
|
15
15
|
const logger_1 = require("./logger");
|
|
16
16
|
const logger = (0, logger_1.getLogger)("jwt-utils");
|
|
17
|
+
function deriveScopedSecret(secret, purpose) {
|
|
18
|
+
return require("crypto")
|
|
19
|
+
.createHmac("sha256", String(secret))
|
|
20
|
+
.update(`ethora:${purpose}:v1`)
|
|
21
|
+
.digest("hex");
|
|
22
|
+
}
|
|
17
23
|
/**
|
|
18
24
|
* Creates a JWT token from the given payload using the chat application's secret
|
|
19
25
|
*
|
|
@@ -27,21 +33,28 @@ function createJwtToken(payload, customSecrets) {
|
|
|
27
33
|
algorithm: "HS256",
|
|
28
34
|
});
|
|
29
35
|
}
|
|
36
|
+
function createScopedJwtToken(payload, purpose, customSecrets) {
|
|
37
|
+
const secrets = customSecrets || (0, secrets_1.getSecrets)();
|
|
38
|
+
return jsonwebtoken_1.default.sign(payload, deriveScopedSecret(secrets.chatAppSecret, purpose), {
|
|
39
|
+
algorithm: "HS256",
|
|
40
|
+
});
|
|
41
|
+
}
|
|
30
42
|
/**
|
|
31
43
|
* Creates a server-to-server JWT token
|
|
32
44
|
*
|
|
33
45
|
* @returns The encoded JWT token for server authentication
|
|
34
46
|
*/
|
|
35
|
-
function createServerToken(customSecrets) {
|
|
47
|
+
function createServerToken(customSecrets, options) {
|
|
36
48
|
logger.debug("Creating server-to-server JWT token");
|
|
37
49
|
const secrets = customSecrets || (0, secrets_1.getSecrets)();
|
|
38
50
|
const payload = {
|
|
39
51
|
data: {
|
|
40
|
-
appId: secrets.chatAppId,
|
|
52
|
+
appId: options?.appId || secrets.chatAppId,
|
|
41
53
|
type: "server",
|
|
54
|
+
...(options?.tenantId ? { tenantId: options.tenantId } : {}),
|
|
42
55
|
},
|
|
43
56
|
};
|
|
44
|
-
return
|
|
57
|
+
return createScopedJwtToken(payload, "server", secrets);
|
|
45
58
|
}
|
|
46
59
|
/**
|
|
47
60
|
* Creates a client-side JWT token for a specific user ID
|
|
@@ -59,7 +72,7 @@ function createClientToken(userId, customSecrets) {
|
|
|
59
72
|
appId: secrets.chatAppId,
|
|
60
73
|
},
|
|
61
74
|
};
|
|
62
|
-
const token =
|
|
75
|
+
const token = createScopedJwtToken(payload, "client", secrets);
|
|
63
76
|
logger.info(`Client JWT token created for user ID: ${userId}`);
|
|
64
77
|
return token;
|
|
65
78
|
}
|
|
@@ -73,14 +86,27 @@ function createClientToken(userId, customSecrets) {
|
|
|
73
86
|
function verifyJwtToken(token) {
|
|
74
87
|
logger.debug("Verifying JWT token");
|
|
75
88
|
const secrets = (0, secrets_1.getSecrets)();
|
|
89
|
+
const decoded = jsonwebtoken_1.default.decode(token);
|
|
90
|
+
const tokenType = String(decoded?.data?.type || "");
|
|
91
|
+
const purpose = tokenType === "server" ? "server" :
|
|
92
|
+
tokenType === "client" ? "client" :
|
|
93
|
+
"";
|
|
76
94
|
try {
|
|
77
|
-
return jsonwebtoken_1.default.verify(token, secrets.chatAppSecret, {
|
|
95
|
+
return jsonwebtoken_1.default.verify(token, purpose ? deriveScopedSecret(secrets.chatAppSecret, purpose) : secrets.chatAppSecret, {
|
|
78
96
|
algorithms: ["HS256"],
|
|
79
97
|
});
|
|
80
98
|
}
|
|
81
99
|
catch (error) {
|
|
82
|
-
|
|
83
|
-
|
|
100
|
+
try {
|
|
101
|
+
// TODO(auth-cleanup): remove raw-secret fallback after all callers use purpose-scoped tokens.
|
|
102
|
+
return jsonwebtoken_1.default.verify(token, secrets.chatAppSecret, {
|
|
103
|
+
algorithms: ["HS256"],
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
catch (fallbackError) {
|
|
107
|
+
logger.error("JWT token verification failed", fallbackError);
|
|
108
|
+
throw new Error("Invalid JWT token");
|
|
109
|
+
}
|
|
84
110
|
}
|
|
85
111
|
}
|
|
86
112
|
//# sourceMappingURL=jwt.js.map
|
package/dist/utils/jwt.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/utils/jwt.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;
|
|
1
|
+
{"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/utils/jwt.ts"],"names":[],"mappings":"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"}
|