@itm-studio/partner-sdk 0.1.5 → 0.1.6

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/dist/index.d.mts CHANGED
@@ -1,5 +1,6 @@
1
1
  type Scalars = {
2
2
  DateTime: any;
3
+ JSON: any;
3
4
  ID: string;
4
5
  String: string;
5
6
  Boolean: boolean;
@@ -11,6 +12,8 @@ type MomentSortOrder = 'ASC' | 'DESC';
11
12
  type MomentType = 'DIGITAL' | 'IRL';
12
13
  type MomentCategory = 'ACTIVATION' | 'CONCERT' | 'DIGITAL' | 'DINING' | 'EDUCATION' | 'EXHIBITION' | 'FASHION' | 'FESTIVAL' | 'LAUNCH' | 'NIGHTLIFE' | 'OTHER' | 'PARTY' | 'PERFORMING_ARTS' | 'SCREENING' | 'SPORTS' | 'WELLNESS';
13
14
  type MomentSubcategory = 'ACOUSTIC_SET' | 'ADVANCE_SCREENING' | 'AFTER_PARTY' | 'AIRDROP' | 'ALBUM_DROP' | 'ALBUM_RELEASE_SHOW' | 'AMA' | 'ANNIVERSARY' | 'ARTIST_TALK' | 'ART_FAIR' | 'ART_FESTIVAL' | 'ATHLETE_APPEARANCE' | 'AWARDS' | 'BAR_TAKEOVER' | 'BATTLE' | 'BEER_AND_WINE_FESTIVAL' | 'BIENNALE' | 'BIRTHDAY' | 'BLOCK_PARTY' | 'BRAND_EXPERIENCE' | 'BRAND_REVEAL' | 'BREATHWORK' | 'BRUNCH_EVENT' | 'BURLESQUE' | 'CACAO_CEREMONY' | 'CARNIVAL' | 'CELEBRATION' | 'CHAMPIONSHIP' | 'CHEF_DINNER' | 'CHOIR_OR_ENSEMBLE' | 'CLUB_NIGHT' | 'CLUB_SET' | 'COLD_PLUNGE' | 'COLLABORATION_REVEAL' | 'COLLECTION_DROP' | 'COMEDY_FESTIVAL' | 'COMEDY_NIGHT' | 'COMEDY_SHOW' | 'COMMUNITY_MEETUP' | 'CONFERENCE' | 'COOKING_CLASS' | 'CULTURAL_FESTIVAL' | 'DANCE_PERFORMANCE' | 'DAYCLUB' | 'DIRECTORS_CUT' | 'DISCORD_EVENT' | 'DOCUMENTARY' | 'DRAG_SHOW' | 'ECSTATIC_DANCE' | 'ESPORTS' | 'EXHIBITION_GAME' | 'EXTREME_SPORTS' | 'FAN_EXPERIENCE' | 'FAN_FEST' | 'FASHION_FESTIVAL' | 'FASHION_PANEL' | 'FASHION_WEEK' | 'FIGHT_NIGHT' | 'FILM_FESTIVAL' | 'FILM_PREMIERE' | 'FINISSAGE' | 'FIRESIDE_CHAT' | 'FITNESS_CLASS' | 'FITTING_EVENT' | 'FOOD_FESTIVAL' | 'FOOD_PAIRING' | 'GALLERY_OPENING' | 'GAME_DAY' | 'GIVEAWAY' | 'GROUP_EXHIBITION' | 'GUERRILLA' | 'HACKATHON' | 'HEADLINER_SHOW' | 'HOLIDAY_PARTY' | 'HYBRID_EVENT' | 'IMMERSIVE_EXPERIENCE' | 'IMPROV_SHOW' | 'INFLUENCER_EVENT' | 'INSTALLATION' | 'INTERACTIVE_INSTALLATION' | 'JAZZ_NIGHT' | 'JAZZ_SESSION' | 'KARAOKE_NIGHT' | 'KEYNOTE' | 'LATE_NIGHT_SET' | 'LISTENING_PARTY' | 'LIVESTREAM' | 'LOOKBOOK_SHOOT' | 'MASQUERADE' | 'MASTERCLASS' | 'MEDITATION' | 'MEET_AND_GREET' | 'MEMBERS_ONLY' | 'MOBILE_TOUR' | 'MUSEUM_EVENT' | 'MUSICAL' | 'MUSIC_FESTIVAL' | 'MUSIC_VIDEO_PREMIERE' | 'NETWORKING_MIXER' | 'NFT_MINT' | 'ONLINE_DROP' | 'ONLINE_PREMIERE' | 'ONLINE_WATCH_PARTY' | 'OPEN_MIC' | 'OPERA' | 'ORCHESTRA' | 'OTHER' | 'OUTDOOR_CINEMA' | 'PANEL' | 'PERFORMANCE_ART' | 'PHOTO_ACTIVATION' | 'POOL_PARTY' | 'POP_UP_BOUTIQUE' | 'POP_UP_DINING' | 'POP_UP_GALLERY' | 'POP_UP_SHOP' | 'PRESENTATION' | 'PRESS_EVENT' | 'PREVIEW' | 'PRIDE_FESTIVAL' | 'PRIVATE_EVENT' | 'PRODUCT_LAUNCH' | 'RAVE' | 'RELEASE_PARTY' | 'RESIDENCY' | 'RESTAURANT_OPENING' | 'RETREAT' | 'RIVALRY_GAME' | 'ROOFTOP_PARTY' | 'ROUNDTABLE' | 'RUNWAY_SHOW' | 'RUN_CLUB' | 'RUN_OR_RACE' | 'SAMPLE_SALE' | 'SAMPLING' | 'SECRET_DINING' | 'SEMINAR' | 'SHORT_FILM' | 'SHOWCASE' | 'SHOWROOM' | 'SILENT_DISCO' | 'SOCIAL_CHALLENGE' | 'SOLO_EXHIBITION' | 'SOUND_BATH' | 'SPA_EXPERIENCE' | 'SPOKEN_WORD' | 'SPONSORSHIP' | 'SPORTS_CLINIC' | 'SPORTS_WATCH_PARTY' | 'STANDUP_COMEDY' | 'STREET_TEAM' | 'STUDIO_VISIT' | 'SUMMIT' | 'SUPPER_CLUB' | 'TAILGATE' | 'TASTING' | 'THEATER' | 'THEMED_NIGHT' | 'TOURNAMENT' | 'TOUR_STOP' | 'TRIBUTE_SHOW' | 'TRUNK_SHOW' | 'TWITTER_SPACE' | 'VARIETY_SHOW' | 'VENUE_OPENING' | 'VIRTUAL_CONCERT' | 'VIRTUAL_EVENT' | 'WAREHOUSE_PARTY' | 'WATCH_PARTY' | 'WEBINAR' | 'WELLNESS_FESTIVAL' | 'WELLNESS_WORKSHOP' | 'WORKSHOP' | 'YOGA_SESSION';
15
+ type EchoType = 'LINK' | 'POST' | 'IMAGE' | 'VIDEO' | 'GALLERY' | 'MERCH' | 'AUDIO' | 'QUESTION' | 'POLL' | 'UPLOAD' | 'TOKEN' | 'MOMENT' | 'FORM' | 'THIRD_PARTY';
16
+ type ThirdPartyEchoType = 'SPOTIFY' | 'INSTAGRAM' | 'TIKTOK';
14
17
  type PaymentStatus = 'PENDING' | 'SUCCEEDED' | 'FAILED';
15
18
  type TicketExtensionStatus = 'PENDING' | 'APPLIED' | 'CANCELLED' | 'EXPIRED' | 'FAILED' | 'REFUNDED';
16
19
  interface Currency {
@@ -180,6 +183,55 @@ interface MomentCollection {
180
183
  updatedAt: Scalars['DateTime'];
181
184
  __typename: 'MomentCollection';
182
185
  }
186
+ interface Dimensions {
187
+ width: (Scalars['Int'] | null);
188
+ height: (Scalars['Int'] | null);
189
+ __typename: 'Dimensions';
190
+ }
191
+ /** A media asset associated with an echo (cover image, gallery item, audio, etc.). */
192
+ interface EchoMediaAsset {
193
+ uid: Scalars['ID'];
194
+ /** MIME type of the media (e.g. image/jpeg, video/mp4, audio/mpeg). */
195
+ mimeType: Scalars['String'];
196
+ /** S3 / CloudFront key for the asset. */
197
+ s3Key: Scalars['String'];
198
+ dimensions: Dimensions;
199
+ /** File size in bytes. */
200
+ size: Scalars['Int'];
201
+ /** Low-res placeholder URL for lazy loading. */
202
+ placeholderUrl: (Scalars['String'] | null);
203
+ /** Blurhash string for placeholder rendering. */
204
+ blurhash: (Scalars['String'] | null);
205
+ createdAt: Scalars['DateTime'];
206
+ updatedAt: Scalars['DateTime'];
207
+ __typename: 'EchoMediaAsset';
208
+ }
209
+ /** An echo is a content unit published by a brand — links, posts, images, videos, galleries, etc. */
210
+ interface Echo {
211
+ uid: Scalars['ID'];
212
+ type: EchoType;
213
+ name: Scalars['String'];
214
+ slug: (Scalars['String'] | null);
215
+ description: (Scalars['String'] | null);
216
+ /** Rich text body for POST-type echoes. */
217
+ postBody: (Scalars['String'] | null);
218
+ publishTime: Scalars['DateTime'];
219
+ externalLink: (Scalars['String'] | null);
220
+ termsLink: (Scalars['String'] | null);
221
+ isPublic: Scalars['Boolean'];
222
+ thirdPartyEchoType: (ThirdPartyEchoType | null);
223
+ /** Configuration for third-party embeds (Spotify, Instagram, TikTok). */
224
+ thirdPartyEchoConfig: (Scalars['JSON'] | null);
225
+ /** Primary media asset (cover image, single media). */
226
+ mediaAsset: (EchoMediaAsset | null);
227
+ /** Additional media assets (gallery items). */
228
+ echoMedia: (EchoMediaAsset[] | null);
229
+ /** The moment this echo is associated with, if any. */
230
+ moment: (Moment | null);
231
+ createdAt: Scalars['DateTime'];
232
+ updatedAt: Scalars['DateTime'];
233
+ __typename: 'Echo';
234
+ }
183
235
  interface GetPublicMomentsResponse {
184
236
  moments: Moment[];
185
237
  totalCount: Scalars['Int'];
@@ -201,6 +253,13 @@ interface GetPartnerCustomersResponse {
201
253
  nextCursor: (Scalars['String'] | null);
202
254
  __typename: 'GetPartnerCustomersResponse';
203
255
  }
256
+ interface GetBrandEchoesForUserResponse {
257
+ echoes: Echo[];
258
+ totalCount: Scalars['Int'];
259
+ hasNextPage: Scalars['Boolean'];
260
+ nextCursor: (Scalars['String'] | null);
261
+ __typename: 'GetBrandEchoesForUserResponse';
262
+ }
204
263
  interface Query {
205
264
  /** Get paginated moments for the brand associated with the partner token. */
206
265
  getPartnerMomentsForBrand: GetPublicMomentsResponse;
@@ -218,6 +277,12 @@ interface Query {
218
277
  * Returns the collection with its moments and links.
219
278
  */
220
279
  getPartnerMomentCollection: (MomentCollection | null);
280
+ /**
281
+ * Get public echoes for the brand associated with the partner token.
282
+ * If momentSlug is provided, returns moment-level echoes for that moment.
283
+ * If omitted, returns brand-level echoes.
284
+ */
285
+ getPartnerPublicEchoes: GetBrandEchoesForUserResponse;
221
286
  __typename: 'Query';
222
287
  }
223
288
  interface CurrencyGenqlSelection {
@@ -398,6 +463,58 @@ interface MomentCollectionGenqlSelection {
398
463
  __typename?: boolean | number;
399
464
  __scalar?: boolean | number;
400
465
  }
466
+ interface DimensionsGenqlSelection {
467
+ width?: boolean | number;
468
+ height?: boolean | number;
469
+ __typename?: boolean | number;
470
+ __scalar?: boolean | number;
471
+ }
472
+ /** A media asset associated with an echo (cover image, gallery item, audio, etc.). */
473
+ interface EchoMediaAssetGenqlSelection {
474
+ uid?: boolean | number;
475
+ /** MIME type of the media (e.g. image/jpeg, video/mp4, audio/mpeg). */
476
+ mimeType?: boolean | number;
477
+ /** S3 / CloudFront key for the asset. */
478
+ s3Key?: boolean | number;
479
+ dimensions?: DimensionsGenqlSelection;
480
+ /** File size in bytes. */
481
+ size?: boolean | number;
482
+ /** Low-res placeholder URL for lazy loading. */
483
+ placeholderUrl?: boolean | number;
484
+ /** Blurhash string for placeholder rendering. */
485
+ blurhash?: boolean | number;
486
+ createdAt?: boolean | number;
487
+ updatedAt?: boolean | number;
488
+ __typename?: boolean | number;
489
+ __scalar?: boolean | number;
490
+ }
491
+ /** An echo is a content unit published by a brand — links, posts, images, videos, galleries, etc. */
492
+ interface EchoGenqlSelection {
493
+ uid?: boolean | number;
494
+ type?: boolean | number;
495
+ name?: boolean | number;
496
+ slug?: boolean | number;
497
+ description?: boolean | number;
498
+ /** Rich text body for POST-type echoes. */
499
+ postBody?: boolean | number;
500
+ publishTime?: boolean | number;
501
+ externalLink?: boolean | number;
502
+ termsLink?: boolean | number;
503
+ isPublic?: boolean | number;
504
+ thirdPartyEchoType?: boolean | number;
505
+ /** Configuration for third-party embeds (Spotify, Instagram, TikTok). */
506
+ thirdPartyEchoConfig?: boolean | number;
507
+ /** Primary media asset (cover image, single media). */
508
+ mediaAsset?: EchoMediaAssetGenqlSelection;
509
+ /** Additional media assets (gallery items). */
510
+ echoMedia?: EchoMediaAssetGenqlSelection;
511
+ /** The moment this echo is associated with, if any. */
512
+ moment?: MomentGenqlSelection;
513
+ createdAt?: boolean | number;
514
+ updatedAt?: boolean | number;
515
+ __typename?: boolean | number;
516
+ __scalar?: boolean | number;
517
+ }
401
518
  interface GetPublicMomentsResponseGenqlSelection {
402
519
  moments?: MomentGenqlSelection;
403
520
  totalCount?: boolean | number;
@@ -422,6 +539,14 @@ interface GetPartnerCustomersResponseGenqlSelection {
422
539
  __typename?: boolean | number;
423
540
  __scalar?: boolean | number;
424
541
  }
542
+ interface GetBrandEchoesForUserResponseGenqlSelection {
543
+ echoes?: EchoGenqlSelection;
544
+ totalCount?: boolean | number;
545
+ hasNextPage?: boolean | number;
546
+ nextCursor?: boolean | number;
547
+ __typename?: boolean | number;
548
+ __scalar?: boolean | number;
549
+ }
425
550
  interface QueryGenqlSelection {
426
551
  /** Get paginated moments for the brand associated with the partner token. */
427
552
  getPartnerMomentsForBrand?: (GetPublicMomentsResponseGenqlSelection & {
@@ -472,6 +597,20 @@ interface QueryGenqlSelection {
472
597
  slug: Scalars['String'];
473
598
  };
474
599
  });
600
+ /**
601
+ * Get public echoes for the brand associated with the partner token.
602
+ * If momentSlug is provided, returns moment-level echoes for that moment.
603
+ * If omitted, returns brand-level echoes.
604
+ */
605
+ getPartnerPublicEchoes?: (GetBrandEchoesForUserResponseGenqlSelection & {
606
+ __args?: {
607
+ /** If provided, returns moment-level echoes for this moment. If omitted, returns brand-level echoes. */
608
+ momentSlug?: (Scalars['String'] | null);
609
+ /** Cursor UID for pagination */
610
+ cursor?: (Scalars['String'] | null);
611
+ take?: (Scalars['Int'] | null);
612
+ };
613
+ });
475
614
  __typename?: boolean | number;
476
615
  __scalar?: boolean | number;
477
616
  }
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  type Scalars = {
2
2
  DateTime: any;
3
+ JSON: any;
3
4
  ID: string;
4
5
  String: string;
5
6
  Boolean: boolean;
@@ -11,6 +12,8 @@ type MomentSortOrder = 'ASC' | 'DESC';
11
12
  type MomentType = 'DIGITAL' | 'IRL';
12
13
  type MomentCategory = 'ACTIVATION' | 'CONCERT' | 'DIGITAL' | 'DINING' | 'EDUCATION' | 'EXHIBITION' | 'FASHION' | 'FESTIVAL' | 'LAUNCH' | 'NIGHTLIFE' | 'OTHER' | 'PARTY' | 'PERFORMING_ARTS' | 'SCREENING' | 'SPORTS' | 'WELLNESS';
13
14
  type MomentSubcategory = 'ACOUSTIC_SET' | 'ADVANCE_SCREENING' | 'AFTER_PARTY' | 'AIRDROP' | 'ALBUM_DROP' | 'ALBUM_RELEASE_SHOW' | 'AMA' | 'ANNIVERSARY' | 'ARTIST_TALK' | 'ART_FAIR' | 'ART_FESTIVAL' | 'ATHLETE_APPEARANCE' | 'AWARDS' | 'BAR_TAKEOVER' | 'BATTLE' | 'BEER_AND_WINE_FESTIVAL' | 'BIENNALE' | 'BIRTHDAY' | 'BLOCK_PARTY' | 'BRAND_EXPERIENCE' | 'BRAND_REVEAL' | 'BREATHWORK' | 'BRUNCH_EVENT' | 'BURLESQUE' | 'CACAO_CEREMONY' | 'CARNIVAL' | 'CELEBRATION' | 'CHAMPIONSHIP' | 'CHEF_DINNER' | 'CHOIR_OR_ENSEMBLE' | 'CLUB_NIGHT' | 'CLUB_SET' | 'COLD_PLUNGE' | 'COLLABORATION_REVEAL' | 'COLLECTION_DROP' | 'COMEDY_FESTIVAL' | 'COMEDY_NIGHT' | 'COMEDY_SHOW' | 'COMMUNITY_MEETUP' | 'CONFERENCE' | 'COOKING_CLASS' | 'CULTURAL_FESTIVAL' | 'DANCE_PERFORMANCE' | 'DAYCLUB' | 'DIRECTORS_CUT' | 'DISCORD_EVENT' | 'DOCUMENTARY' | 'DRAG_SHOW' | 'ECSTATIC_DANCE' | 'ESPORTS' | 'EXHIBITION_GAME' | 'EXTREME_SPORTS' | 'FAN_EXPERIENCE' | 'FAN_FEST' | 'FASHION_FESTIVAL' | 'FASHION_PANEL' | 'FASHION_WEEK' | 'FIGHT_NIGHT' | 'FILM_FESTIVAL' | 'FILM_PREMIERE' | 'FINISSAGE' | 'FIRESIDE_CHAT' | 'FITNESS_CLASS' | 'FITTING_EVENT' | 'FOOD_FESTIVAL' | 'FOOD_PAIRING' | 'GALLERY_OPENING' | 'GAME_DAY' | 'GIVEAWAY' | 'GROUP_EXHIBITION' | 'GUERRILLA' | 'HACKATHON' | 'HEADLINER_SHOW' | 'HOLIDAY_PARTY' | 'HYBRID_EVENT' | 'IMMERSIVE_EXPERIENCE' | 'IMPROV_SHOW' | 'INFLUENCER_EVENT' | 'INSTALLATION' | 'INTERACTIVE_INSTALLATION' | 'JAZZ_NIGHT' | 'JAZZ_SESSION' | 'KARAOKE_NIGHT' | 'KEYNOTE' | 'LATE_NIGHT_SET' | 'LISTENING_PARTY' | 'LIVESTREAM' | 'LOOKBOOK_SHOOT' | 'MASQUERADE' | 'MASTERCLASS' | 'MEDITATION' | 'MEET_AND_GREET' | 'MEMBERS_ONLY' | 'MOBILE_TOUR' | 'MUSEUM_EVENT' | 'MUSICAL' | 'MUSIC_FESTIVAL' | 'MUSIC_VIDEO_PREMIERE' | 'NETWORKING_MIXER' | 'NFT_MINT' | 'ONLINE_DROP' | 'ONLINE_PREMIERE' | 'ONLINE_WATCH_PARTY' | 'OPEN_MIC' | 'OPERA' | 'ORCHESTRA' | 'OTHER' | 'OUTDOOR_CINEMA' | 'PANEL' | 'PERFORMANCE_ART' | 'PHOTO_ACTIVATION' | 'POOL_PARTY' | 'POP_UP_BOUTIQUE' | 'POP_UP_DINING' | 'POP_UP_GALLERY' | 'POP_UP_SHOP' | 'PRESENTATION' | 'PRESS_EVENT' | 'PREVIEW' | 'PRIDE_FESTIVAL' | 'PRIVATE_EVENT' | 'PRODUCT_LAUNCH' | 'RAVE' | 'RELEASE_PARTY' | 'RESIDENCY' | 'RESTAURANT_OPENING' | 'RETREAT' | 'RIVALRY_GAME' | 'ROOFTOP_PARTY' | 'ROUNDTABLE' | 'RUNWAY_SHOW' | 'RUN_CLUB' | 'RUN_OR_RACE' | 'SAMPLE_SALE' | 'SAMPLING' | 'SECRET_DINING' | 'SEMINAR' | 'SHORT_FILM' | 'SHOWCASE' | 'SHOWROOM' | 'SILENT_DISCO' | 'SOCIAL_CHALLENGE' | 'SOLO_EXHIBITION' | 'SOUND_BATH' | 'SPA_EXPERIENCE' | 'SPOKEN_WORD' | 'SPONSORSHIP' | 'SPORTS_CLINIC' | 'SPORTS_WATCH_PARTY' | 'STANDUP_COMEDY' | 'STREET_TEAM' | 'STUDIO_VISIT' | 'SUMMIT' | 'SUPPER_CLUB' | 'TAILGATE' | 'TASTING' | 'THEATER' | 'THEMED_NIGHT' | 'TOURNAMENT' | 'TOUR_STOP' | 'TRIBUTE_SHOW' | 'TRUNK_SHOW' | 'TWITTER_SPACE' | 'VARIETY_SHOW' | 'VENUE_OPENING' | 'VIRTUAL_CONCERT' | 'VIRTUAL_EVENT' | 'WAREHOUSE_PARTY' | 'WATCH_PARTY' | 'WEBINAR' | 'WELLNESS_FESTIVAL' | 'WELLNESS_WORKSHOP' | 'WORKSHOP' | 'YOGA_SESSION';
15
+ type EchoType = 'LINK' | 'POST' | 'IMAGE' | 'VIDEO' | 'GALLERY' | 'MERCH' | 'AUDIO' | 'QUESTION' | 'POLL' | 'UPLOAD' | 'TOKEN' | 'MOMENT' | 'FORM' | 'THIRD_PARTY';
16
+ type ThirdPartyEchoType = 'SPOTIFY' | 'INSTAGRAM' | 'TIKTOK';
14
17
  type PaymentStatus = 'PENDING' | 'SUCCEEDED' | 'FAILED';
15
18
  type TicketExtensionStatus = 'PENDING' | 'APPLIED' | 'CANCELLED' | 'EXPIRED' | 'FAILED' | 'REFUNDED';
16
19
  interface Currency {
@@ -180,6 +183,55 @@ interface MomentCollection {
180
183
  updatedAt: Scalars['DateTime'];
181
184
  __typename: 'MomentCollection';
182
185
  }
186
+ interface Dimensions {
187
+ width: (Scalars['Int'] | null);
188
+ height: (Scalars['Int'] | null);
189
+ __typename: 'Dimensions';
190
+ }
191
+ /** A media asset associated with an echo (cover image, gallery item, audio, etc.). */
192
+ interface EchoMediaAsset {
193
+ uid: Scalars['ID'];
194
+ /** MIME type of the media (e.g. image/jpeg, video/mp4, audio/mpeg). */
195
+ mimeType: Scalars['String'];
196
+ /** S3 / CloudFront key for the asset. */
197
+ s3Key: Scalars['String'];
198
+ dimensions: Dimensions;
199
+ /** File size in bytes. */
200
+ size: Scalars['Int'];
201
+ /** Low-res placeholder URL for lazy loading. */
202
+ placeholderUrl: (Scalars['String'] | null);
203
+ /** Blurhash string for placeholder rendering. */
204
+ blurhash: (Scalars['String'] | null);
205
+ createdAt: Scalars['DateTime'];
206
+ updatedAt: Scalars['DateTime'];
207
+ __typename: 'EchoMediaAsset';
208
+ }
209
+ /** An echo is a content unit published by a brand — links, posts, images, videos, galleries, etc. */
210
+ interface Echo {
211
+ uid: Scalars['ID'];
212
+ type: EchoType;
213
+ name: Scalars['String'];
214
+ slug: (Scalars['String'] | null);
215
+ description: (Scalars['String'] | null);
216
+ /** Rich text body for POST-type echoes. */
217
+ postBody: (Scalars['String'] | null);
218
+ publishTime: Scalars['DateTime'];
219
+ externalLink: (Scalars['String'] | null);
220
+ termsLink: (Scalars['String'] | null);
221
+ isPublic: Scalars['Boolean'];
222
+ thirdPartyEchoType: (ThirdPartyEchoType | null);
223
+ /** Configuration for third-party embeds (Spotify, Instagram, TikTok). */
224
+ thirdPartyEchoConfig: (Scalars['JSON'] | null);
225
+ /** Primary media asset (cover image, single media). */
226
+ mediaAsset: (EchoMediaAsset | null);
227
+ /** Additional media assets (gallery items). */
228
+ echoMedia: (EchoMediaAsset[] | null);
229
+ /** The moment this echo is associated with, if any. */
230
+ moment: (Moment | null);
231
+ createdAt: Scalars['DateTime'];
232
+ updatedAt: Scalars['DateTime'];
233
+ __typename: 'Echo';
234
+ }
183
235
  interface GetPublicMomentsResponse {
184
236
  moments: Moment[];
185
237
  totalCount: Scalars['Int'];
@@ -201,6 +253,13 @@ interface GetPartnerCustomersResponse {
201
253
  nextCursor: (Scalars['String'] | null);
202
254
  __typename: 'GetPartnerCustomersResponse';
203
255
  }
256
+ interface GetBrandEchoesForUserResponse {
257
+ echoes: Echo[];
258
+ totalCount: Scalars['Int'];
259
+ hasNextPage: Scalars['Boolean'];
260
+ nextCursor: (Scalars['String'] | null);
261
+ __typename: 'GetBrandEchoesForUserResponse';
262
+ }
204
263
  interface Query {
205
264
  /** Get paginated moments for the brand associated with the partner token. */
206
265
  getPartnerMomentsForBrand: GetPublicMomentsResponse;
@@ -218,6 +277,12 @@ interface Query {
218
277
  * Returns the collection with its moments and links.
219
278
  */
220
279
  getPartnerMomentCollection: (MomentCollection | null);
280
+ /**
281
+ * Get public echoes for the brand associated with the partner token.
282
+ * If momentSlug is provided, returns moment-level echoes for that moment.
283
+ * If omitted, returns brand-level echoes.
284
+ */
285
+ getPartnerPublicEchoes: GetBrandEchoesForUserResponse;
221
286
  __typename: 'Query';
222
287
  }
223
288
  interface CurrencyGenqlSelection {
@@ -398,6 +463,58 @@ interface MomentCollectionGenqlSelection {
398
463
  __typename?: boolean | number;
399
464
  __scalar?: boolean | number;
400
465
  }
466
+ interface DimensionsGenqlSelection {
467
+ width?: boolean | number;
468
+ height?: boolean | number;
469
+ __typename?: boolean | number;
470
+ __scalar?: boolean | number;
471
+ }
472
+ /** A media asset associated with an echo (cover image, gallery item, audio, etc.). */
473
+ interface EchoMediaAssetGenqlSelection {
474
+ uid?: boolean | number;
475
+ /** MIME type of the media (e.g. image/jpeg, video/mp4, audio/mpeg). */
476
+ mimeType?: boolean | number;
477
+ /** S3 / CloudFront key for the asset. */
478
+ s3Key?: boolean | number;
479
+ dimensions?: DimensionsGenqlSelection;
480
+ /** File size in bytes. */
481
+ size?: boolean | number;
482
+ /** Low-res placeholder URL for lazy loading. */
483
+ placeholderUrl?: boolean | number;
484
+ /** Blurhash string for placeholder rendering. */
485
+ blurhash?: boolean | number;
486
+ createdAt?: boolean | number;
487
+ updatedAt?: boolean | number;
488
+ __typename?: boolean | number;
489
+ __scalar?: boolean | number;
490
+ }
491
+ /** An echo is a content unit published by a brand — links, posts, images, videos, galleries, etc. */
492
+ interface EchoGenqlSelection {
493
+ uid?: boolean | number;
494
+ type?: boolean | number;
495
+ name?: boolean | number;
496
+ slug?: boolean | number;
497
+ description?: boolean | number;
498
+ /** Rich text body for POST-type echoes. */
499
+ postBody?: boolean | number;
500
+ publishTime?: boolean | number;
501
+ externalLink?: boolean | number;
502
+ termsLink?: boolean | number;
503
+ isPublic?: boolean | number;
504
+ thirdPartyEchoType?: boolean | number;
505
+ /** Configuration for third-party embeds (Spotify, Instagram, TikTok). */
506
+ thirdPartyEchoConfig?: boolean | number;
507
+ /** Primary media asset (cover image, single media). */
508
+ mediaAsset?: EchoMediaAssetGenqlSelection;
509
+ /** Additional media assets (gallery items). */
510
+ echoMedia?: EchoMediaAssetGenqlSelection;
511
+ /** The moment this echo is associated with, if any. */
512
+ moment?: MomentGenqlSelection;
513
+ createdAt?: boolean | number;
514
+ updatedAt?: boolean | number;
515
+ __typename?: boolean | number;
516
+ __scalar?: boolean | number;
517
+ }
401
518
  interface GetPublicMomentsResponseGenqlSelection {
402
519
  moments?: MomentGenqlSelection;
403
520
  totalCount?: boolean | number;
@@ -422,6 +539,14 @@ interface GetPartnerCustomersResponseGenqlSelection {
422
539
  __typename?: boolean | number;
423
540
  __scalar?: boolean | number;
424
541
  }
542
+ interface GetBrandEchoesForUserResponseGenqlSelection {
543
+ echoes?: EchoGenqlSelection;
544
+ totalCount?: boolean | number;
545
+ hasNextPage?: boolean | number;
546
+ nextCursor?: boolean | number;
547
+ __typename?: boolean | number;
548
+ __scalar?: boolean | number;
549
+ }
425
550
  interface QueryGenqlSelection {
426
551
  /** Get paginated moments for the brand associated with the partner token. */
427
552
  getPartnerMomentsForBrand?: (GetPublicMomentsResponseGenqlSelection & {
@@ -472,6 +597,20 @@ interface QueryGenqlSelection {
472
597
  slug: Scalars['String'];
473
598
  };
474
599
  });
600
+ /**
601
+ * Get public echoes for the brand associated with the partner token.
602
+ * If momentSlug is provided, returns moment-level echoes for that moment.
603
+ * If omitted, returns brand-level echoes.
604
+ */
605
+ getPartnerPublicEchoes?: (GetBrandEchoesForUserResponseGenqlSelection & {
606
+ __args?: {
607
+ /** If provided, returns moment-level echoes for this moment. If omitted, returns brand-level echoes. */
608
+ momentSlug?: (Scalars['String'] | null);
609
+ /** Cursor UID for pagination */
610
+ cursor?: (Scalars['String'] | null);
611
+ take?: (Scalars['Int'] | null);
612
+ };
613
+ });
475
614
  __typename?: boolean | number;
476
615
  __scalar?: boolean | number;
477
616
  }