stream-chat 10.0.0-rc.13 → 10.0.0-rc.14
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 +21 -9
- package/dist/cjs/index.browser.js.map +2 -2
- package/dist/cjs/index.node.js +22 -9
- package/dist/cjs/index.node.js.map +2 -2
- package/dist/esm/index.mjs +21 -9
- package/dist/esm/index.mjs.map +2 -2
- package/dist/types/CooldownTimer.d.ts +4 -3
- package/dist/types/channel.d.ts +6 -6
- package/dist/types/channel_state.d.ts +5 -5
- package/dist/types/client.d.ts +14 -3
- package/dist/types/gen/chat/ChatApi.d.ts +2 -2
- package/dist/types/gen/models/index.d.ts +492 -369
- package/dist/types/gen/models/timestamp-guard.d.ts +22 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/messageComposer/messageComposer.d.ts +3 -3
- package/dist/types/messageComposer/middleware/textComposer/commands.d.ts +2 -2
- package/dist/types/messageComposer/middleware/textComposer/mentions.d.ts +8 -0
- package/dist/types/messageDelivery/MessageReceiptsTracker.d.ts +8 -8
- package/dist/types/offline-support/types.d.ts +2 -2
- package/dist/types/pagination/cursorDerivation/createdAtAroundPaginationFlags.d.ts +2 -1
- package/dist/types/pagination/cursorDerivation/linearPaginationFlags.d.ts +2 -1
- package/dist/types/pagination/paginators/MessageIntervalPaginator.d.ts +6 -6
- package/dist/types/pagination/paginators/MessagePaginator.d.ts +5 -5
- package/dist/types/poll.d.ts +2 -2
- package/dist/types/reminders/Reminder.d.ts +6 -6
- package/dist/types/thread.d.ts +5 -5
- package/dist/types/types.d.ts +5 -5
- package/dist/types/utils/time.d.ts +23 -7
- package/dist/types/utils.d.ts +9 -9
- package/package.json +6 -4
- package/src/CooldownTimer.ts +5 -5
- package/src/api-client.ts +5 -2
- package/src/channel.ts +5 -4
- package/src/channel_state.ts +5 -4
- package/src/client.ts +18 -3
- package/src/gen/chat/ChatApi.ts +4 -2
- package/src/gen/models/index.ts +502 -3217
- package/src/gen/models/timestamp-guard.ts +27 -0
- package/src/gen/moderation/ModerationApi.ts +1 -0
- package/src/index.ts +6 -0
- package/src/messageComposer/messageComposer.ts +5 -1
- package/src/messageDelivery/MessageDeliveryReporter.ts +3 -2
- package/src/messageDelivery/MessageReceiptsTracker.ts +17 -13
- package/src/offline-support/offline_support_api.ts +10 -1
- package/src/offline-support/types.ts +2 -1
- package/src/pagination/cursorDerivation/createdAtAroundPaginationFlags.ts +2 -1
- package/src/pagination/cursorDerivation/linearPaginationFlags.ts +2 -2
- package/src/pagination/paginators/MessageIntervalPaginator.ts +6 -5
- package/src/pagination/paginators/MessagePaginator.ts +7 -7
- package/src/poll.ts +6 -2
- package/src/reminders/Reminder.ts +10 -5
- package/src/thread.ts +9 -5
- package/src/types.ts +5 -4
- package/src/utils/time.ts +27 -7
|
@@ -137,6 +137,7 @@ __export(src_exports, {
|
|
|
137
137
|
WS_NETWORK_RECOVERY_RETRY_MS: () => WS_NETWORK_RECOVERY_RETRY_MS,
|
|
138
138
|
ZERO_PAGE_CURSOR: () => ZERO_PAGE_CURSOR,
|
|
139
139
|
accentsMap: () => accentsMap,
|
|
140
|
+
asTimestampNS: () => asTimestampNS,
|
|
140
141
|
browserNetworkStatusReporter: () => browserNetworkStatusReporter,
|
|
141
142
|
calculateLevenshtein: () => calculateLevenshtein,
|
|
142
143
|
chatCodes: () => chatCodes,
|
|
@@ -407,8 +408,9 @@ var chatLoggerSystem = scopedLogger.createLoggerSystem();
|
|
|
407
408
|
|
|
408
409
|
// src/utils/time.ts
|
|
409
410
|
var NS_PER_MS = 1e6;
|
|
411
|
+
var asTimestampNS = (ns) => ns;
|
|
410
412
|
var nsToMs = (ns) => Math.floor(ns / NS_PER_MS);
|
|
411
|
-
var msToNs = (ms) => ms * NS_PER_MS;
|
|
413
|
+
var msToNs = (ms) => asTimestampNS(ms * NS_PER_MS);
|
|
412
414
|
var nowNs = () => msToNs(Date.now());
|
|
413
415
|
var nsToDate = (ns) => new Date(nsToMs(ns));
|
|
414
416
|
var nsToRfc3339 = (ns) => {
|
|
@@ -8663,7 +8665,7 @@ var MessagePaginator = class extends MessageIntervalPaginator {
|
|
|
8663
8665
|
const { lastMessage, seededLastMessageAt } = this.aggregateState.getLatestValue();
|
|
8664
8666
|
const fromMessage = getMessageCreatedAtTimestamp(lastMessage);
|
|
8665
8667
|
if (fromMessage !== null && seededLastMessageAt !== null) {
|
|
8666
|
-
return Math.max(fromMessage, seededLastMessageAt);
|
|
8668
|
+
return asTimestampNS(Math.max(fromMessage, seededLastMessageAt));
|
|
8667
8669
|
}
|
|
8668
8670
|
return fromMessage ?? seededLastMessageAt;
|
|
8669
8671
|
}
|
|
@@ -14669,7 +14671,10 @@ var MessageDeliveryReporter = class _MessageDeliveryReporter {
|
|
|
14669
14671
|
|
|
14670
14672
|
// src/messageDelivery/MessageReceiptsTracker.ts
|
|
14671
14673
|
var import_state_store20 = require("@stream-io/state-store");
|
|
14672
|
-
var MIN_REF = {
|
|
14674
|
+
var MIN_REF = {
|
|
14675
|
+
timestamp: asTimestampNS(Number.NEGATIVE_INFINITY),
|
|
14676
|
+
msgId: ""
|
|
14677
|
+
};
|
|
14673
14678
|
var isValidReadState = (readState) => !!readState?.user && Number.isFinite(readState.last_read);
|
|
14674
14679
|
var compareRefsAsc = (a, b) => a.timestamp !== b.timestamp ? a.timestamp - b.timestamp : 0;
|
|
14675
14680
|
var findIndex = (arr, target, keyOf) => {
|
|
@@ -16200,7 +16205,7 @@ var Channel = class extends WithMessageOperations(ChannelApi) {
|
|
|
16200
16205
|
/**
|
|
16201
16206
|
* Returns the mute status for the current channel.
|
|
16202
16207
|
*
|
|
16203
|
-
* @returns An object of the form `{ muted: true | false, createdAt:
|
|
16208
|
+
* @returns An object of the form `{ muted: true | false, createdAt: TimestampNS | null, expiresAt: TimestampNS | null }`,
|
|
16204
16209
|
* where the timestamps are unix nanoseconds as the API sends them.
|
|
16205
16210
|
*/
|
|
16206
16211
|
muteStatus() {
|
|
@@ -17153,7 +17158,7 @@ var Channel = class extends WithMessageOperations(ChannelApi) {
|
|
|
17153
17158
|
}
|
|
17154
17159
|
if (ownUserId && countsAsOwnUnread && !currentReadState[ownUserId]) {
|
|
17155
17160
|
nextReadState[ownUserId] = {
|
|
17156
|
-
last_read: 0,
|
|
17161
|
+
last_read: asTimestampNS(0),
|
|
17157
17162
|
unread_messages: 1,
|
|
17158
17163
|
user: client.user ?? { id: ownUserId }
|
|
17159
17164
|
};
|
|
@@ -17769,8 +17774,9 @@ var ApiClient = class {
|
|
|
17769
17774
|
if (limit) rateLimit.rate_limit = parseInt(limit, 10);
|
|
17770
17775
|
const remaining = headers["x-ratelimit-remaining"];
|
|
17771
17776
|
if (remaining) rateLimit.rate_limit_remaining = parseInt(remaining, 10);
|
|
17772
|
-
const reset = headers["x-ratelimit-reset"];
|
|
17773
|
-
if (reset)
|
|
17777
|
+
const reset = Number(headers["x-ratelimit-reset"]);
|
|
17778
|
+
if (Number.isFinite(reset) && reset > 0)
|
|
17779
|
+
rateLimit.rate_limit_reset = new Date(reset * 1e3);
|
|
17774
17780
|
return {
|
|
17775
17781
|
response_headers: headers,
|
|
17776
17782
|
rate_limit: rateLimit,
|
|
@@ -17971,6 +17977,7 @@ var ModerationApi = class {
|
|
|
17971
17977
|
appeal_reason: request?.appeal_reason,
|
|
17972
17978
|
entity_id: request?.entity_id,
|
|
17973
17979
|
entity_type: request?.entity_type,
|
|
17980
|
+
channel_cid: request?.channel_cid,
|
|
17974
17981
|
review_queue_item_id: request?.review_queue_item_id,
|
|
17975
17982
|
attachments: request?.attachments
|
|
17976
17983
|
};
|
|
@@ -23317,6 +23324,7 @@ var ChatApi = class {
|
|
|
23317
23324
|
id: request?.id,
|
|
23318
23325
|
is_closed: request?.is_closed,
|
|
23319
23326
|
max_votes_allowed: request?.max_votes_allowed,
|
|
23327
|
+
team: request?.team,
|
|
23320
23328
|
voting_visibility: request?.voting_visibility,
|
|
23321
23329
|
options: request?.options,
|
|
23322
23330
|
custom: request?.custom
|
|
@@ -24404,7 +24412,7 @@ var StreamChat = class _StreamChat extends ChatApi {
|
|
|
24404
24412
|
return this.userAgent;
|
|
24405
24413
|
}
|
|
24406
24414
|
if (!this.cachedUserAgent) {
|
|
24407
|
-
const version = "10.0.0-rc.
|
|
24415
|
+
const version = "10.0.0-rc.14";
|
|
24408
24416
|
const { name: sdkName, version: sdkVersion } = this.sdkIdentifier ?? {};
|
|
24409
24417
|
const { name: appName, version: appVersion } = this.appIdentifier ?? {};
|
|
24410
24418
|
const { os, model: deviceModel } = this.deviceIdentifier ?? {};
|
|
@@ -25222,6 +25230,10 @@ var StreamChat = class _StreamChat extends ChatApi {
|
|
|
25222
25230
|
/**
|
|
25223
25231
|
* Pins the message.
|
|
25224
25232
|
*
|
|
25233
|
+
* A `number` is a relative offset in SECONDS, so a server-sent timestamp (`message.pinned_at`,
|
|
25234
|
+
* `message.pin_expires`) is rejected at compile time rather than read as ~1.79e18 seconds from now.
|
|
25235
|
+
* Hand one back as a date with `nsToDate(timestamp)`.
|
|
25236
|
+
*
|
|
25225
25237
|
* @param messageOrMessageId - MessageRequest object or message ID.
|
|
25226
25238
|
* @param timeoutOrExpirationDate - Expiration date or timeout. Use `number` to set the timeout
|
|
25227
25239
|
* in seconds, `string` or `Date` to set the exact expiration date (optional).
|
|
@@ -26675,13 +26687,13 @@ var AbstractOfflineDB = class {
|
|
|
26675
26687
|
execute = true
|
|
26676
26688
|
}) => {
|
|
26677
26689
|
const {
|
|
26678
|
-
received_at: last_read = nowNs(),
|
|
26679
26690
|
last_read_message_id,
|
|
26680
26691
|
// @ts-expect-error property missing
|
|
26681
26692
|
unread_messages = 0,
|
|
26682
26693
|
user,
|
|
26683
26694
|
cid
|
|
26684
26695
|
} = event;
|
|
26696
|
+
const last_read = (event.type === "notification.mark_unread" ? event.last_read_at : void 0) ?? event.created_at ?? event.received_at ?? nowNs();
|
|
26685
26697
|
const overriddenUnreadMessages = unreadMessages ?? unread_messages;
|
|
26686
26698
|
if (user?.id && cid) {
|
|
26687
26699
|
return await this.queriesWithChannelGuard(
|