@getmicdrop/venue-calendar 4.0.109 → 4.0.111

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.
Files changed (110) hide show
  1. package/dist/CartView-DiSdmuA_.js +2475 -0
  2. package/dist/CartView-DiSdmuA_.js.map +1 -0
  3. package/dist/{Checkout-CMEf_qnp.js → Checkout-DBaNrRya.js} +323 -333
  4. package/dist/Checkout-DBaNrRya.js.map +1 -0
  5. package/dist/{Checkout-Chki2df_.js → Checkout-DwJr030c.js} +206 -205
  6. package/dist/Checkout-DwJr030c.js.map +1 -0
  7. package/dist/{CheckoutTimer-BAaY_60w.js → CheckoutTimer-DPFVh7QG.js} +5 -5
  8. package/dist/{CheckoutTimer-BAaY_60w.js.map → CheckoutTimer-DPFVh7QG.js.map} +1 -1
  9. package/dist/{ClockIcon-Dbbj_qur.js → ClockIcon-BoEIfS3d.js} +2 -2
  10. package/dist/{ClockIcon-Dbbj_qur.js.map → ClockIcon-BoEIfS3d.js.map} +1 -1
  11. package/dist/{CollectionView-RM30YPOJ.js → CollectionView-DM3WLpLu.js} +78 -77
  12. package/dist/CollectionView-DM3WLpLu.js.map +1 -0
  13. package/dist/{Event-kdxMa6OT.js → Event-DymZpajQ.js} +659 -657
  14. package/dist/Event-DymZpajQ.js.map +1 -0
  15. package/dist/{EventPage-BRBByBHe.js → EventPage-D7GG_BWH.js} +300 -306
  16. package/dist/EventPage-D7GG_BWH.js.map +1 -0
  17. package/dist/{Heading-CSDFD80h.js → Heading-C8oOcA05.js} +2 -2
  18. package/dist/{Heading-CSDFD80h.js.map → Heading-C8oOcA05.js.map} +1 -1
  19. package/dist/{ScarcityBadge-B0ca48su.js → ScarcityBadge-BqJHRkab.js} +11 -11
  20. package/dist/{ScarcityBadge-B0ca48su.js.map → ScarcityBadge-BqJHRkab.js.map} +1 -1
  21. package/dist/SeriesPage-DsJ9zGPQ.js +34 -0
  22. package/dist/SeriesPage-DsJ9zGPQ.js.map +1 -0
  23. package/dist/{Spinner--TOwvv9A.js → Spinner-DPzuHWU6.js} +2 -2
  24. package/dist/{Spinner--TOwvv9A.js.map → Spinner-DPzuHWU6.js.map} +1 -1
  25. package/dist/Success-C0D_INAc.js +896 -0
  26. package/dist/Success-C0D_INAc.js.map +1 -0
  27. package/dist/{Text-WLl_ELy9.js → Text-DOd8068v.js} +19 -19
  28. package/dist/Text-DOd8068v.js.map +1 -0
  29. package/dist/VenueCalendar-B809Hecp.js +16467 -0
  30. package/dist/VenueCalendar-B809Hecp.js.map +1 -0
  31. package/dist/{ViewTicketsEmbed-BOukxQIF.js → ViewTicketsEmbed-BPMp4JM0.js} +86 -85
  32. package/dist/{ViewTicketsEmbed-BOukxQIF.js.map → ViewTicketsEmbed-BPMp4JM0.js.map} +1 -1
  33. package/dist/__SKIP_PATHS__-BtJ0tS93.js +10 -0
  34. package/dist/__SKIP_PATHS__-BtJ0tS93.js.map +1 -0
  35. package/dist/{labels-DXGieQXs.js → labels-wFEhrJkb.js} +154 -149
  36. package/dist/labels-wFEhrJkb.js.map +1 -0
  37. package/dist/{modalManager.svelte-Dbd1xgTQ.js → modalManager.svelte-DjiZPIja.js} +2 -2
  38. package/dist/{modalManager.svelte-Dbd1xgTQ.js.map → modalManager.svelte-DjiZPIja.js.map} +1 -1
  39. package/dist/navigation--gZASiSa.js +19 -0
  40. package/dist/navigation--gZASiSa.js.map +1 -0
  41. package/dist/{promo-oWi_MKmY.js → promo-DK6Hxogl.js} +2 -2
  42. package/dist/{promo-oWi_MKmY.js.map → promo-DK6Hxogl.js.map} +1 -1
  43. package/dist/{showcase-state-options-DJJdjxvZ.js → showcase-state-options-BuPnUf0V.js} +21 -21
  44. package/dist/showcase-state-options-BuPnUf0V.js.map +1 -0
  45. package/dist/{transform-Bgqwj9i-.js → transform-C6LCkao6.js} +81 -77
  46. package/dist/transform-C6LCkao6.js.map +1 -0
  47. package/dist/types/index.d.ts +18 -14
  48. package/dist/utm-DYGTGbVA.js +288 -0
  49. package/dist/utm-DYGTGbVA.js.map +1 -0
  50. package/dist/venue-calendar.css +1 -1
  51. package/dist/venue-calendar.es.js +2 -2
  52. package/dist/venue-calendar.iife.js +50 -50
  53. package/dist/venue-calendar.iife.js.map +1 -1
  54. package/dist/venue-calendar.umd.js +45 -45
  55. package/dist/venue-calendar.umd.js.map +1 -1
  56. package/package.json +199 -199
  57. package/dist/CartView-C3N5pw89.js +0 -2381
  58. package/dist/CartView-C3N5pw89.js.map +0 -1
  59. package/dist/Checkout-CMEf_qnp.js.map +0 -1
  60. package/dist/Checkout-Chki2df_.js.map +0 -1
  61. package/dist/CollectionView-RM30YPOJ.js.map +0 -1
  62. package/dist/Event-kdxMa6OT.js.map +0 -1
  63. package/dist/EventPage-BRBByBHe.js.map +0 -1
  64. package/dist/SeriesPage-CczfbUKO.js +0 -33
  65. package/dist/SeriesPage-CczfbUKO.js.map +0 -1
  66. package/dist/Success-DIWUGUPs.js +0 -886
  67. package/dist/Success-DIWUGUPs.js.map +0 -1
  68. package/dist/Text-WLl_ELy9.js.map +0 -1
  69. package/dist/VenueCalendar-CU5N9klc.js +0 -16579
  70. package/dist/VenueCalendar-CU5N9klc.js.map +0 -1
  71. package/dist/api/api/client.d.ts +0 -17
  72. package/dist/api/api/cta.d.ts +0 -34
  73. package/dist/api/api/events.d.ts +0 -183
  74. package/dist/api/api/gift-cards.d.ts +0 -108
  75. package/dist/api/api/index.d.ts +0 -46
  76. package/dist/api/api/orders.d.ts +0 -149
  77. package/dist/api/api/promo.d.ts +0 -45
  78. package/dist/api/api/result.d.ts +0 -78
  79. package/dist/api/api/route-manifest.d.ts +0 -179
  80. package/dist/api/api/transformers/address.d.ts +0 -18
  81. package/dist/api/api/transformers/cart.d.ts +0 -19
  82. package/dist/api/api/transformers/collection.d.ts +0 -12
  83. package/dist/api/api/transformers/event.d.ts +0 -173
  84. package/dist/api/api/transformers/giftCard.d.ts +0 -11
  85. package/dist/api/api/transformers/index.d.ts +0 -27
  86. package/dist/api/api/transformers/order.d.ts +0 -44
  87. package/dist/api/api/transformers/performer.d.ts +0 -8
  88. package/dist/api/api/transformers/series.d.ts +0 -12
  89. package/dist/api/api/transformers/venue.d.ts +0 -39
  90. package/dist/api/api/venues.d.ts +0 -33
  91. package/dist/api/api/waitlist.d.ts +0 -49
  92. package/dist/api/api.cjs +0 -2
  93. package/dist/api/api.cjs.map +0 -1
  94. package/dist/api/api.mjs +0 -1299
  95. package/dist/api/api.mjs.map +0 -1
  96. package/dist/api/types.d.ts +0 -483
  97. package/dist/labels-DXGieQXs.js.map +0 -1
  98. package/dist/seo/HostSeoController.d.ts +0 -68
  99. package/dist/seo/buildCollectionJsonLd.d.ts +0 -8
  100. package/dist/seo/buildEventJsonLd.d.ts +0 -9
  101. package/dist/seo/buildSeriesJsonLd.d.ts +0 -6
  102. package/dist/seo/helpers.d.ts +0 -88
  103. package/dist/seo/index.d.ts +0 -10
  104. package/dist/seo/seo.cjs +0 -2
  105. package/dist/seo/seo.cjs.map +0 -1
  106. package/dist/seo/seo.mjs +0 -541
  107. package/dist/seo/seo.mjs.map +0 -1
  108. package/dist/seo/types.d.ts +0 -150
  109. package/dist/showcase-state-options-DJJdjxvZ.js.map +0 -1
  110. package/dist/transform-Bgqwj9i-.js.map +0 -1
package/dist/api/api.mjs DELETED
@@ -1,1299 +0,0 @@
1
- import { createLogger as C } from "@getmicdrop/svelte-components/utils/logger";
2
- import { ApiError as J, NotFoundError as Q } from "@getmicdrop/svelte-components/errors";
3
- import { getLocalStorage as de, setLocalStorage as fe, getSessionStorage as Y, setSessionStorage as me, createLogger as pe, formatFullName as ye, formatCurrency as ge, asUSD as ve, resolveImageUrl as X } from "@getmicdrop/svelte-components";
4
- import { browserNow as he, formatLocal as q } from "@getmicdrop/svelte-components/datetime";
5
- import { isHiddenTicketPurchasable as _e } from "@getmicdrop/svelte-components/transforms";
6
- import "@getmicdrop/svelte-components/utils/timezones";
7
- const we = {};
8
- function ke() {
9
- typeof import.meta < "u" && we?.VITE_WIDGET_KEY;
10
- }
11
- const L = C("VC");
12
- function Z(t) {
13
- const e = ke();
14
- return e ? { ...t, "X-Widget-Key": e } : t;
15
- }
16
- const be = {
17
- baseUrl: "https://get-micdrop.com",
18
- timeout: 3e4,
19
- retries: 2,
20
- retryDelay: 500,
21
- onError: (t) => L.error("API Error:", t)
22
- };
23
- let p = { ...be };
24
- function yt(t) {
25
- p = { ...p, ...t };
26
- }
27
- function gt() {
28
- return { ...p };
29
- }
30
- function c() {
31
- return `${p.baseUrl}/api/v2/public`;
32
- }
33
- function vt() {
34
- return `${p.baseUrl}/api/public`;
35
- }
36
- function _() {
37
- return `${p.baseUrl}/api/orders/v2/public`;
38
- }
39
- async function ht() {
40
- return "";
41
- }
42
- const $e = (t) => new Promise((e) => setTimeout(e, t));
43
- async function ee(t, e, r) {
44
- const n = (e.method || "GET").toUpperCase(), s = n === "GET" || n === "HEAD" ? r.retries + 1 : 1;
45
- let o;
46
- for (let i = 1; i <= s; i++) {
47
- const u = new AbortController(), S = setTimeout(() => u.abort(), r.timeout), y = e.signal;
48
- let b;
49
- y && (y.aborted ? u.abort() : (b = () => u.abort(), y.addEventListener("abort", b, { once: !0 })));
50
- try {
51
- const g = await fetch(t, { ...e, signal: u.signal });
52
- if (g.status >= 500 && i < s)
53
- o = new Error(`HTTP ${g.status}`);
54
- else
55
- return g;
56
- } catch (g) {
57
- if (o = g, y?.aborted) throw g;
58
- } finally {
59
- clearTimeout(S), y && b && y.removeEventListener("abort", b);
60
- }
61
- i < s && await $e(r.retryDelay * Math.pow(2, i - 1));
62
- }
63
- throw o;
64
- }
65
- async function T(t, e) {
66
- return F("GET", t, void 0, e);
67
- }
68
- async function f(t, e, r) {
69
- return F("POST", t, e, r);
70
- }
71
- async function _t(t, e, r) {
72
- return F("PUT", t, e, r);
73
- }
74
- async function Ce(t, e) {
75
- return F("DELETE", t, void 0, e);
76
- }
77
- async function F(t, e, r, n) {
78
- const a = e.startsWith("http") ? e : `${c()}${e}`;
79
- try {
80
- const s = await ee(
81
- a,
82
- {
83
- method: t,
84
- headers: Z({
85
- "Content-Type": "application/json",
86
- ...n?.headers
87
- }),
88
- body: r !== void 0 ? JSON.stringify(r) : void 0,
89
- credentials: "include",
90
- ...n
91
- },
92
- p
93
- );
94
- if (!s.ok) {
95
- const i = await s.json().catch(() => ({})), u = i.error || i.message || `HTTP ${s.status}`;
96
- return p.onError(new Error(u)), { success: !1, error: u, statusCode: s.status };
97
- }
98
- return { success: !0, data: await s.json(), statusCode: s.status };
99
- } catch (s) {
100
- const o = s instanceof Error ? s.name === "AbortError" ? "Request timed out" : s.message : "Unknown error";
101
- return p.onError(
102
- s instanceof Error ? s : new Error(o)
103
- ), { success: !1, error: o };
104
- }
105
- }
106
- async function R(t, e) {
107
- try {
108
- const r = t.startsWith(p.baseUrl), n = await ee(
109
- t,
110
- {
111
- credentials: "include",
112
- ...e,
113
- ...r ? { headers: Z(e?.headers) } : {}
114
- },
115
- p
116
- );
117
- if (!n.ok) {
118
- const a = await n.json().catch(() => ({}));
119
- return L.error(`API request failed: ${n.status}`, a), null;
120
- }
121
- return n.json();
122
- } catch (r) {
123
- return L.error("API request error:", r), null;
124
- }
125
- }
126
- function Te(t) {
127
- const e = t ?? {};
128
- return {
129
- ticketID: Number(e.TicketID ?? e.ticketID ?? 0),
130
- quantity: Number(e.Quantity ?? e.quantity ?? 0),
131
- priceAtReservation: Number(
132
- e.PriceAtReservation ?? e.priceAtReservation ?? 0
133
- ),
134
- status: String(e.Status ?? e.status ?? "")
135
- };
136
- }
137
- function Se(t) {
138
- const e = t ?? {}, r = e.UUID ?? e.uuid ?? "", n = Number(e.EventID ?? e.eventID ?? 0), a = e.Status ?? e.status ?? "", s = e.ExpiresAt ?? e.expiresAt ?? "", i = (e.Reservations ?? e.reservations ?? []).map(Te);
139
- return { uuid: r, eventID: n, status: a, expiresAt: s, reservations: i };
140
- }
141
- const te = [
142
- "utmSource",
143
- "utmMedium",
144
- "utmCampaign",
145
- "utmContent",
146
- "utmTerm"
147
- ], Pe = {
148
- utmSource: "utm_source",
149
- utmMedium: "utm_medium",
150
- utmCampaign: "utm_campaign",
151
- utmContent: "utm_content",
152
- utmTerm: "utm_term"
153
- }, re = "direct";
154
- function ne(t) {
155
- return t ? t.trim().toLowerCase().replace(/\s+/g, "_") : "";
156
- }
157
- function Ie(t) {
158
- const e = {};
159
- for (const r of te)
160
- e[r] = ne(t[r]);
161
- return e.utmSource || (e.utmSource = re), e;
162
- }
163
- function Ee(t) {
164
- const e = {};
165
- for (const r of te)
166
- e[r] = t.get(Pe[r]);
167
- return Ie(e);
168
- }
169
- function Ne() {
170
- if (typeof window > "u") return !0;
171
- try {
172
- return window.self === window.top;
173
- } catch {
174
- return !1;
175
- }
176
- }
177
- function Re() {
178
- const t = typeof window < "u", e = Ne(), r = t ? window.location.search : "", n = (typeof document < "u" ? document.referrer : "") ?? "", a = t && e ? window.location.href : "";
179
- return {
180
- utm: Ee(new URLSearchParams(r)),
181
- referrer: n || "",
182
- pageUrl: a || ""
183
- };
184
- }
185
- let Ae = !1;
186
- function De() {
187
- return typeof window < "u" && typeof window.__tcfapi == "function";
188
- }
189
- function Ue() {
190
- return De();
191
- }
192
- function xe() {
193
- return Ue() ? Ae : !0;
194
- }
195
- const W = "micdrop_session_id", z = "micdrop_visitor_id", Oe = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
196
- function Fe(t) {
197
- return typeof t == "string" && Oe.test(t);
198
- }
199
- function ae() {
200
- const t = typeof crypto < "u" ? crypto : void 0;
201
- if (t?.randomUUID) return t.randomUUID();
202
- const e = new Uint8Array(16);
203
- if (t?.getRandomValues)
204
- t.getRandomValues(e);
205
- else
206
- for (let n = 0; n < 16; n++) e[n] = Math.floor(Math.random() * 256);
207
- e[6] = e[6] & 15 | 64, e[8] = e[8] & 63 | 128;
208
- const r = [];
209
- for (let n = 0; n < 16; n++) r.push(e[n].toString(16).padStart(2, "0"));
210
- return `${r[0]}${r[1]}${r[2]}${r[3]}-${r[4]}${r[5]}-${r[6]}${r[7]}-${r[8]}${r[9]}-${r[10]}${r[11]}${r[12]}${r[13]}${r[14]}${r[15]}`;
211
- }
212
- function Ve() {
213
- let t = Y(W);
214
- return t || (t = ae(), me(W, t)), t;
215
- }
216
- function qe() {
217
- if (!xe()) return null;
218
- const t = de(z);
219
- if (Fe(t)) return t;
220
- const e = ae();
221
- return fe(z, e), e;
222
- }
223
- const Le = "micdrop_attribution";
224
- function Me() {
225
- const t = Y(Le);
226
- return !t || !t.utm || typeof t.utm.utmSource != "string" ? null : t;
227
- }
228
- function D() {
229
- const e = Me() ?? Re();
230
- return {
231
- sessionId: Ve(),
232
- visitorId: qe(),
233
- utmSource: e.utm.utmSource,
234
- utmMedium: e.utm.utmMedium,
235
- utmCampaign: e.utm.utmCampaign,
236
- utmContent: e.utm.utmContent,
237
- utmTerm: e.utm.utmTerm,
238
- referrer: e.referrer || ""
239
- };
240
- }
241
- pe("tracking");
242
- const d = C("VC");
243
- async function wt(t, e, r) {
244
- try {
245
- const n = await f(
246
- `${_()}/cart/${t}/payment-intent`,
247
- {
248
- productQuantities: e,
249
- ...r && Object.keys(r).length > 0 ? { donationAmounts: r } : {},
250
- // Order attribution (MISSION-TRUTH C2) — additive; ignored by a backend
251
- // that hasn't shipped MIC-1255 yet. Free orders finalize via this
252
- // payment-intent pre-submit, so this covers the free-order path too.
253
- attribution: D()
254
- }
255
- );
256
- if (!n.success)
257
- throw d.error("Payment intent creation failed:", n.error), new J(
258
- n.error || "Failed to create payment intent",
259
- n.statusCode ?? 0,
260
- {
261
- endpoint: `${_()}/cart/${t}/payment-intent`,
262
- method: "POST"
263
- }
264
- );
265
- return d.debug("Payment intent created:", n.data), n.data;
266
- } catch (n) {
267
- return d.error("createPaymentIntent error:", n), null;
268
- }
269
- }
270
- async function kt(t, e) {
271
- if (!t) return null;
272
- try {
273
- const r = await T(
274
- `${_()}/cart/${t}`
275
- );
276
- if (!r.success)
277
- return null;
278
- const { uuid: n, eventID: a, status: s, expiresAt: o, reservations: i } = Se(
279
- r.data
280
- );
281
- return s !== "reserved" && s !== "active" || e !== void 0 && a !== Number(e) ? null : { uuid: n, eventID: a, status: s, expiresAt: o, reservations: i };
282
- } catch (r) {
283
- return d.error("getCartByUUID error:", r), null;
284
- }
285
- }
286
- async function bt(t, e, r) {
287
- try {
288
- const n = {};
289
- for (const [o, i] of Object.entries(e)) {
290
- const u = typeof o == "number" ? o : parseInt(o, 10);
291
- !Number.isNaN(u) && i > 0 && (n[u] = i);
292
- }
293
- const a = {};
294
- if (r)
295
- for (const [o, i] of Object.entries(r)) {
296
- const u = typeof o == "number" ? o : parseInt(o, 10);
297
- !Number.isNaN(u) && i > 0 && (a[u] = i);
298
- }
299
- const s = await fetch(`${_()}/cart/${t}`, {
300
- method: "PUT",
301
- headers: { "Content-Type": "application/json" },
302
- credentials: "include",
303
- body: JSON.stringify({
304
- quantities: n,
305
- ...Object.keys(a).length > 0 ? { donationAmounts: a } : {}
306
- })
307
- });
308
- if (!s.ok) {
309
- const o = await s.json().catch(() => ({}));
310
- return d.error("Cart update failed:", o), !1;
311
- }
312
- return !0;
313
- } catch (n) {
314
- return d.error("updateCartQuantities error:", n), !1;
315
- }
316
- }
317
- async function $t(t) {
318
- try {
319
- const e = await f(
320
- `${c()}/orders/complete/${t}`
321
- );
322
- return e.success ? {
323
- success: !0,
324
- message: e.data?.message
325
- } : {
326
- success: !1,
327
- error: e.error || "Failed to complete reservation"
328
- };
329
- } catch (e) {
330
- return d.error("Error completing reservation:", e), { success: !1, error: "Network error completing reservation" };
331
- }
332
- }
333
- async function Ct(t) {
334
- try {
335
- const e = await f(
336
- `${c()}/orders/cancel/${t}`
337
- );
338
- return e.success ? {
339
- success: !0,
340
- message: e.data?.message
341
- } : {
342
- success: !1,
343
- error: e.error || "Failed to cancel reservation"
344
- };
345
- } catch (e) {
346
- return d.error("Error cancelling reservation:", e), { success: !1, error: "Network error cancelling reservation" };
347
- }
348
- }
349
- async function Tt(t, e) {
350
- try {
351
- const r = await f(
352
- `${c()}/orders/create`,
353
- // attribution (MISSION-TRUTH C2) rides on cart-create additively.
354
- { eventID: t, promoCode: e, attribution: D() }
355
- );
356
- return r.success ? r.data : (d.error("Create order failed:", r.error), null);
357
- } catch (r) {
358
- return d.error("createOrder error:", r), null;
359
- }
360
- }
361
- async function St(t) {
362
- return R(`${c()}/orders/${t}`);
363
- }
364
- async function Pt(t, e) {
365
- try {
366
- const r = await f(`${_()}/validatePaymentIntent/${t}`, {
367
- ...e,
368
- attribution: D()
369
- });
370
- if (!r.success)
371
- return d.error("Payment validation failed:", r.error), {
372
- success: !1,
373
- status: "failed",
374
- error: r.error || "Payment validation failed"
375
- };
376
- const n = r.data;
377
- return n.eventCanceled || n.eventPostponed ? {
378
- success: !1,
379
- status: "failed",
380
- eventCanceled: n.eventCanceled,
381
- eventPostponed: n.eventPostponed
382
- } : {
383
- success: !0,
384
- status: n.status || "Payment succeeded",
385
- orderUUID: n.orderUUID || n.uuid
386
- };
387
- } catch (r) {
388
- return d.error("validatePaymentIntent error:", r), null;
389
- }
390
- }
391
- async function It(t) {
392
- try {
393
- const e = await f(`${c()}/orders/extend-session`, { orderUuid: t });
394
- if (!e.success)
395
- return {
396
- success: !1,
397
- error: e.error || "Failed to extend session",
398
- statusCode: e.statusCode
399
- };
400
- const r = e.data;
401
- return {
402
- success: !0,
403
- newExpiryTime: r.newExpiryTime,
404
- remainingExtensions: r.remainingExtensions
405
- };
406
- } catch (e) {
407
- return d.error("Error extending checkout session:", e), { success: !1, error: "Network error extending session" };
408
- }
409
- }
410
- async function Et(t) {
411
- try {
412
- const e = await T(
413
- `${c()}/orders/session/${t}`
414
- );
415
- if (!e.success)
416
- return {
417
- error: e.error || "No active session found",
418
- notFound: e.statusCode === 404
419
- };
420
- const r = e.data;
421
- return {
422
- expiresAt: r.expiresAt,
423
- extensionCount: r.extensionCount,
424
- remainingExtensions: r.remainingExtensions,
425
- canExtend: r.canExtend,
426
- reservationCount: r.reservationCount,
427
- eventStatus: r.eventStatus
428
- };
429
- } catch (e) {
430
- return d.error("Error getting session status:", e), { error: "Network error getting session status" };
431
- }
432
- }
433
- async function Nt(t = { eventID: "" }) {
434
- try {
435
- const e = await f(
436
- `${c()}/orders/create`,
437
- // attribution (MISSION-TRUTH C2) rides on cart-create additively.
438
- { ...t, attribution: D() }
439
- );
440
- return e.success ? e.data?.uuid ?? null : (d.error("Order initiation failed:", e.error), null);
441
- } catch (e) {
442
- return d.error("initiateOrder error:", e), null;
443
- }
444
- }
445
- async function Rt(t) {
446
- if (typeof window > "u") return;
447
- const e = new URLSearchParams(window.location.search), r = ne(e.get("utm_source")) || re;
448
- try {
449
- await fetch(
450
- `${c()}/utm/${t}/${encodeURIComponent(r)}`
451
- );
452
- } catch (n) {
453
- d.error("UTM tracking failed:", n);
454
- }
455
- }
456
- const V = C("VC");
457
- async function At(t, e) {
458
- try {
459
- if (!e || !e.trim())
460
- return { valid: !1, error: "Promo code is required" };
461
- const r = encodeURIComponent(e.trim()), n = await T(
462
- `/promo-codes/validate/${t}/${r}`
463
- );
464
- if (!n.success)
465
- return n.statusCode === 404 ? { valid: !1, error: "Invalid promo code" } : { valid: !1, error: "Failed to validate code" };
466
- const a = n.data;
467
- return {
468
- valid: a.valid ?? !0,
469
- revealHiddenTickets: a.revealHiddenTickets,
470
- revealTicketIds: a.revealTicketIds,
471
- provideDiscount: a.provideDiscount,
472
- discountType: a.discountType,
473
- // The live endpoint sends the magnitude as `discount` and the code as
474
- // `name`; older/mocked payloads used `amount`/`code`. Read the real field
475
- // first, keep the legacy fallback. Reading only `amount`/`code` mapped
476
- // every real promo to discount 0 — "applied" on screen, full price charged.
477
- amount: a.discount ?? a.amount,
478
- code: a.name || a.code || e
479
- };
480
- } catch (r) {
481
- return V.error("Error validating promo code:", r), { valid: !1, error: "Network error validating code" };
482
- }
483
- }
484
- async function Dt(t) {
485
- try {
486
- const e = await T(
487
- `/promo-codes/check/${t}`
488
- );
489
- return e.success ? e.data.hasPromoCodes === !0 : !0;
490
- } catch (e) {
491
- return V.error("Error checking promo codes availability:", e), !0;
492
- }
493
- }
494
- async function Ut(t, e) {
495
- try {
496
- const r = await f(
497
- `${_()}/cart/${t}/apply-promo`,
498
- { promoCode: e }
499
- );
500
- return r.success ? { success: !0 } : {
501
- success: !1,
502
- error: r.error || "Failed to apply promo code"
503
- };
504
- } catch (r) {
505
- return V.error("Error applying promo code:", r), { success: !1, error: "Network error applying code" };
506
- }
507
- }
508
- async function xt(t) {
509
- try {
510
- const e = await f(`/orders/${t}/remove-promo`);
511
- return e.success ? { success: !0 } : {
512
- success: !1,
513
- error: e.error || "Failed to remove promo code"
514
- };
515
- } catch (e) {
516
- return V.error("Error removing promo code:", e), { success: !1, error: "Network error removing code" };
517
- }
518
- }
519
- function Ge(t) {
520
- const e = t ?? {};
521
- return {
522
- performers: Array.isArray(e.performers) ? e.performers : [],
523
- showPerformers: e.showPerformers === !0
524
- };
525
- }
526
- function se(t) {
527
- return { ok: !0, data: t };
528
- }
529
- function $(t) {
530
- return { ok: !1, error: t };
531
- }
532
- function B(t) {
533
- return { ok: !1, error: t, notFound: !0 };
534
- }
535
- function Ot(t) {
536
- return t.ok;
537
- }
538
- function Ft(t) {
539
- return !t.ok;
540
- }
541
- function A(t, e) {
542
- return t.ok ? t.data : e;
543
- }
544
- const je = "00000000-0000-0000-0000-000000000000", m = C("VC"), x = /* @__PURE__ */ new Map();
545
- async function We(t, e = fetch, r) {
546
- const n = r ? `${t}:pw` : String(t);
547
- if (e === fetch) {
548
- const s = x.get(n);
549
- if (s) return s;
550
- }
551
- const a = (async () => {
552
- try {
553
- const s = r ? `${c()}/events/${t}?password=${encodeURIComponent(r)}` : `${c()}/events/${t}`, o = await e(s);
554
- if (!o.ok)
555
- return o.status === 404 ? B("event_not_found") : (m.error(`Failed to fetch event details: ${o.status}`), $("event_fetch_failed"));
556
- const i = await o.json();
557
- return i ? se(i) : B("event_not_found");
558
- } catch (s) {
559
- return m.error("Error fetching event details:", s), $("event_fetch_failed");
560
- }
561
- })();
562
- return e === fetch && (x.set(n, a), a.finally(() => {
563
- x.get(n) === a && x.delete(n);
564
- })), a;
565
- }
566
- async function Vt(t, e = fetch, r) {
567
- const n = await We(t, e, r);
568
- return n.ok ? n.data : null;
569
- }
570
- async function k(t, e, r = (n) => n) {
571
- try {
572
- const n = await R(t);
573
- return n ? se(r(n)) : (m.error(`Failed to load (${e}): network or server error`), $(e));
574
- } catch (n) {
575
- return m.error(`Error loading (${e}):`, n), $(e);
576
- }
577
- }
578
- function M(t) {
579
- return Array.isArray(t) ? t : [];
580
- }
581
- async function ze(t) {
582
- return k(
583
- `${c()}/tickets/event/${t}`,
584
- "tickets_fetch_failed",
585
- M
586
- );
587
- }
588
- async function qt(t) {
589
- return A(await ze(t), []);
590
- }
591
- async function Be(t) {
592
- return t ? k(
593
- `${c()}/events/${t}/performers`,
594
- "performers_fetch_failed",
595
- (e) => Ge(e)
596
- ) : (m.warn("fetchEventPerformers called without eventId"), $("performers_missing_event_id"));
597
- }
598
- async function Lt(t) {
599
- return A(await Be(t), {
600
- performers: [],
601
- showPerformers: !1
602
- });
603
- }
604
- async function He(t) {
605
- return t ? k(
606
- `${c()}/venues/organization/${t}`,
607
- "venues_fetch_failed",
608
- M
609
- ) : (m.warn("fetchAllVenues called without orgId"), $("venues_missing_org_id"));
610
- }
611
- async function Mt(t) {
612
- return A(await He(t), []);
613
- }
614
- async function Ke(t) {
615
- return t ? k(
616
- `${c()}/events/venue/${t}`,
617
- "venue_events_fetch_failed",
618
- M
619
- ) : (m.warn("fetchVenueEvents called without venueId"), $("venue_events_missing_venue_id"));
620
- }
621
- async function Gt(t) {
622
- return A(await Ke(t), []);
623
- }
624
- function oe(t) {
625
- return Array.isArray(t) ? t : Array.isArray(t.events) ? t.events : [];
626
- }
627
- async function Je(t, e, r) {
628
- return k(
629
- `${c()}/events/venue/${t}/month/${e}/${r}`,
630
- "month_events_fetch_failed",
631
- (n) => oe(n)
632
- );
633
- }
634
- async function jt(t, e, r) {
635
- return A(await Je(t, e, r), []);
636
- }
637
- async function Qe(t, e, r) {
638
- return k(
639
- `${c()}/events/organization/${t}/month/${e}/${r}`,
640
- "org_month_events_fetch_failed",
641
- (n) => oe(n)
642
- );
643
- }
644
- async function Wt(t, e, r) {
645
- return A(await Qe(t, e, r), []);
646
- }
647
- async function Ye(t) {
648
- return k(
649
- `${c()}/series/${t}/occurrences`,
650
- "series_occurrences_fetch_failed"
651
- );
652
- }
653
- async function zt(t) {
654
- const e = await Ye(t);
655
- return e.ok ? e.data : null;
656
- }
657
- async function Xe(t, e) {
658
- return k(
659
- `${c()}/series/${t}/occurrences?venueId=${e}`,
660
- "series_cta_fetch_failed"
661
- );
662
- }
663
- async function Bt(t, e) {
664
- const r = await Xe(t, e);
665
- return r.ok ? r.data : null;
666
- }
667
- async function Ht(t, e) {
668
- try {
669
- const r = e ? `?slug=${encodeURIComponent(e)}` : "", n = await R(
670
- `${c()}/resolve/${encodeURIComponent(String(t))}${r}`
671
- );
672
- if (!n || !n.type)
673
- throw new Q("entity", String(t));
674
- return n;
675
- } catch (r) {
676
- return m.error("Error resolving public entity:", r), null;
677
- }
678
- }
679
- async function Kt(t, e) {
680
- try {
681
- const r = e ? `${c()}/collections/${t}?password=${encodeURIComponent(e)}` : `${c()}/collections/${t}`, n = await R(r);
682
- if (!n)
683
- throw new Q("collection", String(t));
684
- return n;
685
- } catch (r) {
686
- return m.error("Error fetching collection:", r), null;
687
- }
688
- }
689
- async function Jt(t, e) {
690
- try {
691
- return (await R(
692
- `${c()}/collections/${t}/check-password`,
693
- {
694
- method: "POST",
695
- headers: { "Content-Type": "application/json" },
696
- body: JSON.stringify({ password: e })
697
- }
698
- ))?.valid === !0;
699
- } catch (r) {
700
- return m.error("Error checking collection password:", r), !1;
701
- }
702
- }
703
- async function Qt(t, e) {
704
- try {
705
- const r = await R(
706
- `${c()}/events/${t}/check-password`,
707
- {
708
- method: "POST",
709
- headers: { "Content-Type": "application/json" },
710
- body: JSON.stringify({ password: e })
711
- }
712
- );
713
- return typeof r == "boolean" ? { valid: r } : { valid: r?.valid === !0 };
714
- } catch (r) {
715
- return m.error("Error checking event password:", r), { valid: !1 };
716
- }
717
- }
718
- async function Yt(t, e) {
719
- try {
720
- const r = e ? `${c()}/events/venue/${e}` : t ? `${c()}/venues/organization/${t}` : `${c()}/venues/${je}`;
721
- return (await fetch(r, {
722
- method: "HEAD"
723
- })).status < 500;
724
- } catch (r) {
725
- return m.error("Network connection test failed:", r), !1;
726
- }
727
- }
728
- const N = C("VC");
729
- async function Ze(t) {
730
- try {
731
- if (!t)
732
- return N.warn("getVenue called without venueId"), null;
733
- const e = await T(`/venues/${t}`);
734
- return e.success ? e.data ?? null : (N.error(`Failed to fetch venue: ${e.statusCode}`), null);
735
- } catch (e) {
736
- return N.error("Error fetching venue:", e), null;
737
- }
738
- }
739
- async function Xt(t) {
740
- const e = await Ze(t);
741
- return e ? {
742
- serviceFeePercentage: e.serviceFeePercentage ?? 0,
743
- serviceFeeCents: e.serviceFeeCents ?? 0,
744
- taxPercentage: e.taxPercentage ?? 0
745
- } : null;
746
- }
747
- async function Zt(t) {
748
- try {
749
- if (!t)
750
- return N.warn("getVenueBySlug called without slug"), null;
751
- const e = encodeURIComponent(t), r = await T(`/venues/slug/${e}`);
752
- return r.success ? r.data ?? null : (N.error(`Failed to fetch venue by slug: ${r.statusCode}`), null);
753
- } catch (e) {
754
- return N.error("Error fetching venue by slug:", e), null;
755
- }
756
- }
757
- function et(t) {
758
- const e = t ?? {}, r = (e.appliedAmount ?? 0) / 100, n = e.remainingTotal ?? 0, a = e.fullyCoveredByCard ?? n <= 0, s = !a;
759
- return {
760
- valid: !0,
761
- giftCardCode: e.giftCardCode,
762
- giftCardAmount: r,
763
- giftCardBalance: e.giftCardBalance,
764
- paymentType: a ? "gift_card_only" : "split",
765
- stripeAmount: n,
766
- orderTotal: r + n,
767
- requiresStripe: s
768
- };
769
- }
770
- const h = C("VC"), tt = "https://get-micdrop.com", H = `${tt}/api/orders/v2`;
771
- async function er(t) {
772
- try {
773
- const e = await f(
774
- `${H}/gift-cards`,
775
- t
776
- );
777
- if (!e.success)
778
- throw h.error("Gift card purchase creation failed:", e.error), new J(
779
- e.error || "Failed to create gift card purchase",
780
- e.statusCode ?? 0,
781
- { endpoint: `${H}/gift-cards`, method: "POST" }
782
- );
783
- return h.debug("Gift card purchase created:", e.data), e.data;
784
- } catch (e) {
785
- return h.error("Gift card purchase creation error:", e), null;
786
- }
787
- }
788
- async function tr(t, e) {
789
- try {
790
- const r = await f(
791
- `${_()}/cart/${t}/apply-gift-card`,
792
- { giftCardCode: e }
793
- );
794
- return r.success ? et(r.data) : r.statusCode === 429 ? {
795
- valid: !1,
796
- error: "Too many attempts. Please wait a moment and try again."
797
- } : (h.error("Apply gift card failed:", r.error), {
798
- valid: !1,
799
- error: r.error || "Invalid gift card code"
800
- });
801
- } catch (r) {
802
- return h.error("applyGiftCard error:", r), {
803
- valid: !1,
804
- error: "Network error. Please check your connection and try again."
805
- };
806
- }
807
- }
808
- async function rr(t, e) {
809
- try {
810
- const r = await Ce(
811
- `${_()}/cart/${t}/gift-card`,
812
- e ? { body: JSON.stringify({ giftCardCode: e }) } : void 0
813
- );
814
- return r.success ? { success: !0 } : (h.error("Remove gift card failed:", r.error), {
815
- success: !1,
816
- error: r.error || "Failed to remove gift card"
817
- });
818
- } catch (r) {
819
- return h.error("removeGiftCard error:", r), {
820
- success: !1,
821
- error: "Network error. Please check your connection and try again."
822
- };
823
- }
824
- }
825
- async function nr(t, e) {
826
- try {
827
- const r = await f(`${_()}/cart/${t}/complete-gift-card-payment`, {
828
- customerName: ye(
829
- e.firstName,
830
- e.lastName
831
- ),
832
- customerEmail: e.email,
833
- firstName: e.firstName,
834
- lastName: e.lastName,
835
- email: e.email,
836
- phoneNumber: e.phoneNumber || null,
837
- mailingList: e.mailingList || !1,
838
- // Order attribution (MISSION-TRUTH C2) — gift-card-only orders take this
839
- // finalize endpoint, so attribution must ride here too; additive.
840
- attribution: D()
841
- });
842
- return r.success ? {
843
- success: !0,
844
- orderId: r.data?.orderId,
845
- confirmationNumber: r.data?.confirmationNumber
846
- } : (h.error("Complete gift card payment failed:", r.error), {
847
- success: !1,
848
- error: r.error || "Failed to complete payment"
849
- });
850
- } catch (r) {
851
- return h.error("completeGiftCardPayment error:", r), {
852
- success: !1,
853
- error: "Network error. Please check your connection and try again."
854
- };
855
- }
856
- }
857
- const O = C("VC"), rt = {
858
- waitlist_not_enabled: "Waitlist is not available for this event",
859
- event_not_found: "Event not found",
860
- invalid_phone: "Please enter a valid phone number",
861
- already_purchased: "You have already purchased tickets for this event",
862
- phone_already_registered: "This phone number is already on the waitlist"
863
- };
864
- async function ar(t, e, r = null, n = !1) {
865
- try {
866
- const a = { email: e };
867
- r && n && (a.phone = r, a.smsOptIn = !0);
868
- const s = await f(
869
- `/events/${t}/waitlist`,
870
- a
871
- );
872
- return s.success ? {
873
- success: !0,
874
- updated: s.data?.updated
875
- } : (O.error("Join waitlist failed:", s.error), {
876
- success: !1,
877
- error: rt[s.error ?? ""] || "Failed to join waitlist. Please try again."
878
- });
879
- } catch (a) {
880
- return O.error("joinWaitlist error:", a), {
881
- success: !1,
882
- error: "Network error. Please check your connection and try again."
883
- };
884
- }
885
- }
886
- async function sr(t, e) {
887
- try {
888
- const r = await f(
889
- `/checkout/validate-token/${t}`,
890
- { email: e }
891
- );
892
- return r.success ? {
893
- valid: !0,
894
- eventId: r.data?.eventId ?? 0
895
- } : {
896
- valid: !1,
897
- eventId: 0,
898
- errorCode: r.error
899
- };
900
- } catch (r) {
901
- return O.error("validateWaitlistToken error:", r), { valid: !1, eventId: 0, errorCode: "invalid_token" };
902
- }
903
- }
904
- async function or(t) {
905
- const e = {
906
- waitlistEnabled: !1,
907
- soldOut: !1,
908
- gated: !1
909
- };
910
- try {
911
- const r = await T(
912
- `/events/${t}/waitlist/status`
913
- );
914
- return r.success ? {
915
- waitlistEnabled: !!r.data?.waitlistEnabled,
916
- soldOut: !!r.data?.soldOut,
917
- gated: !!r.data?.gated
918
- } : e;
919
- } catch (r) {
920
- return O.error("getWaitlistStatus error:", r), e;
921
- }
922
- }
923
- function ir(t, e, r = {}) {
924
- const {
925
- cancelled: n = !1,
926
- isRegistration: a = !1,
927
- waitlistEnabled: s = !1
928
- } = r, o = he();
929
- if (n)
930
- return { text: "Cancelled", disabled: !0, reason: "cancelled" };
931
- const i = t.endDateTime || t.startDateTime;
932
- if (i && new Date(i) < o)
933
- return { text: "Sales ended", disabled: !0, reason: "event_past" };
934
- const u = t?.hasPurchasableHiddenTickets === !0 || Array.isArray(e) && e.some(_e), S = (e || []).filter(
935
- (l) => l.salesChannel !== 2 && !l.isHidden && !(typeof l.visibility == "number" && l.visibility >= 2)
936
- );
937
- if (S.length === 0)
938
- return u ? {
939
- text: a ? "Reserve a spot" : "Get tickets",
940
- disabled: !1,
941
- reason: "hidden_only"
942
- } : {
943
- text: "No tickets available",
944
- disabled: !0,
945
- reason: "no_tickets"
946
- };
947
- let y = !1, b = !0, g = !0, v = null;
948
- for (const l of S) {
949
- const P = l.salesBegin || l.salesStart || l.saleBegin || l.onSaleStart, U = l.salesEnd || l.saleEnd || l.onSaleEnd, I = l.remainingCapacity ?? l.quantityRemaining ?? l.quantity, w = l.soldOut || I != null && I <= 0, E = P ? new Date(P) > o : !1, G = U ? new Date(U) < o : !1;
950
- if (!w && !E && !G && (y = !0), w || (b = !1), E || (g = !1), E && P && !w && !G) {
951
- const j = new Date(P);
952
- (!v || j < v) && (v = j);
953
- }
954
- }
955
- if (y)
956
- return {
957
- text: a ? "Reserve a spot" : "Get tickets",
958
- disabled: !1,
959
- reason: "available"
960
- };
961
- if (g && v) {
962
- if (u)
963
- return {
964
- text: a ? "Reserve a spot" : "Get tickets",
965
- disabled: !1,
966
- reason: "hidden_only"
967
- };
968
- const l = v.getTime() - o.getTime(), P = l / (1e3 * 60 * 60), U = l / (1e3 * 60 * 60 * 24), I = (E) => q(
969
- E,
970
- { hour: "numeric", minute: "2-digit", hour12: !0 },
971
- "en-US"
972
- );
973
- let w;
974
- return P < 24 ? w = I(v) : U <= 7 ? w = q(
975
- v,
976
- { weekday: "short", hour: "numeric", minute: "2-digit", hour12: !0 },
977
- "en-US"
978
- ) : w = `${q(
979
- v,
980
- { month: "short", day: "numeric" },
981
- "en-US"
982
- )} ${I(v)}`, {
983
- text: `On sale ${w}`,
984
- disabled: !0,
985
- reason: "coming_soon"
986
- };
987
- }
988
- return b ? u ? {
989
- text: a ? "Reserve a spot" : "Get tickets",
990
- disabled: !1,
991
- reason: "hidden_only"
992
- } : s ? {
993
- text: "Join Waitlist",
994
- disabled: !1,
995
- reason: "sold_out_waitlist"
996
- } : { text: "Sold out", disabled: !0, reason: "sold_out" } : u ? {
997
- text: a ? "Reserve a spot" : "Get tickets",
998
- disabled: !1,
999
- reason: "hidden_only"
1000
- } : { text: "Sales ended", disabled: !0, reason: "sales_ended" };
1001
- }
1002
- function ie(t) {
1003
- const e = t;
1004
- return {
1005
- uuid: e.uuid || String(e.id || e.ID || ""),
1006
- id: e.id || e.ID,
1007
- ticketNumber: e.ticketNumber || e.ticket_number,
1008
- orderId: e.orderId || e.order_id,
1009
- attendeeFirstName: e.attendeeFirstName || e.attendee_first_name || e.firstName,
1010
- attendeeLastName: e.attendeeLastName || e.attendee_last_name || e.lastName,
1011
- attendeeEmail: e.attendeeEmail || e.attendee_email || e.email,
1012
- ticketName: e.ticketName || e.ticket_name || e.name || "",
1013
- ticketTypeId: e.ticketTypeId || e.ticket_type_id,
1014
- purchasePrice: e.purchasePrice || e.purchase_price || e.price || 0,
1015
- status: e.status,
1016
- checkedIn: e.checkedIn || e.checked_in,
1017
- checkedInAt: e.checkedInAt || e.checked_in_at
1018
- };
1019
- }
1020
- function ce(t) {
1021
- const e = t, r = e.purchasedTickets || e.tickets || e.purchased_tickets || [];
1022
- return {
1023
- uuid: e.uuid || String(e.id || e.ID || ""),
1024
- id: e.id || e.ID,
1025
- customerEmail: e.customerEmail || e.email || e.customer_email || "",
1026
- customerFirstName: e.customerFirstName || e.firstName || e.first_name,
1027
- customerLastName: e.customerLastName || e.lastName || e.last_name,
1028
- status: e.status || "unknown",
1029
- totalAmount: e.totalAmount || e.total || e.total_amount || 0,
1030
- subtotal: e.subtotal,
1031
- serviceFeesAmount: e.serviceFeesAmount || e.serviceFee || e.service_fee || e.service_fees_amount || 0,
1032
- taxAmount: e.taxAmount || e.tax || e.tax_amount || 0,
1033
- discount: e.discount || 0,
1034
- paymentIntentId: e.paymentIntentId || e.payment_intent_id,
1035
- paymentMethod: e.paymentMethod || e.payment_method,
1036
- purchasedTickets: r.map(ie),
1037
- createdAt: e.createdAt || e.created_at,
1038
- updatedAt: e.updatedAt || e.updated_at
1039
- };
1040
- }
1041
- const cr = ie, ur = ce;
1042
- function lr(t) {
1043
- const e = ce(t), r = e.uuid.split("-")[0] || e.uuid, n = Number(e.totalAmount);
1044
- return {
1045
- orderId: e.uuid,
1046
- displayOrderId: r,
1047
- email: e.customerEmail,
1048
- customerName: [e.customerFirstName, e.customerLastName].filter(Boolean).join(" "),
1049
- total: e.totalAmount,
1050
- formattedTotal: `${ge(ve(Number.isFinite(n) ? n / 100 : 0))}`,
1051
- ticketCount: e.purchasedTickets.length,
1052
- status: e.status
1053
- };
1054
- }
1055
- function nt(t) {
1056
- return X(t, { cdn: !0 });
1057
- }
1058
- function K(t) {
1059
- const e = t.imageUrl || t.imageURL || t.image_url || t.image || "";
1060
- return nt(e);
1061
- }
1062
- function at(t) {
1063
- switch (t) {
1064
- case "available":
1065
- case "sold_out":
1066
- case "coming_soon":
1067
- case "ended":
1068
- return t;
1069
- default:
1070
- return null;
1071
- }
1072
- }
1073
- function st(t) {
1074
- const e = t.ctaState || t.cta_state;
1075
- if (e) {
1076
- const o = at(e);
1077
- if (o)
1078
- return o;
1079
- }
1080
- if (t.isCancelled || t.is_cancelled)
1081
- return "ended";
1082
- const r = t.startDateTime || t.start_date_time || t.date;
1083
- if (r) {
1084
- const o = new Date(r).getTime(), i = Date.now();
1085
- if (o < i)
1086
- return "ended";
1087
- }
1088
- const n = t.ticketsAvailable ?? t.tickets_available;
1089
- if (n !== void 0)
1090
- return n <= 0 ? "sold_out" : "available";
1091
- const a = t.availableTickets || t.available_tickets || t.tickets || [];
1092
- return a.length === 0 ? "coming_soon" : a.reduce((o, i) => {
1093
- const u = i.quantityAvailable ?? i.quantity_available ?? i.quantity ?? 0, S = i.quantitySold ?? i.quantity_sold ?? 0;
1094
- return o + Math.max(0, u - S);
1095
- }, 0) <= 0 ? "sold_out" : "available";
1096
- }
1097
- function ue(t) {
1098
- const e = t;
1099
- return {
1100
- id: e.id || e.ID,
1101
- name: e.name || e.ticketName || "",
1102
- description: e.description,
1103
- price: e.price || 0,
1104
- quantity: e.quantity || e.totalQuantity || 0,
1105
- quantitySold: e.quantitySold || e.quantity_sold || 0,
1106
- quantityAvailable: e.quantityAvailable || e.quantity_available || (e.quantity || 0) - (e.quantitySold || 0),
1107
- minPerOrder: e.minPerOrder || e.min_per_order || 1,
1108
- maxPerOrder: e.maxPerOrder || e.max_per_order || 10,
1109
- saleStartDate: e.saleStartDate || e.sale_start_date,
1110
- saleEndDate: e.saleEndDate || e.sale_end_date,
1111
- isHidden: e.isHidden || e.is_hidden || !1,
1112
- revealWithPromoCode: e.revealWithPromoCode || e.reveal_with_promo_code,
1113
- ticketType: e.ticketType || e.ticket_type || 0,
1114
- sectionId: e.sectionId || e.section_id,
1115
- sortOrder: e.sortOrder || e.sort_order || 0
1116
- };
1117
- }
1118
- function le(t) {
1119
- const e = t, n = (e.availableTickets || e.available_tickets || e.tickets || []).map(ue), a = n.map((i) => i.price).filter((i) => i > 0), s = a.length > 0 ? Math.min(...a) : void 0, o = a.length > 0 ? Math.max(...a) : void 0;
1120
- return {
1121
- eventID: e.eventID || e.id || e.ID || 0,
1122
- id: e.id || e.ID,
1123
- name: e.name || e.title || "",
1124
- title: e.title || e.name,
1125
- slug: e.slug,
1126
- description: e.description,
1127
- date: e.date || e.startDateTime || e.start_date_time || "",
1128
- startDateTime: e.startDateTime || e.start_date_time,
1129
- endDateTime: e.endDateTime || e.end_date_time,
1130
- doorsOpenTime: e.doorsOpenTime || e.doors_open_time,
1131
- timezone: e.timezone || e.time_zone,
1132
- venueId: e.venueId || e.venue_id,
1133
- venueName: e.venueName || e.venue_name,
1134
- venueAddress: e.venueAddress || e.venue_address,
1135
- location: e.location || e.venueAddress || e.venue_address,
1136
- imageUrl: K(e),
1137
- imageURL: K(e),
1138
- status: e.status,
1139
- isPublished: e.isPublished ?? e.is_published,
1140
- isCancelled: e.isCancelled ?? e.is_cancelled,
1141
- availableTickets: n,
1142
- ticketsAvailable: e.ticketsAvailable ?? e.tickets_available ?? n.reduce((i, u) => i + (u.quantityAvailable || 0), 0),
1143
- ticketsSold: e.ticketsSold ?? e.tickets_sold,
1144
- minPrice: e.minPrice ?? e.min_price ?? s,
1145
- maxPrice: e.maxPrice ?? e.max_price ?? o,
1146
- ctaText: e.ctaText || e.cta_text,
1147
- ctaState: st(e),
1148
- showPerformers: e.showPerformers ?? e.show_performers,
1149
- eventSeriesId: e.eventSeriesId || e.event_series_id,
1150
- seriesInstanceNumber: e.seriesInstanceNumber || e.series_instance_number,
1151
- // ── Passthrough seams (see composition note above) — verbatim wire ──
1152
- timeZone: e.timeZone,
1153
- eventSummary: e.eventSummary,
1154
- password: e.password,
1155
- hasPassword: e.hasPassword,
1156
- disclaimer: e.disclaimer,
1157
- ticketType: e.ticketType,
1158
- eventTicketingType: e.eventTicketingType,
1159
- ageRestriction: e.ageRestriction,
1160
- displayAgeRestriction: e.displayAgeRestriction,
1161
- displayStartTime: e.displayStartTime,
1162
- displayEndTime: e.displayEndTime,
1163
- displayDoorsTime: e.displayDoorsTime,
1164
- collectionId: e.collectionId || e.collection_id,
1165
- ticketsRemaining: e.ticketsRemaining,
1166
- ticketsTotal: e.ticketsTotal,
1167
- hasHiddenTickets: e.hasHiddenTickets,
1168
- stage: e.stage,
1169
- stageName: e.stageName,
1170
- stageId: e.stageId,
1171
- eventCategoryTypes: e.eventCategoryTypes,
1172
- publicPerformers: e.publicPerformers,
1173
- collectionIds: e.collectionIds,
1174
- venue: e.venue,
1175
- performers: e.performers,
1176
- faqs: e.faqs,
1177
- showtimes: e.showtimes,
1178
- purchasedTickets: e.purchasedTickets
1179
- };
1180
- }
1181
- const dr = ue, fr = le, mr = le;
1182
- function ot(t) {
1183
- return X(t, { cdn: !0 });
1184
- }
1185
- function it(t) {
1186
- const e = t, r = e.logoUrl || e.logo_url || e.logo;
1187
- return {
1188
- id: e.id || e.ID || 0,
1189
- name: e.name || "",
1190
- slug: e.slug,
1191
- address: e.address,
1192
- googleLocationNameCache: e.googleLocationNameCache || e.google_location_name_cache,
1193
- city: e.city,
1194
- state: e.state,
1195
- zipCode: e.zipCode || e.zip_code,
1196
- country: e.country,
1197
- timezone: e.timezone || e.time_zone,
1198
- logoUrl: ot(r),
1199
- serviceFeePercentage: e.serviceFeePercentage ?? e.service_fee_percentage ?? 0,
1200
- serviceFeeCents: e.serviceFeeCents ?? e.service_fee_cents ?? 0,
1201
- taxPercentage: e.taxPercentage ?? e.tax_percentage ?? 0,
1202
- organizationId: e.organizationId || e.organization_id
1203
- };
1204
- }
1205
- const pr = it;
1206
- function yr(t) {
1207
- const e = t;
1208
- return {
1209
- serviceFeePercentage: e.serviceFeePercentage ?? e.service_fee_percentage ?? 0,
1210
- serviceFeeCents: e.serviceFeeCents ?? e.service_fee_cents ?? 0,
1211
- taxPercentage: e.taxPercentage ?? e.tax_percentage ?? 0
1212
- };
1213
- }
1214
- function gr(t) {
1215
- return [t.address, t.city, t.state, t.zipCode].filter(
1216
- Boolean
1217
- ).join(", ");
1218
- }
1219
- export {
1220
- Ce as apiDelete,
1221
- T as apiGet,
1222
- f as apiPost,
1223
- _t as apiPut,
1224
- tr as applyGiftCard,
1225
- Ut as applyPromoCode,
1226
- st as calculateCtaState,
1227
- Ct as cancelReservation,
1228
- Jt as checkCollectionPassword,
1229
- Qt as checkEventPassword,
1230
- nr as completeGiftCardPayment,
1231
- $t as completeReservation,
1232
- ir as computeCtaState,
1233
- yt as configureApi,
1234
- er as createGiftCardPurchase,
1235
- Tt as createOrder,
1236
- wt as createPaymentIntent,
1237
- $ as err,
1238
- B as errNotFound,
1239
- It as extendCheckoutSession,
1240
- yr as extractVenueFees,
1241
- Mt as fetchAllVenues,
1242
- He as fetchAllVenuesResult,
1243
- Vt as fetchEventDetails,
1244
- We as fetchEventDetailsResult,
1245
- Lt as fetchEventPerformers,
1246
- Be as fetchEventPerformersResult,
1247
- qt as fetchEventTickets,
1248
- ze as fetchEventTicketsResult,
1249
- Kt as fetchPublicCollection,
1250
- Bt as fetchSeriesOccurrences,
1251
- Xe as fetchSeriesOccurrencesResult,
1252
- Gt as fetchVenueEvents,
1253
- Ke as fetchVenueEventsResult,
1254
- gr as formatVenueAddress,
1255
- gt as getApiConfig,
1256
- nt as getCDNImageUrl,
1257
- kt as getCartByUUID,
1258
- ht as getClientIP,
1259
- K as getEventImageUrl,
1260
- vt as getLegacyPublicUrl,
1261
- jt as getMonthEvents,
1262
- Je as getMonthEventsResult,
1263
- St as getOrder,
1264
- _ as getOrdersV2Url,
1265
- Wt as getOrgMonthEvents,
1266
- Qe as getOrgMonthEventsResult,
1267
- c as getPublicBaseUrl,
1268
- zt as getSeriesOccurrences,
1269
- Ye as getSeriesOccurrencesResult,
1270
- Et as getSessionStatus,
1271
- Ze as getVenue,
1272
- Zt as getVenueBySlug,
1273
- Xt as getVenueFees,
1274
- or as getWaitlistStatus,
1275
- Dt as hasPromoCodes,
1276
- Nt as initiateOrder,
1277
- Ft as isErr,
1278
- Ot as isOk,
1279
- ar as joinWaitlist,
1280
- se as ok,
1281
- rr as removeGiftCard,
1282
- xt as removePromoCode,
1283
- Ht as resolvePublicEntity,
1284
- Yt as testNetworkConnection,
1285
- Rt as trackUTMSource,
1286
- dr as transformAvailableTicket,
1287
- fr as transformEvent,
1288
- mr as transformEventData,
1289
- ur as transformOrder,
1290
- lr as transformOrderForDisplay,
1291
- cr as transformTicket,
1292
- pr as transformVenue,
1293
- A as unwrapOr,
1294
- bt as updateCartQuantities,
1295
- Pt as validatePaymentIntent,
1296
- At as validatePromoCode,
1297
- sr as validateWaitlistToken
1298
- };
1299
- //# sourceMappingURL=api.mjs.map