@stream-io/feeds-client 0.1.0
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/@react-bindings/index.ts +2 -0
- package/CHANGELOG.md +44 -0
- package/LICENSE +219 -0
- package/README.md +9 -0
- package/dist/@react-bindings/hooks/useComments.d.ts +12 -0
- package/dist/@react-bindings/hooks/useStateStore.d.ts +3 -0
- package/dist/@react-bindings/index.d.ts +2 -0
- package/dist/index-react-bindings.browser.cjs +56 -0
- package/dist/index-react-bindings.browser.cjs.map +1 -0
- package/dist/index-react-bindings.browser.js +53 -0
- package/dist/index-react-bindings.browser.js.map +1 -0
- package/dist/index-react-bindings.node.cjs +56 -0
- package/dist/index-react-bindings.node.cjs.map +1 -0
- package/dist/index-react-bindings.node.js +53 -0
- package/dist/index-react-bindings.node.js.map +1 -0
- package/dist/index.browser.cjs +5799 -0
- package/dist/index.browser.cjs.map +1 -0
- package/dist/index.browser.js +5782 -0
- package/dist/index.browser.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.node.cjs +5799 -0
- package/dist/index.node.cjs.map +1 -0
- package/dist/index.node.js +5782 -0
- package/dist/index.node.js.map +1 -0
- package/dist/src/Feed.d.ts +109 -0
- package/dist/src/FeedsClient.d.ts +63 -0
- package/dist/src/ModerationClient.d.ts +3 -0
- package/dist/src/common/ActivitySearchSource.d.ts +17 -0
- package/dist/src/common/ApiClient.d.ts +20 -0
- package/dist/src/common/BaseSearchSource.d.ts +87 -0
- package/dist/src/common/ConnectionIdManager.d.ts +11 -0
- package/dist/src/common/EventDispatcher.d.ts +11 -0
- package/dist/src/common/FeedSearchSource.d.ts +17 -0
- package/dist/src/common/Poll.d.ts +34 -0
- package/dist/src/common/SearchController.d.ts +41 -0
- package/dist/src/common/StateStore.d.ts +124 -0
- package/dist/src/common/TokenManager.d.ts +29 -0
- package/dist/src/common/UserSearchSource.d.ts +17 -0
- package/dist/src/common/gen-imports.d.ts +2 -0
- package/dist/src/common/rate-limit.d.ts +2 -0
- package/dist/src/common/real-time/StableWSConnection.d.ts +144 -0
- package/dist/src/common/real-time/event-models.d.ts +36 -0
- package/dist/src/common/types.d.ts +29 -0
- package/dist/src/common/utils.d.ts +54 -0
- package/dist/src/gen/feeds/FeedApi.d.ts +26 -0
- package/dist/src/gen/feeds/FeedsApi.d.ts +237 -0
- package/dist/src/gen/model-decoders/decoders.d.ts +3 -0
- package/dist/src/gen/model-decoders/event-decoder-mapping.d.ts +6 -0
- package/dist/src/gen/models/index.d.ts +3437 -0
- package/dist/src/gen/moderation/ModerationApi.d.ts +21 -0
- package/dist/src/gen-imports.d.ts +3 -0
- package/dist/src/state-updates/activity-reaction-utils.d.ts +10 -0
- package/dist/src/state-updates/activity-utils.d.ts +13 -0
- package/dist/src/state-updates/bookmark-utils.d.ts +14 -0
- package/dist/src/types-internal.d.ts +4 -0
- package/dist/src/types.d.ts +13 -0
- package/dist/src/utils.d.ts +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/index.ts +13 -0
- package/package.json +85 -0
- package/src/Feed.ts +1070 -0
- package/src/FeedsClient.ts +352 -0
- package/src/ModerationClient.ts +3 -0
- package/src/common/ActivitySearchSource.ts +46 -0
- package/src/common/ApiClient.ts +197 -0
- package/src/common/BaseSearchSource.ts +238 -0
- package/src/common/ConnectionIdManager.ts +51 -0
- package/src/common/EventDispatcher.ts +52 -0
- package/src/common/FeedSearchSource.ts +94 -0
- package/src/common/Poll.ts +313 -0
- package/src/common/SearchController.ts +152 -0
- package/src/common/StateStore.ts +314 -0
- package/src/common/TokenManager.ts +112 -0
- package/src/common/UserSearchSource.ts +93 -0
- package/src/common/gen-imports.ts +2 -0
- package/src/common/rate-limit.ts +23 -0
- package/src/common/real-time/StableWSConnection.ts +761 -0
- package/src/common/real-time/event-models.ts +38 -0
- package/src/common/types.ts +40 -0
- package/src/common/utils.ts +194 -0
- package/src/gen/feeds/FeedApi.ts +129 -0
- package/src/gen/feeds/FeedsApi.ts +2192 -0
- package/src/gen/model-decoders/decoders.ts +1877 -0
- package/src/gen/model-decoders/event-decoder-mapping.ts +150 -0
- package/src/gen/models/index.ts +5882 -0
- package/src/gen/moderation/ModerationApi.ts +270 -0
- package/src/gen-imports.ts +3 -0
- package/src/state-updates/activity-reaction-utils.test.ts +348 -0
- package/src/state-updates/activity-reaction-utils.ts +107 -0
- package/src/state-updates/activity-utils.test.ts +257 -0
- package/src/state-updates/activity-utils.ts +80 -0
- package/src/state-updates/bookmark-utils.test.ts +383 -0
- package/src/state-updates/bookmark-utils.ts +157 -0
- package/src/types-internal.ts +5 -0
- package/src/types.ts +20 -0
- package/src/utils.ts +4 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import type { LogLevel } from '../types';
|
|
2
|
+
import type { UserRequest } from '../../gen/models';
|
|
3
|
+
import { TokenManager } from '../TokenManager';
|
|
4
|
+
import { ConnectionIdManager } from '../ConnectionIdManager';
|
|
5
|
+
import { ConnectedEvent } from './event-models';
|
|
6
|
+
export type WSConfig = {
|
|
7
|
+
baseUrl: string;
|
|
8
|
+
user: UserRequest;
|
|
9
|
+
};
|
|
10
|
+
type WSError = Error & {
|
|
11
|
+
code?: string | number;
|
|
12
|
+
isWSFailure?: boolean;
|
|
13
|
+
StatusCode?: string | number;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* StableWSConnection - A WS connection that reconnects upon failure.
|
|
17
|
+
* - the browser will sometimes report that you're online or offline
|
|
18
|
+
* - the WS connection can break and fail (there is a 30s health check)
|
|
19
|
+
* - sometimes your WS connection will seem to work while the user is in fact offline
|
|
20
|
+
* - to speed up online/offline detection you can use the window.addEventListener('offline');
|
|
21
|
+
*
|
|
22
|
+
* There are 4 ways in which a connection can become unhealthy:
|
|
23
|
+
* - websocket.onerror is called
|
|
24
|
+
* - websocket.onclose is called
|
|
25
|
+
* - the health check fails and no event is received for ~40 seconds
|
|
26
|
+
* - the browser indicates the connection is now offline
|
|
27
|
+
*
|
|
28
|
+
* There are 2 assumptions we make about the server:
|
|
29
|
+
* - state can be recovered by querying the channel again
|
|
30
|
+
* - if the servers fails to publish a message to the client, the WS connection is destroyed
|
|
31
|
+
*/
|
|
32
|
+
export declare class StableWSConnection {
|
|
33
|
+
private readonly config;
|
|
34
|
+
private readonly tokenManager;
|
|
35
|
+
private readonly connectionIdManager;
|
|
36
|
+
private readonly decoders;
|
|
37
|
+
connectionID?: string;
|
|
38
|
+
connectionOpen?: Promise<ConnectedEvent>;
|
|
39
|
+
authenticationSent: boolean;
|
|
40
|
+
consecutiveFailures: number;
|
|
41
|
+
pingInterval: number;
|
|
42
|
+
healthCheckTimeoutRef?: NodeJS.Timeout;
|
|
43
|
+
isConnecting: boolean;
|
|
44
|
+
isDisconnected: boolean;
|
|
45
|
+
isHealthy: boolean;
|
|
46
|
+
isResolved?: boolean;
|
|
47
|
+
lastEvent: Date | null;
|
|
48
|
+
connectionCheckTimeout: number;
|
|
49
|
+
connectionCheckTimeoutRef?: NodeJS.Timeout;
|
|
50
|
+
rejectPromise?: (reason?: WSError) => void;
|
|
51
|
+
requestID: string | undefined;
|
|
52
|
+
resolvePromise?: (value: ConnectedEvent) => void;
|
|
53
|
+
totalFailures: number;
|
|
54
|
+
ws?: WebSocket;
|
|
55
|
+
wsID: number;
|
|
56
|
+
private readonly dispatcher;
|
|
57
|
+
private readonly clientId;
|
|
58
|
+
constructor(config: WSConfig, tokenManager: TokenManager, connectionIdManager: ConnectionIdManager, decoders?: Array<(event: any) => any>);
|
|
59
|
+
_log: (msg: string, extra?: any, level?: LogLevel) => void;
|
|
60
|
+
on: (eventName: "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated" | "connection.changed" | "network.changed", handler: (event: import("../../types").FeedsEvent) => void) => () => void;
|
|
61
|
+
off: (eventName: "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated" | "connection.changed" | "network.changed", handler: (event: import("../../types").FeedsEvent) => void) => void;
|
|
62
|
+
offAll: (eventName?: "all" | "app.updated" | "feeds.activity.added" | "feeds.activity.deleted" | "feeds.activity.marked" | "feeds.activity.pinned" | "feeds.activity.reaction.added" | "feeds.activity.reaction.deleted" | "feeds.activity.reaction.updated" | "feeds.activity.removed_from_feed" | "feeds.activity.unpinned" | "feeds.activity.updated" | "feeds.bookmark.added" | "feeds.bookmark.deleted" | "feeds.bookmark.updated" | "feeds.comment.added" | "feeds.comment.deleted" | "feeds.comment.reaction.added" | "feeds.comment.reaction.deleted" | "feeds.comment.reaction.updated" | "feeds.comment.updated" | "feeds.feed.created" | "feeds.feed.deleted" | "feeds.feed.updated" | "feeds.feed_group.changed" | "feeds.feed_group.deleted" | "feeds.feed_member.added" | "feeds.feed_member.removed" | "feeds.feed_member.updated" | "feeds.follow.created" | "feeds.follow.deleted" | "feeds.follow.updated" | "feeds.poll.closed" | "feeds.poll.deleted" | "feeds.poll.updated" | "feeds.poll.vote_casted" | "feeds.poll.vote_changed" | "feeds.poll.vote_removed" | "health.check" | "user.updated" | "moderation.custom_action" | "moderation.flagged" | "moderation.mark_reviewed" | "user.banned" | "user.deactivated" | "user.muted" | "user.reactivated" | "connection.changed" | "network.changed" | undefined) => void;
|
|
63
|
+
/**
|
|
64
|
+
* connect - Connect to the WS URL
|
|
65
|
+
* the default 15s timeout allows between 2~3 tries
|
|
66
|
+
* @return {ConnectAPIResponse<ConnectedEvent>} Promise that completes once the first health check message is received
|
|
67
|
+
*/
|
|
68
|
+
connect(timeout?: number): Promise<ConnectedEvent | undefined>;
|
|
69
|
+
/**
|
|
70
|
+
* _waitForHealthy polls the promise connection to see if its resolved until it times out
|
|
71
|
+
* the default 15s timeout allows between 2~3 tries
|
|
72
|
+
* @param timeout duration(ms)
|
|
73
|
+
*/
|
|
74
|
+
_waitForHealthy(timeout?: number): Promise<ConnectedEvent | undefined>;
|
|
75
|
+
/**
|
|
76
|
+
* disconnect - Disconnect the connection and doesn't recover...
|
|
77
|
+
*
|
|
78
|
+
*/
|
|
79
|
+
disconnect(timeout?: number): Promise<void>;
|
|
80
|
+
/**
|
|
81
|
+
* _connect - Connect to the WS endpoint
|
|
82
|
+
*
|
|
83
|
+
* @return {ConnectAPIResponse<ConnectedEvent>} Promise that completes once the first health check message is received
|
|
84
|
+
*/
|
|
85
|
+
_connect(): Promise<ConnectedEvent | undefined>;
|
|
86
|
+
/**
|
|
87
|
+
* _reconnect - Retry the connection to WS endpoint
|
|
88
|
+
*
|
|
89
|
+
* @param {{ interval?: number; refreshToken?: boolean }} options Following options are available
|
|
90
|
+
*
|
|
91
|
+
* - `interval` {int} number of ms that function should wait before reconnecting
|
|
92
|
+
* - `refreshToken` {boolean} reload/refresh user token be refreshed before attempting reconnection.
|
|
93
|
+
*/
|
|
94
|
+
_reconnect(options?: {
|
|
95
|
+
interval?: number;
|
|
96
|
+
refreshToken?: boolean;
|
|
97
|
+
}): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* onlineStatusChanged - this function is called when the browser connects or disconnects from the internet.
|
|
100
|
+
*
|
|
101
|
+
* @param {Event} event Event with type online or offline
|
|
102
|
+
*
|
|
103
|
+
*/
|
|
104
|
+
onlineStatusChanged: (event: Event) => void;
|
|
105
|
+
onopen: (wsID: number) => Promise<void>;
|
|
106
|
+
onmessage: (wsID: number, event: MessageEvent) => void;
|
|
107
|
+
onclose: (wsID: number, event: CloseEvent) => void;
|
|
108
|
+
onerror: (wsID: number, event: Event) => void;
|
|
109
|
+
/**
|
|
110
|
+
* _setHealth - Sets the connection to healthy or unhealthy.
|
|
111
|
+
* Broadcasts an event in case the connection status changed.
|
|
112
|
+
*
|
|
113
|
+
* @param {boolean} healthy boolean indicating if the connection is healthy or not
|
|
114
|
+
* @param {boolean} dispatchImmediately boolean indicating to dispatch event immediately even if the connection is unhealthy
|
|
115
|
+
*
|
|
116
|
+
*/
|
|
117
|
+
_setHealth: (healthy: boolean, dispatchImmediately?: boolean) => void;
|
|
118
|
+
dispatchConnectionChanged: () => void;
|
|
119
|
+
/**
|
|
120
|
+
* _errorFromWSEvent - Creates an error object for the WS event
|
|
121
|
+
*
|
|
122
|
+
*/
|
|
123
|
+
_errorFromWSEvent: (event: CloseEvent | Event | ErrorEvent, isWSFailure?: boolean) => WSError;
|
|
124
|
+
/**
|
|
125
|
+
* _destroyCurrentWSConnection - Removes the current WS connection
|
|
126
|
+
*
|
|
127
|
+
*/
|
|
128
|
+
_destroyCurrentWSConnection(): void;
|
|
129
|
+
/**
|
|
130
|
+
* _setupPromise - sets up the this.connectOpen promise
|
|
131
|
+
*/
|
|
132
|
+
_setupConnectionPromise: () => void;
|
|
133
|
+
/**
|
|
134
|
+
* Schedules a next health check ping for websocket.
|
|
135
|
+
*/
|
|
136
|
+
scheduleNextPing: () => void;
|
|
137
|
+
/**
|
|
138
|
+
* scheduleConnectionCheck - schedules a check for time difference between last received event and now.
|
|
139
|
+
* If the difference is more than 35 seconds, it means our health check logic has failed and websocket needs
|
|
140
|
+
* to be reconnected.
|
|
141
|
+
*/
|
|
142
|
+
scheduleConnectionCheck: () => void;
|
|
143
|
+
}
|
|
144
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { OwnUser } from '../../gen/models';
|
|
2
|
+
export interface ConnectionChangedEvent {
|
|
3
|
+
type: 'connection.changed';
|
|
4
|
+
online: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* This event is sent when the WS connection is established and authenticated, this event contains the full user object as it is stored on the server
|
|
8
|
+
* @export
|
|
9
|
+
* @interface ConnectedEvent
|
|
10
|
+
*/
|
|
11
|
+
export interface ConnectedEvent {
|
|
12
|
+
/**
|
|
13
|
+
* The connection_id for this client
|
|
14
|
+
* @type {string}
|
|
15
|
+
* @memberof ConnectedEvent
|
|
16
|
+
*/
|
|
17
|
+
connection_id: string;
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @type {string}
|
|
21
|
+
* @memberof ConnectedEvent
|
|
22
|
+
*/
|
|
23
|
+
created_at: string;
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @type {OwnUserResponse}
|
|
27
|
+
* @memberof ConnectedEvent
|
|
28
|
+
*/
|
|
29
|
+
me: OwnUser;
|
|
30
|
+
/**
|
|
31
|
+
* The type of event: "connection.ok" in this case
|
|
32
|
+
* @type {string}
|
|
33
|
+
* @memberof ConnectedEvent
|
|
34
|
+
*/
|
|
35
|
+
type: string;
|
|
36
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type FeedsClientOptions = {
|
|
2
|
+
base_url?: string;
|
|
3
|
+
timeout?: number;
|
|
4
|
+
};
|
|
5
|
+
export type RateLimit = {
|
|
6
|
+
rate_limit?: number;
|
|
7
|
+
rate_limit_remaining?: number;
|
|
8
|
+
rate_limit_reset?: Date;
|
|
9
|
+
};
|
|
10
|
+
export type RequestMetadata = {
|
|
11
|
+
response_headers: Record<string, string>;
|
|
12
|
+
rate_limit: RateLimit;
|
|
13
|
+
response_code: number;
|
|
14
|
+
client_request_id: string;
|
|
15
|
+
};
|
|
16
|
+
export type StreamResponse<T> = T & {
|
|
17
|
+
metadata: RequestMetadata;
|
|
18
|
+
};
|
|
19
|
+
export declare class StreamApiError extends Error {
|
|
20
|
+
metadata?: Partial<RequestMetadata> | undefined;
|
|
21
|
+
code?: number | undefined;
|
|
22
|
+
name: string;
|
|
23
|
+
constructor(message: string, metadata?: Partial<RequestMetadata> | undefined, code?: number | undefined, errorOptions?: ErrorOptions);
|
|
24
|
+
}
|
|
25
|
+
export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error';
|
|
26
|
+
export interface NetworkChangedEvent {
|
|
27
|
+
type: 'network.changed';
|
|
28
|
+
online: boolean;
|
|
29
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export declare const sleep: (m: number) => Promise<void>;
|
|
2
|
+
export declare function isFunction<T>(value: Function | T): value is Function;
|
|
3
|
+
/**
|
|
4
|
+
* A map of known error codes.
|
|
5
|
+
*/
|
|
6
|
+
export declare const KnownCodes: {
|
|
7
|
+
TOKEN_EXPIRED: number;
|
|
8
|
+
WS_CLOSED_SUCCESS: number;
|
|
9
|
+
WS_CLOSED_ABRUPTLY: number;
|
|
10
|
+
WS_POLICY_VIOLATION: number;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* retryInterval - A retry interval which increases acc to number of failures
|
|
14
|
+
*
|
|
15
|
+
* @return {number} Duration to wait in milliseconds
|
|
16
|
+
*/
|
|
17
|
+
export declare function retryInterval(numberOfFailures: number): number;
|
|
18
|
+
export declare function randomId(): string;
|
|
19
|
+
export declare function generateUUIDv4(): string;
|
|
20
|
+
/**
|
|
21
|
+
* listenForConnectionChanges - Adds an event listener fired on browser going online or offline
|
|
22
|
+
*/
|
|
23
|
+
export declare function addConnectionEventListeners(cb: (e: Event) => void): void;
|
|
24
|
+
export declare function removeConnectionEventListeners(cb: (e: Event) => void): void;
|
|
25
|
+
export declare const streamDevToken: (userId: string) => string;
|
|
26
|
+
export interface DebouncedFunc<T extends (...args: any[]) => any> {
|
|
27
|
+
/**
|
|
28
|
+
* Call the original function, but applying the debounce rules.
|
|
29
|
+
*
|
|
30
|
+
* If the debounced function can be run immediately, this calls it and returns its return
|
|
31
|
+
* value.
|
|
32
|
+
*
|
|
33
|
+
* Otherwise, it returns the return value of the last invocation, or undefined if the debounced
|
|
34
|
+
* function was not invoked yet.
|
|
35
|
+
*/
|
|
36
|
+
(...args: Parameters<T>): ReturnType<T> | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Throw away any pending invocation of the debounced function.
|
|
39
|
+
*/
|
|
40
|
+
cancel(): void;
|
|
41
|
+
/**
|
|
42
|
+
* If there is a pending invocation of the debounced function, invoke it immediately and return
|
|
43
|
+
* its return value.
|
|
44
|
+
*
|
|
45
|
+
* Otherwise, return the value from the last invocation, or undefined if the debounced function
|
|
46
|
+
* was never invoked.
|
|
47
|
+
*/
|
|
48
|
+
flush(): ReturnType<T> | undefined;
|
|
49
|
+
}
|
|
50
|
+
export declare const debounce: <T extends (...args: any[]) => any>(fn: T, timeout?: number, { leading, trailing, }?: {
|
|
51
|
+
leading?: boolean;
|
|
52
|
+
trailing?: boolean;
|
|
53
|
+
}) => DebouncedFunc<T>;
|
|
54
|
+
export declare const capitalize: <T extends string>(s: T) => Capitalize<T>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { StreamResponse, FeedsApi } from '../../gen-imports';
|
|
2
|
+
import { AcceptFeedMemberInviteRequest, AcceptFeedMemberInviteResponse, DeleteFeedResponse, GetOrCreateFeedRequest, GetOrCreateFeedResponse, MarkActivityRequest, PinActivityRequest, PinActivityResponse, QueryFeedMembersRequest, QueryFeedMembersResponse, RejectFeedMemberInviteRequest, RejectFeedMemberInviteResponse, Response, UnpinActivityResponse, UpdateFeedMembersRequest, UpdateFeedMembersResponse, UpdateFeedRequest, UpdateFeedResponse } from '../models';
|
|
3
|
+
export declare class FeedApi {
|
|
4
|
+
protected feedsApi: FeedsApi;
|
|
5
|
+
readonly group: string;
|
|
6
|
+
readonly id: string;
|
|
7
|
+
constructor(feedsApi: FeedsApi, group: string, id: string);
|
|
8
|
+
delete(request?: {
|
|
9
|
+
hard_delete?: boolean;
|
|
10
|
+
}): Promise<StreamResponse<DeleteFeedResponse>>;
|
|
11
|
+
getOrCreate(request?: GetOrCreateFeedRequest & {
|
|
12
|
+
connection_id?: string;
|
|
13
|
+
}): Promise<StreamResponse<GetOrCreateFeedResponse>>;
|
|
14
|
+
update(request?: UpdateFeedRequest): Promise<StreamResponse<UpdateFeedResponse>>;
|
|
15
|
+
markActivity(request?: MarkActivityRequest): Promise<StreamResponse<Response>>;
|
|
16
|
+
unpinActivity(request: {
|
|
17
|
+
activity_id: string;
|
|
18
|
+
}): Promise<StreamResponse<UnpinActivityResponse>>;
|
|
19
|
+
pinActivity(request: PinActivityRequest & {
|
|
20
|
+
activity_id: string;
|
|
21
|
+
}): Promise<StreamResponse<PinActivityResponse>>;
|
|
22
|
+
updateFeedMembers(request: UpdateFeedMembersRequest): Promise<StreamResponse<UpdateFeedMembersResponse>>;
|
|
23
|
+
acceptFeedMemberInvite(request?: AcceptFeedMemberInviteRequest): Promise<StreamResponse<AcceptFeedMemberInviteResponse>>;
|
|
24
|
+
queryFeedMembers(request?: QueryFeedMembersRequest): Promise<StreamResponse<QueryFeedMembersResponse>>;
|
|
25
|
+
rejectFeedMemberInvite(request?: RejectFeedMemberInviteRequest): Promise<StreamResponse<RejectFeedMemberInviteResponse>>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { ApiClient, StreamResponse } from '../../gen-imports';
|
|
2
|
+
import { AcceptFeedMemberInviteRequest, AcceptFeedMemberInviteResponse, AcceptFollowRequest, AcceptFollowResponse, AddActivityRequest, AddActivityResponse, AddBookmarkRequest, AddBookmarkResponse, AddCommentReactionRequest, AddCommentReactionResponse, AddCommentRequest, AddCommentResponse, AddCommentsBatchRequest, AddCommentsBatchResponse, AddReactionRequest, AddReactionResponse, BlockUsersRequest, BlockUsersResponse, CastPollVoteRequest, CreateBlockListRequest, CreateBlockListResponse, CreateDeviceRequest, CreateFeedsBatchRequest, CreateFeedsBatchResponse, CreateGuestRequest, CreateGuestResponse, CreatePollOptionRequest, CreatePollRequest, DeleteActivitiesRequest, DeleteActivitiesResponse, DeleteActivityReactionResponse, DeleteActivityResponse, DeleteBookmarkResponse, DeleteCommentReactionResponse, DeleteCommentResponse, DeleteFeedResponse, FileUploadRequest, FileUploadResponse, FollowBatchRequest, FollowBatchResponse, GetActivityResponse, GetApplicationResponse, GetBlockedUsersResponse, GetCommentRepliesResponse, GetCommentResponse, GetCommentsResponse, GetFollowSuggestionsResponse, GetOGResponse, GetOrCreateFeedRequest, GetOrCreateFeedResponse, ImageUploadRequest, ImageUploadResponse, ListBlockListResponse, ListDevicesResponse, MarkActivityRequest, PinActivityRequest, PinActivityResponse, PollOptionResponse, PollResponse, PollVoteResponse, PollVotesResponse, QueryActivitiesRequest, QueryActivitiesResponse, QueryActivityReactionsRequest, QueryActivityReactionsResponse, QueryBookmarkFoldersRequest, QueryBookmarkFoldersResponse, QueryBookmarksRequest, QueryBookmarksResponse, QueryCommentReactionsRequest, QueryCommentReactionsResponse, QueryCommentsRequest, QueryCommentsResponse, QueryFeedMembersRequest, QueryFeedMembersResponse, QueryFeedsRequest, QueryFeedsResponse, QueryFollowsRequest, QueryFollowsResponse, QueryPollVotesRequest, QueryPollsRequest, QueryPollsResponse, QueryUsersPayload, QueryUsersResponse, RejectFeedMemberInviteRequest, RejectFeedMemberInviteResponse, RejectFollowRequest, RejectFollowResponse, Response, SharedLocationResponse, SharedLocationsResponse, SingleFollowRequest, SingleFollowResponse, UnblockUsersRequest, UnblockUsersResponse, UnfollowResponse, UnpinActivityResponse, UpdateActivityPartialRequest, UpdateActivityPartialResponse, UpdateActivityRequest, UpdateActivityResponse, UpdateBlockListRequest, UpdateBlockListResponse, UpdateBookmarkRequest, UpdateBookmarkResponse, UpdateCommentRequest, UpdateCommentResponse, UpdateFeedMembersRequest, UpdateFeedMembersResponse, UpdateFeedRequest, UpdateFeedResponse, UpdateFollowRequest, UpdateFollowResponse, UpdateLiveLocationRequest, UpdatePollOptionRequest, UpdatePollPartialRequest, UpdatePollRequest, UpdateUsersPartialRequest, UpdateUsersRequest, UpdateUsersResponse, UpsertActivitiesRequest, UpsertActivitiesResponse, WSAuthMessage } from '../models';
|
|
3
|
+
export declare class FeedsApi {
|
|
4
|
+
readonly apiClient: ApiClient;
|
|
5
|
+
constructor(apiClient: ApiClient);
|
|
6
|
+
getApp(): Promise<StreamResponse<GetApplicationResponse>>;
|
|
7
|
+
listBlockLists(request?: {
|
|
8
|
+
team?: string;
|
|
9
|
+
}): Promise<StreamResponse<ListBlockListResponse>>;
|
|
10
|
+
createBlockList(request: CreateBlockListRequest): Promise<StreamResponse<CreateBlockListResponse>>;
|
|
11
|
+
deleteBlockList(request: {
|
|
12
|
+
name: string;
|
|
13
|
+
team?: string;
|
|
14
|
+
}): Promise<StreamResponse<Response>>;
|
|
15
|
+
updateBlockList(request: UpdateBlockListRequest & {
|
|
16
|
+
name: string;
|
|
17
|
+
}): Promise<StreamResponse<UpdateBlockListResponse>>;
|
|
18
|
+
deleteDevice(request: {
|
|
19
|
+
id: string;
|
|
20
|
+
}): Promise<StreamResponse<Response>>;
|
|
21
|
+
listDevices(): Promise<StreamResponse<ListDevicesResponse>>;
|
|
22
|
+
createDevice(request: CreateDeviceRequest): Promise<StreamResponse<Response>>;
|
|
23
|
+
addActivity(request: AddActivityRequest): Promise<StreamResponse<AddActivityResponse>>;
|
|
24
|
+
upsertActivities(request: UpsertActivitiesRequest): Promise<StreamResponse<UpsertActivitiesResponse>>;
|
|
25
|
+
deleteActivities(request: DeleteActivitiesRequest): Promise<StreamResponse<DeleteActivitiesResponse>>;
|
|
26
|
+
queryActivities(request?: QueryActivitiesRequest): Promise<StreamResponse<QueryActivitiesResponse>>;
|
|
27
|
+
deleteActivity(request: {
|
|
28
|
+
activity_id: string;
|
|
29
|
+
hard_delete?: boolean;
|
|
30
|
+
}): Promise<StreamResponse<DeleteActivityResponse>>;
|
|
31
|
+
getActivity(request: {
|
|
32
|
+
activity_id: string;
|
|
33
|
+
}): Promise<StreamResponse<GetActivityResponse>>;
|
|
34
|
+
updateActivityPartial(request: UpdateActivityPartialRequest & {
|
|
35
|
+
activity_id: string;
|
|
36
|
+
}): Promise<StreamResponse<UpdateActivityPartialResponse>>;
|
|
37
|
+
updateActivity(request: UpdateActivityRequest & {
|
|
38
|
+
activity_id: string;
|
|
39
|
+
}): Promise<StreamResponse<UpdateActivityResponse>>;
|
|
40
|
+
deleteBookmark(request: {
|
|
41
|
+
activity_id: string;
|
|
42
|
+
folder_id?: string;
|
|
43
|
+
}): Promise<StreamResponse<DeleteBookmarkResponse>>;
|
|
44
|
+
updateBookmark(request: UpdateBookmarkRequest & {
|
|
45
|
+
activity_id: string;
|
|
46
|
+
}): Promise<StreamResponse<UpdateBookmarkResponse>>;
|
|
47
|
+
addBookmark(request: AddBookmarkRequest & {
|
|
48
|
+
activity_id: string;
|
|
49
|
+
}): Promise<StreamResponse<AddBookmarkResponse>>;
|
|
50
|
+
castPollVote(request: CastPollVoteRequest & {
|
|
51
|
+
activity_id: string;
|
|
52
|
+
poll_id: string;
|
|
53
|
+
}): Promise<StreamResponse<PollVoteResponse>>;
|
|
54
|
+
deletePollVote(request: {
|
|
55
|
+
activity_id: string;
|
|
56
|
+
poll_id: string;
|
|
57
|
+
vote_id: string;
|
|
58
|
+
user_id?: string;
|
|
59
|
+
}): Promise<StreamResponse<PollVoteResponse>>;
|
|
60
|
+
addReaction(request: AddReactionRequest & {
|
|
61
|
+
activity_id: string;
|
|
62
|
+
}): Promise<StreamResponse<AddReactionResponse>>;
|
|
63
|
+
queryActivityReactions(request: QueryActivityReactionsRequest & {
|
|
64
|
+
activity_id: string;
|
|
65
|
+
}): Promise<StreamResponse<QueryActivityReactionsResponse>>;
|
|
66
|
+
deleteActivityReaction(request: {
|
|
67
|
+
activity_id: string;
|
|
68
|
+
type: string;
|
|
69
|
+
}): Promise<StreamResponse<DeleteActivityReactionResponse>>;
|
|
70
|
+
queryBookmarkFolders(request?: QueryBookmarkFoldersRequest): Promise<StreamResponse<QueryBookmarkFoldersResponse>>;
|
|
71
|
+
queryBookmarks(request?: QueryBookmarksRequest): Promise<StreamResponse<QueryBookmarksResponse>>;
|
|
72
|
+
getComments(request: {
|
|
73
|
+
object_id: string;
|
|
74
|
+
object_type: string;
|
|
75
|
+
depth?: number;
|
|
76
|
+
sort?: string;
|
|
77
|
+
replies_limit?: number;
|
|
78
|
+
limit?: number;
|
|
79
|
+
prev?: string;
|
|
80
|
+
next?: string;
|
|
81
|
+
}): Promise<StreamResponse<GetCommentsResponse>>;
|
|
82
|
+
addComment(request: AddCommentRequest): Promise<StreamResponse<AddCommentResponse>>;
|
|
83
|
+
addCommentsBatch(request: AddCommentsBatchRequest): Promise<StreamResponse<AddCommentsBatchResponse>>;
|
|
84
|
+
queryComments(request: QueryCommentsRequest): Promise<StreamResponse<QueryCommentsResponse>>;
|
|
85
|
+
deleteComment(request: {
|
|
86
|
+
comment_id: string;
|
|
87
|
+
}): Promise<StreamResponse<DeleteCommentResponse>>;
|
|
88
|
+
getComment(request: {
|
|
89
|
+
comment_id: string;
|
|
90
|
+
}): Promise<StreamResponse<GetCommentResponse>>;
|
|
91
|
+
updateComment(request: UpdateCommentRequest & {
|
|
92
|
+
comment_id: string;
|
|
93
|
+
}): Promise<StreamResponse<UpdateCommentResponse>>;
|
|
94
|
+
addCommentReaction(request: AddCommentReactionRequest & {
|
|
95
|
+
comment_id: string;
|
|
96
|
+
}): Promise<StreamResponse<AddCommentReactionResponse>>;
|
|
97
|
+
queryCommentReactions(request: QueryCommentReactionsRequest & {
|
|
98
|
+
comment_id: string;
|
|
99
|
+
}): Promise<StreamResponse<QueryCommentReactionsResponse>>;
|
|
100
|
+
deleteCommentReaction(request: {
|
|
101
|
+
comment_id: string;
|
|
102
|
+
type: string;
|
|
103
|
+
}): Promise<StreamResponse<DeleteCommentReactionResponse>>;
|
|
104
|
+
getCommentReplies(request: {
|
|
105
|
+
comment_id: string;
|
|
106
|
+
depth?: number;
|
|
107
|
+
sort?: string;
|
|
108
|
+
replies_limit?: number;
|
|
109
|
+
limit?: number;
|
|
110
|
+
prev?: string;
|
|
111
|
+
next?: string;
|
|
112
|
+
}): Promise<StreamResponse<GetCommentRepliesResponse>>;
|
|
113
|
+
deleteFeed(request: {
|
|
114
|
+
feed_group_id: string;
|
|
115
|
+
feed_id: string;
|
|
116
|
+
hard_delete?: boolean;
|
|
117
|
+
}): Promise<StreamResponse<DeleteFeedResponse>>;
|
|
118
|
+
getOrCreateFeed(request: GetOrCreateFeedRequest & {
|
|
119
|
+
feed_group_id: string;
|
|
120
|
+
feed_id: string;
|
|
121
|
+
connection_id?: string;
|
|
122
|
+
}): Promise<StreamResponse<GetOrCreateFeedResponse>>;
|
|
123
|
+
updateFeed(request: UpdateFeedRequest & {
|
|
124
|
+
feed_group_id: string;
|
|
125
|
+
feed_id: string;
|
|
126
|
+
}): Promise<StreamResponse<UpdateFeedResponse>>;
|
|
127
|
+
markActivity(request: MarkActivityRequest & {
|
|
128
|
+
feed_group_id: string;
|
|
129
|
+
feed_id: string;
|
|
130
|
+
}): Promise<StreamResponse<Response>>;
|
|
131
|
+
unpinActivity(request: {
|
|
132
|
+
feed_group_id: string;
|
|
133
|
+
feed_id: string;
|
|
134
|
+
activity_id: string;
|
|
135
|
+
}): Promise<StreamResponse<UnpinActivityResponse>>;
|
|
136
|
+
pinActivity(request: PinActivityRequest & {
|
|
137
|
+
feed_group_id: string;
|
|
138
|
+
feed_id: string;
|
|
139
|
+
activity_id: string;
|
|
140
|
+
}): Promise<StreamResponse<PinActivityResponse>>;
|
|
141
|
+
updateFeedMembers(request: UpdateFeedMembersRequest & {
|
|
142
|
+
feed_group_id: string;
|
|
143
|
+
feed_id: string;
|
|
144
|
+
}): Promise<StreamResponse<UpdateFeedMembersResponse>>;
|
|
145
|
+
acceptFeedMemberInvite(request: AcceptFeedMemberInviteRequest & {
|
|
146
|
+
feed_id: string;
|
|
147
|
+
feed_group_id: string;
|
|
148
|
+
}): Promise<StreamResponse<AcceptFeedMemberInviteResponse>>;
|
|
149
|
+
queryFeedMembers(request: QueryFeedMembersRequest & {
|
|
150
|
+
feed_group_id: string;
|
|
151
|
+
feed_id: string;
|
|
152
|
+
}): Promise<StreamResponse<QueryFeedMembersResponse>>;
|
|
153
|
+
rejectFeedMemberInvite(request: RejectFeedMemberInviteRequest & {
|
|
154
|
+
feed_group_id: string;
|
|
155
|
+
feed_id: string;
|
|
156
|
+
}): Promise<StreamResponse<RejectFeedMemberInviteResponse>>;
|
|
157
|
+
getFollowSuggestions(request: {
|
|
158
|
+
feed_group_id: string;
|
|
159
|
+
limit?: number;
|
|
160
|
+
}): Promise<StreamResponse<GetFollowSuggestionsResponse>>;
|
|
161
|
+
createFeedsBatch(request: CreateFeedsBatchRequest): Promise<StreamResponse<CreateFeedsBatchResponse>>;
|
|
162
|
+
feedsQueryFeeds(request?: QueryFeedsRequest & {
|
|
163
|
+
connection_id?: string;
|
|
164
|
+
}): Promise<StreamResponse<QueryFeedsResponse>>;
|
|
165
|
+
updateFollow(request: UpdateFollowRequest): Promise<StreamResponse<UpdateFollowResponse>>;
|
|
166
|
+
follow(request: SingleFollowRequest): Promise<StreamResponse<SingleFollowResponse>>;
|
|
167
|
+
acceptFollow(request: AcceptFollowRequest): Promise<StreamResponse<AcceptFollowResponse>>;
|
|
168
|
+
followBatch(request: FollowBatchRequest): Promise<StreamResponse<FollowBatchResponse>>;
|
|
169
|
+
queryFollows(request?: QueryFollowsRequest): Promise<StreamResponse<QueryFollowsResponse>>;
|
|
170
|
+
rejectFollow(request: RejectFollowRequest): Promise<StreamResponse<RejectFollowResponse>>;
|
|
171
|
+
unfollow(request: {
|
|
172
|
+
source: string;
|
|
173
|
+
target: string;
|
|
174
|
+
}): Promise<StreamResponse<UnfollowResponse>>;
|
|
175
|
+
createGuest(request: CreateGuestRequest): Promise<StreamResponse<CreateGuestResponse>>;
|
|
176
|
+
longPoll(request?: {
|
|
177
|
+
connection_id?: string;
|
|
178
|
+
json?: WSAuthMessage;
|
|
179
|
+
}): Promise<StreamResponse<{}>>;
|
|
180
|
+
getOG(request: {
|
|
181
|
+
url: string;
|
|
182
|
+
}): Promise<StreamResponse<GetOGResponse>>;
|
|
183
|
+
createPoll(request: CreatePollRequest): Promise<StreamResponse<PollResponse>>;
|
|
184
|
+
updatePoll(request: UpdatePollRequest): Promise<StreamResponse<PollResponse>>;
|
|
185
|
+
queryPolls(request?: QueryPollsRequest & {
|
|
186
|
+
user_id?: string;
|
|
187
|
+
}): Promise<StreamResponse<QueryPollsResponse>>;
|
|
188
|
+
deletePoll(request: {
|
|
189
|
+
poll_id: string;
|
|
190
|
+
user_id?: string;
|
|
191
|
+
}): Promise<StreamResponse<Response>>;
|
|
192
|
+
getPoll(request: {
|
|
193
|
+
poll_id: string;
|
|
194
|
+
user_id?: string;
|
|
195
|
+
}): Promise<StreamResponse<PollResponse>>;
|
|
196
|
+
updatePollPartial(request: UpdatePollPartialRequest & {
|
|
197
|
+
poll_id: string;
|
|
198
|
+
}): Promise<StreamResponse<PollResponse>>;
|
|
199
|
+
createPollOption(request: CreatePollOptionRequest & {
|
|
200
|
+
poll_id: string;
|
|
201
|
+
}): Promise<StreamResponse<PollOptionResponse>>;
|
|
202
|
+
updatePollOption(request: UpdatePollOptionRequest & {
|
|
203
|
+
poll_id: string;
|
|
204
|
+
}): Promise<StreamResponse<PollOptionResponse>>;
|
|
205
|
+
deletePollOption(request: {
|
|
206
|
+
poll_id: string;
|
|
207
|
+
option_id: string;
|
|
208
|
+
user_id?: string;
|
|
209
|
+
}): Promise<StreamResponse<Response>>;
|
|
210
|
+
getPollOption(request: {
|
|
211
|
+
poll_id: string;
|
|
212
|
+
option_id: string;
|
|
213
|
+
user_id?: string;
|
|
214
|
+
}): Promise<StreamResponse<PollOptionResponse>>;
|
|
215
|
+
queryPollVotes(request: QueryPollVotesRequest & {
|
|
216
|
+
poll_id: string;
|
|
217
|
+
user_id?: string;
|
|
218
|
+
}): Promise<StreamResponse<PollVotesResponse>>;
|
|
219
|
+
deleteFile(request?: {
|
|
220
|
+
url?: string;
|
|
221
|
+
}): Promise<StreamResponse<Response>>;
|
|
222
|
+
uploadFile(request?: FileUploadRequest): Promise<StreamResponse<FileUploadResponse>>;
|
|
223
|
+
deleteImage(request?: {
|
|
224
|
+
url?: string;
|
|
225
|
+
}): Promise<StreamResponse<Response>>;
|
|
226
|
+
uploadImage(request?: ImageUploadRequest): Promise<StreamResponse<ImageUploadResponse>>;
|
|
227
|
+
queryUsers(request?: {
|
|
228
|
+
payload?: QueryUsersPayload;
|
|
229
|
+
}): Promise<StreamResponse<QueryUsersResponse>>;
|
|
230
|
+
updateUsersPartial(request: UpdateUsersPartialRequest): Promise<StreamResponse<UpdateUsersResponse>>;
|
|
231
|
+
updateUsers(request: UpdateUsersRequest): Promise<StreamResponse<UpdateUsersResponse>>;
|
|
232
|
+
getBlockedUsers(): Promise<StreamResponse<GetBlockedUsersResponse>>;
|
|
233
|
+
blockUsers(request: BlockUsersRequest): Promise<StreamResponse<BlockUsersResponse>>;
|
|
234
|
+
getUserLiveLocations(): Promise<StreamResponse<SharedLocationsResponse>>;
|
|
235
|
+
updateLiveLocation(request: UpdateLiveLocationRequest): Promise<StreamResponse<SharedLocationResponse>>;
|
|
236
|
+
unblockUsers(request: UnblockUsersRequest): Promise<StreamResponse<UnblockUsersResponse>>;
|
|
237
|
+
}
|