@stream-io/feeds-client 0.3.32 → 0.3.33
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 +8 -0
- package/dist/cjs/index.js +3 -2
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/react-bindings.js +39 -33
- package/dist/cjs/react-bindings.js.map +1 -1
- package/dist/es/index.mjs +4 -3
- package/dist/es/index.mjs.map +1 -1
- package/dist/es/react-bindings.mjs +39 -33
- package/dist/es/react-bindings.mjs.map +1 -1
- package/dist/{feeds-client-BNhvggk2.mjs → feeds-client-C-6NrDBy.mjs} +196 -182
- package/dist/feeds-client-C-6NrDBy.mjs.map +1 -0
- package/dist/{feeds-client-B9rwEWH3.js → feeds-client-CyaHg6lu.js} +196 -182
- package/dist/feeds-client-CyaHg6lu.js.map +1 -0
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/dist/types/activity-with-state-updates/activity-with-state-updates.d.ts +1 -1
- package/dist/types/activity-with-state-updates/activity-with-state-updates.d.ts.map +1 -1
- package/dist/types/bindings/react/hooks/feed-state-hooks/index.d.ts +1 -0
- package/dist/types/bindings/react/hooks/feed-state-hooks/index.d.ts.map +1 -1
- package/dist/types/bindings/react/hooks/feed-state-hooks/useOwnCapabilities.d.ts.map +1 -1
- package/dist/types/bindings/react/hooks/feed-state-hooks/useOwnFollowings.d.ts +8 -0
- package/dist/types/bindings/react/hooks/feed-state-hooks/useOwnFollowings.d.ts.map +1 -0
- package/dist/types/common/types.d.ts +1 -1
- package/dist/types/common/types.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/activity/handle-activity-added.d.ts.map +1 -1
- package/dist/types/feed/event-handlers/activity/handle-activity-updated.d.ts.map +1 -1
- package/dist/types/feed/feed.d.ts +2 -1
- package/dist/types/feed/feed.d.ts.map +1 -1
- package/dist/types/feeds-client/feeds-client.d.ts +7 -9
- package/dist/types/feeds-client/feeds-client.d.ts.map +1 -1
- package/dist/types/utils/check-own-fields-equality.d.ts +2 -0
- package/dist/types/utils/check-own-fields-equality.d.ts.map +1 -1
- package/dist/types/utils/throttling/index.d.ts +1 -1
- package/dist/types/utils/throttling/index.d.ts.map +1 -1
- package/dist/types/utils/throttling/throttled-get-batched-own-fields.d.ts +14 -0
- package/dist/types/utils/throttling/throttled-get-batched-own-fields.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/activity-with-state-updates/activity-with-state-updates.ts +7 -2
- package/src/bindings/react/hooks/feed-state-hooks/index.ts +1 -0
- package/src/bindings/react/hooks/feed-state-hooks/useOwnCapabilities.ts +14 -23
- package/src/bindings/react/hooks/feed-state-hooks/useOwnFollowings.ts +18 -0
- package/src/common/types.ts +1 -1
- package/src/feed/event-handlers/activity/handle-activity-added.ts +0 -6
- package/src/feed/event-handlers/activity/handle-activity-updated.ts +0 -4
- package/src/feed/feed.ts +51 -39
- package/src/feeds-client/feeds-client.ts +88 -91
- package/src/utils/check-own-fields-equality.ts +37 -10
- package/src/utils/throttling/index.ts +1 -1
- package/src/utils/throttling/{throttled-get-batched-own-capabilities.ts → throttled-get-batched-own-fields.ts} +10 -10
- package/dist/feeds-client-B9rwEWH3.js.map +0 -1
- package/dist/feeds-client-BNhvggk2.mjs.map +0 -1
- package/dist/types/utils/throttling/throttled-get-batched-own-capabilities.d.ts +0 -14
- package/dist/types/utils/throttling/throttled-get-batched-own-capabilities.d.ts.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StateStore } from '@stream-io/state-store';
|
|
2
|
-
import type
|
|
2
|
+
import { type Feed, type FeedState } from '../feed';
|
|
3
3
|
import type { FeedsClient } from '../feeds-client';
|
|
4
4
|
import type { ActivityResponse } from '../gen/models';
|
|
5
5
|
import type { GetCommentsRequest } from '../types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-with-state-updates.d.ts","sourceRoot":"","sources":["../../../src/activity-with-state-updates/activity-with-state-updates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"activity-with-state-updates.d.ts","sourceRoot":"","sources":["../../../src/activity-with-state-updates/activity-with-state-updates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAwB,KAAK,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAMtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,EAAE,OAAO,CAChB,IAAI,CAAC,kBAAkB,EAAE,WAAW,GAAG,aAAa,GAAG,MAAM,CAAC,CAC/D,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAAE,GAAG,IAAI,CAChE,SAAS,EACT,uBAAuB,CACxB,GAAG;IACA;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,uBAAuB,CAAC,EAAE,iBAAiB,CAAC;CAC7C,CAAC;AAEJ,qBAAa,wBAAwB;aAUjB,EAAE,EAAE,MAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAV9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;IAC1C,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IACjC,OAAO,CAAC,wBAAwB,CAAC,CAAa;IAC9C,OAAO,CAAC,aAAa,CAAC,CAGpB;gBAGgB,EAAE,EAAE,MAAM,EACT,WAAW,EAAE,WAAW;IAS3C,IAAI,YAAY,kBAEf;IAED,IAAI,KAAK,aAER;IAED;;;;;OAKG;IACG,GAAG,CAAC,OAAO,GAAE,iBAAsB;IA6CzC,4BAA4B,CAC1B,OAAO,CAAC,EAAE,OAAO,CACf,IAAI,CAAC,kBAAkB,EAAE,WAAW,GAAG,aAAa,GAAG,MAAM,CAAC,CAC/D;IAiBH,0BAA0B,CACxB,GAAG,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAQ3D,OAAO;IAKP;;OAEG;IACG,WAAW;IASjB,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,oBAAoB;CAkB7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/bindings/react/hooks/feed-state-hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/bindings/react/hooks/feed-state-hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useOwnCapabilities.d.ts","sourceRoot":"","sources":["../../../../../../src/bindings/react/hooks/feed-state-hooks/useOwnCapabilities.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useOwnCapabilities.d.ts","sourceRoot":"","sources":["../../../../../../src/bindings/react/hooks/feed-state-hooks/useOwnCapabilities.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAa,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAWhE,eAAO,MAAM,kBAAkB,GAAI,gBAAgB,IAAI,GAAG,MAAM,iCAa/D,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Feed } from '../../../../feed';
|
|
2
|
+
/**
|
|
3
|
+
* A React hook that returns a reactive array of feeds that the feeds's owner is following and is owned by the current user.
|
|
4
|
+
*/
|
|
5
|
+
export declare const useOwnFollowings: (feedFromProps?: Feed) => {
|
|
6
|
+
own_followings: import("../../../..").FollowResponse[] | undefined;
|
|
7
|
+
} | undefined;
|
|
8
|
+
//# sourceMappingURL=useOwnFollowings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useOwnFollowings.d.ts","sourceRoot":"","sources":["../../../../../../src/bindings/react/hooks/feed-state-hooks/useOwnFollowings.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAa,MAAM,kBAAkB,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,gBAAgB,IAAI;;aAKpD,CAAC"}
|
|
@@ -4,7 +4,7 @@ export type FeedsClientOptions = {
|
|
|
4
4
|
base_url?: string;
|
|
5
5
|
timeout?: number;
|
|
6
6
|
configure_loggers_options?: ConfigureLoggersOptions;
|
|
7
|
-
|
|
7
|
+
query_batch_own_fields_throttling_interval?: number;
|
|
8
8
|
};
|
|
9
9
|
export type RateLimit = {
|
|
10
10
|
rate_limit?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,cAAc,gBAAgB,CAAC;AAE/B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB,CAAC,EAAE,uBAAuB,CAAC;IACpD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/common/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE/D,cAAc,gBAAgB,CAAC;AAE/B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB,CAAC,EAAE,uBAAuB,CAAC;IACpD,0CAA0C,CAAC,EAAE,MAAM,CAAC;CACrD,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,IAAI,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,UAAU,EAAE,SAAS,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,GAAG;IAClC,QAAQ,EAAE,eAAe,CAAC;CAC3B,CAAC;AAEF,qBAAa,cAAe,SAAQ,KAAK;IAI9B,QAAQ,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM;IAJf,IAAI,SAAoB;gBAE7B,OAAO,EAAE,MAAM,EACR,QAAQ,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,YAAA,EACnC,IAAI,CAAC,EAAE,MAAM,YAAA,EACpB,YAAY,CAAC,EAAE,YAAY;CAI9B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;CACjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-activity-added.d.ts","sourceRoot":"","sources":["../../../../../src/feed/event-handlers/activity/handle-activity-added.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,gBAAgB,EAAE,EACjC,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAC1C,QAAQ,EAAE,OAAO,GAAG,KAAK,EACzB,EAAE,aAAa,EAAE,GAAE;IAAE,aAAa,EAAE,OAAO,CAAA;CAA6B;;;EAiCzE;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,YAAY,CAAC,sBAAsB,CAAC,
|
|
1
|
+
{"version":3,"file":"handle-activity-added.d.ts","sourceRoot":"","sources":["../../../../../src/feed/event-handlers/activity/handle-activity-added.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,gBAAgB,EAAE,EACjC,UAAU,EAAE,gBAAgB,EAAE,GAAG,SAAS,EAC1C,QAAQ,EAAE,OAAO,GAAG,KAAK,EACzB,EAAE,aAAa,EAAE,GAAE;IAAE,aAAa,EAAE,OAAO,CAAA;CAA6B;;;EAiCzE;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,YAAY,CAAC,sBAAsB,CAAC,QAoB5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-activity-updated.d.ts","sourceRoot":"","sources":["../../../../../src/feed/event-handlers/activity/handle-activity-updated.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAS9E,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CACnD,YAAY,CAAC,wBAAwB,CAAC,EACtC,UAAU,CACX,CAAC;AAIF,eAAO,MAAM,qBAAqB,GAChC,OAAO,sBAAsB,EAC7B,YAAY,gBAAgB,EAAE,GAAG,SAAS;;;CAUxC,CAAC;AAEL,eAAO,MAAM,2BAA2B,GACtC,OAAO,sBAAsB,EAC7B,kBAAkB,mBAAmB,EAAE,GAAG,SAAS;;;CAqBjD,CAAC;AAEL,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,sBAAsB,EAC/B,MAAM,CAAC,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"handle-activity-updated.d.ts","sourceRoot":"","sources":["../../../../../src/feed/event-handlers/activity/handle-activity-updated.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAS9E,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CACnD,YAAY,CAAC,wBAAwB,CAAC,EACtC,UAAU,CACX,CAAC;AAIF,eAAO,MAAM,qBAAqB,GAChC,OAAO,sBAAsB,EAC7B,YAAY,gBAAgB,EAAE,GAAG,SAAS;;;CAUxC,CAAC;AAEL,eAAO,MAAM,2BAA2B,GACtC,OAAO,sBAAsB,EAC7B,kBAAkB,mBAAmB,EAAE,GAAG,SAAS;;;CAqBjD,CAAC;AAEL,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,sBAAsB,EAC/B,MAAM,CAAC,EAAE,OAAO,QAoCjB"}
|
|
@@ -5,7 +5,7 @@ import { EventDispatcher } from '../common/EventDispatcher';
|
|
|
5
5
|
import { FeedApi } from '../gen/feeds/FeedApi';
|
|
6
6
|
import type { FeedsClient } from '../feeds-client';
|
|
7
7
|
import type { ActivityIdOrCommentId, GetCommentsRepliesRequest, GetCommentsRequest, LoadingStates, PagerResponseWithLoadingStates } from '../types';
|
|
8
|
-
export type FeedState = Omit<Partial<GetOrCreateFeedResponse & FeedResponse>, 'feed' | '
|
|
8
|
+
export type FeedState = Omit<Partial<GetOrCreateFeedResponse & FeedResponse>, 'feed' | 'duration'> & {
|
|
9
9
|
/**
|
|
10
10
|
* True when loading state using `getOrCreate`
|
|
11
11
|
*/
|
|
@@ -135,5 +135,6 @@ export declare class Feed extends FeedApi {
|
|
|
135
135
|
fromWebSocket: boolean;
|
|
136
136
|
}): void;
|
|
137
137
|
private getOrCreateFeeds;
|
|
138
|
+
private shouldAddToActiveFeeds;
|
|
138
139
|
}
|
|
139
140
|
//# sourceMappingURL=feed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../../src/feed/feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,OAAO,EACP,gBAAgB,EAChB,eAAe,EAEf,uBAAuB,EACvB,gBAAgB,EAEhB,aAAa,EACb,oBAAoB,EACpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"feed.d.ts","sourceRoot":"","sources":["../../../src/feed/feed.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,12 +6,11 @@ import type { FeedsClientOptions, StreamResponse } from '../common/types';
|
|
|
6
6
|
import { ModerationClient } from '../moderation-client';
|
|
7
7
|
import { StreamPoll } from '../common/Poll';
|
|
8
8
|
import { Feed } from '../feed';
|
|
9
|
-
import { type
|
|
9
|
+
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
13
|
is_ws_connection_healthy: boolean;
|
|
14
|
-
own_capabilities_by_fid: Record<string, FeedResponse['own_capabilities']>;
|
|
15
14
|
};
|
|
16
15
|
type FID = string;
|
|
17
16
|
type ActivityId = string;
|
|
@@ -26,16 +25,15 @@ export declare class FeedsClient extends FeedsApi {
|
|
|
26
25
|
protected activeActivities: Record<ActivityId, ActivityWithStateUpdates>;
|
|
27
26
|
protected activeFeeds: Record<FID, Feed>;
|
|
28
27
|
private healthyConnectionChangedEventCount;
|
|
29
|
-
protected
|
|
30
|
-
private
|
|
31
|
-
private
|
|
28
|
+
protected throttledGetBatchOwnFields: ThrottledGetBatchedOwnFields;
|
|
29
|
+
private cancelGetBatchOwnFieldsTimer;
|
|
30
|
+
private query_batch_own_fields_throttling_interval;
|
|
32
31
|
constructor(apiKey: string, options?: FeedsClientOptions);
|
|
33
|
-
private
|
|
32
|
+
private setGetBatchOwnFieldsThrottlingInterval;
|
|
34
33
|
private recoverOnReconnect;
|
|
35
34
|
private get allActiveFeeds();
|
|
36
35
|
pollFromState: (id: string) => StreamPoll | undefined;
|
|
37
36
|
hydratePollCache(activities: ActivityResponse[]): void;
|
|
38
|
-
hydrateCapabilitiesCache(feedResponses: Array<Pick<FeedResponse, 'feed' | 'own_capabilities'>>): void;
|
|
39
37
|
connectUser: (user: UserRequest, tokenProvider?: TokenOrProvider) => Promise<void>;
|
|
40
38
|
devToken: (userId: string) => string;
|
|
41
39
|
closePoll: (request: {
|
|
@@ -153,7 +151,7 @@ export declare class FeedsClient extends FeedsApi {
|
|
|
153
151
|
connection_id?: string;
|
|
154
152
|
}): Promise<StreamResponse<import("..").GetOrCreateFeedResponse>>;
|
|
155
153
|
getFollowSuggestions(...params: Parameters<FeedsApi['getFollowSuggestions']>): Promise<StreamResponse<GetFollowSuggestionsResponse>>;
|
|
156
|
-
protected readonly getOrCreateActiveFeed: ({ group, id, data, watch, options,
|
|
154
|
+
protected readonly getOrCreateActiveFeed: ({ group, id, data, watch, options, fieldsToUpdate, }: {
|
|
157
155
|
group: string;
|
|
158
156
|
id: string;
|
|
159
157
|
data?: FeedResponse;
|
|
@@ -162,7 +160,7 @@ export declare class FeedsClient extends FeedsApi {
|
|
|
162
160
|
addNewActivitiesTo?: "start" | "end";
|
|
163
161
|
activityAddedEventFilter?: (event: ActivityAddedEvent) => boolean;
|
|
164
162
|
};
|
|
165
|
-
|
|
163
|
+
fieldsToUpdate: Array<"own_capabilities" | "own_follows" | "own_followings" | "own_membership">;
|
|
166
164
|
}) => Feed;
|
|
167
165
|
private findAllActiveFeedsByActivityId;
|
|
168
166
|
private findAllActiveFeedsByFid;
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"feeds-client.d.ts","sourceRoot":"","sources":["../../../src/feeds-client/feeds-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,4 +2,6 @@ import type { FeedState } from '../feed';
|
|
|
2
2
|
import type { FeedResponse } from '../gen/models';
|
|
3
3
|
export declare const isOwnFollowsEqual: (currentState: FeedState, newState: FeedResponse) => boolean;
|
|
4
4
|
export declare const isOwnMembershipEqual: (currentState: FeedState, newState: FeedResponse) => boolean;
|
|
5
|
+
export declare const isOwnCapabilitiesEqual: (currentState: FeedState, newState: FeedResponse) => boolean;
|
|
6
|
+
export declare const isOwnFollowingsEqual: (currentState: FeedState, newState: FeedResponse) => boolean;
|
|
5
7
|
//# sourceMappingURL=check-own-fields-equality.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-own-fields-equality.d.ts","sourceRoot":"","sources":["../../../src/utils/check-own-fields-equality.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"check-own-fields-equality.d.ts","sourceRoot":"","sources":["../../../src/utils/check-own-fields-equality.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,YAAY,EAAkB,MAAM,eAAe,CAAC;AA8BlE,eAAO,MAAM,iBAAiB,GAC5B,cAAc,SAAS,EACvB,UAAU,YAAY,YAGvB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,cAAc,SAAS,EACvB,UAAU,YAAY,YAMvB,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,cAAc,SAAS,EACvB,UAAU,YAAY,YAMvB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,cAAc,SAAS,EACvB,UAAU,YAAY,YAMvB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/throttling/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/throttling/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { FeedsClient } from '../../feeds-client';
|
|
2
|
+
import type { ThrottledFunction } from './throttle';
|
|
3
|
+
export type GetBatchedOwnFields = {
|
|
4
|
+
feeds: string[];
|
|
5
|
+
};
|
|
6
|
+
export type GetBatchedOwnFieldsThrottledCallback = [
|
|
7
|
+
feeds: string[],
|
|
8
|
+
callback: (feedsToClear: string[]) => void | Promise<void>
|
|
9
|
+
];
|
|
10
|
+
export type ThrottledGetBatchedOwnFields = ThrottledFunction<GetBatchedOwnFieldsThrottledCallback>;
|
|
11
|
+
export declare const DEFAULT_BATCH_OWN_FIELDS_THROTTLING_INTERVAL = 2000;
|
|
12
|
+
export declare function queueBatchedOwnFields(this: FeedsClient, { feeds }: GetBatchedOwnFields): void;
|
|
13
|
+
export declare function clearQueuedFeeds(): void;
|
|
14
|
+
//# sourceMappingURL=throttled-get-batched-own-fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"throttled-get-batched-own-fields.d.ts","sourceRoot":"","sources":["../../../../src/utils/throttling/throttled-get-batched-own-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAIpD,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IACjD,KAAK,EAAE,MAAM,EAAE;IACf,QAAQ,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,4BAA4B,GACtC,iBAAiB,CAAC,oCAAoC,CAAC,CAAC;AAE1D,eAAO,MAAM,4CAA4C,OAAO,CAAC;AAIjE,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,WAAW,EACjB,EAAE,KAAK,EAAE,EAAE,mBAAmB,QAgB/B;AAED,wBAAgB,gBAAgB,SAE/B"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { StateStore } from '@stream-io/state-store';
|
|
2
|
-
import type
|
|
2
|
+
import { addActivitiesToState, type Feed, type FeedState } from '../feed';
|
|
3
3
|
import type { FeedsClient } from '../feeds-client';
|
|
4
4
|
import type { ActivityResponse } from '../gen/models';
|
|
5
5
|
import {
|
|
@@ -164,8 +164,13 @@ export class ActivityWithStateUpdates {
|
|
|
164
164
|
}) {
|
|
165
165
|
this.feed = connectActivityToFeed.call(this.feedsClient, { fid });
|
|
166
166
|
|
|
167
|
+
const { activities } = addActivitiesToState.bind(this.feed)(
|
|
168
|
+
[initialState],
|
|
169
|
+
[],
|
|
170
|
+
'start',
|
|
171
|
+
);
|
|
167
172
|
this.feed?.state.partialNext({
|
|
168
|
-
activities
|
|
173
|
+
activities,
|
|
169
174
|
});
|
|
170
175
|
}
|
|
171
176
|
|
|
@@ -1,38 +1,29 @@
|
|
|
1
|
-
import { useCallback } from 'react';
|
|
2
1
|
import { useStateStore } from '@stream-io/state-store/react-bindings';
|
|
3
2
|
|
|
4
3
|
import { useFeedContext } from '../../contexts/StreamFeedContext';
|
|
5
|
-
import {
|
|
6
|
-
import type { Feed } from '../../../../feed';
|
|
4
|
+
import type { Feed, FeedState } from '../../../../feed';
|
|
7
5
|
import type { FeedOwnCapability } from '../../../../gen/models';
|
|
8
|
-
import
|
|
6
|
+
import { useFeedsClient } from '../../contexts/StreamFeedsContext';
|
|
9
7
|
|
|
10
8
|
const stableEmptyArray: readonly FeedOwnCapability[] = [];
|
|
11
9
|
|
|
10
|
+
const selector = (currentState: FeedState) => {
|
|
11
|
+
return {
|
|
12
|
+
feedOwnCapabilities: currentState.own_capabilities ?? stableEmptyArray,
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
|
|
12
16
|
export const useOwnCapabilities = (feedFromProps?: Feed | string) => {
|
|
13
17
|
const client = useFeedsClient();
|
|
14
18
|
const feedFromContext = useFeedContext();
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
if (!fid) {
|
|
21
|
-
return { feedOwnCapabilities: stableEmptyArray };
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return {
|
|
25
|
-
feedOwnCapabilities:
|
|
26
|
-
currentState.own_capabilities_by_fid[fid] ?? stableEmptyArray,
|
|
27
|
-
};
|
|
28
|
-
},
|
|
29
|
-
[fid],
|
|
30
|
-
);
|
|
19
|
+
let feed = feedFromProps ?? feedFromContext;
|
|
20
|
+
if (typeof feed === 'string') {
|
|
21
|
+
const [groupId, id] = feed.split(':');
|
|
22
|
+
feed = groupId && id ? client?.feed(groupId, id) : undefined;
|
|
23
|
+
}
|
|
31
24
|
|
|
32
25
|
const { feedOwnCapabilities = stableEmptyArray } =
|
|
33
|
-
useStateStore(
|
|
34
|
-
|
|
35
|
-
// console.log('GETTING CAPA: ', feed?.feed, feedOwnCapabilities);
|
|
26
|
+
useStateStore(feed?.state, selector) ?? {};
|
|
36
27
|
|
|
37
28
|
return feedOwnCapabilities;
|
|
38
29
|
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { useStateStore } from '@stream-io/state-store/react-bindings';
|
|
2
|
+
|
|
3
|
+
import { useFeedContext } from '../../contexts/StreamFeedContext';
|
|
4
|
+
import type { Feed, FeedState } from '../../../../feed';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* A React hook that returns a reactive array of feeds that the feeds's owner is following and is owned by the current user.
|
|
8
|
+
*/
|
|
9
|
+
export const useOwnFollowings = (feedFromProps?: Feed) => {
|
|
10
|
+
const feedFromContext = useFeedContext();
|
|
11
|
+
const feed = feedFromProps ?? feedFromContext;
|
|
12
|
+
|
|
13
|
+
return useStateStore(feed?.state, selector);
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const selector = ({ own_followings }: FeedState) => ({
|
|
17
|
+
own_followings,
|
|
18
|
+
});
|
package/src/common/types.ts
CHANGED
|
@@ -6,7 +6,7 @@ export type FeedsClientOptions = {
|
|
|
6
6
|
base_url?: string;
|
|
7
7
|
timeout?: number;
|
|
8
8
|
configure_loggers_options?: ConfigureLoggersOptions;
|
|
9
|
-
|
|
9
|
+
query_batch_own_fields_throttling_interval?: number;
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
export type RateLimit = {
|
|
@@ -62,12 +62,6 @@ export function handleActivityAdded(
|
|
|
62
62
|
const activity = event.activity;
|
|
63
63
|
this.client.hydratePollCache([activity]);
|
|
64
64
|
|
|
65
|
-
const currentFeed = activity.current_feed;
|
|
66
|
-
|
|
67
|
-
if (currentFeed) {
|
|
68
|
-
this.client.hydrateCapabilitiesCache([currentFeed]);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
65
|
this.state.partialNext({ activities: result.activities });
|
|
72
66
|
}
|
|
73
67
|
}
|
|
@@ -92,10 +92,6 @@ export function handleActivityUpdated(
|
|
|
92
92
|
if (result1?.changed || result2.changed) {
|
|
93
93
|
this.client.hydratePollCache([payload.activity]);
|
|
94
94
|
|
|
95
|
-
if (payload.activity.current_feed) {
|
|
96
|
-
this.client.hydrateCapabilitiesCache([payload.activity.current_feed]);
|
|
97
|
-
}
|
|
98
|
-
|
|
99
95
|
this.state.partialNext({
|
|
100
96
|
activities: result1?.changed ? result1.entities : currentActivities,
|
|
101
97
|
pinned_activities: result2.entities,
|
package/src/feed/feed.ts
CHANGED
|
@@ -14,6 +14,7 @@ import type {
|
|
|
14
14
|
FollowRequest,
|
|
15
15
|
QueryCommentsRequest,
|
|
16
16
|
ActivityAddedEvent,
|
|
17
|
+
EnrichmentOptions,
|
|
17
18
|
} from '../gen/models';
|
|
18
19
|
import type { StreamResponse } from '../gen-imports';
|
|
19
20
|
import { StateStore } from '@stream-io/state-store';
|
|
@@ -63,16 +64,16 @@ import {
|
|
|
63
64
|
checkHasAnotherPage,
|
|
64
65
|
Constants,
|
|
65
66
|
feedsLoggerSystem,
|
|
66
|
-
ownFeedFields,
|
|
67
67
|
uniqueArrayMerge,
|
|
68
68
|
} from '../utils';
|
|
69
69
|
import { handleActivityFeedback } from './event-handlers/activity/handle-activity-feedback';
|
|
70
70
|
import { deepEqual } from '../utils/deep-equal';
|
|
71
71
|
import { getOrCreateActiveFeed } from '../feeds-client/get-or-create-active-feed';
|
|
72
|
+
import { queueBatchedOwnFields } from '../utils/throttling';
|
|
72
73
|
|
|
73
74
|
export type FeedState = Omit<
|
|
74
75
|
Partial<GetOrCreateFeedResponse & FeedResponse>,
|
|
75
|
-
'feed' | '
|
|
76
|
+
'feed' | 'duration'
|
|
76
77
|
> & {
|
|
77
78
|
/**
|
|
78
79
|
* True when loading state using `getOrCreate`
|
|
@@ -333,11 +334,6 @@ export class Feed extends FeedApi {
|
|
|
333
334
|
}
|
|
334
335
|
}
|
|
335
336
|
|
|
336
|
-
this.client.hydrateCapabilitiesCache([
|
|
337
|
-
response.feed,
|
|
338
|
-
...currentActivityFeeds,
|
|
339
|
-
]);
|
|
340
|
-
|
|
341
337
|
if (request?.next) {
|
|
342
338
|
const { activities: currentActivities = [] } = this.currentState;
|
|
343
339
|
|
|
@@ -919,10 +915,7 @@ export class Feed extends FeedApi {
|
|
|
919
915
|
...request,
|
|
920
916
|
feeds: [this.feed],
|
|
921
917
|
});
|
|
922
|
-
|
|
923
|
-
if (currentFeed) {
|
|
924
|
-
this.client.hydrateCapabilitiesCache([currentFeed]);
|
|
925
|
-
}
|
|
918
|
+
|
|
926
919
|
return response;
|
|
927
920
|
}
|
|
928
921
|
|
|
@@ -934,34 +927,19 @@ export class Feed extends FeedApi {
|
|
|
934
927
|
|
|
935
928
|
// no need to run noop function
|
|
936
929
|
if (eventHandler !== Feed.noop) {
|
|
937
|
-
if
|
|
930
|
+
// Backfill current_feed if activity is posted to multiple feeds
|
|
931
|
+
if (
|
|
932
|
+
'activity' in event &&
|
|
933
|
+
event.activity.feeds.length > 1 &&
|
|
934
|
+
this.hasActivity(event.activity.id)
|
|
935
|
+
) {
|
|
938
936
|
const currentActivity = this.currentState.activities?.find(
|
|
939
937
|
(a) => a.id === event.activity.id,
|
|
940
938
|
);
|
|
941
939
|
|
|
942
|
-
|
|
943
|
-
if (
|
|
944
|
-
event.activity.feeds.length > 1 &&
|
|
945
|
-
!event.activity.current_feed &&
|
|
946
|
-
currentActivity?.current_feed
|
|
947
|
-
) {
|
|
940
|
+
if (!event.activity.current_feed && currentActivity?.current_feed) {
|
|
948
941
|
event.activity.current_feed = currentActivity.current_feed;
|
|
949
942
|
}
|
|
950
|
-
|
|
951
|
-
// Backfill own_ fields if activity is posted to a single feed
|
|
952
|
-
if (
|
|
953
|
-
event.activity.feeds.length === 1 &&
|
|
954
|
-
event.activity.current_feed &&
|
|
955
|
-
currentActivity?.current_feed
|
|
956
|
-
) {
|
|
957
|
-
ownFeedFields.forEach((field) => {
|
|
958
|
-
if (field in currentActivity.current_feed!) {
|
|
959
|
-
// @ts-expect-error TODO: fix this
|
|
960
|
-
event.activity.current_feed![field] =
|
|
961
|
-
currentActivity.current_feed![field];
|
|
962
|
-
}
|
|
963
|
-
});
|
|
964
|
-
}
|
|
965
943
|
}
|
|
966
944
|
// @ts-expect-error intersection of handler arguments results to never
|
|
967
945
|
eventHandler?.(event);
|
|
@@ -994,10 +972,7 @@ export class Feed extends FeedApi {
|
|
|
994
972
|
) {
|
|
995
973
|
const enrichmentOptions =
|
|
996
974
|
this.currentState.last_get_or_create_request_config?.enrichment_options;
|
|
997
|
-
if (
|
|
998
|
-
!enrichmentOptions?.skip_activity_current_feed &&
|
|
999
|
-
!enrichmentOptions?.skip_all
|
|
1000
|
-
) {
|
|
975
|
+
if (this.shouldAddToActiveFeeds(enrichmentOptions)) {
|
|
1001
976
|
const feedsToGetOrCreate = new Map<string, FeedResponse>();
|
|
1002
977
|
activities.forEach((activity) => {
|
|
1003
978
|
if (
|
|
@@ -1010,14 +985,51 @@ export class Feed extends FeedApi {
|
|
|
1010
985
|
);
|
|
1011
986
|
}
|
|
1012
987
|
});
|
|
1013
|
-
Array.from(feedsToGetOrCreate.values())
|
|
988
|
+
const newFeeds = Array.from(feedsToGetOrCreate.values());
|
|
989
|
+
const fieldsToUpdate: Array<
|
|
990
|
+
'own_capabilities' | 'own_follows' | 'own_followings' | 'own_membership'
|
|
991
|
+
> = [];
|
|
992
|
+
if (!options.fromWebSocket) {
|
|
993
|
+
fieldsToUpdate.push(
|
|
994
|
+
'own_capabilities',
|
|
995
|
+
'own_follows',
|
|
996
|
+
'own_membership',
|
|
997
|
+
);
|
|
998
|
+
if (enrichmentOptions?.enrich_own_followings) {
|
|
999
|
+
fieldsToUpdate.push('own_followings');
|
|
1000
|
+
}
|
|
1001
|
+
}
|
|
1002
|
+
newFeeds.forEach((feed) => {
|
|
1014
1003
|
getOrCreateActiveFeed.bind(this.client)({
|
|
1015
1004
|
group: feed.group_id,
|
|
1016
1005
|
id: feed.id,
|
|
1017
1006
|
data: feed,
|
|
1018
|
-
|
|
1007
|
+
fieldsToUpdate,
|
|
1019
1008
|
});
|
|
1020
1009
|
});
|
|
1010
|
+
if (options.fromWebSocket) {
|
|
1011
|
+
const uninitializedFeeds = newFeeds.filter((feedResponse) => {
|
|
1012
|
+
const feed = this.client.feed(feedResponse.group_id, feedResponse.id);
|
|
1013
|
+
// own_capabilities can only be undefined if we haven't fetched it yet
|
|
1014
|
+
return feed.currentState.own_capabilities === undefined;
|
|
1015
|
+
});
|
|
1016
|
+
if (uninitializedFeeds.length > 0) {
|
|
1017
|
+
queueBatchedOwnFields.bind(this.client)({
|
|
1018
|
+
feeds: uninitializedFeeds.map((feed) => feed.feed),
|
|
1019
|
+
});
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1021
1022
|
}
|
|
1022
1023
|
}
|
|
1024
|
+
|
|
1025
|
+
private shouldAddToActiveFeeds(enrichmentOptions?: EnrichmentOptions) {
|
|
1026
|
+
if (!enrichmentOptions) {
|
|
1027
|
+
return true;
|
|
1028
|
+
}
|
|
1029
|
+
return (
|
|
1030
|
+
!enrichmentOptions?.skip_activity &&
|
|
1031
|
+
!enrichmentOptions?.skip_activity_current_feed &&
|
|
1032
|
+
!enrichmentOptions?.skip_all
|
|
1033
|
+
);
|
|
1034
|
+
}
|
|
1023
1035
|
}
|