stream-chat 9.50.3 → 10.0.0-rc.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/dist/cjs/index.browser.js +19798 -14472
- package/dist/cjs/index.browser.js.map +4 -4
- package/dist/cjs/index.node.js +19817 -14482
- package/dist/cjs/index.node.js.map +4 -4
- package/dist/esm/index.mjs +19795 -14469
- package/dist/esm/index.mjs.map +4 -4
- package/dist/types/ChannelManager.d.ts +221 -0
- package/dist/types/EventHandlerPipeline.d.ts +104 -0
- package/dist/types/api-client.d.ts +26 -0
- package/dist/types/campaign.d.ts +0 -44
- package/dist/types/channel.d.ts +454 -479
- package/dist/types/channel_batch_updater.d.ts +0 -93
- package/dist/types/channel_state.d.ts +53 -201
- package/dist/types/client.d.ts +451 -1920
- package/dist/types/client_state.d.ts +4 -4
- package/dist/types/configuration/InstanceConfigurationService.d.ts +26 -0
- package/dist/types/configuration/index.d.ts +1 -0
- package/dist/types/configuration/types.d.ts +53 -0
- package/dist/types/connection.d.ts +49 -41
- package/dist/types/connection_fallback.d.ts +6 -4
- package/dist/types/constants.d.ts +0 -4
- package/dist/types/custom_types.d.ts +2 -0
- package/dist/types/entityStore/EntityStore.d.ts +111 -0
- package/dist/types/entityStore/StoreBackedItemIndex.d.ts +60 -0
- package/dist/types/entityStore/applyReactionLocally.d.ts +26 -0
- package/dist/types/entityStore/index.d.ts +2 -0
- package/dist/types/errors.d.ts +10 -2
- package/dist/types/gen/chat/ChannelApi.d.ts +45 -0
- package/dist/types/gen/chat/ChatApi.d.ts +334 -0
- package/dist/types/gen/model-decoders/decoders.d.ts +3 -0
- package/dist/types/gen/model-decoders/event-decoder-mapping.d.ts +6 -0
- package/dist/types/gen/models/index.d.ts +8836 -0
- package/dist/types/gen/moderation/ModerationApi.d.ts +50 -0
- package/dist/types/gen-imports.d.ts +3 -0
- package/dist/types/index.d.ts +8 -7
- package/dist/types/insights.d.ts +9 -8
- package/dist/types/logger.d.ts +9 -0
- package/dist/types/messageComposer/LocationComposer.d.ts +7 -4
- package/dist/types/messageComposer/attachmentIdentity.d.ts +2 -2
- package/dist/types/messageComposer/attachmentManager.d.ts +8 -4
- package/dist/types/messageComposer/configuration/types.d.ts +11 -11
- package/dist/types/messageComposer/linkPreviewsManager.d.ts +25 -13
- package/dist/types/messageComposer/messageComposer.d.ts +10 -10
- package/dist/types/messageComposer/middleware/messageComposer/types.d.ts +3 -3
- package/dist/types/messageComposer/middleware/pollComposer/types.d.ts +4 -7
- package/dist/types/messageComposer/middleware/textComposer/commandUtils.d.ts +3 -3
- package/dist/types/messageComposer/middleware/textComposer/commands.d.ts +7 -7
- package/dist/types/messageComposer/middleware/textComposer/mentions.d.ts +218 -4
- package/dist/types/messageComposer/middleware/textComposer/types.d.ts +9 -4
- package/dist/types/messageComposer/pollComposer.d.ts +5 -4
- package/dist/types/messageComposer/textComposer.d.ts +8 -3
- package/dist/types/messageComposer/types.d.ts +6 -28
- package/dist/types/messageDelivery/MessageDeliveryReporter.d.ts +40 -25
- package/dist/types/messageDelivery/MessageReceiptsTracker.d.ts +53 -12
- package/dist/types/messageOperations/MessageOperationStatePolicy.d.ts +19 -0
- package/dist/types/messageOperations/MessageOperations.d.ts +17 -0
- package/dist/types/messageOperations/index.d.ts +3 -0
- package/dist/types/messageOperations/types.d.ts +49 -0
- package/dist/types/moderation.d.ts +21 -203
- package/dist/types/notifications/types.d.ts +8 -7
- package/dist/types/offline-support/offline_support_api.d.ts +111 -87
- package/dist/types/offline-support/offline_sync_manager.d.ts +0 -7
- package/dist/types/offline-support/types.d.ts +19 -23
- package/dist/types/offline-support/util.d.ts +4 -2
- package/dist/types/pagination/FilterBuilder.d.ts +1 -1
- package/dist/types/pagination/ItemIndex.d.ts +25 -0
- package/dist/types/pagination/cursorDerivation/createdAtAroundPaginationFlags.d.ts +9 -0
- package/dist/types/pagination/cursorDerivation/idAroundPaginationFlags.d.ts +6 -0
- package/dist/types/pagination/cursorDerivation/index.d.ts +1 -0
- package/dist/types/pagination/cursorDerivation/linearPaginationFlags.d.ts +6 -0
- package/dist/types/pagination/filterCompiler.d.ts +7 -0
- package/dist/types/pagination/index.d.ts +1 -3
- package/dist/types/pagination/paginators/BasePaginator.d.ts +848 -0
- package/dist/types/pagination/paginators/ChannelPaginator.d.ts +212 -0
- package/dist/types/pagination/paginators/MessageIntervalPaginator.d.ts +282 -0
- package/dist/types/pagination/paginators/MessagePaginator.d.ts +208 -0
- package/dist/types/pagination/paginators/PinnedMessagePaginator.d.ts +39 -0
- package/dist/types/pagination/paginators/ReminderPaginator.d.ts +19 -0
- package/dist/types/pagination/paginators/UserGroupPaginator.d.ts +24 -0
- package/dist/types/pagination/paginators/index.d.ts +7 -0
- package/dist/types/pagination/paginators/stateThrottling.d.ts +2 -0
- package/dist/types/pagination/sortCompiler.d.ts +49 -0
- package/dist/types/pagination/types.normalization.d.ts +11 -0
- package/dist/types/pagination/utility.normalization.d.ts +18 -0
- package/dist/types/pagination/utility.queryChannel.d.ts +26 -0
- package/dist/types/pagination/utility.search.d.ts +13 -0
- package/dist/types/permissions.d.ts +1 -1
- package/dist/types/poll.d.ts +29 -32
- package/dist/types/poll_manager.d.ts +2 -2
- package/dist/types/reminders/Reminder.d.ts +2 -5
- package/dist/types/reminders/ReminderManager.d.ts +2 -9
- package/dist/types/search/MessageSearchSource.d.ts +4 -4
- package/dist/types/search/UserSearchSource.d.ts +1 -1
- package/dist/types/search/types.d.ts +3 -3
- package/dist/types/segment.d.ts +0 -34
- package/dist/types/signing.d.ts +105 -65
- package/dist/types/store.d.ts +1 -0
- package/dist/types/thread.d.ts +70 -34
- package/dist/types/thread_manager.d.ts +3 -3
- package/dist/types/token_manager.d.ts +15 -10
- package/dist/types/types.d.ts +197 -3404
- package/dist/types/utils/FixedSizeQueueCache.d.ts +12 -6
- package/dist/types/utils/WithSubscriptions.d.ts +2 -1
- package/dist/types/utils/concurrency.d.ts +4 -4
- package/dist/types/utils/mergeWith/mergeWith.d.ts +3 -3
- package/dist/types/utils/mergeWith/mergeWithCore.d.ts +8 -3
- package/dist/types/utils/retryable.d.ts +34 -0
- package/dist/types/utils/throttling/throttle.d.ts +36 -0
- package/dist/types/utils.d.ts +100 -194
- package/package.json +7 -3
- package/src/ChannelManager.ts +724 -0
- package/src/CooldownTimer.ts +2 -2
- package/src/EventHandlerPipeline.ts +228 -0
- package/src/LiveLocationManager.ts +12 -11
- package/src/api-client.ts +275 -0
- package/src/campaign.ts +1 -77
- package/src/channel.ts +1344 -1282
- package/src/channel_batch_updater.ts +1 -211
- package/src/channel_state.ts +144 -1013
- package/src/client.ts +936 -3995
- package/src/client_state.ts +4 -4
- package/src/configuration/InstanceConfigurationService.ts +73 -0
- package/src/configuration/index.ts +1 -0
- package/src/configuration/types.ts +81 -0
- package/src/connection.ts +145 -94
- package/src/connection_fallback.ts +29 -27
- package/src/constants.ts +1 -5
- package/src/custom_types.ts +4 -1
- package/src/entityStore/EntityStore.ts +208 -0
- package/src/entityStore/StoreBackedItemIndex.ts +115 -0
- package/src/entityStore/applyReactionLocally.ts +113 -0
- package/src/entityStore/index.ts +2 -0
- package/src/errors.ts +14 -2
- package/src/gen/chat/ChannelApi.ts +275 -0
- package/src/gen/chat/ChatApi.ts +2554 -0
- package/src/gen/model-decoders/decoders.ts +2680 -0
- package/src/gen/model-decoders/event-decoder-mapping.ts +198 -0
- package/src/gen/models/index.ts +12673 -0
- package/src/gen/moderation/ModerationApi.ts +607 -0
- package/src/gen-imports.ts +3 -0
- package/src/index.ts +11 -12
- package/src/insights.ts +6 -5
- package/src/logger.ts +28 -0
- package/src/messageComposer/LocationComposer.ts +9 -5
- package/src/messageComposer/MessageComposerEffectHandlers.ts +1 -0
- package/src/messageComposer/attachmentIdentity.ts +16 -9
- package/src/messageComposer/attachmentManager.ts +13 -8
- package/src/messageComposer/configuration/types.ts +11 -11
- package/src/messageComposer/linkPreviewsManager.ts +9 -10
- package/src/messageComposer/messageComposer.ts +57 -53
- package/src/messageComposer/middleware/messageComposer/attachments.ts +1 -2
- package/src/messageComposer/middleware/messageComposer/cleanData.ts +1 -1
- package/src/messageComposer/middleware/messageComposer/compositionValidation.ts +2 -2
- package/src/messageComposer/middleware/messageComposer/messageComposerState.ts +2 -2
- package/src/messageComposer/middleware/messageComposer/sharedLocation.ts +4 -3
- package/src/messageComposer/middleware/messageComposer/textComposer.ts +2 -2
- package/src/messageComposer/middleware/messageComposer/types.ts +3 -4
- package/src/messageComposer/middleware/messageComposer/userDataInjection.ts +9 -5
- package/src/messageComposer/middleware/pollComposer/state.ts +0 -2
- package/src/messageComposer/middleware/pollComposer/types.ts +4 -7
- package/src/messageComposer/middleware/textComposer/TextComposerMiddlewareExecutor.ts +10 -1
- package/src/messageComposer/middleware/textComposer/commandEffects.ts +4 -4
- package/src/messageComposer/middleware/textComposer/commandUtils.ts +3 -6
- package/src/messageComposer/middleware/textComposer/commands.ts +3 -3
- package/src/messageComposer/middleware/textComposer/mentionUtils.ts +1 -1
- package/src/messageComposer/middleware/textComposer/mentions.ts +31 -15
- package/src/messageComposer/middleware/textComposer/types.ts +9 -4
- package/src/messageComposer/pollComposer.ts +6 -8
- package/src/messageComposer/textComposer.ts +27 -2
- package/src/messageComposer/types.ts +6 -28
- package/src/messageDelivery/MessageDeliveryReporter.ts +101 -45
- package/src/messageDelivery/MessageReceiptsTracker.ts +294 -21
- package/src/messageOperations/MessageOperationStatePolicy.ts +77 -0
- package/src/messageOperations/MessageOperations.ts +212 -0
- package/src/messageOperations/index.ts +10 -0
- package/src/messageOperations/types.ts +64 -0
- package/src/moderation.ts +38 -431
- package/src/notifications/types.ts +8 -7
- package/src/offline-support/offline_support_api.ts +200 -133
- package/src/offline-support/offline_sync_manager.ts +23 -44
- package/src/offline-support/types.ts +23 -26
- package/src/offline-support/util.ts +5 -4
- package/src/pagination/FilterBuilder.ts +4 -1
- package/src/pagination/ItemIndex.ts +25 -0
- package/src/pagination/cursorDerivation/createdAtAroundPaginationFlags.ts +73 -0
- package/src/pagination/cursorDerivation/idAroundPaginationFlags.ts +53 -0
- package/src/pagination/cursorDerivation/index.ts +1 -0
- package/src/pagination/cursorDerivation/linearPaginationFlags.ts +86 -0
- package/src/pagination/filterCompiler.ts +196 -0
- package/src/pagination/index.ts +1 -3
- package/src/pagination/paginators/BasePaginator.ts +2859 -0
- package/src/pagination/paginators/ChannelPaginator.ts +729 -0
- package/src/pagination/paginators/MessageIntervalPaginator.ts +1116 -0
- package/src/pagination/paginators/MessagePaginator.ts +508 -0
- package/src/pagination/paginators/PinnedMessagePaginator.ts +108 -0
- package/src/pagination/paginators/ReminderPaginator.ts +107 -0
- package/src/pagination/paginators/UserGroupPaginator.ts +127 -0
- package/src/pagination/paginators/index.ts +7 -0
- package/src/pagination/paginators/stateThrottling.ts +31 -0
- package/src/pagination/sortCompiler.ts +193 -0
- package/src/pagination/types.normalization.ts +14 -0
- package/src/pagination/utility.normalization.ts +106 -0
- package/src/pagination/utility.queryChannel.ts +84 -0
- package/src/pagination/utility.search.ts +80 -0
- package/src/permissions.ts +7 -8
- package/src/poll.ts +101 -110
- package/src/poll_manager.ts +14 -8
- package/src/reminders/Reminder.ts +2 -5
- package/src/reminders/ReminderManager.ts +19 -21
- package/src/search/BaseSearchSource.ts +0 -3
- package/src/search/ChannelMemberSearchSource.ts +7 -1
- package/src/search/ChannelSearchSource.ts +10 -3
- package/src/search/MessageSearchSource.ts +29 -30
- package/src/search/UserSearchSource.ts +12 -8
- package/src/search/types.ts +3 -4
- package/src/segment.ts +1 -95
- package/src/signing.ts +107 -67
- package/src/store.ts +2 -1
- package/src/thread.ts +562 -238
- package/src/thread_manager.ts +37 -16
- package/src/token_manager.ts +21 -10
- package/src/types.ts +364 -4533
- package/src/uploadManager.ts +8 -0
- package/src/utils/FixedSizeQueueCache.ts +12 -6
- package/src/utils/WithSubscriptions.ts +2 -1
- package/src/utils/concurrency.ts +4 -4
- package/src/utils/mergeWith/mergeWith.ts +3 -3
- package/src/utils/mergeWith/mergeWithCore.ts +140 -164
- package/src/utils/mergeWith/mergeWithDiff.ts +3 -3
- package/src/utils/retryable.ts +117 -0
- package/src/utils/throttling/throttle.ts +130 -0
- package/src/utils.ts +208 -754
- package/dist/types/channel_manager.d.ts +0 -122
- package/dist/types/events.d.ts +0 -72
- package/dist/types/pagination/BasePaginator.d.ts +0 -69
- package/dist/types/pagination/ReminderPaginator.d.ts +0 -16
- package/dist/types/pagination/UserGroupPaginator.d.ts +0 -21
- package/src/channel_manager.ts +0 -830
- package/src/events.ts +0 -75
- package/src/pagination/BasePaginator.ts +0 -184
- package/src/pagination/ReminderPaginator.ts +0 -56
- package/src/pagination/UserGroupPaginator.ts +0 -93
package/src/thread_manager.ts
CHANGED
|
@@ -1,11 +1,21 @@
|
|
|
1
|
+
import { chatLoggerSystem } from './logger';
|
|
1
2
|
import { StateStore } from './store';
|
|
2
3
|
import { throttle } from './utils';
|
|
3
4
|
|
|
4
5
|
import type { StreamChat } from './client';
|
|
5
6
|
import type { Thread } from './thread';
|
|
6
|
-
import type {
|
|
7
|
+
import type {
|
|
8
|
+
Event,
|
|
9
|
+
EventPayload,
|
|
10
|
+
EventType,
|
|
11
|
+
OwnUserResponse,
|
|
12
|
+
QueryThreadsRequest,
|
|
13
|
+
} from './types';
|
|
7
14
|
import { WithSubscriptions } from './utils/WithSubscriptions';
|
|
8
15
|
|
|
16
|
+
const eventIsHealthCheck = (event: Event): event is EventPayload<'health.check'> =>
|
|
17
|
+
Object.hasOwn(event, 'me');
|
|
18
|
+
|
|
9
19
|
const DEFAULT_CONNECTION_RECOVERY_THROTTLE_DURATION = 1000;
|
|
10
20
|
const MAX_QUERY_THREADS_LIMIT = 25;
|
|
11
21
|
export const THREAD_MANAGER_INITIAL_STATE = {
|
|
@@ -51,6 +61,8 @@ export type ThreadManagerPagination = {
|
|
|
51
61
|
nextCursor: string | null;
|
|
52
62
|
};
|
|
53
63
|
|
|
64
|
+
const logger = chatLoggerSystem.getLogger('thread-manager');
|
|
65
|
+
|
|
54
66
|
export class ThreadManager extends WithSubscriptions {
|
|
55
67
|
public readonly state: StateStore<ThreadManagerState>;
|
|
56
68
|
private client: StreamChat;
|
|
@@ -121,16 +133,21 @@ export class ThreadManager extends WithSubscriptions {
|
|
|
121
133
|
(this.client.user as OwnUserResponse) ?? {};
|
|
122
134
|
this.state.partialNext({ unreadThreadCount });
|
|
123
135
|
|
|
124
|
-
const unsubscribeFunctions =
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
136
|
+
const unsubscribeFunctions = (
|
|
137
|
+
[
|
|
138
|
+
'health.check',
|
|
139
|
+
'notification.mark_read',
|
|
140
|
+
'notification.mark_unread',
|
|
141
|
+
'notification.thread_message_new',
|
|
142
|
+
'notification.channel_deleted',
|
|
143
|
+
] as const satisfies EventType[]
|
|
144
|
+
).map(
|
|
131
145
|
(eventType) =>
|
|
132
146
|
this.client.on(eventType, (event) => {
|
|
133
|
-
const { unread_threads: unreadThreadCount } =
|
|
147
|
+
const { unread_threads: unreadThreadCount } =
|
|
148
|
+
(eventIsHealthCheck(event) && event.me) ||
|
|
149
|
+
(event as Extract<typeof event, { unread_threads?: any }>);
|
|
150
|
+
|
|
134
151
|
if (typeof unreadThreadCount === 'number') {
|
|
135
152
|
this.state.partialNext({ unreadThreadCount });
|
|
136
153
|
}
|
|
@@ -174,7 +191,7 @@ export class ThreadManager extends WithSubscriptions {
|
|
|
174
191
|
);
|
|
175
192
|
|
|
176
193
|
private subscribeNewReplies = () =>
|
|
177
|
-
this.client.on('notification.thread_message_new', (event
|
|
194
|
+
this.client.on('notification.thread_message_new', (event) => {
|
|
178
195
|
const parentId = event.message?.parent_id;
|
|
179
196
|
if (!parentId) return;
|
|
180
197
|
|
|
@@ -211,7 +228,7 @@ export class ThreadManager extends WithSubscriptions {
|
|
|
211
228
|
},
|
|
212
229
|
DEFAULT_CONNECTION_RECOVERY_THROTTLE_DURATION,
|
|
213
230
|
{ trailing: true },
|
|
214
|
-
);
|
|
231
|
+
).throttledFn;
|
|
215
232
|
|
|
216
233
|
const unsubscribeConnectionRecovered = this.client.on(
|
|
217
234
|
'connection.recovered',
|
|
@@ -280,7 +297,9 @@ export class ThreadManager extends WithSubscriptions {
|
|
|
280
297
|
ready: true,
|
|
281
298
|
}));
|
|
282
299
|
} catch (error) {
|
|
283
|
-
|
|
300
|
+
logger
|
|
301
|
+
.withExtraTags('reload')
|
|
302
|
+
.error('Failed to reload the thread list.', { error });
|
|
284
303
|
this.state.next((current) => ({
|
|
285
304
|
...current,
|
|
286
305
|
pagination: {
|
|
@@ -291,8 +310,8 @@ export class ThreadManager extends WithSubscriptions {
|
|
|
291
310
|
}
|
|
292
311
|
};
|
|
293
312
|
|
|
294
|
-
public queryThreads = (options:
|
|
295
|
-
this.client.
|
|
313
|
+
public queryThreads = (options: QueryThreadsRequest = {}) =>
|
|
314
|
+
this.client.queryThreadsAndHydrate({
|
|
296
315
|
limit: 25,
|
|
297
316
|
participant_limit: 10,
|
|
298
317
|
reply_limit: 10,
|
|
@@ -300,7 +319,7 @@ export class ThreadManager extends WithSubscriptions {
|
|
|
300
319
|
...options,
|
|
301
320
|
});
|
|
302
321
|
|
|
303
|
-
public loadNextPage = async (options: Omit<
|
|
322
|
+
public loadNextPage = async (options: Omit<QueryThreadsRequest, 'next'> = {}) => {
|
|
304
323
|
const { pagination } = this.state.getLatestValue();
|
|
305
324
|
|
|
306
325
|
if (pagination.isLoadingNext || !pagination.nextCursor) return;
|
|
@@ -325,7 +344,9 @@ export class ThreadManager extends WithSubscriptions {
|
|
|
325
344
|
},
|
|
326
345
|
}));
|
|
327
346
|
} catch (error) {
|
|
328
|
-
|
|
347
|
+
logger
|
|
348
|
+
.withExtraTags('loadNextPage')
|
|
349
|
+
.error('Failed to load the next page of threads.', { error });
|
|
329
350
|
this.state.next((current) => ({
|
|
330
351
|
...current,
|
|
331
352
|
pagination: {
|
package/src/token_manager.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import type jwt from 'jsonwebtoken';
|
|
2
2
|
|
|
3
|
+
import { chatLoggerSystem } from './logger';
|
|
3
4
|
import { JWTServerToken, JWTUserToken, UserFromToken } from './signing';
|
|
4
5
|
import { isFunction } from './utils';
|
|
5
|
-
import type { TokenOrProvider
|
|
6
|
+
import type { TokenOrProvider } from './types';
|
|
6
7
|
|
|
8
|
+
const logger = chatLoggerSystem.getLogger('token-manager');
|
|
9
|
+
|
|
10
|
+
export type TokenManagerMinimalUser = { id: string; anon?: boolean };
|
|
7
11
|
/**
|
|
8
12
|
* TokenManager
|
|
9
13
|
*
|
|
@@ -15,11 +19,12 @@ export class TokenManager {
|
|
|
15
19
|
secret?: jwt.Secret;
|
|
16
20
|
token?: string;
|
|
17
21
|
tokenProvider?: TokenOrProvider;
|
|
18
|
-
user?:
|
|
22
|
+
user?: TokenManagerMinimalUser;
|
|
19
23
|
/**
|
|
20
|
-
*
|
|
24
|
+
* Initializes the token manager, optionally with a server-side API secret used to mint tokens
|
|
25
|
+
* locally.
|
|
21
26
|
*
|
|
22
|
-
* @param
|
|
27
|
+
* @param secret - Optional API secret. When provided, the manager will sign server tokens locally.
|
|
23
28
|
*/
|
|
24
29
|
constructor(secret?: jwt.Secret) {
|
|
25
30
|
this.loadTokenPromise = null;
|
|
@@ -35,13 +40,16 @@ export class TokenManager {
|
|
|
35
40
|
}
|
|
36
41
|
|
|
37
42
|
/**
|
|
38
|
-
*
|
|
39
|
-
*
|
|
43
|
+
* Sets the static string token or token provider. A token provider should return a token string
|
|
44
|
+
* or a promise that resolves to a token string.
|
|
40
45
|
*
|
|
41
|
-
* @param
|
|
42
|
-
* @param
|
|
46
|
+
* @param tokenOrProvider - A token string or an async provider that returns one.
|
|
47
|
+
* @param user - The user the token belongs to.
|
|
43
48
|
*/
|
|
44
|
-
setTokenOrProvider = async (
|
|
49
|
+
setTokenOrProvider = async (
|
|
50
|
+
tokenOrProvider: TokenOrProvider,
|
|
51
|
+
user: TokenManagerMinimalUser,
|
|
52
|
+
) => {
|
|
45
53
|
this.validateToken(tokenOrProvider, user);
|
|
46
54
|
this.user = user;
|
|
47
55
|
|
|
@@ -76,7 +84,7 @@ export class TokenManager {
|
|
|
76
84
|
};
|
|
77
85
|
|
|
78
86
|
// Validates the user token.
|
|
79
|
-
validateToken = (tokenOrProvider: TokenOrProvider, user:
|
|
87
|
+
validateToken = (tokenOrProvider: TokenOrProvider, user: TokenManagerMinimalUser) => {
|
|
80
88
|
// allow empty token for anon user
|
|
81
89
|
if (user && user.anon && !tokenOrProvider) return;
|
|
82
90
|
|
|
@@ -126,6 +134,9 @@ export class TokenManager {
|
|
|
126
134
|
try {
|
|
127
135
|
this.token = await this.tokenProvider();
|
|
128
136
|
} catch (e) {
|
|
137
|
+
logger
|
|
138
|
+
.withExtraTags('loadToken')
|
|
139
|
+
.error('The token provider threw an error.', { error: e });
|
|
129
140
|
return reject(
|
|
130
141
|
new Error(`Call to tokenProvider failed with message: ${e}`, { cause: e }),
|
|
131
142
|
);
|