@stream-io/feeds-client 0.3.14 → 0.3.15

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.
Files changed (29) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/cjs/index.js +1 -1
  3. package/dist/cjs/react-bindings.js +11 -5
  4. package/dist/cjs/react-bindings.js.map +1 -1
  5. package/dist/es/index.mjs +2 -2
  6. package/dist/es/react-bindings.mjs +11 -5
  7. package/dist/es/react-bindings.mjs.map +1 -1
  8. package/dist/{feeds-client-DoDAKYaV.mjs → feeds-client-B00fi-i4.mjs} +42 -9
  9. package/dist/feeds-client-B00fi-i4.mjs.map +1 -0
  10. package/dist/{feeds-client-YbhVg6cF.js → feeds-client-DTDDoiJL.js} +42 -9
  11. package/dist/feeds-client-DTDDoiJL.js.map +1 -0
  12. package/dist/types/bindings/react/hooks/useCreateFeedsClient.d.ts +3 -3
  13. package/dist/types/bindings/react/hooks/useCreateFeedsClient.d.ts.map +1 -1
  14. package/dist/types/common/ApiClient.d.ts.map +1 -1
  15. package/dist/types/common/ConnectionIdManager.d.ts +3 -3
  16. package/dist/types/common/ConnectionIdManager.d.ts.map +1 -1
  17. package/dist/types/common/TokenManager.d.ts +3 -3
  18. package/dist/types/common/TokenManager.d.ts.map +1 -1
  19. package/dist/types/feeds-client/feeds-client.d.ts +5 -1
  20. package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
  21. package/package.json +1 -1
  22. package/src/bindings/react/hooks/useCreateFeedsClient.ts +23 -12
  23. package/src/common/ApiClient.ts +4 -2
  24. package/src/common/ConnectionIdManager.ts +9 -7
  25. package/src/common/TokenManager.ts +19 -3
  26. package/src/common/real-time/StableWSConnection.ts +1 -1
  27. package/src/feeds-client/feeds-client.ts +22 -1
  28. package/dist/feeds-client-DoDAKYaV.mjs.map +0 -1
  29. package/dist/feeds-client-YbhVg6cF.js.map +0 -1
@@ -2,10 +2,10 @@ import { FeedsClient, FeedsClientOptions, UserRequest, TokenOrProvider } from '.
2
2
  /**
3
3
  * A React hook to create, connect and return an instance of `FeedsClient`.
4
4
  */
5
- export declare const useCreateFeedsClient: ({ apiKey, tokenOrProvider, userData, options, }: {
5
+ export declare const useCreateFeedsClient: ({ apiKey, tokenOrProvider, userData: userDataOrAnonymous, options, }: {
6
6
  apiKey: string;
7
- tokenOrProvider: TokenOrProvider;
8
- userData: UserRequest;
7
+ tokenOrProvider?: TokenOrProvider;
8
+ userData: UserRequest | "anonymous";
9
9
  options?: FeedsClientOptions;
10
10
  }) => FeedsClient | null;
11
11
  //# sourceMappingURL=useCreateFeedsClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCreateFeedsClient.d.ts","sourceRoot":"","sources":["../../../../../src/bindings/react/hooks/useCreateFeedsClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,OAAO,CAAC;AAEf;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAAI,iDAKlC;IACD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,QAAQ,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,uBA6CA,CAAC"}
1
+ {"version":3,"file":"useCreateFeedsClient.d.ts","sourceRoot":"","sources":["../../../../../src/bindings/react/hooks/useCreateFeedsClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,OAAO,CAAC;AAEf;;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,uBAwDA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ApiClient.d.ts","sourceRoot":"","sources":["../../../src/common/ApiClient.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAInE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKjE,KAAK,kBAAkB,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC3D,CAAC,MAAM,CAAC,CAAC,CAAC;AAGX,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IAC3C,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,gBAAgB,EAAE,kBAAkB,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE,CAAC,CAAC;AAEH,qBAAa,SAAS;aAQF,MAAM,EAAE,MAAM;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IATtC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,OAAO,CAAS;IACjB,sBAAsB,EAAE,sBAAsB,CAAM;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;gBAGlD,MAAM,EAAE,MAAM,EACb,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,mBAAmB,EACzD,OAAO,CAAC,EAAE,kBAAkB;IAS9B,WAAW,GAAU,CAAC,EACpB,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,aAAa,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,cAAc,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,OAAO,GAAG,EACV,qBAAqB,MAAM,KAC1B,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,eAAe,CAAA;KAAE,CAAC,CA8GhD;IAEF,IAAI,gBAAgB,WAYnB;IAEM,0BAA0B;IA+BjC,OAAO,KAAK,aAAa,GAKxB;IAED,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAsBnC;IAEF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAWjC;CACH"}
1
+ {"version":3,"file":"ApiClient.d.ts","sourceRoot":"","sources":["../../../src/common/ApiClient.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAInE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKjE,KAAK,kBAAkB,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CAC3D,CAAC,MAAM,CAAC,CAAC,CAAC;AAGX,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IAC3C,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACjD,gBAAgB,EAAE,kBAAkB,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrE,CAAC,CAAC;AAEH,qBAAa,SAAS;aAQF,MAAM,EAAE,MAAM;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IATtC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,OAAO,CAAS;IACjB,sBAAsB,EAAE,sBAAsB,CAAM;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;gBAGlD,MAAM,EAAE,MAAM,EACb,YAAY,EAAE,YAAY,EAC1B,mBAAmB,EAAE,mBAAmB,EACzD,OAAO,CAAC,EAAE,kBAAkB;IAS9B,WAAW,GAAU,CAAC,EACpB,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,aAAa,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACnC,cAAc,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,OAAO,GAAG,EACV,qBAAqB,MAAM,KAC1B,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,CAAC;QAAC,QAAQ,EAAE,eAAe,CAAA;KAAE,CAAC,CAgHhD;IAEF,IAAI,gBAAgB,WAYnB;IAEM,0BAA0B;IA+BjC,OAAO,KAAK,aAAa,GAKxB;IAED,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAsBnC;IAEF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAWjC;CACH"}
@@ -1,12 +1,12 @@
1
1
  export declare class ConnectionIdManager {
2
- loadConnectionIdPromise: Promise<string> | undefined;
2
+ loadConnectionIdPromise: Promise<string | undefined> | undefined;
3
3
  connectionId?: string;
4
4
  private resolve?;
5
5
  private reject?;
6
6
  reset: () => void;
7
7
  resetConnectionIdPromise: () => void;
8
- resolveConnectionidPromise: (connectionId: string) => void;
8
+ resolveConnectionidPromise: (connectionId?: string) => void;
9
9
  rejectConnectionIdPromise: (reason: any) => void;
10
- getConnectionId: () => string | Promise<string>;
10
+ getConnectionId: () => string | Promise<string | undefined>;
11
11
  }
12
12
  //# sourceMappingURL=ConnectionIdManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectionIdManager.d.ts","sourceRoot":"","sources":["../../../src/common/ConnectionIdManager.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAmB;IAC9B,uBAAuB,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,OAAO,CAAC,CAAiC;IACjD,OAAO,CAAC,MAAM,CAAC,CAAwB;IAEvC,KAAK,aAKH;IAEF,wBAAwB,aAMtB;IAEF,0BAA0B,GAAI,cAAc,MAAM,UAMhD;IAEF,yBAAyB,GAAI,QAAQ,GAAG,UAMtC;IAEF,eAAe,iCAYb;CACH"}
1
+ {"version":3,"file":"ConnectionIdManager.d.ts","sourceRoot":"","sources":["../../../src/common/ConnectionIdManager.ts"],"names":[],"mappings":"AAAA,qBAAa,mBAAmB;IAC9B,uBAAuB,EAAE,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IACjE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,OAAO,CAAC,CAAkC;IAClD,OAAO,CAAC,MAAM,CAAC,CAAwB;IAEvC,KAAK,aAKH;IAEF,wBAAwB,aAQtB;IAEF,0BAA0B,GAAI,eAAe,MAAM,UAMjD;IAEF,yBAAyB,GAAI,QAAQ,GAAG,UAMtC;IAEF,eAAe,6CAYb;CACH"}
@@ -8,15 +8,15 @@ export declare class TokenManager {
8
8
  type: 'static' | 'provider';
9
9
  token?: string;
10
10
  tokenProvider?: string | (() => Promise<string>);
11
+ private _isAnonymous;
11
12
  private readonly logger;
12
13
  constructor();
14
+ get isAnonymous(): boolean;
13
15
  /**
14
16
  * Set the static string token or token provider.
15
17
  * Token provider should return a token string or a promise which resolves to string token.
16
18
  *
17
- * @param {TokenOrProvider} tokenOrProvider - the token or token provider.
18
- * @param {UserResponse} user - the user object.
19
- * @param {boolean} isAnonymous - whether the user is anonymous or not.
19
+ * @param {TokenOrProvider} tokenOrProvider - the token or token provider. Providing `undefined` will set the token manager to anonymous mode.
20
20
  */
21
21
  setTokenOrProvider: (tokenOrProvider?: string | (() => Promise<string>)) => void;
22
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"TokenManager.d.ts","sourceRoot":"","sources":["../../../src/common/TokenManager.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,qBAAa,YAAY;IACvB,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACzC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgD;;IAQvE;;;;;;;OAOG;IACH,kBAAkB,GAAI,kBAAkB,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,UAUtE;IAEF;;;OAGG;IACH,KAAK,aAGH;IAIF,SAAS,wBA0CP;IAGF,QAAQ,iCAcN;IAEF,QAAQ,gBAAgC;CACzC"}
1
+ {"version":3,"file":"TokenManager.d.ts","sourceRoot":"","sources":["../../../src/common/TokenManager.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,qBAAa,YAAY;IACvB,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IACzC,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgD;;IAQvE,IAAI,WAAW,YAEd;IAED;;;;;OAKG;IACH,kBAAkB,GAAI,kBAAkB,MAAM,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,UAiBtE;IAEF;;;OAGG;IACH,KAAK,aAKH;IAIF,SAAS,wBA0CP;IAGF,QAAQ,iCAkBN;IAEF,QAAQ,gBAAgC;CACzC"}
@@ -10,6 +10,7 @@ import { ThrottledGetBatchedOwnCapabilities } 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
  own_capabilities_by_fid: Record<string, FeedResponse['own_capabilities']>;
15
16
  };
@@ -36,7 +37,10 @@ export declare class FeedsClient extends FeedsApi {
36
37
  pollFromState: (id: string) => StreamPoll | undefined;
37
38
  hydratePollCache(activities: ActivityResponse[]): void;
38
39
  hydrateCapabilitiesCache(feedResponses: Array<Pick<FeedResponse, 'feed' | 'own_capabilities'>>): void;
39
- connectUser: (user: UserRequest, tokenProvider: TokenOrProvider) => Promise<void>;
40
+ connectAnonymous: () => Promise<void>;
41
+ connectUser: (user: UserRequest | {
42
+ id: "!anon";
43
+ }, tokenProvider?: TokenOrProvider) => Promise<void>;
40
44
  devToken: (userId: string) => string;
41
45
  closePoll: (request: {
42
46
  poll_id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"feeds-client.d.ts","sourceRoot":"","sources":["../../../src/feeds-client/feeds-client.ts"],"names":[],"mappings":"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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stream-io/feeds-client",
3
- "version": "0.3.14",
3
+ "version": "0.3.15",
4
4
  "packageManager": "yarn@3.2.4",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/es/index.mjs",
@@ -12,14 +12,23 @@ import {
12
12
  export const useCreateFeedsClient = ({
13
13
  apiKey,
14
14
  tokenOrProvider,
15
- userData,
15
+ userData: userDataOrAnonymous,
16
16
  options,
17
17
  }: {
18
18
  apiKey: string;
19
- tokenOrProvider: TokenOrProvider;
20
- userData: UserRequest;
19
+ tokenOrProvider?: TokenOrProvider;
20
+ userData: UserRequest | 'anonymous';
21
21
  options?: FeedsClientOptions;
22
22
  }) => {
23
+ const userData =
24
+ userDataOrAnonymous === 'anonymous' ? undefined : userDataOrAnonymous;
25
+
26
+ if (userDataOrAnonymous === 'anonymous' && !tokenOrProvider) {
27
+ throw new Error(
28
+ 'Token provider can only be emitted when connecting anonymous user',
29
+ );
30
+ }
31
+
23
32
  const [client, setClient] = useState<FeedsClient | null>(
24
33
  () => new FeedsClient(apiKey, options),
25
34
  );
@@ -32,21 +41,23 @@ export const useCreateFeedsClient = ({
32
41
  throw error;
33
42
  }
34
43
 
35
- if (userData.id !== cachedUserData.id) {
44
+ if (userData?.id !== cachedUserData?.id) {
36
45
  setCachedUserData(userData);
37
46
  }
38
47
 
39
48
  useEffect(() => {
40
49
  const _client = new FeedsClient(apiKey, cachedOptions);
41
50
 
42
- const connectionPromise = _client
43
- .connectUser(cachedUserData, tokenOrProvider)
44
- .then(() => {
45
- setError(null);
46
- })
47
- .catch((err) => {
48
- setError(err);
49
- });
51
+ const connectionPromise = cachedUserData
52
+ ? _client
53
+ .connectUser(cachedUserData, tokenOrProvider)
54
+ .then(() => {
55
+ setError(null);
56
+ })
57
+ .catch((err) => {
58
+ setError(err);
59
+ })
60
+ : _client.connectAnonymous();
50
61
 
51
62
  setClient(_client);
52
63
 
@@ -66,7 +66,9 @@ export class ApiClient {
66
66
  ) {
67
67
  this.logger.info('Getting connection_id for watch or presence request');
68
68
  const connectionId = await this.connectionIdManager.getConnectionId();
69
- queryParams.connection_id = connectionId;
69
+ if (connectionId) {
70
+ queryParams.connection_id = connectionId;
71
+ }
70
72
  }
71
73
 
72
74
  let requestUrl = url;
@@ -211,7 +213,7 @@ export class ApiClient {
211
213
 
212
214
  private get commonHeaders(): Record<string, string> {
213
215
  return {
214
- 'stream-auth-type': 'jwt',
216
+ 'stream-auth-type': this.tokenManager.isAnonymous ? 'anonymous' : 'jwt',
215
217
  'X-Stream-Client': this.generateStreamClientHeader(),
216
218
  };
217
219
  }
@@ -1,7 +1,7 @@
1
1
  export class ConnectionIdManager {
2
- loadConnectionIdPromise: Promise<string> | undefined;
2
+ loadConnectionIdPromise: Promise<string | undefined> | undefined;
3
3
  connectionId?: string;
4
- private resolve?: (connectionId: string) => void;
4
+ private resolve?: (connectionId?: string) => void;
5
5
  private reject?: (reason: any) => void;
6
6
 
7
7
  reset = () => {
@@ -13,13 +13,15 @@ export class ConnectionIdManager {
13
13
 
14
14
  resetConnectionIdPromise = () => {
15
15
  this.connectionId = undefined;
16
- this.loadConnectionIdPromise = new Promise<string>((resolve, reject) => {
17
- this.resolve = resolve;
18
- this.reject = reject;
19
- });
16
+ this.loadConnectionIdPromise = new Promise<string | undefined>(
17
+ (resolve, reject) => {
18
+ this.resolve = resolve;
19
+ this.reject = reject;
20
+ },
21
+ );
20
22
  };
21
23
 
22
- resolveConnectionidPromise = (connectionId: string) => {
24
+ resolveConnectionidPromise = (connectionId?: string) => {
23
25
  this.connectionId = connectionId;
24
26
  this.resolve?.(connectionId);
25
27
  this.loadConnectionIdPromise = undefined;
@@ -11,6 +11,7 @@ export class TokenManager {
11
11
  type: 'static' | 'provider';
12
12
  token?: string;
13
13
  tokenProvider?: string | (() => Promise<string>);
14
+ private _isAnonymous: boolean = false;
14
15
  private readonly logger = feedsLoggerSystem.getLogger('token-manager');
15
16
 
16
17
  constructor() {
@@ -19,15 +20,24 @@ export class TokenManager {
19
20
  this.type = 'static';
20
21
  }
21
22
 
23
+ get isAnonymous() {
24
+ return this._isAnonymous;
25
+ }
26
+
22
27
  /**
23
28
  * Set the static string token or token provider.
24
29
  * Token provider should return a token string or a promise which resolves to string token.
25
30
  *
26
- * @param {TokenOrProvider} tokenOrProvider - the token or token provider.
27
- * @param {UserResponse} user - the user object.
28
- * @param {boolean} isAnonymous - whether the user is anonymous or not.
31
+ * @param {TokenOrProvider} tokenOrProvider - the token or token provider. Providing `undefined` will set the token manager to anonymous mode.
29
32
  */
30
33
  setTokenOrProvider = (tokenOrProvider?: string | (() => Promise<string>)) => {
34
+ if (tokenOrProvider === undefined) {
35
+ this._isAnonymous = true;
36
+ tokenOrProvider = '';
37
+ } else {
38
+ this._isAnonymous = false;
39
+ }
40
+
31
41
  if (isFunction(tokenOrProvider)) {
32
42
  this.tokenProvider = tokenOrProvider;
33
43
  this.type = 'provider';
@@ -44,7 +54,9 @@ export class TokenManager {
44
54
  * Useful for client disconnection or switching user.
45
55
  */
46
56
  reset = () => {
57
+ this._isAnonymous = false;
47
58
  this.token = undefined;
59
+ this.tokenProvider = undefined;
48
60
  this.loadTokenPromise = null;
49
61
  };
50
62
 
@@ -96,6 +108,10 @@ export class TokenManager {
96
108
 
97
109
  // Returns the current token, or fetches in a new one if there is no current token
98
110
  getToken = () => {
111
+ if (this._isAnonymous) {
112
+ return '';
113
+ }
114
+
99
115
  if (this.token) {
100
116
  return this.token;
101
117
  }
@@ -454,7 +454,7 @@ export class StableWSConnection {
454
454
  }
455
455
 
456
456
  const token = await this.tokenManager.getToken();
457
- if (!token) {
457
+ if (!token && !this.tokenManager.isAnonymous) {
458
458
  logger.warn(`Token not set, can't connect authenticate`);
459
459
  return;
460
460
  }
@@ -93,6 +93,7 @@ import { getFeed } from '../activity-with-state-updates/get-feed';
93
93
 
94
94
  export type FeedsClientState = {
95
95
  connected_user: ConnectedUser | undefined;
96
+ is_anonymous: boolean;
96
97
  is_ws_connection_healthy: boolean;
97
98
  own_capabilities_by_fid: Record<string, FeedResponse['own_capabilities']>;
98
99
  };
@@ -136,6 +137,7 @@ export class FeedsClient extends FeedsApi {
136
137
  super(apiClient);
137
138
  this.state = new StateStore<FeedsClientState>({
138
139
  connected_user: undefined,
140
+ is_anonymous: false,
139
141
  is_ws_connection_healthy: false,
140
142
  own_capabilities_by_fid: {},
141
143
  });
@@ -391,7 +393,25 @@ export class FeedsClient extends FeedsApi {
391
393
  this.state.partialNext({ own_capabilities_by_fid: ownCapabilitiesCache });
392
394
  }
393
395
 
394
- connectUser = async (user: UserRequest, tokenProvider: TokenOrProvider) => {
396
+ connectAnonymous = () => {
397
+ this.connectionIdManager.resolveConnectionidPromise();
398
+ this.tokenManager.setTokenOrProvider(undefined);
399
+ this.setGetBatchOwnCapabilitiesThrottlingInterval(
400
+ this.query_batch_own_capabilties_throttling_interval,
401
+ );
402
+ this.state.partialNext({
403
+ connected_user: undefined,
404
+ is_anonymous: true,
405
+ is_ws_connection_healthy: false,
406
+ });
407
+
408
+ return Promise.resolve();
409
+ };
410
+
411
+ connectUser = async (
412
+ user: UserRequest | { id: '!anon' },
413
+ tokenProvider?: TokenOrProvider,
414
+ ) => {
395
415
  if (
396
416
  this.state.getLatestValue().connected_user !== undefined ||
397
417
  this.wsConnection
@@ -631,6 +651,7 @@ export class FeedsClient extends FeedsApi {
631
651
  await this.wsConnection?.disconnect();
632
652
  this.wsConnection = undefined;
633
653
  }
654
+
634
655
  removeConnectionEventListeners(this.updateNetworkConnectionStatus);
635
656
 
636
657
  this.connectionIdManager.reset();