@itm-studio/partner-sdk 0.2.4 → 0.2.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/README.md CHANGED
@@ -35,6 +35,7 @@ const { getPartnerMomentsForBrand } = await itm.query({
35
35
  status: true,
36
36
  timezone: true,
37
37
  externalUrl: true,
38
+ lineupDisplayLabel: true,
38
39
  coverImage: {
39
40
  url: true,
40
41
  mimeType: true,
@@ -89,6 +90,30 @@ export function createITMClientForRequest(request: Request) {
89
90
 
90
91
  If you also send `input.compliance`, the backend keeps the values you provide and backfills missing `ipAddress` and `userAgent` from the forwarded headers when available.
91
92
 
93
+ ## Money Amounts
94
+
95
+ Partner API price values are always encoded as `amount * 100`. Divide by `100` before rendering a major-unit display amount (dollars for USD, euros for EUR, yen for JPY, etc.).
96
+
97
+ This convention also applies to zero-decimal currencies such as JPY and KRW. The rendering conversion is always `price / 100`; zero-decimal status only controls whether the formatted display shows fractional digits. For example, `2500` should be displayed as `JPY 25`, not `JPY 2,500`.
98
+
99
+ ```typescript
100
+ const ZERO_DECIMAL_CURRENCIES = new Set(['BIF', 'CLP', 'DJF', 'GNF', 'JPY', 'KMF', 'KRW', 'MGA', 'PYG', 'RWF', 'UGX', 'VND', 'VUV', 'XAF', 'XOF', 'XPF']);
101
+
102
+ function formatPartnerPrice(priceInCents: number, currencyCode: string) {
103
+ if (priceInCents === 0) return 'Free';
104
+
105
+ const amount = priceInCents / 100;
106
+ const maximumFractionDigits = ZERO_DECIMAL_CURRENCIES.has(currencyCode) ? 0 : 2;
107
+
108
+ return new Intl.NumberFormat('en-US', {
109
+ style: 'currency',
110
+ currency: currencyCode,
111
+ minimumFractionDigits: maximumFractionDigits,
112
+ maximumFractionDigits,
113
+ }).format(amount);
114
+ }
115
+ ```
116
+
92
117
  ## Available Queries
93
118
 
94
119
  ### `getPartnerMomentsForBrand`
@@ -126,6 +151,7 @@ const { getPartnerMoment } = await itm.query({
126
151
  endDate: true,
127
152
  timezone: true,
128
153
  externalUrl: true,
154
+ lineupDisplayLabel: true,
129
155
  coverImage: {
130
156
  url: true,
131
157
  mimeType: true,
@@ -139,6 +165,73 @@ const { getPartnerMoment } = await itm.query({
139
165
  });
140
166
  ```
141
167
 
168
+ ### `getPublicMomentLineups`
169
+
170
+ Get approved public lineup entries for a moment. Use `getPartnerMoment` first if you only have the moment slug; this query takes the moment `uid`.
171
+
172
+ ```typescript
173
+ const { getPartnerMoment } = await itm.query({
174
+ getPartnerMoment: {
175
+ __args: { slug: 'my-event-slug' },
176
+ uid: true,
177
+ lineupDisplayLabel: true,
178
+ },
179
+ });
180
+
181
+ const momentUid = getPartnerMoment?.uid;
182
+
183
+ if (momentUid) {
184
+ const { getPublicMomentLineups } = await itm.query({
185
+ getPublicMomentLineups: {
186
+ __args: {
187
+ momentUid,
188
+ take: 50,
189
+ lineupType: 'DJ', // optional: LINEUP | CO_HOST | PROMOTER | DJ | SPEAKER | VENDOR
190
+ },
191
+ lineups: {
192
+ uid: true,
193
+ name: true,
194
+ status: true,
195
+ lineupType: true,
196
+ sortOrder: true,
197
+ url: true,
198
+ image: {
199
+ url: true,
200
+ mimeType: true,
201
+ },
202
+ },
203
+ totalCount: true,
204
+ hasNextPage: true,
205
+ nextCursor: true,
206
+ },
207
+ });
208
+
209
+ console.log(getPartnerMoment?.lineupDisplayLabel, getPublicMomentLineups.lineups);
210
+ }
211
+ ```
212
+
213
+ Only approved lineup entries are returned. `momentUid`, `cursor`, `take`, and `lineupType` map directly to the backend query args; use `nextCursor` as `cursor` while `hasNextPage` is true. The public lineup query is throttled to 30 requests per minute, so cache or batch page loads if you render it in high-traffic public pages.
214
+
215
+ `lineupDisplayLabel` is available on `Moment` so your UI can label the section as `LINEUP`, `CO_HOSTS`, `DJS`, `PROMOTERS`, `SPEAKERS`, or `VENDORS`.
216
+
217
+ ### `getMomentLineupByToken`
218
+
219
+ Get public lineup invitation details by response token. This is useful if you build a custom artist or collaborator response page.
220
+
221
+ ```typescript
222
+ const { getMomentLineupByToken } = await itm.query({
223
+ getMomentLineupByToken: {
224
+ __args: { token: 'lineup-response-token' },
225
+ artistName: true,
226
+ momentName: true,
227
+ brandName: true,
228
+ status: true,
229
+ lineupType: true,
230
+ alreadyResponded: true,
231
+ },
232
+ });
233
+ ```
234
+
142
235
  ### `getMomentStats`
143
236
 
144
237
  Get cached partner-facing counts for a moment owned by the authenticated partner's brand.
@@ -341,7 +434,28 @@ const { getPartnerPublicEchoes } = await itm.query({
341
434
 
342
435
  ## Available Mutations
343
436
 
344
- The SDK supports write operations via `client.mutation()`. All mutations use the same authentication — your brand is determined from the token.
437
+ The SDK supports write operations via `client.mutation()`. Partner mutations use the same authentication — your brand is determined from the partner token.
438
+
439
+ ### `respondToMomentLineup`
440
+
441
+ Submit a public lineup invitation response by token.
442
+
443
+ ```typescript
444
+ const { respondToMomentLineup } = await itm.mutation({
445
+ respondToMomentLineup: {
446
+ __args: {
447
+ input: {
448
+ token: 'lineup-response-token',
449
+ status: 'APPROVED', // APPROVED or REJECTED
450
+ },
451
+ },
452
+ status: true,
453
+ success: true,
454
+ },
455
+ });
456
+ ```
457
+
458
+ Admin-only lineup creation and ordering are not part of the partner-token SDK surface. Use backstage for managing lineup entries.
345
459
 
346
460
  ## Partner Brand Subscription Guide
347
461
 
@@ -870,7 +984,7 @@ const { createPartnerMoment } = await itm.mutation({
870
984
  - `IRL` — in-person event (requires `venue`)
871
985
  - `DIGITAL` — online event (no venue needed)
872
986
 
873
- **Ticket tier pricing:** `price` is in **cents** (e.g. `2500` = $25.00). Use `0` for free tiers.
987
+ **Ticket tier pricing:** `price` is in **cents** (e.g. `2500` = $25.00 for USD). Use `0` for free tiers. See [Money Amounts](#money-amounts) for display formatting, including zero-decimal currencies.
874
988
 
875
989
  ### Complete Upload + Create Moment Flow
876
990
 
package/dist/index.d.mts CHANGED
@@ -12,6 +12,10 @@ type MomentSortOrder = 'ASC' | 'DESC';
12
12
  type MomentType = 'DIGITAL' | 'IRL';
13
13
  type MomentCategory = 'ACTIVATION' | 'CONCERT' | 'DIGITAL' | 'DINING' | 'EDUCATION' | 'EXHIBITION' | 'FASHION' | 'FESTIVAL' | 'LAUNCH' | 'NIGHTLIFE' | 'OTHER' | 'PARTY' | 'PERFORMING_ARTS' | 'SCREENING' | 'SPORTS' | 'WELLNESS';
14
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 MomentLineupStatus = 'APPROVED' | 'PENDING' | 'REJECTED';
16
+ type MomentLineupType = 'CO_HOST' | 'DJ' | 'LINEUP' | 'PROMOTER' | 'SPEAKER' | 'VENDOR';
17
+ /** Display label for the lineup section on public event pages. */
18
+ type MomentLineupDisplayLabel = 'CO_HOSTS' | 'DJS' | 'LINEUP' | 'PROMOTERS' | 'SPEAKERS' | 'VENDORS';
15
19
  type EchoType = 'LINK' | 'POST' | 'IMAGE' | 'VIDEO' | 'GALLERY' | 'MERCH' | 'AUDIO' | 'QUESTION' | 'POLL' | 'UPLOAD' | 'TOKEN' | 'MOMENT' | 'FORM' | 'THIRD_PARTY';
16
20
  type ThirdPartyEchoType = 'SPOTIFY' | 'INSTAGRAM' | 'TIKTOK';
17
21
  type PaymentStatus = 'PENDING' | 'SUCCEEDED' | 'FAILED';
@@ -66,6 +70,8 @@ interface Moment {
66
70
  timezone: Scalars['String'];
67
71
  minimumAge: Scalars['Int'];
68
72
  externalUrl: (Scalars['String'] | null);
73
+ /** Display label to use when rendering the public lineup section. */
74
+ lineupDisplayLabel: MomentLineupDisplayLabel;
69
75
  /** Cover image for the moment. Null if no cover image is set. */
70
76
  coverImage: (MomentCoverImage | null);
71
77
  venue: (Venue | null);
@@ -74,6 +80,22 @@ interface Moment {
74
80
  updatedAt: Scalars['DateTime'];
75
81
  __typename: 'Moment';
76
82
  }
83
+ /**
84
+ * Public-facing lineup entry for a moment.
85
+ * Only approved entries are returned by getPublicMomentLineups.
86
+ */
87
+ interface MomentLineup {
88
+ uid: Scalars['ID'];
89
+ name: Scalars['String'];
90
+ status: MomentLineupStatus;
91
+ lineupType: MomentLineupType;
92
+ sortOrder: Scalars['String'];
93
+ url: (Scalars['String'] | null);
94
+ image: (MomentCoverImage | null);
95
+ createdAt: Scalars['DateTime'];
96
+ updatedAt: Scalars['DateTime'];
97
+ __typename: 'MomentLineup';
98
+ }
77
99
  interface TicketTier {
78
100
  uid: Scalars['ID'];
79
101
  name: Scalars['String'];
@@ -246,6 +268,13 @@ interface GetPublicMomentsResponse {
246
268
  nextCursor: (Scalars['String'] | null);
247
269
  __typename: 'GetPublicMomentsResponse';
248
270
  }
271
+ interface GetMomentLineupsResponse {
272
+ lineups: MomentLineup[];
273
+ totalCount: Scalars['Int'];
274
+ hasNextPage: Scalars['Boolean'];
275
+ nextCursor: (Scalars['String'] | null);
276
+ __typename: 'GetMomentLineupsResponse';
277
+ }
249
278
  interface GetTicketsResponse {
250
279
  tickets: Ticket[];
251
280
  totalCount: Scalars['Int'];
@@ -275,6 +304,21 @@ interface BrandSubscription {
275
304
  updatedAt: Scalars['DateTime'];
276
305
  __typename: 'BrandSubscription';
277
306
  }
307
+ interface PublicMomentLineupInfo {
308
+ token: Scalars['String'];
309
+ artistName: Scalars['String'];
310
+ momentName: Scalars['String'];
311
+ brandName: Scalars['String'];
312
+ status: MomentLineupStatus;
313
+ lineupType: MomentLineupType;
314
+ alreadyResponded: Scalars['Boolean'];
315
+ __typename: 'PublicMomentLineupInfo';
316
+ }
317
+ interface MomentLineupResponseResult {
318
+ status: MomentLineupStatus;
319
+ success: Scalars['Boolean'];
320
+ __typename: 'MomentLineupResponseResult';
321
+ }
278
322
  interface Query {
279
323
  /** Get paginated moments for the brand associated with the partner token. */
280
324
  getPartnerMomentsForBrand: GetPublicMomentsResponse;
@@ -303,6 +347,13 @@ interface Query {
303
347
  * If omitted, returns brand-level echoes.
304
348
  */
305
349
  getPartnerPublicEchoes: GetBrandEchoesForUserResponse;
350
+ /**
351
+ * Get approved public lineup entries for a moment.
352
+ * Use getPartnerMoment to resolve a moment slug to uid before calling this query.
353
+ */
354
+ getPublicMomentLineups: GetMomentLineupsResponse;
355
+ /** Get public lineup invitation details by response token. */
356
+ getMomentLineupByToken: PublicMomentLineupInfo;
306
357
  __typename: 'Query';
307
358
  }
308
359
  /**
@@ -364,6 +415,7 @@ interface Mutation {
364
415
  createPartnerMoment: Moment;
365
416
  /** Complete a partner brand subscription that was created with requireOtpVerification=true. */
366
417
  verifyPartnerBrandSubscription: BrandSubscription;
418
+ respondToMomentLineup: MomentLineupResponseResult;
367
419
  __typename: 'Mutation';
368
420
  }
369
421
  interface CurrencyGenqlSelection {
@@ -419,6 +471,8 @@ interface MomentGenqlSelection {
419
471
  timezone?: boolean | number;
420
472
  minimumAge?: boolean | number;
421
473
  externalUrl?: boolean | number;
474
+ /** Display label to use when rendering the public lineup section. */
475
+ lineupDisplayLabel?: boolean | number;
422
476
  /** Cover image for the moment. Null if no cover image is set. */
423
477
  coverImage?: MomentCoverImageGenqlSelection;
424
478
  venue?: VenueGenqlSelection;
@@ -428,6 +482,23 @@ interface MomentGenqlSelection {
428
482
  __typename?: boolean | number;
429
483
  __scalar?: boolean | number;
430
484
  }
485
+ /**
486
+ * Public-facing lineup entry for a moment.
487
+ * Only approved entries are returned by getPublicMomentLineups.
488
+ */
489
+ interface MomentLineupGenqlSelection {
490
+ uid?: boolean | number;
491
+ name?: boolean | number;
492
+ status?: boolean | number;
493
+ lineupType?: boolean | number;
494
+ sortOrder?: boolean | number;
495
+ url?: boolean | number;
496
+ image?: MomentCoverImageGenqlSelection;
497
+ createdAt?: boolean | number;
498
+ updatedAt?: boolean | number;
499
+ __typename?: boolean | number;
500
+ __scalar?: boolean | number;
501
+ }
431
502
  interface TicketTierGenqlSelection {
432
503
  uid?: boolean | number;
433
504
  name?: boolean | number;
@@ -612,6 +683,14 @@ interface GetPublicMomentsResponseGenqlSelection {
612
683
  __typename?: boolean | number;
613
684
  __scalar?: boolean | number;
614
685
  }
686
+ interface GetMomentLineupsResponseGenqlSelection {
687
+ lineups?: MomentLineupGenqlSelection;
688
+ totalCount?: boolean | number;
689
+ hasNextPage?: boolean | number;
690
+ nextCursor?: boolean | number;
691
+ __typename?: boolean | number;
692
+ __scalar?: boolean | number;
693
+ }
615
694
  interface GetTicketsResponseGenqlSelection {
616
695
  tickets?: TicketGenqlSelection;
617
696
  totalCount?: boolean | number;
@@ -645,6 +724,23 @@ interface BrandSubscriptionGenqlSelection {
645
724
  __typename?: boolean | number;
646
725
  __scalar?: boolean | number;
647
726
  }
727
+ interface PublicMomentLineupInfoGenqlSelection {
728
+ token?: boolean | number;
729
+ artistName?: boolean | number;
730
+ momentName?: boolean | number;
731
+ brandName?: boolean | number;
732
+ status?: boolean | number;
733
+ lineupType?: boolean | number;
734
+ alreadyResponded?: boolean | number;
735
+ __typename?: boolean | number;
736
+ __scalar?: boolean | number;
737
+ }
738
+ interface MomentLineupResponseResultGenqlSelection {
739
+ status?: boolean | number;
740
+ success?: boolean | number;
741
+ __typename?: boolean | number;
742
+ __scalar?: boolean | number;
743
+ }
648
744
  interface QueryGenqlSelection {
649
745
  /** Get paginated moments for the brand associated with the partner token. */
650
746
  getPartnerMomentsForBrand?: (GetPublicMomentsResponseGenqlSelection & {
@@ -718,6 +814,25 @@ interface QueryGenqlSelection {
718
814
  take?: (Scalars['Int'] | null);
719
815
  };
720
816
  });
817
+ /**
818
+ * Get approved public lineup entries for a moment.
819
+ * Use getPartnerMoment to resolve a moment slug to uid before calling this query.
820
+ */
821
+ getPublicMomentLineups?: (GetMomentLineupsResponseGenqlSelection & {
822
+ __args: {
823
+ momentUid: Scalars['String'];
824
+ /** Cursor UID for pagination. */
825
+ cursor?: (Scalars['String'] | null);
826
+ take?: (Scalars['Int'] | null);
827
+ lineupType?: (MomentLineupType | null);
828
+ };
829
+ });
830
+ /** Get public lineup invitation details by response token. */
831
+ getMomentLineupByToken?: (PublicMomentLineupInfoGenqlSelection & {
832
+ __args: {
833
+ token: Scalars['String'];
834
+ };
835
+ });
721
836
  __typename?: boolean | number;
722
837
  __scalar?: boolean | number;
723
838
  }
@@ -772,6 +887,10 @@ interface CreatePartnerMomentInput {
772
887
  /** Ticket tiers to create along with the moment. */
773
888
  ticketTiers?: (CreatePartnerTicketTierInput[] | null);
774
889
  }
890
+ interface RespondToMomentLineupInput {
891
+ token: Scalars['String'];
892
+ status: MomentLineupStatus;
893
+ }
775
894
  interface SubscriptionComplianceInput {
776
895
  browserName?: (Scalars['String'] | null);
777
896
  browserVersion?: (Scalars['String'] | null);
@@ -930,6 +1049,11 @@ interface MutationGenqlSelection {
930
1049
  input: VerifyPartnerBrandSubscriptionInput;
931
1050
  };
932
1051
  });
1052
+ respondToMomentLineup?: (MomentLineupResponseResultGenqlSelection & {
1053
+ __args: {
1054
+ input: RespondToMomentLineupInput;
1055
+ };
1056
+ });
933
1057
  __typename?: boolean | number;
934
1058
  __scalar?: boolean | number;
935
1059
  }
@@ -1032,6 +1156,7 @@ type ITMPartnerClient = Client;
1032
1156
  * uid: true,
1033
1157
  * name: true,
1034
1158
  * startDate: true,
1159
+ * lineupDisplayLabel: true,
1035
1160
  * coverImage: { url: true, mimeType: true },
1036
1161
  * venue: { name: true, city: true },
1037
1162
  * },
@@ -1044,4 +1169,4 @@ type ITMPartnerClient = Client;
1044
1169
  */
1045
1170
  declare function createITMPartnerClient(config: ITMPartnerClientConfig): ITMPartnerClient;
1046
1171
 
1047
- export { type BrandSubscription, type CreatePartnerBrandSubscriptionInput, type CreatePartnerBrandSubscriptionResponse, type CreatePartnerMomentInput, type CreatePartnerTicketTierInput, type Currency, DEFAULT_API_URL, type Dimensions, type DimensionsInput, type Echo, type EchoMediaAsset, type EchoType, type GetBrandEchoesForUserResponse, type GetPartnerCustomersResponse, type GetPublicMomentsResponse, type GetTicketsResponse, type ITMPartnerClient, type ITMPartnerClientConfig, type ITMPartnerHeaders, type ITMPartnerHeadersObject, type MediaAsset, type MediaAssetUploadUrl, type MerchPurchase, type Moment, type MomentCategory, type MomentCollection, type MomentCollectionLink, type MomentDiscountCodeUsage, type MomentSortOrder, type MomentStatus, type MomentSubcategory, type MomentType, type Mutation, type PartnerCustomer, type PartnerMomentStats, type Payment, type PaymentStatus, type PostSubscriptionEmailInput, type PostSubscriptionMessageInput, type PostSubscriptionPushInput, type PostSubscriptionSmsInput, type Query, type SubscriptionComplianceInput, type ThirdPartyEchoType, type Ticket, type TicketExtension, type TicketExtensionStatus, type TicketTier, type User, type Venue, type VenueInput, type VerifyPartnerBrandSubscriptionInput, createITMPartnerClient, everything, generateMutationOp, generateQueryOp };
1172
+ export { type BrandSubscription, type CreatePartnerBrandSubscriptionInput, type CreatePartnerBrandSubscriptionResponse, type CreatePartnerMomentInput, type CreatePartnerTicketTierInput, type Currency, DEFAULT_API_URL, type Dimensions, type DimensionsInput, type Echo, type EchoMediaAsset, type EchoType, type GetBrandEchoesForUserResponse, type GetMomentLineupsResponse, type GetPartnerCustomersResponse, type GetPublicMomentsResponse, type GetTicketsResponse, type ITMPartnerClient, type ITMPartnerClientConfig, type ITMPartnerHeaders, type ITMPartnerHeadersObject, type MediaAsset, type MediaAssetUploadUrl, type MerchPurchase, type Moment, type MomentCategory, type MomentCollection, type MomentCollectionLink, type MomentDiscountCodeUsage, type MomentLineup, type MomentLineupDisplayLabel, type MomentLineupResponseResult, type MomentLineupStatus, type MomentLineupType, type MomentSortOrder, type MomentStatus, type MomentSubcategory, type MomentType, type Mutation, type PartnerCustomer, type PartnerMomentStats, type Payment, type PaymentStatus, type PostSubscriptionEmailInput, type PostSubscriptionMessageInput, type PostSubscriptionPushInput, type PostSubscriptionSmsInput, type PublicMomentLineupInfo, type Query, type RespondToMomentLineupInput, type SubscriptionComplianceInput, type ThirdPartyEchoType, type Ticket, type TicketExtension, type TicketExtensionStatus, type TicketTier, type User, type Venue, type VenueInput, type VerifyPartnerBrandSubscriptionInput, createITMPartnerClient, everything, generateMutationOp, generateQueryOp };
package/dist/index.d.ts CHANGED
@@ -12,6 +12,10 @@ type MomentSortOrder = 'ASC' | 'DESC';
12
12
  type MomentType = 'DIGITAL' | 'IRL';
13
13
  type MomentCategory = 'ACTIVATION' | 'CONCERT' | 'DIGITAL' | 'DINING' | 'EDUCATION' | 'EXHIBITION' | 'FASHION' | 'FESTIVAL' | 'LAUNCH' | 'NIGHTLIFE' | 'OTHER' | 'PARTY' | 'PERFORMING_ARTS' | 'SCREENING' | 'SPORTS' | 'WELLNESS';
14
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 MomentLineupStatus = 'APPROVED' | 'PENDING' | 'REJECTED';
16
+ type MomentLineupType = 'CO_HOST' | 'DJ' | 'LINEUP' | 'PROMOTER' | 'SPEAKER' | 'VENDOR';
17
+ /** Display label for the lineup section on public event pages. */
18
+ type MomentLineupDisplayLabel = 'CO_HOSTS' | 'DJS' | 'LINEUP' | 'PROMOTERS' | 'SPEAKERS' | 'VENDORS';
15
19
  type EchoType = 'LINK' | 'POST' | 'IMAGE' | 'VIDEO' | 'GALLERY' | 'MERCH' | 'AUDIO' | 'QUESTION' | 'POLL' | 'UPLOAD' | 'TOKEN' | 'MOMENT' | 'FORM' | 'THIRD_PARTY';
16
20
  type ThirdPartyEchoType = 'SPOTIFY' | 'INSTAGRAM' | 'TIKTOK';
17
21
  type PaymentStatus = 'PENDING' | 'SUCCEEDED' | 'FAILED';
@@ -66,6 +70,8 @@ interface Moment {
66
70
  timezone: Scalars['String'];
67
71
  minimumAge: Scalars['Int'];
68
72
  externalUrl: (Scalars['String'] | null);
73
+ /** Display label to use when rendering the public lineup section. */
74
+ lineupDisplayLabel: MomentLineupDisplayLabel;
69
75
  /** Cover image for the moment. Null if no cover image is set. */
70
76
  coverImage: (MomentCoverImage | null);
71
77
  venue: (Venue | null);
@@ -74,6 +80,22 @@ interface Moment {
74
80
  updatedAt: Scalars['DateTime'];
75
81
  __typename: 'Moment';
76
82
  }
83
+ /**
84
+ * Public-facing lineup entry for a moment.
85
+ * Only approved entries are returned by getPublicMomentLineups.
86
+ */
87
+ interface MomentLineup {
88
+ uid: Scalars['ID'];
89
+ name: Scalars['String'];
90
+ status: MomentLineupStatus;
91
+ lineupType: MomentLineupType;
92
+ sortOrder: Scalars['String'];
93
+ url: (Scalars['String'] | null);
94
+ image: (MomentCoverImage | null);
95
+ createdAt: Scalars['DateTime'];
96
+ updatedAt: Scalars['DateTime'];
97
+ __typename: 'MomentLineup';
98
+ }
77
99
  interface TicketTier {
78
100
  uid: Scalars['ID'];
79
101
  name: Scalars['String'];
@@ -246,6 +268,13 @@ interface GetPublicMomentsResponse {
246
268
  nextCursor: (Scalars['String'] | null);
247
269
  __typename: 'GetPublicMomentsResponse';
248
270
  }
271
+ interface GetMomentLineupsResponse {
272
+ lineups: MomentLineup[];
273
+ totalCount: Scalars['Int'];
274
+ hasNextPage: Scalars['Boolean'];
275
+ nextCursor: (Scalars['String'] | null);
276
+ __typename: 'GetMomentLineupsResponse';
277
+ }
249
278
  interface GetTicketsResponse {
250
279
  tickets: Ticket[];
251
280
  totalCount: Scalars['Int'];
@@ -275,6 +304,21 @@ interface BrandSubscription {
275
304
  updatedAt: Scalars['DateTime'];
276
305
  __typename: 'BrandSubscription';
277
306
  }
307
+ interface PublicMomentLineupInfo {
308
+ token: Scalars['String'];
309
+ artistName: Scalars['String'];
310
+ momentName: Scalars['String'];
311
+ brandName: Scalars['String'];
312
+ status: MomentLineupStatus;
313
+ lineupType: MomentLineupType;
314
+ alreadyResponded: Scalars['Boolean'];
315
+ __typename: 'PublicMomentLineupInfo';
316
+ }
317
+ interface MomentLineupResponseResult {
318
+ status: MomentLineupStatus;
319
+ success: Scalars['Boolean'];
320
+ __typename: 'MomentLineupResponseResult';
321
+ }
278
322
  interface Query {
279
323
  /** Get paginated moments for the brand associated with the partner token. */
280
324
  getPartnerMomentsForBrand: GetPublicMomentsResponse;
@@ -303,6 +347,13 @@ interface Query {
303
347
  * If omitted, returns brand-level echoes.
304
348
  */
305
349
  getPartnerPublicEchoes: GetBrandEchoesForUserResponse;
350
+ /**
351
+ * Get approved public lineup entries for a moment.
352
+ * Use getPartnerMoment to resolve a moment slug to uid before calling this query.
353
+ */
354
+ getPublicMomentLineups: GetMomentLineupsResponse;
355
+ /** Get public lineup invitation details by response token. */
356
+ getMomentLineupByToken: PublicMomentLineupInfo;
306
357
  __typename: 'Query';
307
358
  }
308
359
  /**
@@ -364,6 +415,7 @@ interface Mutation {
364
415
  createPartnerMoment: Moment;
365
416
  /** Complete a partner brand subscription that was created with requireOtpVerification=true. */
366
417
  verifyPartnerBrandSubscription: BrandSubscription;
418
+ respondToMomentLineup: MomentLineupResponseResult;
367
419
  __typename: 'Mutation';
368
420
  }
369
421
  interface CurrencyGenqlSelection {
@@ -419,6 +471,8 @@ interface MomentGenqlSelection {
419
471
  timezone?: boolean | number;
420
472
  minimumAge?: boolean | number;
421
473
  externalUrl?: boolean | number;
474
+ /** Display label to use when rendering the public lineup section. */
475
+ lineupDisplayLabel?: boolean | number;
422
476
  /** Cover image for the moment. Null if no cover image is set. */
423
477
  coverImage?: MomentCoverImageGenqlSelection;
424
478
  venue?: VenueGenqlSelection;
@@ -428,6 +482,23 @@ interface MomentGenqlSelection {
428
482
  __typename?: boolean | number;
429
483
  __scalar?: boolean | number;
430
484
  }
485
+ /**
486
+ * Public-facing lineup entry for a moment.
487
+ * Only approved entries are returned by getPublicMomentLineups.
488
+ */
489
+ interface MomentLineupGenqlSelection {
490
+ uid?: boolean | number;
491
+ name?: boolean | number;
492
+ status?: boolean | number;
493
+ lineupType?: boolean | number;
494
+ sortOrder?: boolean | number;
495
+ url?: boolean | number;
496
+ image?: MomentCoverImageGenqlSelection;
497
+ createdAt?: boolean | number;
498
+ updatedAt?: boolean | number;
499
+ __typename?: boolean | number;
500
+ __scalar?: boolean | number;
501
+ }
431
502
  interface TicketTierGenqlSelection {
432
503
  uid?: boolean | number;
433
504
  name?: boolean | number;
@@ -612,6 +683,14 @@ interface GetPublicMomentsResponseGenqlSelection {
612
683
  __typename?: boolean | number;
613
684
  __scalar?: boolean | number;
614
685
  }
686
+ interface GetMomentLineupsResponseGenqlSelection {
687
+ lineups?: MomentLineupGenqlSelection;
688
+ totalCount?: boolean | number;
689
+ hasNextPage?: boolean | number;
690
+ nextCursor?: boolean | number;
691
+ __typename?: boolean | number;
692
+ __scalar?: boolean | number;
693
+ }
615
694
  interface GetTicketsResponseGenqlSelection {
616
695
  tickets?: TicketGenqlSelection;
617
696
  totalCount?: boolean | number;
@@ -645,6 +724,23 @@ interface BrandSubscriptionGenqlSelection {
645
724
  __typename?: boolean | number;
646
725
  __scalar?: boolean | number;
647
726
  }
727
+ interface PublicMomentLineupInfoGenqlSelection {
728
+ token?: boolean | number;
729
+ artistName?: boolean | number;
730
+ momentName?: boolean | number;
731
+ brandName?: boolean | number;
732
+ status?: boolean | number;
733
+ lineupType?: boolean | number;
734
+ alreadyResponded?: boolean | number;
735
+ __typename?: boolean | number;
736
+ __scalar?: boolean | number;
737
+ }
738
+ interface MomentLineupResponseResultGenqlSelection {
739
+ status?: boolean | number;
740
+ success?: boolean | number;
741
+ __typename?: boolean | number;
742
+ __scalar?: boolean | number;
743
+ }
648
744
  interface QueryGenqlSelection {
649
745
  /** Get paginated moments for the brand associated with the partner token. */
650
746
  getPartnerMomentsForBrand?: (GetPublicMomentsResponseGenqlSelection & {
@@ -718,6 +814,25 @@ interface QueryGenqlSelection {
718
814
  take?: (Scalars['Int'] | null);
719
815
  };
720
816
  });
817
+ /**
818
+ * Get approved public lineup entries for a moment.
819
+ * Use getPartnerMoment to resolve a moment slug to uid before calling this query.
820
+ */
821
+ getPublicMomentLineups?: (GetMomentLineupsResponseGenqlSelection & {
822
+ __args: {
823
+ momentUid: Scalars['String'];
824
+ /** Cursor UID for pagination. */
825
+ cursor?: (Scalars['String'] | null);
826
+ take?: (Scalars['Int'] | null);
827
+ lineupType?: (MomentLineupType | null);
828
+ };
829
+ });
830
+ /** Get public lineup invitation details by response token. */
831
+ getMomentLineupByToken?: (PublicMomentLineupInfoGenqlSelection & {
832
+ __args: {
833
+ token: Scalars['String'];
834
+ };
835
+ });
721
836
  __typename?: boolean | number;
722
837
  __scalar?: boolean | number;
723
838
  }
@@ -772,6 +887,10 @@ interface CreatePartnerMomentInput {
772
887
  /** Ticket tiers to create along with the moment. */
773
888
  ticketTiers?: (CreatePartnerTicketTierInput[] | null);
774
889
  }
890
+ interface RespondToMomentLineupInput {
891
+ token: Scalars['String'];
892
+ status: MomentLineupStatus;
893
+ }
775
894
  interface SubscriptionComplianceInput {
776
895
  browserName?: (Scalars['String'] | null);
777
896
  browserVersion?: (Scalars['String'] | null);
@@ -930,6 +1049,11 @@ interface MutationGenqlSelection {
930
1049
  input: VerifyPartnerBrandSubscriptionInput;
931
1050
  };
932
1051
  });
1052
+ respondToMomentLineup?: (MomentLineupResponseResultGenqlSelection & {
1053
+ __args: {
1054
+ input: RespondToMomentLineupInput;
1055
+ };
1056
+ });
933
1057
  __typename?: boolean | number;
934
1058
  __scalar?: boolean | number;
935
1059
  }
@@ -1032,6 +1156,7 @@ type ITMPartnerClient = Client;
1032
1156
  * uid: true,
1033
1157
  * name: true,
1034
1158
  * startDate: true,
1159
+ * lineupDisplayLabel: true,
1035
1160
  * coverImage: { url: true, mimeType: true },
1036
1161
  * venue: { name: true, city: true },
1037
1162
  * },
@@ -1044,4 +1169,4 @@ type ITMPartnerClient = Client;
1044
1169
  */
1045
1170
  declare function createITMPartnerClient(config: ITMPartnerClientConfig): ITMPartnerClient;
1046
1171
 
1047
- export { type BrandSubscription, type CreatePartnerBrandSubscriptionInput, type CreatePartnerBrandSubscriptionResponse, type CreatePartnerMomentInput, type CreatePartnerTicketTierInput, type Currency, DEFAULT_API_URL, type Dimensions, type DimensionsInput, type Echo, type EchoMediaAsset, type EchoType, type GetBrandEchoesForUserResponse, type GetPartnerCustomersResponse, type GetPublicMomentsResponse, type GetTicketsResponse, type ITMPartnerClient, type ITMPartnerClientConfig, type ITMPartnerHeaders, type ITMPartnerHeadersObject, type MediaAsset, type MediaAssetUploadUrl, type MerchPurchase, type Moment, type MomentCategory, type MomentCollection, type MomentCollectionLink, type MomentDiscountCodeUsage, type MomentSortOrder, type MomentStatus, type MomentSubcategory, type MomentType, type Mutation, type PartnerCustomer, type PartnerMomentStats, type Payment, type PaymentStatus, type PostSubscriptionEmailInput, type PostSubscriptionMessageInput, type PostSubscriptionPushInput, type PostSubscriptionSmsInput, type Query, type SubscriptionComplianceInput, type ThirdPartyEchoType, type Ticket, type TicketExtension, type TicketExtensionStatus, type TicketTier, type User, type Venue, type VenueInput, type VerifyPartnerBrandSubscriptionInput, createITMPartnerClient, everything, generateMutationOp, generateQueryOp };
1172
+ export { type BrandSubscription, type CreatePartnerBrandSubscriptionInput, type CreatePartnerBrandSubscriptionResponse, type CreatePartnerMomentInput, type CreatePartnerTicketTierInput, type Currency, DEFAULT_API_URL, type Dimensions, type DimensionsInput, type Echo, type EchoMediaAsset, type EchoType, type GetBrandEchoesForUserResponse, type GetMomentLineupsResponse, type GetPartnerCustomersResponse, type GetPublicMomentsResponse, type GetTicketsResponse, type ITMPartnerClient, type ITMPartnerClientConfig, type ITMPartnerHeaders, type ITMPartnerHeadersObject, type MediaAsset, type MediaAssetUploadUrl, type MerchPurchase, type Moment, type MomentCategory, type MomentCollection, type MomentCollectionLink, type MomentDiscountCodeUsage, type MomentLineup, type MomentLineupDisplayLabel, type MomentLineupResponseResult, type MomentLineupStatus, type MomentLineupType, type MomentSortOrder, type MomentStatus, type MomentSubcategory, type MomentType, type Mutation, type PartnerCustomer, type PartnerMomentStats, type Payment, type PaymentStatus, type PostSubscriptionEmailInput, type PostSubscriptionMessageInput, type PostSubscriptionPushInput, type PostSubscriptionSmsInput, type PublicMomentLineupInfo, type Query, type RespondToMomentLineupInput, type SubscriptionComplianceInput, type ThirdPartyEchoType, type Ticket, type TicketExtension, type TicketExtensionStatus, type TicketTier, type User, type Venue, type VenueInput, type VerifyPartnerBrandSubscriptionInput, createITMPartnerClient, everything, generateMutationOp, generateQueryOp };