@stream-io/feeds-client 0.3.37 → 0.3.38
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/CHANGELOG.md +7 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/react-bindings.js +11 -5
- package/dist/cjs/react-bindings.js.map +1 -1
- package/dist/es/index.mjs +2 -2
- package/dist/es/react-bindings.mjs +11 -5
- package/dist/es/react-bindings.mjs.map +1 -1
- package/dist/{feeds-client-CExHb6GS.mjs → feeds-client-B5rMw7wy.mjs} +31 -13
- package/dist/{feeds-client-CExHb6GS.mjs.map → feeds-client-B5rMw7wy.mjs.map} +1 -1
- package/dist/{feeds-client-DEV6_pkH.js → feeds-client-eEru7Ibh.js} +31 -13
- package/dist/{feeds-client-DEV6_pkH.js.map → feeds-client-eEru7Ibh.js.map} +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/types/bindings/react/hooks/useCreateFeedsClient.d.ts +3 -3
- package/dist/types/bindings/react/hooks/useCreateFeedsClient.d.ts.map +1 -1
- package/dist/types/feeds-client/feeds-client.d.ts +7 -1
- package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/bindings/react/hooks/useCreateFeedsClient.ts +23 -12
- package/src/feeds-client/feeds-client.ts +43 -15
|
@@ -5,10 +5,10 @@ import type { FeedsClientOptions } from '../../../common/types';
|
|
|
5
5
|
/**
|
|
6
6
|
* A React hook to create, connect and return an instance of `FeedsClient`.
|
|
7
7
|
*/
|
|
8
|
-
export declare const useCreateFeedsClient: ({ apiKey, tokenOrProvider, userData, options, }: {
|
|
8
|
+
export declare const useCreateFeedsClient: ({ apiKey, tokenOrProvider, userData: userDataOrAnonymous, options, }: {
|
|
9
9
|
apiKey: string;
|
|
10
|
-
tokenOrProvider
|
|
11
|
-
userData: UserRequest;
|
|
10
|
+
tokenOrProvider?: TokenOrProvider;
|
|
11
|
+
userData: UserRequest | "anonymous";
|
|
12
12
|
options?: FeedsClientOptions;
|
|
13
13
|
}) => FeedsClient | null;
|
|
14
14
|
//# sourceMappingURL=useCreateFeedsClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateFeedsClient.d.ts","sourceRoot":"","sources":["../../../../../src/bindings/react/hooks/useCreateFeedsClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,
|
|
1
|
+
{"version":3,"file":"useCreateFeedsClient.d.ts","sourceRoot":"","sources":["../../../../../src/bindings/react/hooks/useCreateFeedsClient.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,sEAKlC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,EAAE,WAAW,GAAG,WAAW,CAAC;IACpC,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,uBAsDA,CAAC"}
|
|
@@ -10,6 +10,7 @@ import { type ThrottledGetBatchedOwnFields } from '../utils/throttling';
|
|
|
10
10
|
import { ActivityWithStateUpdates } from '../activity-with-state-updates/activity-with-state-updates';
|
|
11
11
|
export type FeedsClientState = {
|
|
12
12
|
connected_user: ConnectedUser | undefined;
|
|
13
|
+
is_anonymous: boolean;
|
|
13
14
|
is_ws_connection_healthy: boolean;
|
|
14
15
|
};
|
|
15
16
|
type FID = string;
|
|
@@ -34,7 +35,10 @@ export declare class FeedsClient extends FeedsApi {
|
|
|
34
35
|
private get allActiveFeeds();
|
|
35
36
|
pollFromState: (id: string) => StreamPoll | undefined;
|
|
36
37
|
hydratePollCache(activities: ActivityResponse[]): void;
|
|
37
|
-
|
|
38
|
+
connectAnonymous: () => Promise<void>;
|
|
39
|
+
connectUser: (user: UserRequest | {
|
|
40
|
+
id: "!anon";
|
|
41
|
+
}, tokenProvider?: TokenOrProvider) => Promise<void>;
|
|
38
42
|
devToken: (userId: string) => string;
|
|
39
43
|
closePoll: (request: {
|
|
40
44
|
poll_id: string;
|
|
@@ -182,6 +186,8 @@ export declare class FeedsClient extends FeedsApi {
|
|
|
182
186
|
private findAllActiveFeedsFromWSEvent;
|
|
183
187
|
private updateStateFromFollows;
|
|
184
188
|
private updateStateFromUnfollows;
|
|
189
|
+
private get initialState();
|
|
190
|
+
private checkIfUserIsConnected;
|
|
185
191
|
}
|
|
186
192
|
export {};
|
|
187
193
|
//# sourceMappingURL=feeds-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeds-client.d.ts","sourceRoot":"","sources":["../../../src/feeds-client/feeds-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,8BAA8B,EAC9B,6BAA6B,EAC7B,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EAEb,4BAA4B,EAC5B,sBAAsB,EAEtB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,WAAW,EAEZ,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,UAAU,EACV,eAAe,EAChB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAYpD,OAAO,KAAK,EACV,kBAAkB,EAElB,cAAc,EACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EACL,IAAI,EAiBL,MAAM,SAAS,CAAC;AASjB,OAAO,EAGL,KAAK,4BAA4B,EAGlC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,wBAAwB,EAAE,MAAM,4DAA4D,CAAC;AAStG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,cAAc,EAAE,aAAa,GAAG,SAAS,CAAC;IAC1C,wBAAwB,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,KAAK,GAAG,GAAG,MAAM,CAAC;AAElB,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,qBAAa,WAAY,SAAQ,QAAQ;IACvC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IAEtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,YAAY,CAAC,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IAEJ,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IAEtD,SAAS,CAAC,gBAAgB,EAAE,wBAAwB,EAAE,CAAM;IAC5D,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAM;IAE9C,OAAO,CAAC,kCAAkC,CAAK;IAE/C,SAAS,CAAC,0BAA0B,EAAG,4BAA4B,CAAC;IACpE,OAAO,CAAC,4BAA4B,CAAc;IAClD,OAAO,CAAC,0CAA0C,CAAU;gBAEhD,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB;
|
|
1
|
+
{"version":3,"file":"feeds-client.d.ts","sourceRoot":"","sources":["../../../src/feeds-client/feeds-client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,14 +11,23 @@ import type { FeedsClientOptions } from '../../../common/types';
|
|
|
11
11
|
export const useCreateFeedsClient = ({
|
|
12
12
|
apiKey,
|
|
13
13
|
tokenOrProvider,
|
|
14
|
-
userData,
|
|
14
|
+
userData: userDataOrAnonymous,
|
|
15
15
|
options,
|
|
16
16
|
}: {
|
|
17
17
|
apiKey: string;
|
|
18
|
-
tokenOrProvider
|
|
19
|
-
userData: UserRequest;
|
|
18
|
+
tokenOrProvider?: TokenOrProvider;
|
|
19
|
+
userData: UserRequest | 'anonymous';
|
|
20
20
|
options?: FeedsClientOptions;
|
|
21
21
|
}) => {
|
|
22
|
+
const userData =
|
|
23
|
+
userDataOrAnonymous === 'anonymous' ? undefined : userDataOrAnonymous;
|
|
24
|
+
|
|
25
|
+
if (userDataOrAnonymous !== 'anonymous' && !tokenOrProvider) {
|
|
26
|
+
throw new Error(
|
|
27
|
+
'Token provider can only be omitted when connecting anonymous user',
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
22
31
|
const [client, setClient] = useState<FeedsClient | null>(null);
|
|
23
32
|
const [error, setError] = useState<Error | null>(null);
|
|
24
33
|
const [cachedUserData, setCachedUserData] = useState(userData);
|
|
@@ -29,21 +38,23 @@ export const useCreateFeedsClient = ({
|
|
|
29
38
|
throw error;
|
|
30
39
|
}
|
|
31
40
|
|
|
32
|
-
if (userData
|
|
41
|
+
if (userData?.id !== cachedUserData?.id) {
|
|
33
42
|
setCachedUserData(userData);
|
|
34
43
|
}
|
|
35
44
|
|
|
36
45
|
useEffect(() => {
|
|
37
46
|
const _client = new FeedsClient(apiKey, cachedOptions);
|
|
38
47
|
|
|
39
|
-
const connectionPromise =
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
48
|
+
const connectionPromise = cachedUserData
|
|
49
|
+
? _client
|
|
50
|
+
.connectUser(cachedUserData, tokenOrProvider)
|
|
51
|
+
.then(() => {
|
|
52
|
+
setError(null);
|
|
53
|
+
})
|
|
54
|
+
.catch((err) => {
|
|
55
|
+
setError(err);
|
|
56
|
+
})
|
|
57
|
+
: _client.connectAnonymous();
|
|
47
58
|
|
|
48
59
|
setClient(_client);
|
|
49
60
|
|
|
@@ -103,6 +103,7 @@ import {
|
|
|
103
103
|
|
|
104
104
|
export type FeedsClientState = {
|
|
105
105
|
connected_user: ConnectedUser | undefined;
|
|
106
|
+
is_anonymous: boolean;
|
|
106
107
|
is_ws_connection_healthy: boolean;
|
|
107
108
|
};
|
|
108
109
|
|
|
@@ -143,10 +144,7 @@ export class FeedsClient extends FeedsApi {
|
|
|
143
144
|
options,
|
|
144
145
|
);
|
|
145
146
|
super(apiClient);
|
|
146
|
-
this.state = new StateStore<FeedsClientState>(
|
|
147
|
-
connected_user: undefined,
|
|
148
|
-
is_ws_connection_healthy: false,
|
|
149
|
-
});
|
|
147
|
+
this.state = new StateStore<FeedsClientState>(this.initialState);
|
|
150
148
|
this.moderation = new ModerationClient(apiClient);
|
|
151
149
|
this.tokenManager = tokenManager;
|
|
152
150
|
this.connectionIdManager = connectionIdManager;
|
|
@@ -365,13 +363,28 @@ export class FeedsClient extends FeedsApi {
|
|
|
365
363
|
}
|
|
366
364
|
}
|
|
367
365
|
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
)
|
|
373
|
-
|
|
374
|
-
|
|
366
|
+
connectAnonymous = () => {
|
|
367
|
+
this.checkIfUserIsConnected();
|
|
368
|
+
|
|
369
|
+
this.connectionIdManager.resolveConnectionidPromise();
|
|
370
|
+
this.tokenManager.setTokenOrProvider(undefined);
|
|
371
|
+
this.setGetBatchOwnFieldsThrottlingInterval(
|
|
372
|
+
this.query_batch_own_fields_throttling_interval,
|
|
373
|
+
);
|
|
374
|
+
this.state.partialNext({
|
|
375
|
+
connected_user: undefined,
|
|
376
|
+
is_anonymous: true,
|
|
377
|
+
is_ws_connection_healthy: false,
|
|
378
|
+
});
|
|
379
|
+
|
|
380
|
+
return Promise.resolve();
|
|
381
|
+
};
|
|
382
|
+
|
|
383
|
+
connectUser = async (
|
|
384
|
+
user: UserRequest | { id: '!anon' },
|
|
385
|
+
tokenProvider?: TokenOrProvider,
|
|
386
|
+
) => {
|
|
387
|
+
this.checkIfUserIsConnected();
|
|
375
388
|
|
|
376
389
|
this.tokenManager.setTokenOrProvider(tokenProvider);
|
|
377
390
|
|
|
@@ -614,10 +627,7 @@ export class FeedsClient extends FeedsApi {
|
|
|
614
627
|
this.activeActivities = [];
|
|
615
628
|
this.activeFeeds = {};
|
|
616
629
|
|
|
617
|
-
this.state.partialNext(
|
|
618
|
-
connected_user: undefined,
|
|
619
|
-
is_ws_connection_healthy: false,
|
|
620
|
-
});
|
|
630
|
+
this.state.partialNext(this.initialState);
|
|
621
631
|
|
|
622
632
|
this.cancelGetBatchOwnFieldsTimer();
|
|
623
633
|
clearQueuedFeeds();
|
|
@@ -1010,4 +1020,22 @@ export class FeedsClient extends FeedsApi {
|
|
|
1010
1020
|
feeds.forEach((f) => handleFollowDeleted.bind(f)({ follow }, false));
|
|
1011
1021
|
});
|
|
1012
1022
|
}
|
|
1023
|
+
|
|
1024
|
+
private get initialState() {
|
|
1025
|
+
return {
|
|
1026
|
+
connected_user: undefined,
|
|
1027
|
+
is_anonymous: false,
|
|
1028
|
+
is_ws_connection_healthy: false,
|
|
1029
|
+
};
|
|
1030
|
+
}
|
|
1031
|
+
|
|
1032
|
+
private checkIfUserIsConnected() {
|
|
1033
|
+
if (
|
|
1034
|
+
this.state.getLatestValue().connected_user !== undefined ||
|
|
1035
|
+
this.wsConnection ||
|
|
1036
|
+
this.state.getLatestValue().is_anonymous
|
|
1037
|
+
) {
|
|
1038
|
+
throw new Error(`Can't connect a new user, call "disconnectUser" first`);
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
1013
1041
|
}
|