@nadohq/mobile-client 0.66.0 → 0.67.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/README.md +110 -17
- package/dist/{MobileClient-M4oC4lrX.cjs → MobileClient-vuI5wlB_.cjs} +69 -29
- package/dist/MobileClient-vuI5wlB_.cjs.map +1 -0
- package/dist/MobileClient.cjs +1 -1
- package/dist/MobileClient.d.cts +50 -25
- package/dist/MobileClient.d.cts.map +1 -1
- package/dist/MobileClient.d.ts +50 -25
- package/dist/MobileClient.d.ts.map +1 -1
- package/dist/MobileClient.js +69 -29
- package/dist/MobileClient.js.map +1 -1
- package/dist/{MobileServerFailureError-MtS2reel.d.cts → MobileServerFailureError-BeCCNShj.d.cts} +2 -2
- package/dist/{MobileServerFailureError-MtS2reel.d.cts.map → MobileServerFailureError-BeCCNShj.d.cts.map} +1 -1
- package/dist/{MobileServerFailureError-C9iqNsxI.d.ts → MobileServerFailureError-hHv28weI.d.ts} +2 -2
- package/dist/{MobileServerFailureError-C9iqNsxI.d.ts.map → MobileServerFailureError-hHv28weI.d.ts.map} +1 -1
- package/dist/{buildSignedMobileRequest-DyKCK34Y.d.cts → buildSignedMobileRequest-DcEMKU_4.d.cts} +2 -2
- package/dist/{buildSignedMobileRequest-DyKCK34Y.d.cts.map → buildSignedMobileRequest-DcEMKU_4.d.cts.map} +1 -1
- package/dist/{buildSignedMobileRequest-BR-KJhIF.d.ts → buildSignedMobileRequest-DlTMvoXR.d.ts} +2 -2
- package/dist/{buildSignedMobileRequest-BR-KJhIF.d.ts.map → buildSignedMobileRequest-DlTMvoXR.d.ts.map} +1 -1
- package/dist/{canonicalize-Bv6UIAbR.d.ts → canonicalize-BOZlflI3.d.ts} +2 -2
- package/dist/canonicalize-BOZlflI3.d.ts.map +1 -0
- package/dist/{canonicalize-CWh3XZzj.d.cts → canonicalize-BvCozzvJ.d.cts} +2 -2
- package/dist/canonicalize-BvCozzvJ.d.cts.map +1 -0
- package/dist/{clientTypes-DOpUcu80.d.cts → clientTypes-KpHlCDGZ.d.cts} +75 -49
- package/dist/clientTypes-KpHlCDGZ.d.cts.map +1 -0
- package/dist/{clientTypes-BUn5_OzK.d.ts → clientTypes-XRI41VdC.d.ts} +75 -49
- package/dist/clientTypes-XRI41VdC.d.ts.map +1 -0
- package/dist/dataMappers.cjs +56 -17
- package/dist/dataMappers.cjs.map +1 -1
- package/dist/dataMappers.d.cts +33 -13
- package/dist/dataMappers.d.cts.map +1 -1
- package/dist/dataMappers.d.ts +33 -13
- package/dist/dataMappers.d.ts.map +1 -1
- package/dist/dataMappers.js +53 -17
- package/dist/dataMappers.js.map +1 -1
- package/dist/{eip712MethodByType-CJ6BoayT.d.cts → eip712MethodByType-DyAmzH7b.d.cts} +2 -2
- package/dist/eip712MethodByType-DyAmzH7b.d.cts.map +1 -0
- package/dist/{eip712MethodByType-Dx4mvgni.d.ts → eip712MethodByType-qSSAF6i2.d.ts} +2 -2
- package/dist/eip712MethodByType-qSSAF6i2.d.ts.map +1 -0
- package/dist/feed-BrgkFqP3.d.cts +23 -0
- package/dist/feed-BrgkFqP3.d.cts.map +1 -0
- package/dist/feed-DcbhLoo1.d.ts +23 -0
- package/dist/feed-DcbhLoo1.d.ts.map +1 -0
- package/dist/index-BVVgDSdq.d.cts +1 -0
- package/dist/index-BVVgDSdq.d.ts +1 -0
- package/dist/index.cjs +2 -1
- package/dist/index.d.cts +13 -13
- package/dist/index.d.ts +13 -13
- package/dist/index.js +2 -2
- package/dist/{mobileErrorCodes-vD6rbFuF.d.ts → mobileErrorCodes-CdwX6QTO.d.cts} +3 -3
- package/dist/{mobileErrorCodes-vD6rbFuF.d.cts.map → mobileErrorCodes-CdwX6QTO.d.cts.map} +1 -1
- package/dist/{mobileErrorCodes-vD6rbFuF.d.cts → mobileErrorCodes-CdwX6QTO.d.ts} +3 -3
- package/dist/{mobileErrorCodes-vD6rbFuF.d.ts.map → mobileErrorCodes-CdwX6QTO.d.ts.map} +1 -1
- package/dist/{payloadHash-CdkF2Ocr.d.cts → payloadHash-BgGSZock.d.cts} +2 -2
- package/dist/payloadHash-BgGSZock.d.cts.map +1 -0
- package/dist/{payloadHash-HD29K77M.d.ts → payloadHash-Bi6upCLQ.d.ts} +2 -2
- package/dist/payloadHash-Bi6upCLQ.d.ts.map +1 -0
- package/dist/{serverExecuteTypes-5JyyIXRK.d.ts → serverExecuteTypes-DuCWe_H_.d.cts} +7 -14
- package/dist/{serverExecuteTypes-CHrQ9Rtq.d.cts.map → serverExecuteTypes-DuCWe_H_.d.cts.map} +1 -1
- package/dist/{serverExecuteTypes-CHrQ9Rtq.d.cts → serverExecuteTypes-usJ6HMJv.d.ts} +7 -14
- package/dist/{serverExecuteTypes-5JyyIXRK.d.ts.map → serverExecuteTypes-usJ6HMJv.d.ts.map} +1 -1
- package/dist/{serverModelTypes-CGUZCi0y.d.ts → serverModelTypes-CTHMNIQS.d.cts} +16 -14
- package/dist/serverModelTypes-CTHMNIQS.d.cts.map +1 -0
- package/dist/{serverModelTypes-CGUZCi0y.d.cts → serverModelTypes-CTHMNIQS.d.ts} +16 -14
- package/dist/serverModelTypes-CTHMNIQS.d.ts.map +1 -0
- package/dist/{serverResponseGuards-i1njcYKN.d.cts → serverResponseGuards-CzmldAad.d.cts} +2 -2
- package/dist/{serverResponseGuards-i1njcYKN.d.cts.map → serverResponseGuards-CzmldAad.d.cts.map} +1 -1
- package/dist/{serverResponseGuards-Bvw8ltYJ.d.ts → serverResponseGuards-Dvkbjp2_.d.ts} +2 -2
- package/dist/{serverResponseGuards-Bvw8ltYJ.d.ts.map → serverResponseGuards-Dvkbjp2_.d.ts.map} +1 -1
- package/dist/signing/buildSignedMobileRequest.d.cts +1 -1
- package/dist/signing/buildSignedMobileRequest.d.ts +1 -1
- package/dist/signing/canonicalize.cjs +4 -2
- package/dist/signing/canonicalize.cjs.map +1 -1
- package/dist/signing/canonicalize.d.cts +1 -1
- package/dist/signing/canonicalize.d.ts +1 -1
- package/dist/signing/canonicalize.js +4 -2
- package/dist/signing/canonicalize.js.map +1 -1
- package/dist/signing/eip712MethodByType.d.cts +1 -1
- package/dist/signing/eip712MethodByType.d.ts +1 -1
- package/dist/signing/index.d.cts +5 -5
- package/dist/signing/index.d.ts +5 -5
- package/dist/signing/payloadHash.d.cts +1 -1
- package/dist/signing/payloadHash.d.ts +1 -1
- package/dist/signing/types.d.cts +1 -1
- package/dist/signing/types.d.ts +1 -1
- package/dist/types/MobileServerFailureError.d.cts +1 -1
- package/dist/types/MobileServerFailureError.d.ts +1 -1
- package/dist/types/clientTypes.d.cts +2 -2
- package/dist/types/clientTypes.d.ts +2 -2
- package/dist/types/index.d.cts +7 -7
- package/dist/types/index.d.ts +7 -7
- package/dist/types/mobileErrorCodes.cjs +2 -2
- package/dist/types/mobileErrorCodes.cjs.map +1 -1
- package/dist/types/mobileErrorCodes.d.cts +1 -1
- package/dist/types/mobileErrorCodes.d.ts +1 -1
- package/dist/types/mobileErrorCodes.js +2 -2
- package/dist/types/mobileErrorCodes.js.map +1 -1
- package/dist/types/serverBaseTypes.d.cts +1 -1
- package/dist/types/serverBaseTypes.d.ts +1 -1
- package/dist/types/serverExecuteTypes.d.cts +2 -2
- package/dist/types/serverExecuteTypes.d.ts +2 -2
- package/dist/types/serverModelTypes.cjs.map +1 -1
- package/dist/types/serverModelTypes.d.cts +2 -2
- package/dist/types/serverModelTypes.d.ts +2 -2
- package/dist/types/serverModelTypes.js.map +1 -1
- package/dist/types/serverQueryTypes.d.cts +2 -2
- package/dist/types/serverQueryTypes.d.ts +2 -2
- package/dist/types/serverRequestTypes.d.cts +1 -1
- package/dist/types/serverRequestTypes.d.ts +1 -1
- package/dist/{types-C9YE4EIt.d.cts → types-CByl_NyJ.d.ts} +49 -18
- package/dist/types-CByl_NyJ.d.ts.map +1 -0
- package/dist/{types-Cwy1y_9x.d.ts → types-CR5iaKR4.d.cts} +49 -18
- package/dist/types-CR5iaKR4.d.cts.map +1 -0
- package/dist/utils/feed.cjs +9 -0
- package/dist/utils/feed.cjs.map +1 -1
- package/dist/utils/feed.d.cts +2 -2
- package/dist/utils/feed.d.ts +2 -2
- package/dist/utils/feed.js +9 -1
- package/dist/utils/feed.js.map +1 -1
- package/dist/utils/index.cjs +1 -0
- package/dist/utils/index.d.cts +3 -3
- package/dist/utils/index.d.ts +3 -3
- package/dist/utils/index.js +2 -2
- package/dist/utils/serverResponseGuards.d.cts +1 -1
- package/dist/utils/serverResponseGuards.d.ts +1 -1
- package/package.json +3 -3
- package/src/MobileClient.ts +82 -34
- package/src/dataMappers.test.ts +408 -9
- package/src/dataMappers.ts +76 -23
- package/src/signing/canonicalize.ts +6 -0
- package/src/signing/signing.test.ts +51 -0
- package/src/signing/types.ts +4 -0
- package/src/socialFeed.test.ts +53 -28
- package/src/types/clientTypes.ts +82 -47
- package/src/types/mobileErrorCodes.ts +2 -2
- package/src/types/serverExecuteTypes.ts +4 -12
- package/src/types/serverModelTypes.ts +19 -13
- package/src/types/serverQueryTypes.ts +32 -4
- package/src/types/serverRequestTypes.ts +20 -12
- package/src/utils/feed.ts +13 -0
- package/dist/MobileClient-M4oC4lrX.cjs.map +0 -1
- package/dist/canonicalize-Bv6UIAbR.d.ts.map +0 -1
- package/dist/canonicalize-CWh3XZzj.d.cts.map +0 -1
- package/dist/clientTypes-BUn5_OzK.d.ts.map +0 -1
- package/dist/clientTypes-DOpUcu80.d.cts.map +0 -1
- package/dist/eip712MethodByType-CJ6BoayT.d.cts.map +0 -1
- package/dist/eip712MethodByType-Dx4mvgni.d.ts.map +0 -1
- package/dist/feed-DErOLaoY.d.cts +0 -16
- package/dist/feed-DErOLaoY.d.cts.map +0 -1
- package/dist/feed-DErOLaoY.d.ts +0 -16
- package/dist/feed-DErOLaoY.d.ts.map +0 -1
- package/dist/payloadHash-CdkF2Ocr.d.cts.map +0 -1
- package/dist/payloadHash-HD29K77M.d.ts.map +0 -1
- package/dist/serverModelTypes-CGUZCi0y.d.cts.map +0 -1
- package/dist/serverModelTypes-CGUZCi0y.d.ts.map +0 -1
- package/dist/types-C9YE4EIt.d.cts.map +0 -1
- package/dist/types-Cwy1y_9x.d.ts.map +0 -1
package/src/MobileClient.ts
CHANGED
|
@@ -35,7 +35,6 @@ import {
|
|
|
35
35
|
mapMobileSocialFeedCommentsPage,
|
|
36
36
|
mapMobileSocialFeedDrawingMutationResult,
|
|
37
37
|
mapMobileSocialFeedDrawingResult,
|
|
38
|
-
mapMobileSocialFeedImage,
|
|
39
38
|
mapMobileSocialFeedItem,
|
|
40
39
|
mapMobileSocialFeedItemResponse,
|
|
41
40
|
mapMobileSocialFeedLikeResult,
|
|
@@ -46,12 +45,13 @@ import {
|
|
|
46
45
|
mapMobileSocialFeedPositionHistory,
|
|
47
46
|
mapMobileSocialFeedPositionResolutionResult,
|
|
48
47
|
mapMobileSocialFeedPositionsPage,
|
|
48
|
+
mapMobileSocialFeedPositionThoughts,
|
|
49
49
|
mapMobileSocialFeedPresence,
|
|
50
50
|
mapMobileSocialFeedRankedPage,
|
|
51
51
|
mapMobileSocialFeedReadParamsToServer,
|
|
52
52
|
mapMobileSocialFeedTopTradersPage,
|
|
53
53
|
mapMobileSocialFeedUpdates,
|
|
54
|
-
|
|
54
|
+
mapMobileSocialFeedUploadedImage,
|
|
55
55
|
mapMobileSocialFeedWatchers,
|
|
56
56
|
} from './dataMappers';
|
|
57
57
|
import {
|
|
@@ -82,7 +82,9 @@ import {
|
|
|
82
82
|
GetMobileNotificationSubscriptionsParams,
|
|
83
83
|
GetMobilePositionChartParams,
|
|
84
84
|
GetMobilePositionFeedParams,
|
|
85
|
+
GetMobilePositionHistoryAllParams,
|
|
85
86
|
GetMobilePositionHistoryParams,
|
|
87
|
+
GetMobilePositionThoughtsParams,
|
|
86
88
|
GetMobilePositionWatchersParams,
|
|
87
89
|
GetMobileProfileFeedParams,
|
|
88
90
|
GetMobileProfilesParams,
|
|
@@ -128,7 +130,6 @@ import {
|
|
|
128
130
|
MobileSocialFeedCommentsPage,
|
|
129
131
|
MobileSocialFeedDrawingMutationResult,
|
|
130
132
|
MobileSocialFeedDrawingResult,
|
|
131
|
-
MobileSocialFeedImage,
|
|
132
133
|
MobileSocialFeedItem,
|
|
133
134
|
MobileSocialFeedItemResponse,
|
|
134
135
|
MobileSocialFeedLikeResult,
|
|
@@ -137,11 +138,12 @@ import {
|
|
|
137
138
|
MobileSocialFeedPositionHistory,
|
|
138
139
|
MobileSocialFeedPositionResolutionResult,
|
|
139
140
|
MobileSocialFeedPositionsPage,
|
|
141
|
+
MobileSocialFeedPositionThoughtsPage,
|
|
140
142
|
MobileSocialFeedPresence,
|
|
141
143
|
MobileSocialFeedRankedPage,
|
|
142
144
|
MobileSocialFeedTopTradersPage,
|
|
143
145
|
MobileSocialFeedUpdates,
|
|
144
|
-
|
|
146
|
+
MobileSocialFeedUploadedImage,
|
|
145
147
|
MobileSocialFeedWatchers,
|
|
146
148
|
MobileUnregisterExpoTokenParams,
|
|
147
149
|
MobileUpdateNotificationPreferencesParams,
|
|
@@ -512,9 +514,8 @@ export class MobileClient {
|
|
|
512
514
|
/**
|
|
513
515
|
* Reads one item visible to viewAs, including that account's own hidden content.
|
|
514
516
|
* Creates an item session directly when sessionId is omitted.
|
|
515
|
-
*
|
|
516
|
-
*
|
|
517
|
-
* @param params - Item UUID, optional detail-visit event, preview limit, and optional existing session/read identity.
|
|
517
|
+
* Reading does not increment views; use {@link recordFeedViews} independently when reporting views.
|
|
518
|
+
* @param params - Item UUID, preview limit, and optional existing session/read identity.
|
|
518
519
|
* @returns The complete item and authorized reading session.
|
|
519
520
|
* @throws {MobileServerFailureError} On inaccessible content or session mismatch/expiry.
|
|
520
521
|
* @throws {MobileUnsupportedFeedItemError} If the service returns an unsupported item kind.
|
|
@@ -525,7 +526,6 @@ export class MobileClient {
|
|
|
525
526
|
const body: MobileServerPublicQueryRequest<'feed_item'> = {
|
|
526
527
|
type: 'feed_item',
|
|
527
528
|
item_id: params.itemId,
|
|
528
|
-
view_event_id: params.viewEventId,
|
|
529
529
|
comment_preview_limit: params.commentPreviewLimit,
|
|
530
530
|
session_id: params.sessionId,
|
|
531
531
|
...mapMobileSocialFeedReadParamsToServer(params),
|
|
@@ -696,7 +696,7 @@ export class MobileClient {
|
|
|
696
696
|
|
|
697
697
|
/**
|
|
698
698
|
* Prepares a protected image request for native image components without downloading or encoding bytes.
|
|
699
|
-
* Does not
|
|
699
|
+
* Does not increment view counts.
|
|
700
700
|
* @param params - Image path from metadata plus the original session credentials.
|
|
701
701
|
* @returns Absolute URL and headers; pass them as the image source's URI and headers.
|
|
702
702
|
*/
|
|
@@ -714,7 +714,7 @@ export class MobileClient {
|
|
|
714
714
|
|
|
715
715
|
/**
|
|
716
716
|
* Fetches protected feed image bytes using the reading session that fully delivered the parent item.
|
|
717
|
-
* Does not
|
|
717
|
+
* Does not increment view counts.
|
|
718
718
|
* @param params - Image path from metadata plus the original session credentials.
|
|
719
719
|
* @returns Raw image bytes.
|
|
720
720
|
* @throws {MobileServerFailureError} On session, permission, or availability errors.
|
|
@@ -727,11 +727,14 @@ export class MobileClient {
|
|
|
727
727
|
}
|
|
728
728
|
|
|
729
729
|
/**
|
|
730
|
-
* Reads
|
|
730
|
+
* Reads top-level comment groups with all readable descendants and bidirectional pagination.
|
|
731
|
+
* The limit counts groups, not descendants. Groups are newest first; their flat replies are oldest first,
|
|
732
|
+
* with depth then UUID breaking timestamp ties. An anchor at any depth selects its top-level group.
|
|
733
|
+
* Preview cursors open the first complete group page in the same snapshot; do not prepend preview items.
|
|
731
734
|
* Independent reads create a public-only session; reused sessions retain their original scope.
|
|
732
|
-
* @param params - Root item, optional anchor or cursor (mutually exclusive),
|
|
735
|
+
* @param params - Root item, optional anchor or cursor (mutually exclusive), group limit, and read perspective.
|
|
733
736
|
* Paging requires the original session and viewer token.
|
|
734
|
-
* @returns
|
|
737
|
+
* @returns Complete comment groups, whole-thread reply and top-level counts, cursors, anchor, and session.
|
|
735
738
|
* @throws {MobileServerFailureError} On invalid parameters, session mismatch or expiry, inaccessible content,
|
|
736
739
|
* or unavailable data. Restart pagination with a new session after expiry; do not reuse the old cursor.
|
|
737
740
|
*/
|
|
@@ -757,7 +760,8 @@ export class MobileClient {
|
|
|
757
760
|
* the original position session and viewer token, not a feed session.
|
|
758
761
|
* @returns Position metrics, ordered action/take history, summary, trading hints, cursor, and reading session.
|
|
759
762
|
* @throws {MobileServerFailureError} On invalid parameters, session mismatch or expiry, inaccessible content,
|
|
760
|
-
*
|
|
763
|
+
* unavailable source data, or SOCIAL_FEED_HISTORY_TOO_LARGE when the initial directory exceeds capacity.
|
|
764
|
+
* Restart with a new position session after expiry.
|
|
761
765
|
* @throws {MobileUnsupportedFeedItemError} If a timeline entry or take has an unsupported kind.
|
|
762
766
|
*/
|
|
763
767
|
async getPositionHistory(
|
|
@@ -775,6 +779,53 @@ export class MobileClient {
|
|
|
775
779
|
return mapMobileSocialFeedPositionHistory(await this.publicQuery(body));
|
|
776
780
|
}
|
|
777
781
|
|
|
782
|
+
/**
|
|
783
|
+
* Reads the most recent 500 lifecycle actions, without authored text, drawings, or images.
|
|
784
|
+
* Creates a new position session on every call. A null nextCursor means no pagination, not complete
|
|
785
|
+
* history; use getPositionHistory with a fresh session for the full lifecycle. takeCount is always zero.
|
|
786
|
+
* @param params - Position and read perspective; an existing viewer token may be reused.
|
|
787
|
+
* @returns Position metrics, owner, recent actions, response-scope counts, trading hints, and a new session.
|
|
788
|
+
* @throws {MobileServerFailureError} On invalid parameters, inaccessible content, unavailable data,
|
|
789
|
+
* or SOCIAL_FEED_HISTORY_TOO_LARGE when the initial directory exceeds capacity.
|
|
790
|
+
* @throws {MobileUnsupportedFeedItemError} If a timeline entry or take has an unsupported kind.
|
|
791
|
+
*/
|
|
792
|
+
async getPositionHistoryAll(
|
|
793
|
+
params: GetMobilePositionHistoryAllParams,
|
|
794
|
+
): Promise<MobileSocialFeedPositionHistory> {
|
|
795
|
+
const body: MobileServerPublicQueryRequest<'position_history_all'> = {
|
|
796
|
+
type: 'position_history_all',
|
|
797
|
+
position_id: params.positionId,
|
|
798
|
+
...mapMobileSocialFeedReadParamsToServer(params),
|
|
799
|
+
};
|
|
800
|
+
return mapMobileSocialFeedPositionHistory(await this.publicQuery(body));
|
|
801
|
+
}
|
|
802
|
+
|
|
803
|
+
/**
|
|
804
|
+
* Reads published position thoughts with both nonblank text and a saved drawing, without signing.
|
|
805
|
+
* Keeps descending drawing creation time / item UUID order; editing a drawing does not move the item.
|
|
806
|
+
* Continue until nextCursor is null, even after an empty page. There is no 500-item total cap.
|
|
807
|
+
* Keep positionId, limit, sessionId, and viewerToken unchanged when paging; omitted viewAs inherits
|
|
808
|
+
* the session. History/feed sessions cannot be substituted. Refresh to include newly eligible content.
|
|
809
|
+
* @param params - Position, page size, read perspective, and original thoughts-session credentials for paging.
|
|
810
|
+
* @returns Complete thoughts and drawings in server order, a continuation cursor, and the reading session.
|
|
811
|
+
* @throws {MobileServerFailureError} On invalid parameters, session mismatch/expiry, inaccessible content,
|
|
812
|
+
* unavailable source data, or SOCIAL_FEED_HISTORY_TOO_LARGE when the initial directory exceeds capacity.
|
|
813
|
+
* @throws {MobileUnsupportedFeedItemError} If an item is not a post or trade card.
|
|
814
|
+
*/
|
|
815
|
+
async getPositionThoughts(
|
|
816
|
+
params: GetMobilePositionThoughtsParams,
|
|
817
|
+
): Promise<MobileSocialFeedPositionThoughtsPage> {
|
|
818
|
+
const body: MobileServerPublicQueryRequest<'position_thoughts'> = {
|
|
819
|
+
type: 'position_thoughts',
|
|
820
|
+
position_id: params.positionId,
|
|
821
|
+
limit: params.limit,
|
|
822
|
+
session_id: params.sessionId,
|
|
823
|
+
cursor: params.cursor,
|
|
824
|
+
...mapMobileSocialFeedReadParamsToServer(params),
|
|
825
|
+
};
|
|
826
|
+
return mapMobileSocialFeedPositionThoughts(await this.publicQuery(body));
|
|
827
|
+
}
|
|
828
|
+
|
|
778
829
|
/**
|
|
779
830
|
* Reads candles and action markers without creating a reading session.
|
|
780
831
|
* Preserve the original range, interval, and read perspective when paging with nextBeforeMs.
|
|
@@ -968,28 +1019,23 @@ export class MobileClient {
|
|
|
968
1019
|
}
|
|
969
1020
|
|
|
970
1021
|
/**
|
|
971
|
-
* Reports
|
|
972
|
-
*
|
|
973
|
-
*
|
|
974
|
-
*
|
|
975
|
-
*
|
|
976
|
-
*
|
|
977
|
-
* @returns
|
|
978
|
-
* @throws {MobileServerFailureError} On invalid parameters,
|
|
979
|
-
* (`SOCIAL_FEED_VIEW_EVENT_REBOUND`), session mismatch or expiry, or an ineligible item.
|
|
980
|
-
* Acquire a new session after expiry, re-register the same event via getFeedItem, then retry.
|
|
1022
|
+
* Reports views for posts, trade cards, comments, and replies without signing or a reading session.
|
|
1023
|
+
* Duplicate IDs count once within a request; another request increments them again. Only supplied IDs
|
|
1024
|
+
* count, not their parents. Missing, deleted, unpublished, excluded, or unsupported targets are skipped.
|
|
1025
|
+
* A successful response does not identify skipped items. Read interaction.viewCount for current counts.
|
|
1026
|
+
* This operation is not idempotent: retrying an uncertain result may count twice. No automatic retry is made.
|
|
1027
|
+
* @param params - itemIds: 1–50 canonical lowercase item UUIDs, including any same-request duplicates.
|
|
1028
|
+
* @returns Only the success status, even when every target was skipped.
|
|
1029
|
+
* @throws {MobileServerFailureError} On invalid parameters, disabled writes, rate limiting, or unavailable data.
|
|
981
1030
|
*/
|
|
982
1031
|
async recordFeedViews(
|
|
983
1032
|
params: MobileRecordFeedViewsParams,
|
|
984
|
-
): Promise<
|
|
1033
|
+
): Promise<MobileServerSuccessResponse> {
|
|
985
1034
|
const body: MobileServerPublicExecuteRequest<'record_feed_views'> = {
|
|
986
1035
|
type: 'record_feed_views',
|
|
987
|
-
|
|
988
|
-
viewer_token: params.viewerToken,
|
|
989
|
-
view_event_id: params.viewEventId,
|
|
990
|
-
item_ids: [params.itemId],
|
|
1036
|
+
item_ids: params.itemIds,
|
|
991
1037
|
};
|
|
992
|
-
return
|
|
1038
|
+
return this.publicExecute(body);
|
|
993
1039
|
}
|
|
994
1040
|
|
|
995
1041
|
/**
|
|
@@ -1292,6 +1338,7 @@ export class MobileClient {
|
|
|
1292
1338
|
mentions: params.mentions.map(mapMobileSocialFeedMentionToServer),
|
|
1293
1339
|
drawing_data_json: params.drawingDataJson,
|
|
1294
1340
|
image_ids: params.imageIds,
|
|
1341
|
+
image_urls: params.imageUrls,
|
|
1295
1342
|
});
|
|
1296
1343
|
return mapMobileSocialFeedItem((await this.execute(request)).item);
|
|
1297
1344
|
}
|
|
@@ -1310,7 +1357,7 @@ export class MobileClient {
|
|
|
1310
1357
|
*/
|
|
1311
1358
|
async createFeedPostImageUpload(
|
|
1312
1359
|
params: MobileCreateFeedImageUploadParams,
|
|
1313
|
-
): Promise<
|
|
1360
|
+
): Promise<MobileSocialFeedUploadedImage> {
|
|
1314
1361
|
return this.createFeedImageUpload('create_feed_post_image_uploads', params);
|
|
1315
1362
|
}
|
|
1316
1363
|
|
|
@@ -1327,7 +1374,7 @@ export class MobileClient {
|
|
|
1327
1374
|
*/
|
|
1328
1375
|
async createFeedCommentImageUpload(
|
|
1329
1376
|
params: MobileCreateFeedImageUploadParams,
|
|
1330
|
-
): Promise<
|
|
1377
|
+
): Promise<MobileSocialFeedUploadedImage> {
|
|
1331
1378
|
return this.createFeedImageUpload(
|
|
1332
1379
|
'create_feed_comment_image_uploads',
|
|
1333
1380
|
params,
|
|
@@ -1406,6 +1453,7 @@ export class MobileClient {
|
|
|
1406
1453
|
mentions: params.mentions.map(mapMobileSocialFeedMentionToServer),
|
|
1407
1454
|
attached_position_id: params.attachedPositionId,
|
|
1408
1455
|
image_ids: params.imageIds,
|
|
1456
|
+
image_urls: params.imageUrls,
|
|
1409
1457
|
});
|
|
1410
1458
|
return mapMobileSocialFeedCommentResult(await this.execute(request));
|
|
1411
1459
|
}
|
|
@@ -1562,7 +1610,7 @@ export class MobileClient {
|
|
|
1562
1610
|
| 'create_feed_post_image_uploads'
|
|
1563
1611
|
| 'create_feed_comment_image_uploads',
|
|
1564
1612
|
params: MobileCreateFeedImageUploadParams,
|
|
1565
|
-
): Promise<
|
|
1613
|
+
): Promise<MobileSocialFeedUploadedImage> {
|
|
1566
1614
|
const nonce = params.nonce ?? getMobileNonce();
|
|
1567
1615
|
// Match the signed body's field lengths so oversized requests fail before prompting the wallet.
|
|
1568
1616
|
const sizePayload = {
|
|
@@ -1586,7 +1634,7 @@ export class MobileClient {
|
|
|
1586
1634
|
},
|
|
1587
1635
|
);
|
|
1588
1636
|
const data = await this.execute(request, params.fileBytes);
|
|
1589
|
-
return
|
|
1637
|
+
return mapMobileSocialFeedUploadedImage(data.image);
|
|
1590
1638
|
}
|
|
1591
1639
|
|
|
1592
1640
|
private checkFeedImageRequestSize(byteLength: number): void {
|