@getmicdrop/venue-calendar 4.3.38 → 4.3.40
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/{ArrowLeftIcon-bH5d6LQO.js → ArrowLeftIcon-DahiD9EF.js} +1 -1
- package/dist/{BlockPlaceholder-yXhu9HrQ.js → BlockPlaceholder-BfbLTliy.js} +1 -1
- package/dist/{Calendar-BjE02HrG.js → Calendar-CM-dDG7x.js} +14 -14
- package/dist/{CalendarFoundryView-BWaOYwqK.js → CalendarFoundryView-Bv0EsOwe.js} +635 -617
- package/dist/{CalendarIcon-Cg9UUTeu.js → CalendarIcon-DOAS1a6F.js} +1 -1
- package/dist/{CartView-YRimdA6F.js → CartView-CYJMgWS2.js} +615 -617
- package/dist/{Checkbox-24CWEsty.js → Checkbox-BtJwg_CF.js} +1 -0
- package/dist/{Checkout-djS62Y9-.js → Checkout-C8BrLSYw.js} +59 -59
- package/dist/{Checkout-rsX9zvb7.js → Checkout-D6GEwsKQ.js} +28 -34
- package/dist/{CheckoutTimer-D3XNCZ36.js → CheckoutTimer-DjaTq2_0.js} +3 -3
- package/dist/{ChevronDownIcon-BA40Kl0C.js → ChevronDownIcon-CiYpE3Hq.js} +1 -1
- package/dist/{ClockIcon-DjC-doTv.js → ClockIcon-BSlM7HM2.js} +1 -1
- package/dist/{CloseIcon-BdwmaxDK.js → CloseIcon-ojn3Lny5.js} +1 -1
- package/dist/{CollectionView-DJMd-lQ5.js → CollectionView-BZuyx4kC.js} +6 -6
- package/dist/{CropImage-Ct6MRg_a.js → CropImage-BFtvLjTE.js} +1 -1
- package/dist/{Event-ETzQP0s-.js → Event-CqQ0yP-h.js} +91 -91
- package/dist/{EventPage-BDmpGhgp.js → EventPage-CMH2gocB.js} +14 -14
- package/dist/{Input-o-1w57H2.js → Input-Ck0Q7LwW.js} +1 -1
- package/dist/{MailIcon-DCMMhuHr.js → MailIcon-CqCCKGgC.js} +1 -1
- package/dist/{PasswordInput-zX7J--jb.js → PasswordInput-yTDvehkW.js} +1 -1
- package/dist/{RecommendationsRail-CKoChbYt.js → RecommendationsRail-CN_dtLWp.js} +131 -131
- package/dist/{ScarcityBadge-CwYWJOsJ.js → ScarcityBadge-BJrsvt6e.js} +9 -9
- package/dist/{SeriesPage-DccLByjM.js → SeriesPage-B1bK_MeR.js} +3 -3
- package/dist/{Success-BVYGRvb8.js → Success-D8dgqzkd.js} +50 -50
- package/dist/{TagIcon-CkfQvNGi.js → TagIcon-D_kSJfGZ.js} +1 -1
- package/dist/{ViewTicketsEmbed-D6ZLDsJe.js → ViewTicketsEmbed-rdcE9aPB.js} +5 -5
- package/dist/{WarningCircleIcon-Iq24pJJf.js → WarningCircleIcon-DhNvSQag.js} +1 -1
- package/dist/{WarningTriIcon-Dw5GnHpq.js → WarningTriIcon-V6pL3ERG.js} +1 -1
- package/dist/api/api.cjs +1 -1
- package/dist/api/api.mjs +1 -1
- package/dist/api/authHeaders.d.ts +25 -0
- package/dist/api/checkout-availability.d.ts +71 -0
- package/dist/api/gate-password-cache.d.ts +60 -0
- package/dist/api/recommendations.d.ts +35 -0
- package/dist/api/surge-queue.d.ts +133 -0
- package/dist/api/types.d.ts +435 -556
- package/dist/{api-LOBSDFGW.js → api-Di0gC83p.js} +3 -3
- package/dist/{constants-COyf9Cef.js → constants-CQ8nJvPW.js} +1 -1
- package/dist/{copyToClipboard-C3IBl2Z1.js → copyToClipboard-zcPgoppJ.js} +1 -1
- package/dist/{de-BY5vJUGN.js → de-DD9e2eok.js} +21 -3
- package/dist/{defaultLabels-Zp9QbN37.js → defaultLabels-BkjXKQDd.js} +20 -2
- package/dist/{defaults-BS-A8oEj.js → defaults-DthmKRyG.js} +2 -2
- package/dist/{es-jUq9nrJk.js → es-CHuPO3ex.js} +21 -3
- package/dist/{event-c9mHeEJz.js → event-Dew6DCL7.js} +1 -1
- package/dist/{event-transform-BR82y7EY.js → event-transform-BpB65AAX.js} +6 -6
- package/dist/{eventStatusStream-1YtkEBw8.js → eventStatusStream-DTshTZoI.js} +1 -1
- package/dist/{fr-BhVwmvlV.js → fr-Ctu5i20f.js} +21 -3
- package/dist/{href-1o0O9xTA.js → href-B-lH1SYh.js} +2 -2
- package/dist/i18n--YZExMpe.js +28 -0
- package/dist/{i18n-02Y9QRm0.js → i18n-BpodazP1.js} +105 -105
- package/dist/{id-CWU5ZvLv.js → id-DKYW7qEJ.js} +21 -3
- package/dist/imageOptimizer-Cf0BbZJ7.js +220 -0
- package/dist/{it-wlDmN3hH.js → it-DPWCuCsJ.js} +21 -3
- package/dist/{ja-DpA7hJaC.js → ja-CNSRW1XM.js} +21 -3
- package/dist/{ko-DdWLaFvo.js → ko--itQbcHD.js} +21 -3
- package/dist/locales/{4.3.38 → 4.3.40}/main/de.js +1 -1
- package/dist/locales/{4.3.38 → 4.3.40}/main/es.js +1 -1
- package/dist/locales/{4.3.38 → 4.3.40}/main/fr.js +1 -1
- package/dist/locales/{4.3.38 → 4.3.40}/main/id.js +1 -1
- package/dist/locales/{4.3.38 → 4.3.40}/main/it.js +1 -1
- package/dist/locales/{4.3.38 → 4.3.40}/main/ja.js +1 -1
- package/dist/locales/{4.3.38 → 4.3.40}/main/ko.js +1 -1
- package/dist/locales/{4.3.38 → 4.3.40}/main/nl.js +1 -1
- package/dist/locales/{4.3.38 → 4.3.40}/main/pl.js +1 -1
- package/dist/locales/{4.3.38 → 4.3.40}/main/pt-br.js +1 -1
- package/dist/locales/{4.3.38 → 4.3.40}/main/tr.js +1 -1
- package/dist/locales/{4.3.38 → 4.3.40}/main/zh.js +1 -1
- package/dist/{nl-BwxAfMRa.js → nl-BoZA1-rw.js} +21 -3
- package/dist/{order-totals-BEUOdkCb.js → order-totals-iUg6d6MJ.js} +3 -3
- package/dist/{orders-_DuPjm-g.js → orders-DABdaHOy.js} +1 -1
- package/dist/{phoneUtils-CbiDWdEC.js → phoneUtils-BPEB92vB.js} +1 -1
- package/dist/{pixels-BXobnFyk.js → pixels-BVOE_JFH.js} +2 -2
- package/dist/{pl-CuRdwJXc.js → pl-tC8ayoR2.js} +21 -3
- package/dist/{promo-BrstveEs.js → promo-B3Tj0iQF.js} +1 -1
- package/dist/{pt-br-BUWJLxKf.js → pt-br-CTMA1wMi.js} +21 -3
- package/dist/{scarcity-CwnIxi1J.js → scarcity-CJ6IsR7f.js} +3 -12
- package/dist/seo/types.d.ts +137 -156
- package/dist/{serverTotals-D2-FzkdS.js → serverTotals-ClEUVCOz.js} +1 -1
- package/dist/{showcase-state-options-CDOHpho6.js → showcase-state-options-Dwn2NLOM.js} +1 -1
- package/dist/{to-event-card-props-ChcFQ_rl.js → to-event-card-props-Cr5Uq0Ef.js} +9 -9
- package/dist/{tr-DTe5Urub.js → tr-CuaYXuAQ.js} +21 -3
- package/dist/{utils-DlMAhsnl.js → utils-CG0ZJ6gb.js} +2 -2
- package/dist/venue-calendar.css +1 -1
- package/dist/venue-calendar.es.js +498 -489
- package/dist/venue-calendar.iife.js +60 -60
- package/dist/venue-calendar.umd.js +54 -54
- package/dist/{zh-BnBN3ggx.js → zh-Bcr7RKpt.js} +21 -3
- package/package.json +2 -2
- package/dist/i18n-Dwg2jCJS.js +0 -28
- package/dist/imageOptimizer-DkJp4tei.js +0 -140
- /package/dist/locales/{4.3.38 → 4.3.40}/flow/de.js +0 -0
- /package/dist/locales/{4.3.38 → 4.3.40}/flow/es.js +0 -0
- /package/dist/locales/{4.3.38 → 4.3.40}/flow/fr.js +0 -0
- /package/dist/locales/{4.3.38 → 4.3.40}/flow/id.js +0 -0
- /package/dist/locales/{4.3.38 → 4.3.40}/flow/it.js +0 -0
- /package/dist/locales/{4.3.38 → 4.3.40}/flow/ja.js +0 -0
- /package/dist/locales/{4.3.38 → 4.3.40}/flow/ko.js +0 -0
- /package/dist/locales/{4.3.38 → 4.3.40}/flow/nl.js +0 -0
- /package/dist/locales/{4.3.38 → 4.3.40}/flow/pl.js +0 -0
- /package/dist/locales/{4.3.38 → 4.3.40}/flow/pt-br.js +0 -0
- /package/dist/locales/{4.3.38 → 4.3.40}/flow/tr.js +0 -0
- /package/dist/locales/{4.3.38 → 4.3.40}/flow/zh.js +0 -0
package/dist/api/types.d.ts
CHANGED
|
@@ -1,556 +1,435 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
export interface
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
export interface SeriesPageData {
|
|
437
|
-
id: number;
|
|
438
|
-
title: string;
|
|
439
|
-
description: string;
|
|
440
|
-
eventSummary?: string;
|
|
441
|
-
image?: string;
|
|
442
|
-
timeZone: string;
|
|
443
|
-
venue: {
|
|
444
|
-
id: number;
|
|
445
|
-
name: string;
|
|
446
|
-
location?: string;
|
|
447
|
-
googleLocationNameCache?: string;
|
|
448
|
-
faq?: Array<{ question: string; answer: string }> | string;
|
|
449
|
-
disclaimer?: string;
|
|
450
|
-
};
|
|
451
|
-
performers: Array<{
|
|
452
|
-
displayName: string;
|
|
453
|
-
firstName?: string;
|
|
454
|
-
lastName?: string;
|
|
455
|
-
profileImage?: string;
|
|
456
|
-
}>;
|
|
457
|
-
occurrences: Array<{
|
|
458
|
-
id: number;
|
|
459
|
-
slug: string;
|
|
460
|
-
startDateTime: string;
|
|
461
|
-
endDateTime: string;
|
|
462
|
-
ctaState: {
|
|
463
|
-
text: string;
|
|
464
|
-
disabled: boolean;
|
|
465
|
-
reason?: string;
|
|
466
|
-
};
|
|
467
|
-
/**
|
|
468
|
-
* The occurrence's OWN location. The backend emits this ONLY when the
|
|
469
|
-
* occurrence has been moved off the series master venue/stage, so
|
|
470
|
-
* presence === "this showtime is not where the rest of the series is".
|
|
471
|
-
* Absent for every ordinary occurrence.
|
|
472
|
-
*/
|
|
473
|
-
venue?: {
|
|
474
|
-
id: number;
|
|
475
|
-
name: string;
|
|
476
|
-
address?: string;
|
|
477
|
-
city?: string;
|
|
478
|
-
state?: string;
|
|
479
|
-
googleLocationNameCache?: string;
|
|
480
|
-
stageName?: string;
|
|
481
|
-
};
|
|
482
|
-
}>;
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
// ============================================================================
|
|
486
|
-
// Entity resolution (type-agnostic public id → concrete entity)
|
|
487
|
-
// ============================================================================
|
|
488
|
-
|
|
489
|
-
/**
|
|
490
|
-
* Response shape of `/api/v2/public/resolve/{id}`. The embed deep-link is
|
|
491
|
-
* type-agnostic (`#{id}-{slug}`), so the backend resolves which kind of entity
|
|
492
|
-
* the id points at; `data` is the corresponding event / series / collection
|
|
493
|
-
* payload (same shape the dedicated fetchers return for that type).
|
|
494
|
-
*/
|
|
495
|
-
export interface ResolvedEntity {
|
|
496
|
-
type: 'event' | 'series' | 'collection';
|
|
497
|
-
id: string | number;
|
|
498
|
-
title?: string;
|
|
499
|
-
data: any;
|
|
500
|
-
}
|
|
501
|
-
|
|
502
|
-
// ============================================================================
|
|
503
|
-
// Public Collection
|
|
504
|
-
// ============================================================================
|
|
505
|
-
|
|
506
|
-
export interface PublicCollectionData {
|
|
507
|
-
id: number;
|
|
508
|
-
collectionTitle: string;
|
|
509
|
-
summary?: string;
|
|
510
|
-
description?: string;
|
|
511
|
-
coverImage?: string;
|
|
512
|
-
events: Array<{
|
|
513
|
-
id: number;
|
|
514
|
-
title: string;
|
|
515
|
-
slug?: string;
|
|
516
|
-
startDateTime?: string;
|
|
517
|
-
endDateTime?: string;
|
|
518
|
-
image?: string;
|
|
519
|
-
status?: string;
|
|
520
|
-
timeZone?: string;
|
|
521
|
-
timezone?: string;
|
|
522
|
-
venue?: { name: string; timeZone?: string; timezone?: string };
|
|
523
|
-
minPrice?: number;
|
|
524
|
-
}>;
|
|
525
|
-
// Password-gate variant: a protected collection responds with a gate signal
|
|
526
|
-
// instead of the collection body (either `passwordRequired: true` or an
|
|
527
|
-
// `error.code === 'PASSWORD_REQUIRED'`). Modelled here as optional wire
|
|
528
|
-
// fields so the view can read them without an `as any` escape.
|
|
529
|
-
passwordRequired?: boolean;
|
|
530
|
-
error?: { code?: string };
|
|
531
|
-
}
|
|
532
|
-
|
|
533
|
-
// ============================================================================
|
|
534
|
-
// API Configuration
|
|
535
|
-
// ============================================================================
|
|
536
|
-
|
|
537
|
-
export interface ApiConfig {
|
|
538
|
-
baseUrl?: string;
|
|
539
|
-
timeout?: number;
|
|
540
|
-
/** Number of additional attempts after the first try (default: 2 = 3 total tries). */
|
|
541
|
-
retries?: number;
|
|
542
|
-
/** Base delay before the first retry; doubles each attempt (default: 500ms). */
|
|
543
|
-
retryDelay?: number;
|
|
544
|
-
onError?: (_error: Error) => void;
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
// ============================================================================
|
|
548
|
-
// Generic API Response
|
|
549
|
-
// ============================================================================
|
|
550
|
-
|
|
551
|
-
export interface ApiResponse<T> {
|
|
552
|
-
success: boolean;
|
|
553
|
-
data?: T;
|
|
554
|
-
error?: string;
|
|
555
|
-
statusCode?: number;
|
|
556
|
-
}
|
|
1
|
+
import { EventId, SeriesId } from '@getmicdrop/svelte-components';
|
|
2
|
+
export interface PaymentIntentRequest {
|
|
3
|
+
IP?: string;
|
|
4
|
+
productQuantities: Record<string | number, number>;
|
|
5
|
+
}
|
|
6
|
+
export interface PaymentIntentResponse {
|
|
7
|
+
client_secret: string;
|
|
8
|
+
stripe_amount?: number;
|
|
9
|
+
amount_total: number;
|
|
10
|
+
subtotal?: number;
|
|
11
|
+
tax?: number;
|
|
12
|
+
tax_amount_exclusive?: number;
|
|
13
|
+
service_fee?: number;
|
|
14
|
+
card_processing?: number;
|
|
15
|
+
venue_kickback?: number;
|
|
16
|
+
discount?: number;
|
|
17
|
+
gift_card_amount?: number;
|
|
18
|
+
gift_card_code?: string;
|
|
19
|
+
stripe_publishable_key?: string;
|
|
20
|
+
currency?: string;
|
|
21
|
+
/** False when the cart still needs a Stripe charge — i.e. it is NOT free. */
|
|
22
|
+
requires_stripe?: boolean;
|
|
23
|
+
/** 'free' on the in-band $0 finalize path. */
|
|
24
|
+
payment_type?: string;
|
|
25
|
+
/** False when the backend declined to finalize the free order. */
|
|
26
|
+
order_finalized?: boolean;
|
|
27
|
+
}
|
|
28
|
+
export interface CompleteReservationResponse {
|
|
29
|
+
success: boolean;
|
|
30
|
+
message?: string;
|
|
31
|
+
error?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface CancelReservationResponse {
|
|
34
|
+
success: boolean;
|
|
35
|
+
message?: string;
|
|
36
|
+
error?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface CreateOrderRequest {
|
|
39
|
+
eventId: string | number;
|
|
40
|
+
promoCode?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface CreateOrderResponse {
|
|
43
|
+
uuid: string;
|
|
44
|
+
}
|
|
45
|
+
export interface ValidatePaymentRequest {
|
|
46
|
+
id: string;
|
|
47
|
+
paymentIntentId: string;
|
|
48
|
+
tickets: Record<string | number, number>;
|
|
49
|
+
firstName: string;
|
|
50
|
+
lastName: string;
|
|
51
|
+
email: string;
|
|
52
|
+
/** Buyer phone collected at checkout (MIC-1705). Persisted on the order. */
|
|
53
|
+
phone?: string;
|
|
54
|
+
/** Answer to the venue's custom checkout question (MIC-1705). */
|
|
55
|
+
questionAnswer?: string;
|
|
56
|
+
paymentMethod: string;
|
|
57
|
+
mailingList?: boolean;
|
|
58
|
+
saleType?: string;
|
|
59
|
+
attendees?: AttendeeInfo[];
|
|
60
|
+
}
|
|
61
|
+
export interface AttendeeInfo {
|
|
62
|
+
ticketId: string | number;
|
|
63
|
+
firstName: string;
|
|
64
|
+
lastName: string;
|
|
65
|
+
email: string;
|
|
66
|
+
}
|
|
67
|
+
export interface ValidatePaymentResponse {
|
|
68
|
+
success: boolean;
|
|
69
|
+
status: string;
|
|
70
|
+
orderUUID?: string;
|
|
71
|
+
error?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Fail-closed FLOOR fields. When the event is canceled/postponed between
|
|
74
|
+
* cart-creation and finalize, the backend gate refuses to capture the charge
|
|
75
|
+
* and sets one of these (alongside `success: false`). Either flag means the
|
|
76
|
+
* buyer was NOT charged; the checkout raises the charge-aware
|
|
77
|
+
* EventUnavailableModal instead of navigating to success. Optional because
|
|
78
|
+
* they are only present on the rejected-finalize path.
|
|
79
|
+
*/
|
|
80
|
+
eventCanceled?: boolean;
|
|
81
|
+
eventPostponed?: boolean;
|
|
82
|
+
}
|
|
83
|
+
export interface ExtendSessionRequest {
|
|
84
|
+
orderUuid: string;
|
|
85
|
+
}
|
|
86
|
+
export interface ExtendSessionResponse {
|
|
87
|
+
success: boolean;
|
|
88
|
+
newExpiryTime?: string;
|
|
89
|
+
remainingExtensions?: number;
|
|
90
|
+
error?: string;
|
|
91
|
+
/**
|
|
92
|
+
* HTTP status code from the backend on failure. Populated on non-OK
|
|
93
|
+
* responses so callers can distinguish "session already expired"
|
|
94
|
+
* (typically 410 Gone) from "max extensions reached" or generic 5xx.
|
|
95
|
+
* Undefined on network errors and on success.
|
|
96
|
+
*/
|
|
97
|
+
statusCode?: number;
|
|
98
|
+
}
|
|
99
|
+
export interface SessionStatus {
|
|
100
|
+
expiresAt?: string;
|
|
101
|
+
extensionCount?: number;
|
|
102
|
+
remainingExtensions?: number;
|
|
103
|
+
canExtend?: boolean;
|
|
104
|
+
reservationCount?: number;
|
|
105
|
+
error?: string;
|
|
106
|
+
notFound?: boolean;
|
|
107
|
+
eventStatus?: string;
|
|
108
|
+
}
|
|
109
|
+
export interface PromoValidationResponse {
|
|
110
|
+
valid: boolean;
|
|
111
|
+
revealHiddenTickets?: boolean;
|
|
112
|
+
revealTicketIds?: number[];
|
|
113
|
+
provideDiscount?: boolean;
|
|
114
|
+
discountType?: 'percentage' | 'fixed';
|
|
115
|
+
amount?: number;
|
|
116
|
+
code?: string;
|
|
117
|
+
/**
|
|
118
|
+
* The code's ticket scope, exactly as the server sends it — `false` here plus
|
|
119
|
+
* a non-empty `applyToTicketIds` means the code covers only those types.
|
|
120
|
+
* Dropped by validatePromoCode until MIC-2575, which is why a code scoped to
|
|
121
|
+
* one type discounted every type. Read through promoTicketIdsFromValidation,
|
|
122
|
+
* never field-by-field at a call site.
|
|
123
|
+
*/
|
|
124
|
+
appliesToAllTickets?: boolean;
|
|
125
|
+
applyToTicketIds?: number[];
|
|
126
|
+
error?: string;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* RAW body of GET /api/v2/public/promo-codes/validate/{eventId}/{code}.
|
|
130
|
+
*
|
|
131
|
+
* The live endpoint reports the discount magnitude as `discount` and the code
|
|
132
|
+
* as `name` — NOT `amount`/`code`. validatePromoCode normalises this into the
|
|
133
|
+
* client-facing PromoValidationResponse (amount/code) so callers read one shape.
|
|
134
|
+
* The legacy `amount`/`code` keys stay optional here so an older payload (or a
|
|
135
|
+
* mocked one) still maps through the same fallback. Verified 2026-07-11 against
|
|
136
|
+
* two live promos (seeded GUARD20PCT + pre-existing EARLY20).
|
|
137
|
+
*/
|
|
138
|
+
export interface RawPromoValidationBody {
|
|
139
|
+
valid?: boolean;
|
|
140
|
+
revealHiddenTickets?: boolean;
|
|
141
|
+
revealTicketIds?: number[];
|
|
142
|
+
provideDiscount?: boolean;
|
|
143
|
+
discountType?: 'percentage' | 'fixed';
|
|
144
|
+
/** Discount magnitude — real server field. */
|
|
145
|
+
discount?: number;
|
|
146
|
+
/** Legacy/mocked magnitude field — fallback only. */
|
|
147
|
+
amount?: number;
|
|
148
|
+
/** Promo code — real server field. */
|
|
149
|
+
name?: string;
|
|
150
|
+
/** Legacy/mocked code field — fallback only. */
|
|
151
|
+
code?: string;
|
|
152
|
+
appliesToAllTickets?: boolean;
|
|
153
|
+
applyToTicketIds?: number[];
|
|
154
|
+
isGlobal?: boolean;
|
|
155
|
+
ticketLimit?: number;
|
|
156
|
+
error?: string;
|
|
157
|
+
}
|
|
158
|
+
export interface HasPromoCodesResponse {
|
|
159
|
+
hasPromoCodes: boolean;
|
|
160
|
+
}
|
|
161
|
+
export interface Order {
|
|
162
|
+
uuid: string;
|
|
163
|
+
id?: number;
|
|
164
|
+
customerEmail: string;
|
|
165
|
+
customerFirstName?: string;
|
|
166
|
+
customerLastName?: string;
|
|
167
|
+
status: string;
|
|
168
|
+
totalAmount: number;
|
|
169
|
+
subtotal?: number;
|
|
170
|
+
serviceFeesAmount: number;
|
|
171
|
+
taxAmount: number;
|
|
172
|
+
discount?: number;
|
|
173
|
+
paymentIntentId?: string;
|
|
174
|
+
paymentMethod?: string;
|
|
175
|
+
purchasedTickets: PurchasedTicket[];
|
|
176
|
+
createdAt?: string;
|
|
177
|
+
updatedAt?: string;
|
|
178
|
+
}
|
|
179
|
+
export interface PurchasedTicket {
|
|
180
|
+
uuid: string;
|
|
181
|
+
id?: number;
|
|
182
|
+
ticketNumber?: string;
|
|
183
|
+
orderId?: string | number;
|
|
184
|
+
attendeeFirstName?: string;
|
|
185
|
+
attendeeLastName?: string;
|
|
186
|
+
attendeeEmail?: string;
|
|
187
|
+
ticketName: string;
|
|
188
|
+
ticketTypeId?: number;
|
|
189
|
+
purchasePrice: number;
|
|
190
|
+
status?: string;
|
|
191
|
+
checkedIn?: boolean;
|
|
192
|
+
checkedInAt?: string;
|
|
193
|
+
}
|
|
194
|
+
export interface Event {
|
|
195
|
+
eventID: number;
|
|
196
|
+
id?: number;
|
|
197
|
+
name: string;
|
|
198
|
+
title?: string;
|
|
199
|
+
slug?: string;
|
|
200
|
+
description?: string;
|
|
201
|
+
date: string;
|
|
202
|
+
startDateTime?: string;
|
|
203
|
+
endDateTime?: string;
|
|
204
|
+
doorsOpenTime?: string;
|
|
205
|
+
timezone?: string;
|
|
206
|
+
venueId?: number;
|
|
207
|
+
venueName?: string;
|
|
208
|
+
venueAddress?: string;
|
|
209
|
+
location?: string;
|
|
210
|
+
imageUrl?: string;
|
|
211
|
+
imageURL?: string;
|
|
212
|
+
status?: string;
|
|
213
|
+
isPublished?: boolean;
|
|
214
|
+
isCancelled?: boolean;
|
|
215
|
+
availableTickets?: AvailableTicket[];
|
|
216
|
+
ticketsAvailable?: number;
|
|
217
|
+
ticketsSold?: number;
|
|
218
|
+
minPrice?: number;
|
|
219
|
+
maxPrice?: number;
|
|
220
|
+
ctaText?: string;
|
|
221
|
+
ctaState?: 'available' | 'sold_out' | 'coming_soon' | 'ended';
|
|
222
|
+
showPerformers?: boolean;
|
|
223
|
+
eventSeriesId?: number;
|
|
224
|
+
seriesInstanceNumber?: number;
|
|
225
|
+
timeZone?: string;
|
|
226
|
+
/**
|
|
227
|
+
* The operator's sales dial — effective on public payloads (MIC-2455).
|
|
228
|
+
* `computeCtaState` refuses on `paused` / `ended` / `sold_out` and leaves
|
|
229
|
+
* `not_started` to the sale-window logic.
|
|
230
|
+
*/
|
|
231
|
+
salesStatus?: string;
|
|
232
|
+
eventSummary?: string;
|
|
233
|
+
password?: string;
|
|
234
|
+
hasPassword?: boolean;
|
|
235
|
+
disclaimer?: string;
|
|
236
|
+
ticketType?: number;
|
|
237
|
+
eventTicketingType?: number;
|
|
238
|
+
ageRestriction?: number;
|
|
239
|
+
displayAgeRestriction?: boolean;
|
|
240
|
+
displayStartTime?: boolean;
|
|
241
|
+
displayEndTime?: boolean;
|
|
242
|
+
displayDoorsTime?: boolean;
|
|
243
|
+
/** Operator toggle: show remaining-ticket counts publicly. Absent = show. */
|
|
244
|
+
displayTicketsLeft?: boolean;
|
|
245
|
+
/** Operator's post-purchase note, rendered on the confirmation card. */
|
|
246
|
+
postSalesMessage?: string;
|
|
247
|
+
collectionId?: number;
|
|
248
|
+
ticketsRemaining?: number;
|
|
249
|
+
ticketsTotal?: number;
|
|
250
|
+
hasHiddenTickets?: boolean;
|
|
251
|
+
stage?: {
|
|
252
|
+
name?: string;
|
|
253
|
+
} | null;
|
|
254
|
+
stageName?: string;
|
|
255
|
+
stageId?: number;
|
|
256
|
+
eventCategoryTypes?: number[] | null;
|
|
257
|
+
publicPerformers?: Array<{
|
|
258
|
+
id?: number;
|
|
259
|
+
displayName?: string;
|
|
260
|
+
image?: string;
|
|
261
|
+
}> | null;
|
|
262
|
+
collectionIds?: number[] | null;
|
|
263
|
+
venue?: Record<string, any>;
|
|
264
|
+
performers?: Record<string, any>[];
|
|
265
|
+
faqs?: Record<string, any>[];
|
|
266
|
+
showtimes?: Record<string, any>[];
|
|
267
|
+
purchasedTickets?: Record<string, any>[];
|
|
268
|
+
}
|
|
269
|
+
export interface AvailableTicket {
|
|
270
|
+
id: number;
|
|
271
|
+
name: string;
|
|
272
|
+
description?: string;
|
|
273
|
+
price: number;
|
|
274
|
+
quantity: number;
|
|
275
|
+
quantitySold?: number;
|
|
276
|
+
quantityAvailable?: number;
|
|
277
|
+
minPerOrder?: number;
|
|
278
|
+
maxPerOrder?: number;
|
|
279
|
+
saleStartDate?: string;
|
|
280
|
+
saleEndDate?: string;
|
|
281
|
+
isHidden?: boolean;
|
|
282
|
+
revealWithPromoCode?: boolean;
|
|
283
|
+
ticketType?: number;
|
|
284
|
+
sectionId?: number;
|
|
285
|
+
sortOrder?: number;
|
|
286
|
+
}
|
|
287
|
+
export interface EventPerformersResponse {
|
|
288
|
+
performers: Performer[];
|
|
289
|
+
showPerformers: boolean;
|
|
290
|
+
}
|
|
291
|
+
export interface Performer {
|
|
292
|
+
id: number;
|
|
293
|
+
displayName: string;
|
|
294
|
+
avatar?: string;
|
|
295
|
+
order?: number;
|
|
296
|
+
}
|
|
297
|
+
export interface Venue {
|
|
298
|
+
id: number;
|
|
299
|
+
name: string;
|
|
300
|
+
slug?: string;
|
|
301
|
+
address?: string;
|
|
302
|
+
googleLocationNameCache?: string;
|
|
303
|
+
city?: string;
|
|
304
|
+
state?: string;
|
|
305
|
+
zipCode?: string;
|
|
306
|
+
country?: string;
|
|
307
|
+
timezone?: string;
|
|
308
|
+
logoUrl?: string;
|
|
309
|
+
serviceFeePercentage?: number;
|
|
310
|
+
serviceFeeCents?: number;
|
|
311
|
+
/** True = the venue absorbs the service fee; false/absent = the buyer pays it. */
|
|
312
|
+
absorbServiceFee?: boolean;
|
|
313
|
+
taxPercentage?: number;
|
|
314
|
+
organizationId?: number;
|
|
315
|
+
}
|
|
316
|
+
export interface SeriesOccurrence {
|
|
317
|
+
eventId: EventId;
|
|
318
|
+
date: string;
|
|
319
|
+
startDateTime: string;
|
|
320
|
+
endDateTime?: string;
|
|
321
|
+
instanceNumber: number;
|
|
322
|
+
status: string;
|
|
323
|
+
ticketsAvailable?: number;
|
|
324
|
+
ctaState?: string;
|
|
325
|
+
}
|
|
326
|
+
export interface SeriesOccurrencesResponse {
|
|
327
|
+
seriesId: SeriesId;
|
|
328
|
+
occurrences: SeriesOccurrence[];
|
|
329
|
+
}
|
|
330
|
+
export interface SeriesPageData {
|
|
331
|
+
id: number;
|
|
332
|
+
title: string;
|
|
333
|
+
description: string;
|
|
334
|
+
eventSummary?: string;
|
|
335
|
+
image?: string;
|
|
336
|
+
timeZone: string;
|
|
337
|
+
venue: {
|
|
338
|
+
id: number;
|
|
339
|
+
name: string;
|
|
340
|
+
location?: string;
|
|
341
|
+
googleLocationNameCache?: string;
|
|
342
|
+
faq?: Array<{
|
|
343
|
+
question: string;
|
|
344
|
+
answer: string;
|
|
345
|
+
}> | string;
|
|
346
|
+
disclaimer?: string;
|
|
347
|
+
};
|
|
348
|
+
performers: Array<{
|
|
349
|
+
displayName: string;
|
|
350
|
+
firstName?: string;
|
|
351
|
+
lastName?: string;
|
|
352
|
+
profileImage?: string;
|
|
353
|
+
}>;
|
|
354
|
+
occurrences: Array<{
|
|
355
|
+
id: number;
|
|
356
|
+
slug: string;
|
|
357
|
+
startDateTime: string;
|
|
358
|
+
endDateTime: string;
|
|
359
|
+
ctaState: {
|
|
360
|
+
text: string;
|
|
361
|
+
disabled: boolean;
|
|
362
|
+
reason?: string;
|
|
363
|
+
};
|
|
364
|
+
/**
|
|
365
|
+
* The occurrence's OWN location. The backend emits this ONLY when the
|
|
366
|
+
* occurrence has been moved off the series master venue/stage, so
|
|
367
|
+
* presence === "this showtime is not where the rest of the series is".
|
|
368
|
+
* Absent for every ordinary occurrence.
|
|
369
|
+
*/
|
|
370
|
+
venue?: {
|
|
371
|
+
id: number;
|
|
372
|
+
name: string;
|
|
373
|
+
address?: string;
|
|
374
|
+
city?: string;
|
|
375
|
+
state?: string;
|
|
376
|
+
googleLocationNameCache?: string;
|
|
377
|
+
stageName?: string;
|
|
378
|
+
};
|
|
379
|
+
}>;
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Response shape of `/api/v2/public/resolve/{id}`. The embed deep-link is
|
|
383
|
+
* type-agnostic (`#{id}-{slug}`), so the backend resolves which kind of entity
|
|
384
|
+
* the id points at; `data` is the corresponding event / series / collection
|
|
385
|
+
* payload (same shape the dedicated fetchers return for that type).
|
|
386
|
+
*/
|
|
387
|
+
export interface ResolvedEntity {
|
|
388
|
+
type: 'event' | 'series' | 'collection';
|
|
389
|
+
id: string | number;
|
|
390
|
+
title?: string;
|
|
391
|
+
data: any;
|
|
392
|
+
}
|
|
393
|
+
export interface PublicCollectionData {
|
|
394
|
+
id: number;
|
|
395
|
+
collectionTitle: string;
|
|
396
|
+
summary?: string;
|
|
397
|
+
description?: string;
|
|
398
|
+
coverImage?: string;
|
|
399
|
+
events: Array<{
|
|
400
|
+
id: number;
|
|
401
|
+
title: string;
|
|
402
|
+
slug?: string;
|
|
403
|
+
startDateTime?: string;
|
|
404
|
+
endDateTime?: string;
|
|
405
|
+
image?: string;
|
|
406
|
+
status?: string;
|
|
407
|
+
timeZone?: string;
|
|
408
|
+
timezone?: string;
|
|
409
|
+
venue?: {
|
|
410
|
+
name: string;
|
|
411
|
+
timeZone?: string;
|
|
412
|
+
timezone?: string;
|
|
413
|
+
};
|
|
414
|
+
minPrice?: number;
|
|
415
|
+
}>;
|
|
416
|
+
passwordRequired?: boolean;
|
|
417
|
+
error?: {
|
|
418
|
+
code?: string;
|
|
419
|
+
};
|
|
420
|
+
}
|
|
421
|
+
export interface ApiConfig {
|
|
422
|
+
baseUrl?: string;
|
|
423
|
+
timeout?: number;
|
|
424
|
+
/** Number of additional attempts after the first try (default: 2 = 3 total tries). */
|
|
425
|
+
retries?: number;
|
|
426
|
+
/** Base delay before the first retry; doubles each attempt (default: 500ms). */
|
|
427
|
+
retryDelay?: number;
|
|
428
|
+
onError?: (_error: Error) => void;
|
|
429
|
+
}
|
|
430
|
+
export interface ApiResponse<T> {
|
|
431
|
+
success: boolean;
|
|
432
|
+
data?: T;
|
|
433
|
+
error?: string;
|
|
434
|
+
statusCode?: number;
|
|
435
|
+
}
|