@getmicdrop/venue-calendar 4.3.37 → 4.3.39
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-BMuyNOqe.js} +1 -1
- package/dist/{BlockPlaceholder-yXhu9HrQ.js → BlockPlaceholder-CUusOhOf.js} +1 -1
- package/dist/{Calendar-BjE02HrG.js → Calendar-Dy-jZDff.js} +3 -3
- package/dist/{CalendarFoundryView-BWaOYwqK.js → CalendarFoundryView-BWyEe7Xe.js} +23 -23
- package/dist/{CalendarIcon-Cg9UUTeu.js → CalendarIcon-B1JasL-W.js} +1 -1
- package/dist/{CartView-bcOiHkc9.js → CartView-CyU9g9ss.js} +21 -21
- package/dist/{Checkbox-24CWEsty.js → Checkbox-BtJwg_CF.js} +1 -0
- package/dist/{Checkout-CQkHV2jG.js → Checkout-BGXlW2j2.js} +15 -21
- package/dist/{Checkout-CBKPSWLo.js → Checkout-DrP1KLR_.js} +19 -19
- package/dist/{CheckoutTimer-BYQ43W8T.js → CheckoutTimer-CAKT63di.js} +3 -3
- package/dist/{ChevronDownIcon-BA40Kl0C.js → ChevronDownIcon--mG1fNDx.js} +1 -1
- package/dist/{ClockIcon-DjC-doTv.js → ClockIcon-B8ahXV8G.js} +1 -1
- package/dist/{CloseIcon-BdwmaxDK.js → CloseIcon-C9guTa4C.js} +1 -1
- package/dist/{CollectionView-5CycNo4A.js → CollectionView-BhBCM-01.js} +6 -6
- package/dist/{CropImage-Ct6MRg_a.js → CropImage-BFtvLjTE.js} +1 -1
- package/dist/{Event-Bz4DLlpB.js → Event-DyX1UrZe.js} +18 -18
- package/dist/EventPage-DxyEqU7R.js +1184 -0
- package/dist/{Input-o-1w57H2.js → Input-DNzDcf6I.js} +1 -1
- package/dist/{MailIcon-DCMMhuHr.js → MailIcon-Cf77TYiB.js} +1 -1
- package/dist/{PasswordInput-zX7J--jb.js → PasswordInput-C-BH1Do3.js} +1 -1
- package/dist/{RecommendationsRail-Cb--XCvg.js → RecommendationsRail-CG0vCtgJ.js} +8 -8
- package/dist/{ScarcityBadge-CwYWJOsJ.js → ScarcityBadge-D0D6Hqp0.js} +3 -3
- package/dist/{SeriesPage-BalCscZf.js → SeriesPage-D9_Nn8gF.js} +3 -3
- package/dist/{Success-DtScq6E2.js → Success-Db843hJe.js} +25 -25
- package/dist/{TagIcon-CkfQvNGi.js → TagIcon-DUY8KSZ0.js} +1 -1
- package/dist/{ViewTicketsEmbed-KbA05I2k.js → ViewTicketsEmbed-rdcE9aPB.js} +5 -5
- package/dist/{WarningCircleIcon-Iq24pJJf.js → WarningCircleIcon-C1-Aj9ut.js} +1 -1
- package/dist/{WarningTriIcon-Dw5GnHpq.js → WarningTriIcon-BrwQ58VB.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-D0rw6nGg.js → api-DDVVRbC-.js} +73 -73
- package/dist/{constants-B3kqqQpi.js → constants-7hsFMWgp.js} +1 -1
- package/dist/{copyToClipboard-C3IBl2Z1.js → copyToClipboard-4LAkJ_1y.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-BMbXcKP9.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-D0mzpOzE.js → event-transform-CbFR1hRl.js} +4 -4
- package/dist/{eventStatusStream-dDHNTEOf.js → eventStatusStream-DTshTZoI.js} +1 -1
- package/dist/{fr-BhVwmvlV.js → fr-Ctu5i20f.js} +21 -3
- package/dist/{href-1o0O9xTA.js → href-B4azVXj-.js} +2 -2
- package/dist/i18n--YZExMpe.js +28 -0
- package/dist/{i18n-DInkJ-RH.js → i18n-srcm-H61.js} +6 -6
- 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.37 → 4.3.39}/main/de.js +1 -1
- package/dist/locales/{4.3.37 → 4.3.39}/main/es.js +1 -1
- package/dist/locales/{4.3.37 → 4.3.39}/main/fr.js +1 -1
- package/dist/locales/{4.3.37 → 4.3.39}/main/id.js +1 -1
- package/dist/locales/{4.3.37 → 4.3.39}/main/it.js +1 -1
- package/dist/locales/{4.3.37 → 4.3.39}/main/ja.js +1 -1
- package/dist/locales/{4.3.37 → 4.3.39}/main/ko.js +1 -1
- package/dist/locales/{4.3.37 → 4.3.39}/main/nl.js +1 -1
- package/dist/locales/{4.3.37 → 4.3.39}/main/pl.js +1 -1
- package/dist/locales/{4.3.37 → 4.3.39}/main/pt-br.js +1 -1
- package/dist/locales/{4.3.37 → 4.3.39}/main/tr.js +1 -1
- package/dist/locales/{4.3.37 → 4.3.39}/main/zh.js +1 -1
- package/dist/{nl-BwxAfMRa.js → nl-BoZA1-rw.js} +21 -3
- package/dist/{order-totals-BEUOdkCb.js → order-totals-DFE6UVG4.js} +3 -3
- package/dist/{orders-jQz7QFjK.js → orders-DABdaHOy.js} +167 -166
- package/dist/{phoneUtils-CbiDWdEC.js → phoneUtils-CxLRaM5n.js} +1 -1
- package/dist/{pixels-DnbRn43e.js → pixels-BVOE_JFH.js} +8 -8
- 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-DqbDh1cS.js} +1 -1
- 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-CRaeqRxY.js} +2 -2
- package/dist/{tr-DTe5Urub.js → tr-CuaYXuAQ.js} +21 -3
- package/dist/{utils-KGYASlkk.js → utils-kRsfuFcG.js} +53 -53
- package/dist/venue-calendar.css +1 -1
- package/dist/venue-calendar.es.js +499 -490
- package/dist/venue-calendar.iife.js +56 -56
- package/dist/venue-calendar.umd.js +56 -56
- package/dist/{zh-BnBN3ggx.js → zh-Bcr7RKpt.js} +21 -3
- package/package.json +2 -2
- package/dist/EventPage-6-7R9qrl.js +0 -1184
- package/dist/i18n-i-1mHdch.js +0 -28
- package/dist/imageOptimizer-DkJp4tei.js +0 -140
- /package/dist/locales/{4.3.37 → 4.3.39}/flow/de.js +0 -0
- /package/dist/locales/{4.3.37 → 4.3.39}/flow/es.js +0 -0
- /package/dist/locales/{4.3.37 → 4.3.39}/flow/fr.js +0 -0
- /package/dist/locales/{4.3.37 → 4.3.39}/flow/id.js +0 -0
- /package/dist/locales/{4.3.37 → 4.3.39}/flow/it.js +0 -0
- /package/dist/locales/{4.3.37 → 4.3.39}/flow/ja.js +0 -0
- /package/dist/locales/{4.3.37 → 4.3.39}/flow/ko.js +0 -0
- /package/dist/locales/{4.3.37 → 4.3.39}/flow/nl.js +0 -0
- /package/dist/locales/{4.3.37 → 4.3.39}/flow/pl.js +0 -0
- /package/dist/locales/{4.3.37 → 4.3.39}/flow/pt-br.js +0 -0
- /package/dist/locales/{4.3.37 → 4.3.39}/flow/tr.js +0 -0
- /package/dist/locales/{4.3.37 → 4.3.39}/flow/zh.js +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { C as e, O as t, S as n, T as r, _ as i, b as a } from "./Button-klwKgfhG.js";
|
|
2
|
-
import { x as o } from "./scarcity-
|
|
2
|
+
import { x as o } from "./scarcity-DqbDh1cS.js";
|
|
3
3
|
import { d as s, n as c, r as l } from "./z-index-Bo0dqmiq.js";
|
|
4
4
|
import { t as u } from "./RequiredIndicator-CYcnRFsA.js";
|
|
5
5
|
import "svelte/internal/disclose-version";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { q as e } from "./scarcity-
|
|
1
|
+
import { q as e } from "./scarcity-DqbDh1cS.js";
|
|
2
2
|
import "svelte/internal/disclose-version";
|
|
3
3
|
import * as t from "svelte/internal/client";
|
|
4
4
|
//#region node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/phosphor/DownloadIcon.svelte
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { O as e } from "./Button-klwKgfhG.js";
|
|
2
|
-
import { t } from "./Input-
|
|
2
|
+
import { t } from "./Input-DNzDcf6I.js";
|
|
3
3
|
import { d as n, n as r, r as i } from "./z-index-Bo0dqmiq.js";
|
|
4
4
|
import { t as a } from "./lazyOnce-CCfEO1xG.js";
|
|
5
5
|
import "svelte/internal/disclose-version";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { i as e, p as t, q as n } from "./scarcity-
|
|
2
|
-
import { t as r } from "./copyToClipboard-
|
|
3
|
-
import { A as i, C as a, g as o, x as s } from "./defaultLabels-
|
|
4
|
-
import {
|
|
1
|
+
import { i as e, p as t, q as n } from "./scarcity-DqbDh1cS.js";
|
|
2
|
+
import { t as r } from "./copyToClipboard-4LAkJ_1y.js";
|
|
3
|
+
import { A as i, C as a, g as o, x as s } from "./defaultLabels-BkjXKQDd.js";
|
|
4
|
+
import { B as c, R as l } from "./orders-DABdaHOy.js";
|
|
5
5
|
import { t as u } from "./Heading-D6bWtGZA.js";
|
|
6
|
-
import { c as d, i as f, s as p, t as m } from "./to-event-card-props-
|
|
7
|
-
import { r as h, t as g } from "./event-
|
|
8
|
-
import { z as _ } from "./api-
|
|
6
|
+
import { c as d, i as f, s as p, t as m } from "./to-event-card-props-CRaeqRxY.js";
|
|
7
|
+
import { r as h, t as g } from "./event-Dew6DCL7.js";
|
|
8
|
+
import { z as _ } from "./api-DDVVRbC-.js";
|
|
9
9
|
import { t as v } from "./venue-CBos8YTa.js";
|
|
10
10
|
import "svelte/internal/disclose-version";
|
|
11
11
|
import * as y from "svelte/internal/client";
|
|
@@ -335,7 +335,7 @@ function z() {
|
|
|
335
335
|
//#endregion
|
|
336
336
|
//#region src/lib/api/recommendations.ts
|
|
337
337
|
async function B(e, t = "event_page", n) {
|
|
338
|
-
return e ? (await
|
|
338
|
+
return e ? (await c(`${l()}/events/${e}/recommendations?surface=${t}`, { widgetKey: n }))?.recommendations ?? [] : [];
|
|
339
339
|
}
|
|
340
340
|
//#endregion
|
|
341
341
|
//#region src/lib/public-calendar-flow/recommendation-cards.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { t as e } from "./WarningCircleIcon-
|
|
2
|
-
import { n as t, q as n } from "./scarcity-
|
|
1
|
+
import { t as e } from "./WarningCircleIcon-C1-Aj9ut.js";
|
|
2
|
+
import { n as t, q as n } from "./scarcity-DqbDh1cS.js";
|
|
3
3
|
import { t as r } from "./Badge-n7TfNjln.js";
|
|
4
|
-
import { t as i } from "./defaultLabels-
|
|
4
|
+
import { t as i } from "./defaultLabels-BkjXKQDd.js";
|
|
5
5
|
import { n as a } from "./liveAnnouncer-D3xVL7qA.js";
|
|
6
6
|
import "svelte/internal/disclose-version";
|
|
7
7
|
import * as o from "svelte/internal/client";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { E as e } from "./Button-klwKgfhG.js";
|
|
2
|
-
import { t } from "./Event-
|
|
3
|
-
import { a as n } from "./RecommendationsRail-
|
|
4
|
-
import { n as r } from "./ScarcityBadge-
|
|
2
|
+
import { t } from "./Event-DyX1UrZe.js";
|
|
3
|
+
import { a as n } from "./RecommendationsRail-CG0vCtgJ.js";
|
|
4
|
+
import { n as r } from "./ScarcityBadge-D0D6Hqp0.js";
|
|
5
5
|
import { t as i } from "./__SKIP_PATHS__-C0ixDSSm.js";
|
|
6
6
|
import "svelte/internal/disclose-version";
|
|
7
7
|
import * as a from "svelte/internal/client";
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { E as e } from "./Button-klwKgfhG.js";
|
|
2
|
-
import { l as t, q as n, r } from "./scarcity-
|
|
3
|
-
import { t as i } from "./ArrowLeftIcon-
|
|
4
|
-
import { t as a } from "./CalendarIcon-
|
|
5
|
-
import { t as o } from "./ChevronDownIcon
|
|
6
|
-
import { n as s, t as c } from "./MailIcon-
|
|
7
|
-
import { n as l, o as u, r as d, t as f } from "./RecommendationsRail-
|
|
8
|
-
import { n as p } from "./copyToClipboard-
|
|
9
|
-
import { U as m, V as h, i as g } from "./defaultLabels-
|
|
10
|
-
import {
|
|
2
|
+
import { l as t, q as n, r } from "./scarcity-DqbDh1cS.js";
|
|
3
|
+
import { t as i } from "./ArrowLeftIcon-BMuyNOqe.js";
|
|
4
|
+
import { t as a } from "./CalendarIcon-B1JasL-W.js";
|
|
5
|
+
import { t as o } from "./ChevronDownIcon--mG1fNDx.js";
|
|
6
|
+
import { n as s, t as c } from "./MailIcon-Cf77TYiB.js";
|
|
7
|
+
import { n as l, o as u, r as d, t as f } from "./RecommendationsRail-CG0vCtgJ.js";
|
|
8
|
+
import { n as p } from "./copyToClipboard-4LAkJ_1y.js";
|
|
9
|
+
import { U as m, V as h, i as g } from "./defaultLabels-BkjXKQDd.js";
|
|
10
|
+
import { H as _, Q as v, X as y, _ as b, et as x, s as S } from "./orders-DABdaHOy.js";
|
|
11
11
|
import { t as C } from "./liveAnnouncer-D3xVL7qA.js";
|
|
12
12
|
import { n as w, t as T } from "./Heading-D6bWtGZA.js";
|
|
13
13
|
import { t as E } from "./Text-CqjLjIF8.js";
|
|
14
|
-
import { g as D, h as O } from "./api-
|
|
15
|
-
import { c as k, r as A } from "./pixels-
|
|
16
|
-
import { i as j, n as M, t as N } from "./i18n-
|
|
17
|
-
import { n as P, t as F } from "./i18n
|
|
14
|
+
import { g as D, h as O } from "./api-DDVVRbC-.js";
|
|
15
|
+
import { c as k, r as A } from "./pixels-BVOE_JFH.js";
|
|
16
|
+
import { i as j, n as M, t as N } from "./i18n-srcm-H61.js";
|
|
17
|
+
import { n as P, t as F } from "./i18n--YZExMpe.js";
|
|
18
18
|
import { t as I } from "./__SKIP_PATHS__-C0ixDSSm.js";
|
|
19
|
-
import { C as ee, d as L, l as R, n as te } from "./utils-
|
|
20
|
-
import { n as z, t as B } from "./constants-
|
|
21
|
-
import { a as V, i as H, n as U, o as ne, r as W, s as G } from "./showcase-state-options-
|
|
19
|
+
import { C as ee, d as L, l as R, n as te } from "./utils-kRsfuFcG.js";
|
|
20
|
+
import { n as z, t as B } from "./constants-7hsFMWgp.js";
|
|
21
|
+
import { a as V, i as H, n as U, o as ne, r as W, s as G } from "./showcase-state-options-Dwn2NLOM.js";
|
|
22
22
|
import { n as re, t as ie } from "./buyerEmail-BfCq-gDt.js";
|
|
23
|
-
import { r as K } from "./defaults-
|
|
23
|
+
import { r as K } from "./defaults-DthmKRyG.js";
|
|
24
24
|
import "svelte/internal/disclose-version";
|
|
25
25
|
import * as q from "svelte/internal/client";
|
|
26
26
|
import { SvelteMap as J } from "svelte/reactivity";
|
|
@@ -52,7 +52,7 @@ function le(e) {
|
|
|
52
52
|
return e ? y(Z(e), null) : null;
|
|
53
53
|
}
|
|
54
54
|
function ue(e) {
|
|
55
|
-
e &&
|
|
55
|
+
e && v(Z(e));
|
|
56
56
|
}
|
|
57
57
|
//#endregion
|
|
58
58
|
//#region src/lib/public-calendar-flow/SuccessTicket.svelte
|
|
@@ -723,7 +723,7 @@ function De(e, t) {
|
|
|
723
723
|
var $ = e("Success"), Oe = q.from_html("<p class=\"payment-failed-title svelte-1mm1psu\"> </p> <p class=\"payment-failed-message svelte-1mm1psu\"> </p>", 1), ke = q.from_html("<p class=\"payment-failed-title svelte-1mm1psu\"> </p> <p class=\"payment-failed-message svelte-1mm1psu\"> </p> <a class=\"payment-failed-retry svelte-1mm1psu\"> </a>", 1), Ae = q.from_html("<div class=\"flex flex-col items-center justify-center py-24 text-center gap-4 payment-failed-container\"><!></div>"), je = q.from_html("<div class=\"flex flex-col items-center justify-center py-24 text-center gap-4 error-container svelte-1mm1psu\"><p class=\"svelte-1mm1psu\"> </p></div>"), Me = q.from_html("<div class=\"flex items-center justify-center py-24 text-center loading-container svelte-1mm1psu\"><p> </p></div>");
|
|
724
724
|
function Ne(e, t) {
|
|
725
725
|
q.push(t, !0);
|
|
726
|
-
let n = q.prop(t, "data", 19, () => ({})), r = q.prop(t, "browseUrl", 3, "/"), i = q.prop(t, "backHref", 3, void 0), a = q.prop(t, "eventUrl", 3, void 0), o = q.prop(t, "widgetId", 3, null), s = q.prop(t, "venueId", 3, null), c = q.prop(t, "labels", 19, () => ({})), l = q.prop(t, "locale", 3, void 0), u = q.derived(() => F(l(), c())), f = q.derived(() => q.get(u).ticketFallbackName), p = q.derived(() => i() || (n()?.id && n()?.slug ? O(String(n().id), String(n().slug)) : I(r(), {}))), m = q.state(null), h = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i, g = q.state(""),
|
|
726
|
+
let n = q.prop(t, "data", 19, () => ({})), r = q.prop(t, "browseUrl", 3, "/"), i = q.prop(t, "backHref", 3, void 0), a = q.prop(t, "eventUrl", 3, void 0), o = q.prop(t, "widgetId", 3, null), s = q.prop(t, "venueId", 3, null), c = q.prop(t, "labels", 19, () => ({})), l = q.prop(t, "locale", 3, void 0), u = q.derived(() => F(l(), c())), f = q.derived(() => q.get(u).ticketFallbackName), p = q.derived(() => i() || (n()?.id && n()?.slug ? O(String(n().id), String(n().slug)) : I(r(), {}))), m = q.state(null), h = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i, g = q.state(""), v = q.state(null), C = q.state(!0), w = q.derived(() => String(n()?.redirectStatus || "")), T = q.derived(() => q.get(w) !== "" && q.get(w) !== "succeeded"), E = q.derived(() => q.get(w) === "pending" || q.get(w) === "processing"), D = q.state(!1), j = q.state(!1);
|
|
727
727
|
async function M(e, t) {
|
|
728
728
|
if (!e) return "unconfirmed";
|
|
729
729
|
let n = le(e);
|
|
@@ -758,7 +758,7 @@ function Ne(e, t) {
|
|
|
758
758
|
}
|
|
759
759
|
let { id: e, slug: t, event: r, orderId: i, orderUuid: c, customerEmail: p, ticketCount: S, value: E, currency: O } = n() || {};
|
|
760
760
|
{
|
|
761
|
-
let { postMessageOnSuccess: t, postMessageTargetOrigin: a } =
|
|
761
|
+
let { postMessageOnSuccess: t, postMessageTargetOrigin: a } = _();
|
|
762
762
|
if (t) {
|
|
763
763
|
let t = {
|
|
764
764
|
orderId: String(i || c || ""),
|
|
@@ -769,20 +769,20 @@ function Ne(e, t) {
|
|
|
769
769
|
}
|
|
770
770
|
{
|
|
771
771
|
let t = e ?? n()?.eventId ?? r?.id ?? null, a = String(i || c || ""), l = "micdrop_purchased_orders", u = y(l, []) ?? [], d = !!a && u.includes(a);
|
|
772
|
-
t != null && !d && (
|
|
772
|
+
t != null && !d && (b(t, o(), s() || r?.venueID || r?.venueId || null), A({
|
|
773
773
|
eventId: t,
|
|
774
774
|
orderId: a,
|
|
775
775
|
value: typeof E == "number" ? E : null,
|
|
776
776
|
currency: O,
|
|
777
777
|
contentName: r?.name || r?.title || ""
|
|
778
|
-
}), a &&
|
|
778
|
+
}), a && x(l, [...u, a]));
|
|
779
779
|
}
|
|
780
780
|
q.set(g, a() || `${window.location.origin}/e/${e}-${t}`, !0);
|
|
781
781
|
let N;
|
|
782
782
|
try {
|
|
783
783
|
N = d(r);
|
|
784
784
|
} catch (e) {
|
|
785
|
-
$.warn("Success: transformApiEvent failed:", e), q.set(
|
|
785
|
+
$.warn("Success: transformApiEvent failed:", e), q.set(v, q.get(u).failedToLoadEventData || "Failed to load event data", !0), q.set(C, !1);
|
|
786
786
|
return;
|
|
787
787
|
}
|
|
788
788
|
let F = i || c || "", I = p || ie(F), z = [], B = null;
|
|
@@ -859,7 +859,7 @@ function Ne(e, t) {
|
|
|
859
859
|
}), q.reset(t), q.append(e, t);
|
|
860
860
|
}, V = (e) => {
|
|
861
861
|
var t = je(), n = q.child(t), r = q.child(n, !0);
|
|
862
|
-
q.reset(n), q.reset(t), q.template_effect(() => q.set_text(r, q.get(
|
|
862
|
+
q.reset(n), q.reset(t), q.template_effect(() => q.set_text(r, q.get(v))), q.append(e, t);
|
|
863
863
|
}, H = (e) => {
|
|
864
864
|
var t = Me(), n = q.child(t), r = q.child(n, !0);
|
|
865
865
|
q.reset(n), q.reset(t), q.template_effect(() => q.set_text(r, q.get(u).loadingYourOrder || "Loading your order...")), q.append(e, t);
|
|
@@ -880,7 +880,7 @@ function Ne(e, t) {
|
|
|
880
880
|
});
|
|
881
881
|
};
|
|
882
882
|
q.if(z, (e) => {
|
|
883
|
-
q.get(T) || q.get(j) || q.get(D) ? e(B) : q.get(
|
|
883
|
+
q.get(T) || q.get(j) || q.get(D) ? e(B) : q.get(v) ? e(V, 1) : q.get(C) || !q.get(m) ? e(H, 2) : e(U, -1);
|
|
884
884
|
}), q.append(e, N), q.pop();
|
|
885
885
|
}
|
|
886
886
|
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { q as e } from "./scarcity-
|
|
1
|
+
import { q as e } from "./scarcity-DqbDh1cS.js";
|
|
2
2
|
import "svelte/internal/disclose-version";
|
|
3
3
|
import * as t from "svelte/internal/client";
|
|
4
4
|
//#region node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/phosphor/TagIcon.svelte
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { C as e, O as t } from "./Button-klwKgfhG.js";
|
|
2
2
|
import { t as n } from "./Badge-n7TfNjln.js";
|
|
3
|
-
import { U as r, i, n as a, t as o } from "./defaultLabels-
|
|
4
|
-
import {
|
|
3
|
+
import { U as r, i, n as a, t as o } from "./defaultLabels-BkjXKQDd.js";
|
|
4
|
+
import { N as s, a as c } from "./orders-DABdaHOy.js";
|
|
5
5
|
import { n as l, t as u } from "./Heading-D6bWtGZA.js";
|
|
6
6
|
import { t as d } from "./Textarea-D24kYZAW.js";
|
|
7
7
|
import { t as f } from "./Spinner-D8dOJe6O.js";
|
|
8
8
|
import { t as p } from "./Text-CqjLjIF8.js";
|
|
9
|
-
import { t as m } from "./i18n
|
|
10
|
-
import { a as h, i as g, n as _, o as v, r as y, s as b, t as ee } from "./defaults-
|
|
9
|
+
import { t as m } from "./i18n--YZExMpe.js";
|
|
10
|
+
import { a as h, i as g, n as _, o as v, r as y, s as b, t as ee } from "./defaults-DthmKRyG.js";
|
|
11
11
|
import "svelte/internal/disclose-version";
|
|
12
12
|
import * as x from "svelte/internal/client";
|
|
13
13
|
import { SvelteMap as te } from "svelte/reactivity";
|
|
@@ -130,7 +130,7 @@ var E = {
|
|
|
130
130
|
({ ...E }), E.tickets[0], { ...E }, { ...E.event }, { ...E }, E.tickets[0], { ...E.tickets[1] }, { ...E.tickets[2] };
|
|
131
131
|
//#endregion
|
|
132
132
|
//#region src/lib/view-tickets/variants/dice-swipe/ViewTickets.svelte
|
|
133
|
-
var ae = x.from_html("<span class=\"mx-1 text-white/30\">·</span>"), oe = x.from_html("<!> ", 1), se = x.from_html(" <!>", 1), ce = x.from_html("<div class=\"flex h-52 w-52 items-center justify-center bg-bg-secondary\"><!></div>"), le = x.from_html("<div class=\"pointer-events-none absolute inset-0 flex items-center justify-center\" aria-hidden=\"true\"><span class=\"rounded-md border border-status-error-border bg-card/90 px-3 py-1 type-label uppercase tracking-widest text-status-error-text\"> </span></div>"), ue = x.from_html("<div class=\"mt-3 flex flex-col items-center gap-1.5\"><!> <p class=\"type-caption text-center tone-muted\"> </p></div>"), de = x.from_html("<div class=\"relative flex justify-center\"><!> <!></div> <div class=\"mt-4 flex flex-col items-center gap-0.5\"><p> </p> <p class=\"type-label tone-secondary\"> </p> <p class=\"type-caption font-mono tone-muted\"> </p></div> <!>", 1), fe = x.from_html("<div class=\"mt-5 flex items-center justify-center gap-4\"><!> <!> <!></div> <div class=\"mt-2 text-center\"><!></div>", 1), pe = x.from_svg("<svg aria-hidden=\"true\" class=\"h-3.5 w-3.5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3\"></path></svg> ", 1), me = x.from_html("<p aria-live=\"polite\"> </p>"), he = x.from_html("<p class=\"type-caption text-status-error-text\" aria-live=\"polite\"> </p>"), ge = x.from_html("<div class=\"w-full space-y-2\"><label for=\"refund-reason\"> </label> <!> <!> <div class=\"flex items-center justify-center gap-3\"><!> <!></div></div>"), _e = x.from_html("<div class=\"fixed inset-0 z-base bg-black\"><!></div> <div class=\"relative z-sticky flex min-h-screen flex-col\"><header class=\"px-6 pb-4 pt-12 text-center\"><!> <div class=\"mt-1\"><!></div> <!> <div class=\"mt-1\"><!></div></header> <div class=\"flex flex-1 flex-col items-center justify-center px-4 py-4\"><div class=\"w-full max-w-xs overflow-hidden\" role=\"region\" aria-roledescription=\"carousel\"><!> <!></div></div> <div class=\"mt-auto bg-
|
|
133
|
+
var ae = x.from_html("<span class=\"mx-1 text-white/30\">·</span>"), oe = x.from_html("<!> ", 1), se = x.from_html(" <!>", 1), ce = x.from_html("<div class=\"flex h-52 w-52 items-center justify-center bg-bg-secondary\"><!></div>"), le = x.from_html("<div class=\"pointer-events-none absolute inset-0 flex items-center justify-center\" aria-hidden=\"true\"><span class=\"rounded-md border border-status-error-border bg-card/90 px-3 py-1 type-label uppercase tracking-widest text-status-error-text\"> </span></div>"), ue = x.from_html("<div class=\"mt-3 flex flex-col items-center gap-1.5\"><!> <p class=\"type-caption text-center tone-muted\"> </p></div>"), de = x.from_html("<div class=\"relative flex justify-center\"><!> <!></div> <div class=\"mt-4 flex flex-col items-center gap-0.5\"><p> </p> <p class=\"type-label tone-secondary\"> </p> <p class=\"type-caption font-mono tone-muted\"> </p></div> <!>", 1), fe = x.from_html("<div class=\"mt-5 flex items-center justify-center gap-4\"><!> <!> <!></div> <div class=\"mt-2 text-center\"><!></div>", 1), pe = x.from_svg("<svg aria-hidden=\"true\" class=\"h-3.5 w-3.5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5M16.5 12L12 16.5m0 0L7.5 12m4.5 4.5V3\"></path></svg> ", 1), me = x.from_html("<p aria-live=\"polite\"> </p>"), he = x.from_html("<p class=\"type-caption text-status-error-text\" aria-live=\"polite\"> </p>"), ge = x.from_html("<div class=\"w-full space-y-2\"><label for=\"refund-reason\"> </label> <!> <!> <div class=\"flex items-center justify-center gap-3\"><!> <!></div></div>"), _e = x.from_html("<div class=\"fixed inset-0 z-base bg-black\"><!></div> <div class=\"relative z-sticky flex min-h-screen flex-col\"><header class=\"px-6 pb-4 pt-12 text-center\"><!> <div class=\"mt-1\"><!></div> <!> <div class=\"mt-1\"><!></div></header> <div class=\"flex flex-1 flex-col items-center justify-center px-4 py-4\"><div class=\"w-full max-w-xs overflow-hidden\" role=\"region\" aria-roledescription=\"carousel\"><!> <!></div></div> <div class=\"mt-auto bg-black/90 px-6 pb-10 pt-6 backdrop-blur-md\"><div class=\"mx-auto max-w-md space-y-5\"><div class=\"flex flex-col items-center gap-2\"><div class=\"flex items-center justify-center gap-3\"><!> <!></div> <p aria-live=\"polite\"> </p></div> <div class=\"flex flex-col items-center gap-3\"><!> <p> <a rel=\"external\" class=\"tone-muted underline underline-offset-2 transition-colors hover:text-white\">Apple</a> <span class=\"mx-1 tone-secondary\">·</span> <a class=\"tone-muted underline underline-offset-2 transition-colors hover:text-white\" target=\"_blank\" rel=\"external noopener noreferrer\">Google</a> <span class=\"mx-1 tone-secondary\">·</span> <a class=\"tone-muted underline underline-offset-2 transition-colors hover:text-white\" target=\"_blank\" rel=\"external noopener noreferrer\">Outlook</a></p></div> <div class=\"flex flex-col items-center gap-1\"><p> </p> <!></div> <div class=\"flex flex-col items-center gap-2 border-t border-white/10 pt-5\"><!></div> <div class=\"flex flex-col items-center gap-1\"><p> </p> <p> <a class=\"tone-muted underline underline-offset-2 transition-colors hover:tone-muted\"> </a></p></div></div></div></div>", 1);
|
|
134
134
|
function D(t, a) {
|
|
135
135
|
x.push(a, !0);
|
|
136
136
|
let s = x.prop(a, "data", 3, E), m = x.prop(a, "labels", 3, o), g = x.state(0), S = x.derived(() => s().tickets[x.get(g)]), C = x.state(0), w = x.state(0), T = x.state(0), D = x.state(!1), O = x.state(!1), k = x.state(""), A = x.state(!1), j = x.derived(() => ee(s().event, s().venue, s().order.orderNumber)), ve = x.derived(() => _(s().venue)), ye = x.derived(() => y(s().order.orderUUID)), be = x.derived(() => h(s().event.startDateTime, s().event.timezone)), xe = x.derived(() => v(s().event.startDateTime, s().event.timezone)), M = x.derived(() => s().tickets.length), N = x.derived(() => x.get(M) > 1), Se = x.derived(() => s().event.imageUrl), P = x.derived(() => x.get(S).refunded === !0), Ce = x.derived(() => !x.get(P) && x.get(S).checkedIn === !0), we = x.derived(() => x.get(P) ? ` — ${m().qrRefundedSuffix || "refunded, not valid for entry"}` : x.get(Ce) ? ` — ${m().qrCheckedInSuffix || "already checked in"}` : ""), F = x.state(x.proxy(/* @__PURE__ */ new Map()));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { q as e } from "./scarcity-
|
|
1
|
+
import { q as e } from "./scarcity-DqbDh1cS.js";
|
|
2
2
|
import "svelte/internal/disclose-version";
|
|
3
3
|
import * as t from "svelte/internal/client";
|
|
4
4
|
//#region node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/ChevronDownOutline.svelte
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { q as e } from "./scarcity-
|
|
1
|
+
import { q as e } from "./scarcity-DqbDh1cS.js";
|
|
2
2
|
import "svelte/internal/disclose-version";
|
|
3
3
|
import * as t from "svelte/internal/client";
|
|
4
4
|
//#region node_modules/@getmicdrop/svelte-components/dist/primitives/Icons/phosphor/WarningTriIcon.svelte
|
package/dist/api/api.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@getmicdrop/svelte-components/utils/logger"),t=require("@getmicdrop/svelte-components/errors"),n=require("@getmicdrop/svelte-components"),r=require("@getmicdrop/svelte-components/datetime"),i=require("@getmicdrop/svelte-components/transforms");require("@getmicdrop/svelte-components/utils/timezones"),require("@getmicdrop/svelte-components/utils/formatters"),(0,e.createLogger)(`VC:config`,{enabled:!0});var a=(0,e.createLogger)(`VC`),o=new Set;function s(e){if(e)for(let t of o)try{t(e)}catch{}}var c=`ABORTED`;function l(e,t){let n=t||void 0;return n?{...e,"X-Widget-Key":n}:e}function u(e,t){let n=`HTTP ${t}`;if(!e||typeof e!=`object`)return{message:n};let r=e,i=r.error&&typeof r.error==`object`?r.error:null,a=typeof r.code==`string`?r.code:typeof i?.code==`string`?i.code:void 0;return{message:typeof r.error==`string`?r.error:typeof i?.message==`string`?i.message:typeof r.message==`string`?r.message:n,code:a}}var d=class extends Error{code;statusCode;constructor(e,t,n){super(e),this.name=`ApiRequestError`,this.code=t,this.statusCode=n}},f={baseUrl:`https://get-micdrop.com`,timeout:3e4,retries:2,retryDelay:500,onError:e=>a.error(`API Error:`,e)};function p(e){f={...f,...e}}function m(){return{...f}}function h(){return`${f.baseUrl}/api/v2/public`}function g(){return`${f.baseUrl}/api/public`}function _(){return`${f.baseUrl}/api/orders/v2/public`}async function ee(){return``}var te=e=>new Promise(t=>setTimeout(t,e));async function v(e,t,n){let r=(t.method||`GET`).toUpperCase(),i=r===`GET`||r===`HEAD`?n.retries+1:1,a;for(let r=1;r<=i;r++){let o=new AbortController,s=setTimeout(()=>o.abort(),n.timeout),c=t.signal,l;c&&(c.aborted?o.abort():(l=()=>o.abort(),c.addEventListener(`abort`,l,{once:!0})));try{let n=await fetch(e,{...t,signal:o.signal});if(n.status>=500&&r<i)a=Error(`HTTP ${n.status}`);else return n}catch(e){if(a=e,c?.aborted)throw e}finally{clearTimeout(s),c&&l&&c.removeEventListener(`abort`,l)}r<i&&await te(n.retryDelay*2**(r-1))}throw a}async function y(e,t){return S(`GET`,e,void 0,t)}async function b(e,t,n){return S(`POST`,e,t,n)}async function ne(e,t,n){return S(`PUT`,e,t,n)}async function x(e,t){return S(`DELETE`,e,void 0,t)}async function S(e,t,n,r){let i=t.startsWith(`http`)||t.startsWith(`/api/`)?t:`${h()}${t}`,{widgetKey:a,suppressOnError:o,headers:p,...m}=r??{},g=e=>{o||f.onError(e)};try{let t=await v(i,{method:e,headers:l({"Content-Type":`application/json`,...p},a),body:n===void 0?void 0:JSON.stringify(n),...m},f);if(!t.ok){let{message:e,code:n}=u(await t.json().catch(()=>({})),t.status);return g(new d(e,n,t.status)),s(n),{success:!1,error:e,errorCode:n,statusCode:t.status}}return{success:!0,data:await t.json(),statusCode:t.status}}catch(e){if(r?.signal?.aborted)return{success:!1,error:`Request aborted`,errorCode:c,aborted:!0};let t=e instanceof Error?e.name===`AbortError`?`Request timed out`:e.message:`Unknown error`;return g(e instanceof Error?e:Error(t)),{success:!1,error:t}}}async function C(e,t){try{let n=e.startsWith(f.baseUrl),{widgetKey:r,...i}=t??{},o=await v(e,{...i,...n?{headers:l(i.headers,r)}:{}},f);if(!o.ok){let e=await o.json().catch(()=>({}));return a.error(`API request failed: ${o.status}`,e),null}return o.json()}catch(e){return a.error(`API request error:`,e),null}}function re(e){let t=e??{};return{ticketID:Number(t.TicketID??t.ticketID??0),quantity:Number(t.Quantity??t.quantity??0),priceAtReservation:Number(t.PriceAtReservation??t.priceAtReservation??0),status:String(t.Status??t.status??``)}}function ie(e){let t=e??{},r=t.Amount??t.amount,i=Number(r);return{giftCardId:Number(t.GiftCardID??t.giftCardId??0),maskedCode:String(t.MaskedCode??t.maskedCode??``),amount:r==null||!Number.isFinite(i)?null:(0,n.centsToDollars)((0,n.toCents)(i))}}function ae(e){let t=e??{};return{uuid:t.UUID??t.uuid??``,eventID:Number(t.EventID??t.eventID??0),status:t.Status??t.status??``,expiresAt:t.ExpiresAt??t.expiresAt??``,reservations:(t.Reservations??t.reservations??[]).map(re),giftCards:(t.GiftCards??t.giftCards??[]).map(ie)}}var w=[`utmSource`,`utmMedium`,`utmCampaign`,`utmContent`,`utmTerm`],oe={utmSource:`utm_source`,utmMedium:`utm_medium`,utmCampaign:`utm_campaign`,utmContent:`utm_content`,utmTerm:`utm_term`},se=`direct`;function ce(e){return e?e.trim().toLowerCase().replace(/\s+/g,`_`):``}function le(e){let t={};for(let n of w)t[n]=ce(e[n]);return t.utmSource||=se,t}function ue(e){let t={};for(let n of w)t[n]=e.get(oe[n]);return le(t)}var T={search:null,referrer:null,pageUrl:null};function de(){if(typeof window>`u`)return!0;try{return window.self===window.top}catch{return!1}}function fe(){let e=typeof window<`u`,t=de(),n=T.search??(e?window.location.search:``),r=T.referrer??(typeof document<`u`?document.referrer:``)??``,i=T.pageUrl??(e&&t?window.location.href:``);return{utm:ue(new URLSearchParams(n)),referrer:r||``,pageUrl:i||``}}var pe=null,me=!1;function he(){return typeof window<`u`&&typeof window.__tcfapi==`function`}function ge(){return typeof navigator<`u`&&navigator.globalPrivacyControl===!0}function _e(){return pe===null?he()||ge():pe}function ve(){return!_e()||me}var ye=`micdrop_session_id`,E=`micdrop_visitor_id`,be=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function D(e){return typeof e==`string`&&be.test(e)}function O(){let e=typeof crypto<`u`?crypto:void 0;if(e?.randomUUID)return e.randomUUID();let t=new Uint8Array(16);if(e?.getRandomValues)e.getRandomValues(t);else for(let e=0;e<16;e++)t[e]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let n=[];for(let e=0;e<16;e++)n.push(t[e].toString(16).padStart(2,`0`));return`${n[0]}${n[1]}${n[2]}${n[3]}-${n[4]}${n[5]}-${n[6]}${n[7]}-${n[8]}${n[9]}-${n[10]}${n[11]}${n[12]}${n[13]}${n[14]}${n[15]}`}function xe(){let e=(0,n.getSessionStorage)(ye);return e||(e=O(),(0,n.setSessionStorage)(ye,e)),e}function Se(e){let t=(0,n.getLocalStorage)(E);if(D(t))return{id:t,createdAt:e,migrated:!0};if(t&&typeof t==`object`){let{id:n,createdAt:r}=t;if(!D(n))return null;let i=typeof r==`number`&&Number.isFinite(r),a=i?Math.min(r,e):e;return{id:n,createdAt:a,migrated:!i||a!==r}}return null}function Ce(){if(!ve())return null;let e=Date.now(),t=Se(e);if(t&&e-t.createdAt<34128e6){if(t.migrated){let e={id:t.id,createdAt:t.createdAt};(0,n.setLocalStorage)(E,e)}return t.id}let r=O();return(0,n.setLocalStorage)(E,{id:r,createdAt:e}),r}var we=`micdrop_attribution`;function Te(){let e=(0,n.getSessionStorage)(we);return!e||!e.utm||typeof e.utm.utmSource!=`string`?null:e}function k(){let e=Te()??fe();return{sessionId:xe(),visitorId:Ce(),utmSource:e.utm.utmSource,utmMedium:e.utm.utmMedium,utmCampaign:e.utm.utmCampaign,utmContent:e.utm.utmContent,utmTerm:e.utm.utmTerm,referrer:e.referrer||``}}(0,n.createLogger)(`tracking`),$state(0);function Ee(){return typeof navigator>`u`?null:navigator.language||navigator.userLanguage||null}var A=[[`es`,`es`,`es`],[`fr`,`fr`,`fr`],[`pt-br`,`pt-br`,`pt_br`],[`pt`,`pt-br`,`pt_br`],[`de`,`de`,`de`],[`ja`,`ja`,`ja`],[`zh`,`zh`,`zh`],[`ko`,`ko`,`ko`],[`it`,`it`,`it`],[`nl`,`nl`,`nl`],[`tr`,`tr`,`tr`],[`id`,`id`,`id`],[`pl`,`pl`,`pl`]];Array.from(new Set(A.map(([,e])=>e)));var j=new Map([[`en`,`en`],...A.map(([e])=>[e,e===`pt`||e===`pt-br`?`pt-BR`:e])]);function M(e){let t=e||Ee();if(!t||typeof t!=`string`)return;let n=t.toLowerCase();return j.get(n)??j.get(n.split(`-`)[0])}var N=(0,e.createLogger)(`VC`);async function De(e,n,r,i,a){let o=M(a);try{let a=await b(`${_()}/cart/${e}/payment-intent`,{productQuantities:n,...r&&Object.keys(r).length>0?{donationAmounts:r}:{},...i?{firstName:i.firstName,lastName:i.lastName,email:i.email,phone:i.phone??``,questionAnswer:i.questionAnswer??``,mailingList:i.mailingList??!1}:{},attribution:k(),...o?{locale:o}:{}});if(!a.success)throw N.error(`Payment intent creation failed:`,a.error),new t.ApiError(a.error||`Failed to create payment intent`,a.statusCode??0,{endpoint:`${_()}/cart/${e}/payment-intent`,method:`POST`});return N.debug(`Payment intent created:`,a.data),a.data}catch(e){return N.error(`createPaymentIntent error:`,e),null}}async function Oe(e,t){if(!e)return null;try{let n=await y(`${_()}/cart/${e}`);if(!n.success)return null;let{uuid:r,eventID:i,status:a,expiresAt:o,reservations:s,giftCards:c}=ae(n.data);return a!==`reserved`&&a!==`active`||t!==void 0&&i!==Number(t)?null:{uuid:r,eventID:i,status:a,expiresAt:o,reservations:s,giftCards:c}}catch(e){return N.error(`getCartByUUID error:`,e),null}}async function ke(e,t,n){try{let r={};for(let[e,n]of Object.entries(t)){let t=typeof e==`number`?e:parseInt(e,10);!Number.isNaN(t)&&n>0&&(r[t]=n)}let i={};if(n)for(let[e,t]of Object.entries(n)){let n=typeof e==`number`?e:parseInt(e,10);!Number.isNaN(n)&&t>0&&(i[n]=t)}let a=await fetch(`${_()}/cart/${e}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({quantities:r,...Object.keys(i).length>0?{donationAmounts:i}:{}})});if(!a.ok){let e=await a.json().catch(()=>({}));return N.error(`Cart update failed:`,e),!1}return!0}catch(e){return N.error(`updateCartQuantities error:`,e),!1}}async function Ae(e){try{let t=await b(`${h()}/orders/complete/${e}`);return t.success?{success:!0,message:t.data?.message}:{success:!1,error:t.error||`Failed to complete reservation`}}catch(e){return N.error(`Error completing reservation:`,e),{success:!1,error:`Network error completing reservation`}}}async function je(e){try{let t=await b(`${h()}/orders/cancel/${e}`);return t.success?{success:!0,message:t.data?.message}:{success:!1,error:t.error||`Failed to cancel reservation`}}catch(e){return N.error(`Error cancelling reservation:`,e),{success:!1,error:`Network error cancelling reservation`}}}async function Me(e,t){try{let n=await b(`${h()}/orders/create`,{eventID:e,promoCode:t,attribution:k()});return n.success?n.data:(N.error(`Create order failed:`,n.error),null)}catch(e){return N.error(`createOrder error:`,e),null}}async function Ne(e){return C(`${h()}/orders/${e}`)}async function Pe(e,t,n){let r=M(n);try{let n=await b(`${_()}/validatePaymentIntent/${e}`,{...t,attribution:k(),...r?{locale:r}:{}});if(!n.success)return N.error(`Payment validation failed:`,n.error),{success:!1,status:`failed`,error:n.error||`Payment validation failed`};let i=n.data;return i.eventCanceled||i.eventPostponed?{success:!1,status:`failed`,eventCanceled:i.eventCanceled,eventPostponed:i.eventPostponed}:{success:!0,status:i.status||`Payment succeeded`,orderUUID:i.orderUUID||i.uuid}}catch(e){return N.error(`validatePaymentIntent error:`,e),null}}async function Fe(e){try{let t=await b(`${h()}/orders/extend-session`,{orderUuid:e});if(!t.success)return{success:!1,error:t.error||`Failed to extend session`,statusCode:t.statusCode};let n=t.data;return{success:!0,newExpiryTime:n.newExpiryTime,remainingExtensions:n.remainingExtensions}}catch(e){return N.error(`Error extending checkout session:`,e),{success:!1,error:`Network error extending session`}}}async function Ie(e){try{let t=await y(`${h()}/orders/session/${e}`);if(!t.success)return{error:t.error||`No active session found`,notFound:t.statusCode===404};let n=t.data;return{expiresAt:n.expiresAt,extensionCount:n.extensionCount,remainingExtensions:n.remainingExtensions,canExtend:n.canExtend,reservationCount:n.reservationCount,eventStatus:n.eventStatus}}catch(e){return N.error(`Error getting session status:`,e),{error:`Network error getting session status`}}}async function Le(e={eventID:``}){try{let t=await b(`${h()}/orders/create`,{...e,attribution:k()});return t.success?t.data?.uuid??null:(N.error(`Order initiation failed:`,t.error),null)}catch(e){return N.error(`initiateOrder error:`,e),null}}async function Re(e){if(typeof window>`u`)return;let t=ce(new URLSearchParams(window.location.search).get(`utm_source`))||`direct`;try{await fetch(`${h()}/utm/${e}/${encodeURIComponent(t)}`)}catch(e){N.error(`UTM tracking failed:`,e)}}var P=(0,e.createLogger)(`VC`);function ze(e,t){if(e===404)return`Promo code isn't valid.`;let n=(t??``).toLowerCase();return e===400?n.includes(`not yet active`)?`Promo code doesn't apply.`:n.includes(`expired`)?`Promo code expired.`:n.includes(`limit`)?`Promo code has reached its limit.`:`Promo code isn't valid.`:`Failed to validate code`}async function Be(e,t){try{if(!t||!t.trim())return{valid:!1,error:`Promo code is required`};let n=await y(`/promo-codes/validate/${e}/${encodeURIComponent(t.trim())}`);if(!n.success)return{valid:!1,error:ze(n.statusCode,n.error)};let r=n.data;return{valid:r.valid??!0,revealHiddenTickets:r.revealHiddenTickets,revealTicketIds:r.revealTicketIds,provideDiscount:r.provideDiscount,discountType:r.discountType,amount:r.discount??r.amount,code:r.name||r.code||t,appliesToAllTickets:r.appliesToAllTickets,applyToTicketIds:r.applyToTicketIds}}catch(e){return P.error(`Error validating promo code:`,e),{valid:!1,error:`Network error validating code`}}}async function Ve(e){try{let t=await y(`/promo-codes/check/${e}`);return!t.success||t.data.hasPromoCodes===!0}catch(e){return P.error(`Error checking promo codes availability:`,e),!0}}async function He(e,t,n){try{let r={promoCode:t};n&&Object.keys(n).length>0&&(r.productQuantities=n);let i=await b(`${_()}/cart/${e}/apply-promo`,r);return i.success?{success:!0}:{success:!1,error:i.error||`Failed to apply promo code`}}catch(e){return P.error(`Error applying promo code:`,e),{success:!1,error:`Network error applying code`}}}async function Ue(e){try{let t=await b(`/orders/${e}/remove-promo`);return t.success?{success:!0}:{success:!1,error:t.error||`Failed to remove promo code`}}catch(e){return P.error(`Error removing promo code:`,e),{success:!1,error:`Network error removing code`}}}function We(e){let t=e??{};return{performers:Array.isArray(t.performers)?t.performers:[],showPerformers:t.showPerformers===!0}}function F(e){return{ok:!0,data:e}}function I(e){return{ok:!1,error:e}}function L(e){return{ok:!1,error:e,notFound:!0}}function Ge(e){return e.ok}function Ke(e){return!e.ok}function R(e,t){return e.ok?e.data:t}var z=`/api/v2/public`,B=`/api/orders/v2/public`,V=`/api/orders/v2`,qe=`00000000-0000-0000-0000-000000000000`,H=qe;`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}${H}`,`${B}`,`${B}`,`${B}`,`${B}${H}`,`${B}`,`${B}${H}`,`${B}`,`${B}${H}`,`${B}`,`${B}${H}`,`${B}`,`${B}${H}`,`${B}`,`${B}${H}`,`${B}`,`${B}${H}`,`${B}`,`${B}${H}`,`${V}`,`${V}`,`${B}`,`${B}`,`${B}`,`${B}`,`${z}`,`${z}${H}`,`${z}`,`${z}`;var U=(0,e.createLogger)(`VC`),W=new Map;async function Je(e,t=fetch,n){let r=n?`${e}:pw`:String(e);if(t===fetch){let e=W.get(r);if(e)return e}let i=(async()=>{try{let r=await t(n?`${h()}/events/${e}?password=${encodeURIComponent(n)}`:`${h()}/events/${e}`);if(!r.ok)return r.status===404?L(`event_not_found`):(U.error(`Failed to fetch event details: ${r.status}`),I(`event_fetch_failed`));let i=await r.json();return i?F(i):L(`event_not_found`)}catch(e){return U.error(`Error fetching event details:`,e),I(`event_fetch_failed`)}})();return t===fetch&&(W.set(r,i),i.finally(()=>{W.get(r)===i&&W.delete(r)})),i}async function Ye(e,t=fetch,n){let r=await Je(e,t,n);return r.ok?r.data:null}async function G(e,t,n=e=>e){try{let r=await C(e);return r?F(n(r)):(U.error(`Failed to load (${t}): network or server error`),I(t))}catch(e){return U.error(`Error loading (${t}):`,e),I(t)}}function K(e){return Array.isArray(e)?e:[]}async function Xe(e,t){let n=t?.trim(),r=n?`?promoCode=${encodeURIComponent(n)}`:``;return G(`${h()}/tickets/event/${e}${r}`,`tickets_fetch_failed`,K)}async function Ze(e,t){return R(await Xe(e,t),[])}async function Qe(e){return e?G(`${h()}/events/${e}/performers`,`performers_fetch_failed`,e=>We(e)):(U.warn(`fetchEventPerformers called without eventId`),I(`performers_missing_event_id`))}async function $e(e){return R(await Qe(e),{performers:[],showPerformers:!1})}async function et(e){return e?G(`${h()}/venues/organization/${e}`,`venues_fetch_failed`,K):(U.warn(`fetchAllVenues called without orgId`),I(`venues_missing_org_id`))}async function tt(e){return R(await et(e),[])}async function nt(e){return e?G(`${h()}/events/venue/${e}`,`venue_events_fetch_failed`,K):(U.warn(`fetchVenueEvents called without venueId`),I(`venue_events_missing_venue_id`))}async function rt(e){return R(await nt(e),[])}function it(e){return Array.isArray(e)?e:Array.isArray(e.events)?e.events:[]}var q=new Map;function at(e,t,n){if(!n?.fresh){let t=q.get(e);if(t)return t}let r=G(e,t,e=>it(e));return q.set(e,r),r.finally(()=>{q.get(e)===r&&q.delete(e)}),r}async function ot(e,t,n,r){return at(`${h()}/events/venue/${e}/month/${t}/${n}`,`month_events_fetch_failed`,r)}async function st(e,t,n){return R(await ot(e,t,n),[])}async function ct(e,t,n,r){return at(`${h()}/events/organization/${e}/month/${t}/${n}`,`org_month_events_fetch_failed`,r)}async function lt(e,t,n){return R(await ct(e,t,n),[])}async function ut(e){return G(`${h()}/series/${e}/occurrences`,`series_occurrences_fetch_failed`)}async function dt(e){let t=await ut(e);return t.ok?t.data:null}async function ft(e,t){return G(`${h()}/series/${e}/occurrences?venueId=${t}`,`series_cta_fetch_failed`)}async function pt(e,t){let n=await ft(e,t);return n.ok?n.data:null}async function mt(e,n){try{let r=n?`?slug=${encodeURIComponent(n)}`:``,i=await C(`${h()}/resolve/${encodeURIComponent(String(e))}${r}`);if(!i||!i.type)throw new t.NotFoundError(`entity`,String(e));return i}catch(e){return U.error(`Error resolving public entity:`,e),null}}async function ht(e,n){try{let r=await C(n?`${h()}/collections/${e}?password=${encodeURIComponent(n)}`:`${h()}/collections/${e}`);if(!r)throw new t.NotFoundError(`collection`,String(e));return r}catch(e){return U.error(`Error fetching collection:`,e),null}}async function gt(e,t){try{return(await C(`${h()}/collections/${e}/check-password`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({password:t})}))?.valid===!0}catch(e){return U.error(`Error checking collection password:`,e),!1}}async function _t(e,t){try{let n=await C(`${h()}/events/${e}/check-password`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({password:t})});return typeof n==`boolean`?{valid:n}:{valid:n?.valid===!0}}catch(e){return U.error(`Error checking event password:`,e),{valid:!1}}}async function vt(e,t){try{let n=t?`${h()}/events/venue/${t}`:e?`${h()}/venues/organization/${e}`:`${h()}/venues/${qe}`;return(await fetch(n,{method:`HEAD`})).status<500}catch(e){return U.error(`Network connection test failed:`,e),!1}}var yt=`get-micdrop.com`;function bt(e){let t=typeof e==`string`?e.trim():``;return t?`https://${encodeURIComponent(t)}.${yt}`:``}var J=(0,e.createLogger)(`VC`);async function xt(e){try{if(!e)return J.warn(`getVenue called without venueId`),null;let t=await y(`/venues/${e}`);return t.success?t.data??null:(J.error(`Failed to fetch venue: ${t.statusCode}`),null)}catch(e){return J.error(`Error fetching venue:`,e),null}}async function St(e){let t=await xt(e);return t?{serviceFeePercentage:t.serviceFeePercentage??0,serviceFeeCents:t.serviceFeeCents==null?0:t.serviceFeeCents,taxPercentage:t.taxPercentage??0}:null}async function Ct(e){try{if(!e)return J.warn(`getVenueBySlug called without slug`),null;let t=await y(`/venues/slug/${encodeURIComponent(e)}`);return t.success?t.data??null:(J.error(`Failed to fetch venue by slug: ${t.statusCode}`),null)}catch(e){return J.error(`Error fetching venue by slug:`,e),null}}async function wt(e){let t=bt(e);if(!t)return!1;try{let e=await y(`/sites/by-host/${encodeURIComponent(new URL(t).host)}`);return!!(e.success&&e.data)}catch(e){return J.warn(`hasPublishedSite failed:`,e),!1}}function Y(e,t){return e==null||t(e)}function Tt(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.valid===!0&&Number.isInteger(t.appliedAmount)&&typeof t.remainingTotal==`number`&&Number.isFinite(t.remainingTotal)&&Y(t.giftCardCode,e=>typeof e==`string`)&&Y(t.giftCardBalance,e=>typeof e==`number`&&Number.isFinite(e))&&Y(t.fullyCoveredByCard,e=>typeof e==`boolean`)}var Et=`We couldn't apply that gift card. Please try again.`;function Dt(e){if(!Tt(e))return{valid:!1,error:Et};let t=e,r=(0,n.centsToDollars)((0,n.toCents)(t.appliedAmount)),i=t.remainingTotal,a=t.fullyCoveredByCard??i<=0,o=!a;return{valid:!0,giftCardCode:t.giftCardCode??void 0,giftCardAmount:r,giftCardBalance:t.giftCardBalance??void 0,paymentType:a?`gift_card_only`:`split`,stripeAmount:i,orderTotal:r+i,requiresStripe:o}}var X=(0,e.createLogger)(`VC`);async function Ot(e){try{let n=await b(`${_()}/gift-cards/purchase/create`,e);if(!n.success)throw X.error(`Gift card purchase creation failed:`,n.error),new t.ApiError(n.error||`Failed to create gift card purchase`,n.statusCode??0,{endpoint:`${_()}/gift-cards/purchase/create`,method:`POST`});return X.debug(`Gift card purchase created:`,n.data),n.data}catch(e){return X.error(`Gift card purchase creation error:`,e),null}}async function kt(e,t){try{let n=await b(`${_()}/cart/${e}/apply-gift-card`,{giftCardCode:t});if(!n.success)return n.statusCode===429?{valid:!1,error:`Too many attempts. Please wait a moment and try again.`}:(X.error(`Apply gift card failed:`,n.error),{valid:!1,error:n.error||`Invalid gift card code`});let r=Dt(n.data);return r.valid||X.error(`Apply gift card returned an unusable payload:`,n.data),r}catch(e){return X.error(`applyGiftCard error:`,e),{valid:!1,error:`Network error. Please check your connection and try again.`}}}async function At(e,t){try{let n=t?.giftCardId?{giftCardId:t.giftCardId}:t?.code?{giftCardCode:t.code}:null,r=await x(`${_()}/cart/${e}/gift-card`,n?{body:JSON.stringify(n)}:void 0);if(!r.success)return X.error(`Remove gift card failed:`,r.error),{success:!1,error:r.error||`Failed to remove gift card`};let i=r.data??{},a=i.newTotal??i.NewTotal;return{success:!0,...typeof a==`number`?{remainingTotal:a}:{}}}catch(e){return X.error(`removeGiftCard error:`,e),{success:!1,error:`Network error. Please check your connection and try again.`}}}async function jt(e,t,r){let i=M(r);try{let r=await b(`${_()}/cart/${e}/complete-gift-card-payment`,{customerName:(0,n.formatFullName)(t.firstName,t.lastName),customerEmail:t.email,firstName:t.firstName,lastName:t.lastName,email:t.email,phoneNumber:t.phoneNumber||null,questionAnswer:t.questionAnswer||``,mailingList:t.mailingList||!1,attribution:k(),...i?{locale:i}:{}});return r.success?{success:!0,orderId:r.data?.orderId,confirmationNumber:r.data?.confirmationNumber}:(X.error(`Complete gift card payment failed:`,r.error),{success:!1,error:r.error||`Failed to complete payment`})}catch(e){return X.error(`completeGiftCardPayment error:`,e),{success:!1,error:`Network error. Please check your connection and try again.`}}}var Z=(0,e.createLogger)(`VC`);async function Mt(e,t,n=null,r=!1){try{let i={email:t};n&&r&&(i.phone=n,i.smsOptIn=!0);let a=await b(`/events/${e}/waitlist`,i);return a.success?{success:!0,updated:a.data?.updated,position:a.data?.position}:(Z.error(`Join waitlist failed:`,a.error),{success:!1,errorCode:a.error||`join_failed`})}catch(e){return Z.error(`joinWaitlist error:`,e),{success:!1,errorCode:`network_error`}}}async function Nt(e,t){try{let n=await b(`/checkout/validate-token/${e}`,{email:t});return n.success?{valid:!0,eventId:n.data?.eventId??0,expiresAt:n.data?.expiresAt}:{valid:!1,eventId:0,errorCode:n.error}}catch(e){return Z.error(`validateWaitlistToken error:`,e),{valid:!1,eventId:0,errorCode:`invalid_token`}}}async function Pt(e,t){try{let n=await b(`/waitlist/requeue/${e}`,{email:t});return n.success?{success:!0}:{success:!1,errorCode:n.error}}catch(e){return Z.error(`requeueWaitlistToFront error:`,e),{success:!1,errorCode:`internal_error`}}}async function Ft(e){let t={waitlistEnabled:!1,soldOut:!1,gated:!1};try{let n=await y(`/events/${e}/waitlist/status`);return n.success?{waitlistEnabled:!!n.data?.waitlistEnabled,soldOut:!!n.data?.soldOut,gated:!!n.data?.gated}:t}catch(e){return Z.error(`getWaitlistStatus error:`,e),t}}function It(e){let t=String(e%60).padStart(2,`0`);return e>=3600?`${Math.floor(e/3600)}:${String(Math.floor(e%3600/60)).padStart(2,`0`)}:${t}`:`${Math.floor(e/60)}:${t}`}function Lt(e,t,n={}){let{cancelled:a=!1,isRegistration:o=!1,waitlistEnabled:s=!1}=n,c=(0,r.browserNow)();if(a)return{text:`Cancelled`,disabled:!0,reason:`cancelled`};if((e?.status||``).trim().toLowerCase()===`postponed`)return{text:`Postponed`,disabled:!0,reason:`postponed`};let l=(0,r.toInstantOrNull)(e.endDateTime||e.startDateTime);if(l&&(0,r.compareInstants)(l,c)<0)return{text:`Sales ended`,disabled:!0,reason:`event_past`};let u=(e?.salesStatus||``).trim().toLowerCase();if(u===`paused`)return{text:`Sales paused`,disabled:!0,reason:`sales_paused`};if(u===`ended`)return{text:`Sales ended`,disabled:!0,reason:`sales_ended`};let d=e?.hasPurchasableHiddenTickets===!0||Array.isArray(t)&&t.some(i.isHiddenTicketPurchasable),f=()=>d?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:s?{text:`Join Waitlist`,disabled:!1,reason:`sold_out_waitlist`}:{text:`Sold out`,disabled:!0,reason:`sold_out`};if(u===`sold_out`)return f();let p=(t||[]).filter(e=>e.salesChannel!==2&&!e.isHidden&&!(typeof e.visibility==`number`&&e.visibility>=i.TICKET_VISIBILITY.HIDDEN));if(p.length===0)return d?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`No tickets available`,disabled:!0,reason:`no_tickets`};let m=!1,h=!0,g=!0,_=null;for(let e of p){let t=(0,r.toInstantOrNull)(e.salesBegin||e.salesStart||e.saleBegin||e.onSaleStart),n=(0,r.toInstantOrNull)(e.salesEnd||e.saleEnd||e.onSaleEnd),i=e.remainingCapacity??e.quantityRemaining??e.quantity,a=e.soldOut||i!=null&&i<=0,o=t?(0,r.compareInstants)(t,c)>0:!1,s=n?(0,r.compareInstants)(n,c)<0:!1;!a&&!o&&!s&&(m=!0),a||(h=!1),o||(g=!1),o&&t&&!a&&!s&&(!_||(0,r.compareInstants)(t,_)<0)&&(_=t)}return m?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`available`}:g&&_?d?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`On sale ${Rt(_,(0,r.compareInstants)(_,c),[e.timezone,e.timeZone].find(e=>!!e&&(0,r.isValidIANATimezone)(e)))}`,disabled:!0,reason:`coming_soon`}:h?f():d?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`Sales ended`,disabled:!0,reason:`sales_ended`}}function Rt(e,t,n){let i=t/36e5,a=t/864e5;if(n){let t=e.toISOString(),o=(0,r.formatTzAbbreviation)(n,e),s=`${(0,r.formatEventTime)(t,n)} ${o}`;return i<24?s:a<=7?`${(0,r.formatDayOfWeek)(t,n,!0)} ${s}`:`${(0,r.formatEventDate)(t,n,{includeYear:!1})} ${s}`}let o=e=>(0,r.formatLocal)(e,{hour:`numeric`,minute:`2-digit`,hour12:!0},`en-US`);return i<24?o(e):a<=7?(0,r.formatLocal)(e,{weekday:`short`,hour:`numeric`,minute:`2-digit`,hour12:!0},`en-US`):`${(0,r.formatLocal)(e,{month:`short`,day:`numeric`},`en-US`)} ${o(e)}`}function zt(e){let t=e;return{uuid:t.uuid||String(t.id||t.ID||``),id:t.id||t.ID,ticketNumber:t.ticketNumber||t.ticket_number,orderId:t.orderId||t.order_id,attendeeFirstName:t.attendeeFirstName||t.attendee_first_name||t.firstName,attendeeLastName:t.attendeeLastName||t.attendee_last_name||t.lastName,attendeeEmail:t.attendeeEmail||t.attendee_email||t.email,ticketName:t.ticketName||t.ticket_name||t.name||``,ticketTypeId:t.ticketTypeId||t.ticket_type_id,purchasePrice:t.purchasePrice||t.purchase_price||t.price||0,status:t.status,checkedIn:t.checkedIn||t.checked_in,checkedInAt:t.checkedInAt||t.checked_in_at}}function Bt(e){let t=e,n=t.purchasedTickets||t.tickets||t.purchased_tickets||[];return{uuid:t.uuid||String(t.id||t.ID||``),id:t.id||t.ID,customerEmail:t.customerEmail||t.email||t.customer_email||``,customerFirstName:t.customerFirstName||t.firstName||t.first_name,customerLastName:t.customerLastName||t.lastName||t.last_name,status:t.status||`unknown`,totalAmount:t.totalAmount||t.total||t.total_amount||0,subtotal:t.subtotal,serviceFeesAmount:t.serviceFeesAmount||t.serviceFee||t.service_fee||t.service_fees_amount||0,taxAmount:t.taxAmount||t.tax||t.tax_amount||0,discount:t.discount==null?0:t.discount,paymentIntentId:t.paymentIntentId||t.payment_intent_id,paymentMethod:t.paymentMethod||t.payment_method,purchasedTickets:n.map(zt),createdAt:t.createdAt||t.created_at,updatedAt:t.updatedAt||t.updated_at}}var Vt=zt,Ht=Bt;function Ut(e){let t=Bt(e),r=t.uuid.split(`-`)[0]||t.uuid,i=Number(t.totalAmount);return{orderId:t.uuid,displayOrderId:r,email:t.customerEmail,customerName:[t.customerFirstName,t.customerLastName].filter(Boolean).join(` `),total:t.totalAmount,formattedTotal:`${(0,n.formatCurrency)((0,n.asUSD)(Number.isFinite(i)?i/100:0))}`,ticketCount:t.purchasedTickets.length,status:t.status}}function Wt(e){return(0,n.resolveImageUrl)(e,{cdn:!0})}function Q(e){return Wt(e.imageUrl||e.imageURL||e.image_url||e.image||``)}function Gt(e){switch(e){case`available`:case`sold_out`:case`coming_soon`:case`ended`:return e;default:return null}}function Kt(e){let t=e.ctaState||e.cta_state;if(t){let e=Gt(t);if(e)return e}if(e.isCancelled||e.is_cancelled)return`ended`;let n=(0,r.toInstantOrNull)(e.startDateTime||e.start_date_time||e.date);if(n){let e=Date.now();if(n.getTime()<e)return`ended`}let i=e.ticketsAvailable??e.tickets_available;if(i!==void 0)return i<=0?`sold_out`:`available`;let a=e.availableTickets||e.available_tickets||e.tickets||[];return a.length===0?`coming_soon`:a.reduce((e,t)=>{let n=t.quantityAvailable??t.quantity_available??t.quantity??0,r=t.quantitySold??t.quantity_sold??0;return e+Math.max(0,n-r)},0)<=0?`sold_out`:`available`}function qt(e){let t=e;return{id:t.id||t.ID,name:t.name||t.ticketName||``,description:t.description,price:t.price==null?0:t.price,quantity:t.quantity||t.totalQuantity||0,quantitySold:t.quantitySold||t.quantity_sold||0,quantityAvailable:t.quantityAvailable||t.quantity_available||(t.quantity||0)-(t.quantitySold||0),minPerOrder:t.minPerOrder||t.min_per_order||1,maxPerOrder:t.maxPerOrder||t.max_per_order||10,saleStartDate:t.saleStartDate||t.sale_start_date,saleEndDate:t.saleEndDate||t.sale_end_date,isHidden:t.isHidden||t.is_hidden||!1,revealWithPromoCode:t.revealWithPromoCode||t.reveal_with_promo_code,ticketType:t.ticketType||t.ticket_type||0,sectionId:t.sectionId||t.section_id,sortOrder:t.sortOrder||t.sort_order||0}}function $(e){let t=e,n=(t.availableTickets||t.available_tickets||t.tickets||[]).map(qt),r=n.map(e=>e.price).filter(e=>e>0),i=r.length>0?Math.min(...r):void 0,a=r.length>0?Math.max(...r):void 0;return{eventID:t.eventID||t.id||t.ID||0,id:t.id||t.ID,name:t.name||t.title||``,title:t.title||t.name,slug:t.slug,description:t.description,date:t.date||t.startDateTime||t.start_date_time||``,startDateTime:t.startDateTime||t.start_date_time,endDateTime:t.endDateTime||t.end_date_time,doorsOpenTime:t.doorsOpenTime||t.doors_open_time,timezone:t.timezone||t.time_zone,venueId:t.venueId||t.venue_id,venueName:t.venueName||t.venue_name,venueAddress:t.venueAddress||t.venue_address,location:t.location||t.venueAddress||t.venue_address,imageUrl:Q(t),imageURL:Q(t),status:t.status,isPublished:t.isPublished??t.is_published,isCancelled:t.isCancelled??t.is_cancelled,availableTickets:n,ticketsAvailable:t.ticketsAvailable??t.tickets_available??n.reduce((e,t)=>e+(t.quantityAvailable||0),0),ticketsSold:t.ticketsSold??t.tickets_sold,minPrice:t.minPrice??t.min_price??i,maxPrice:t.maxPrice??t.max_price??a,ctaText:t.ctaText||t.cta_text,ctaState:Kt(t),showPerformers:t.showPerformers??t.show_performers,eventSeriesId:t.eventSeriesId||t.event_series_id,seriesInstanceNumber:t.seriesInstanceNumber||t.series_instance_number,timeZone:t.timeZone,salesStatus:t.salesStatus||t.sales_status,eventSummary:t.eventSummary,password:t.password,hasPassword:t.hasPassword,disclaimer:t.disclaimer,ticketType:t.ticketType,eventTicketingType:t.eventTicketingType,ageRestriction:t.ageRestriction,displayAgeRestriction:t.displayAgeRestriction,displayStartTime:t.displayStartTime,displayEndTime:t.displayEndTime,displayDoorsTime:t.displayDoorsTime,displayTicketsLeft:t.displayTicketsLeft,postSalesMessage:t.postSalesMessage,collectionId:t.collectionId||t.collection_id,ticketsRemaining:t.ticketsRemaining,ticketsTotal:t.ticketsTotal,hasHiddenTickets:t.hasHiddenTickets,stage:t.stage,stageName:t.stageName,stageId:t.stageId,eventCategoryTypes:t.eventCategoryTypes,publicPerformers:t.publicPerformers,collectionIds:t.collectionIds,venue:t.venue,performers:t.performers,faqs:t.faqs,showtimes:t.showtimes,purchasedTickets:t.purchasedTickets}}var Jt=qt,Yt=$,Xt=$;function Zt(e){return(0,n.resolveImageUrl)(e,{cdn:!0})}function Qt(e){let t=e,n=t.logoUrl||t.logo_url||t.logo;return{id:t.id||t.ID||0,name:t.name||``,slug:t.slug,address:t.address,googleLocationNameCache:t.googleLocationNameCache||t.google_location_name_cache,city:t.city,state:t.state,zipCode:t.zipCode||t.zip_code,country:t.country,timezone:t.timezone||t.time_zone,logoUrl:Zt(n),serviceFeePercentage:t.serviceFeePercentage??t.service_fee_percentage??0,serviceFeeCents:t.serviceFeeCents??t.service_fee_cents??0,absorbServiceFee:(t.absorbServiceFee??t.absorb_service_fee)===!0,taxPercentage:t.taxPercentage??t.tax_percentage??0,organizationId:t.organizationId||t.organization_id}}var $t=Qt;function en(e){let t=e;return{serviceFeePercentage:t.serviceFeePercentage??t.service_fee_percentage??0,serviceFeeCents:t.serviceFeeCents??t.service_fee_cents??0,taxPercentage:t.taxPercentage??t.tax_percentage??0}}function tn(e){return[e.address,e.city,e.state,e.zipCode].filter(Boolean).join(`, `)}exports.apiDelete=x,exports.apiGet=y,exports.apiPost=b,exports.apiPut=ne,exports.applyGiftCard=kt,exports.applyPromoCode=He,exports.calculateCtaState=Kt,exports.cancelReservation=je,exports.checkCollectionPassword=gt,exports.checkEventPassword=_t,exports.completeGiftCardPayment=jt,exports.completeReservation=Ae,exports.computeCtaState=Lt,exports.configureApi=p,exports.createGiftCardPurchase=Ot,exports.createOrder=Me,exports.createPaymentIntent=De,exports.err=I,exports.errNotFound=L,exports.extendCheckoutSession=Fe,exports.extractVenueFees=en,exports.fetchAllVenues=tt,exports.fetchAllVenuesResult=et,exports.fetchEventDetails=Ye,exports.fetchEventDetailsResult=Je,exports.fetchEventPerformers=$e,exports.fetchEventPerformersResult=Qe,exports.fetchEventTickets=Ze,exports.fetchEventTicketsResult=Xe,exports.fetchPublicCollection=ht,exports.fetchSeriesOccurrences=pt,exports.fetchSeriesOccurrencesResult=ft,exports.fetchVenueEvents=rt,exports.fetchVenueEventsResult=nt,exports.formatVenueAddress=tn,exports.formatWaitlistWindow=It,exports.getApiConfig=m,exports.getCDNImageUrl=Wt,exports.getCartByUUID=Oe,exports.getClientIP=ee,exports.getEventImageUrl=Q,exports.getLegacyPublicUrl=g,exports.getMonthEvents=st,exports.getMonthEventsResult=ot,exports.getOrder=Ne,exports.getOrdersV2Url=_,exports.getOrgMonthEvents=lt,exports.getOrgMonthEventsResult=ct,exports.getPublicBaseUrl=h,exports.getSeriesOccurrences=dt,exports.getSeriesOccurrencesResult=ut,exports.getSessionStatus=Ie,exports.getVenue=xt,exports.getVenueBySlug=Ct,exports.getVenueFees=St,exports.getWaitlistStatus=Ft,exports.hasPromoCodes=Ve,exports.hasPublishedSite=wt,exports.initiateOrder=Le,exports.isErr=Ke,exports.isOk=Ge,exports.joinWaitlist=Mt,exports.ok=F,exports.removeGiftCard=At,exports.removePromoCode=Ue,exports.requeueWaitlistToFront=Pt,exports.resolvePublicEntity=mt,exports.testNetworkConnection=vt,exports.trackUTMSource=Re,exports.transformAvailableTicket=Jt,exports.transformEvent=Yt,exports.transformEventData=Xt,exports.transformOrder=Ht,exports.transformOrderForDisplay=Ut,exports.transformTicket=Vt,exports.transformVenue=$t,exports.unwrapOr=R,exports.updateCartQuantities=ke,exports.validatePaymentIntent=Pe,exports.validatePromoCode=Be,exports.validateWaitlistToken=Nt;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@getmicdrop/svelte-components/utils/logger"),t=require("@getmicdrop/svelte-components/errors"),n=require("@getmicdrop/svelte-components"),r=require("@getmicdrop/svelte-components/datetime"),i=require("@getmicdrop/svelte-components/transforms");require("@getmicdrop/svelte-components/utils/timezones"),require("@getmicdrop/svelte-components/utils/formatters"),(0,e.createLogger)(`VC:config`,{enabled:!0});var a=(0,e.createLogger)(`VC`),o=new Set;function s(e){if(e)for(let t of o)try{t(e)}catch{}}var c=`ABORTED`;function l(e,t){let n=t||void 0;return n?{...e,"X-Widget-Key":n}:e}function u(e,t){let n=`HTTP ${t}`;if(!e||typeof e!=`object`)return{message:n};let r=e,i=r.error&&typeof r.error==`object`?r.error:null,a=typeof r.code==`string`?r.code:typeof i?.code==`string`?i.code:void 0;return{message:typeof r.error==`string`?r.error:typeof i?.message==`string`?i.message:typeof r.message==`string`?r.message:n,code:a}}var d=class extends Error{code;statusCode;constructor(e,t,n){super(e),this.name=`ApiRequestError`,this.code=t,this.statusCode=n}},f={baseUrl:`https://get-micdrop.com`,timeout:3e4,retries:2,retryDelay:500,onError:e=>a.error(`API Error:`,e)};function p(e){f={...f,...e}}function m(){return{...f}}function h(){return`${f.baseUrl}/api/v2/public`}function g(){return`${f.baseUrl}/api/public`}function _(){return`${f.baseUrl}/api/orders/v2/public`}async function ee(){return``}var te=e=>new Promise(t=>setTimeout(t,e));async function v(e,t,n){let r=(t.method||`GET`).toUpperCase(),i=r===`GET`||r===`HEAD`?n.retries+1:1,a;for(let r=1;r<=i;r++){let o=new AbortController,s=setTimeout(()=>o.abort(),n.timeout),c=t.signal,l;c&&(c.aborted?o.abort():(l=()=>o.abort(),c.addEventListener(`abort`,l,{once:!0})));try{let n=await fetch(e,{...t,signal:o.signal});if(n.status>=500&&r<i)a=Error(`HTTP ${n.status}`);else return n}catch(e){if(a=e,c?.aborted)throw e}finally{clearTimeout(s),c&&l&&c.removeEventListener(`abort`,l)}r<i&&await te(n.retryDelay*2**(r-1))}throw a}async function y(e,t){return S(`GET`,e,void 0,t)}async function b(e,t,n){return S(`POST`,e,t,n)}async function ne(e,t,n){return S(`PUT`,e,t,n)}async function x(e,t){return S(`DELETE`,e,void 0,t)}async function S(e,t,n,r){let i=t.startsWith(`http`)||t.startsWith(`/api/`)?t:`${h()}${t}`,{widgetKey:a,suppressOnError:o,headers:p,...m}=r??{},g=e=>{o||f.onError(e)};try{let t=await v(i,{method:e,headers:l({"Content-Type":`application/json`,...p},a),body:n===void 0?void 0:JSON.stringify(n),...m},f);if(!t.ok){let{message:e,code:n}=u(await t.json().catch(()=>({})),t.status);return g(new d(e,n,t.status)),s(n),{success:!1,error:e,errorCode:n,statusCode:t.status}}return{success:!0,data:await t.json(),statusCode:t.status}}catch(e){if(r?.signal?.aborted)return{success:!1,error:`Request aborted`,errorCode:c,aborted:!0};let t=e instanceof Error?e.name===`AbortError`?`Request timed out`:e.message:`Unknown error`;return g(e instanceof Error?e:Error(t)),{success:!1,error:t}}}async function C(e,t){try{let n=e.startsWith(f.baseUrl),{widgetKey:r,...i}=t??{},o=await v(e,{...i,...n?{headers:l(i.headers,r)}:{}},f);if(!o.ok){let e=await o.json().catch(()=>({}));return a.error(`API request failed: ${o.status}`,e),null}return o.json()}catch(e){return a.error(`API request error:`,e),null}}function re(e){let t=e??{};return{ticketID:Number(t.TicketID??t.ticketID??0),quantity:Number(t.Quantity??t.quantity??0),priceAtReservation:Number(t.PriceAtReservation??t.priceAtReservation??0),status:String(t.Status??t.status??``)}}function ie(e){let t=e??{},r=t.Amount??t.amount,i=Number(r);return{giftCardId:Number(t.GiftCardID??t.giftCardId??0),maskedCode:String(t.MaskedCode??t.maskedCode??``),amount:r==null||!Number.isFinite(i)?null:(0,n.centsToDollars)((0,n.toCents)(i))}}function ae(e){let t=e??{};return{uuid:t.UUID??t.uuid??``,eventID:Number(t.EventID??t.eventID??0),status:t.Status??t.status??``,expiresAt:t.ExpiresAt??t.expiresAt??``,reservations:(t.Reservations??t.reservations??[]).map(re),giftCards:(t.GiftCards??t.giftCards??[]).map(ie)}}var w=[`utmSource`,`utmMedium`,`utmCampaign`,`utmContent`,`utmTerm`],oe={utmSource:`utm_source`,utmMedium:`utm_medium`,utmCampaign:`utm_campaign`,utmContent:`utm_content`,utmTerm:`utm_term`},se=`direct`;function ce(e){return e?e.trim().toLowerCase().replace(/\s+/g,`_`):``}function le(e){let t={};for(let n of w)t[n]=ce(e[n]);return t.utmSource||=se,t}function ue(e){let t={};for(let n of w)t[n]=e.get(oe[n]);return le(t)}var T={search:null,referrer:null,pageUrl:null};function de(){if(typeof window>`u`)return!0;try{return window.self===window.top}catch{return!1}}function fe(){let e=typeof window<`u`,t=de(),n=T.search??(e?window.location.search:``),r=T.referrer??(typeof document<`u`?document.referrer:``)??``,i=T.pageUrl??(e&&t?window.location.href:``);return{utm:ue(new URLSearchParams(n)),referrer:r||``,pageUrl:i||``}}var pe=null,me=!1;function he(){return typeof window<`u`&&typeof window.__tcfapi==`function`}function ge(){return typeof navigator<`u`&&navigator.globalPrivacyControl===!0}function _e(){return pe===null?he()||ge():pe}function ve(){return!_e()||me}var ye=`micdrop_session_id`,E=`micdrop_visitor_id`,be=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function D(e){return typeof e==`string`&&be.test(e)}function O(){let e=typeof crypto<`u`?crypto:void 0;if(e?.randomUUID)return e.randomUUID();let t=new Uint8Array(16);if(e?.getRandomValues)e.getRandomValues(t);else for(let e=0;e<16;e++)t[e]=Math.floor(Math.random()*256);t[6]=t[6]&15|64,t[8]=t[8]&63|128;let n=[];for(let e=0;e<16;e++)n.push(t[e].toString(16).padStart(2,`0`));return`${n[0]}${n[1]}${n[2]}${n[3]}-${n[4]}${n[5]}-${n[6]}${n[7]}-${n[8]}${n[9]}-${n[10]}${n[11]}${n[12]}${n[13]}${n[14]}${n[15]}`}function xe(){let e=(0,n.getSessionStorage)(ye);return e||(e=O(),(0,n.setSessionStorage)(ye,e)),e}function Se(e){let t=(0,n.getLocalStorage)(E);if(D(t))return{id:t,createdAt:e,migrated:!0};if(t&&typeof t==`object`){let{id:n,createdAt:r}=t;if(!D(n))return null;let i=typeof r==`number`&&Number.isFinite(r),a=i?Math.min(r,e):e;return{id:n,createdAt:a,migrated:!i||a!==r}}return null}function Ce(){if(!ve())return null;let e=Date.now(),t=Se(e);if(t&&e-t.createdAt<34128e6){if(t.migrated){let e={id:t.id,createdAt:t.createdAt};(0,n.setLocalStorage)(E,e)}return t.id}let r=O();return(0,n.setLocalStorage)(E,{id:r,createdAt:e}),r}var we=`micdrop_attribution`;function Te(){let e=(0,n.getSessionStorage)(we);return!e||!e.utm||typeof e.utm.utmSource!=`string`?null:e}function k(){let e=Te()??fe();return{sessionId:xe(),visitorId:Ce(),utmSource:e.utm.utmSource,utmMedium:e.utm.utmMedium,utmCampaign:e.utm.utmCampaign,utmContent:e.utm.utmContent,utmTerm:e.utm.utmTerm,referrer:e.referrer||``}}(0,n.createLogger)(`tracking`),$state(0);function Ee(){return typeof navigator>`u`?null:navigator.language||navigator.userLanguage||null}var A=[[`es`,`es`,`es`],[`fr`,`fr`,`fr`],[`pt-br`,`pt-br`,`pt_br`],[`pt`,`pt-br`,`pt_br`],[`de`,`de`,`de`],[`ja`,`ja`,`ja`],[`zh`,`zh`,`zh`],[`ko`,`ko`,`ko`],[`it`,`it`,`it`],[`nl`,`nl`,`nl`],[`tr`,`tr`,`tr`],[`id`,`id`,`id`],[`pl`,`pl`,`pl`]];Array.from(new Set(A.map(([,e])=>e)));var j=new Map([[`en`,`en`],...A.map(([e])=>[e,e===`pt`||e===`pt-br`?`pt-BR`:e])]);function M(e){let t=e||Ee();if(!t||typeof t!=`string`)return;let n=t.toLowerCase();return j.get(n)??j.get(n.split(`-`)[0])}var N=(0,e.createLogger)(`VC`);async function De(e,n,r,i,a){let o=M(a);try{let a=await b(`${_()}/cart/${e}/payment-intent`,{productQuantities:n,...r&&Object.keys(r).length>0?{donationAmounts:r}:{},...i?{firstName:i.firstName,lastName:i.lastName,email:i.email,phone:i.phone??``,questionAnswer:i.questionAnswer??``,mailingList:i.mailingList??!1}:{},attribution:k(),...o?{locale:o}:{}});if(!a.success)throw N.error(`Payment intent creation failed:`,a.error),new t.ApiError(a.error||`Failed to create payment intent`,a.statusCode??0,{endpoint:`${_()}/cart/${e}/payment-intent`,method:`POST`});return N.debug(`Payment intent created:`,a.data),a.data}catch(e){return N.error(`createPaymentIntent error:`,e),null}}async function Oe(e,t){if(!e)return null;try{let n=await y(`${_()}/cart/${e}`);if(!n.success)return null;let{uuid:r,eventID:i,status:a,expiresAt:o,reservations:s,giftCards:c}=ae(n.data);return a!==`reserved`&&a!==`active`||t!==void 0&&i!==Number(t)?null:{uuid:r,eventID:i,status:a,expiresAt:o,reservations:s,giftCards:c}}catch(e){return N.error(`getCartByUUID error:`,e),null}}async function ke(e,t,n){try{let r={};for(let[e,n]of Object.entries(t)){let t=typeof e==`number`?e:parseInt(e,10);!Number.isNaN(t)&&n>0&&(r[t]=n)}let i={};if(n)for(let[e,t]of Object.entries(n)){let n=typeof e==`number`?e:parseInt(e,10);!Number.isNaN(n)&&t>0&&(i[n]=t)}let a=await fetch(`${_()}/cart/${e}`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({quantities:r,...Object.keys(i).length>0?{donationAmounts:i}:{}})});if(!a.ok){let e=await a.json().catch(()=>({}));return N.error(`Cart update failed:`,e),!1}return!0}catch(e){return N.error(`updateCartQuantities error:`,e),!1}}async function Ae(e){try{let t=await b(`${h()}/orders/complete/${e}`);return t.success?{success:!0,message:t.data?.message}:{success:!1,error:t.error||`Failed to complete reservation`}}catch(e){return N.error(`Error completing reservation:`,e),{success:!1,error:`Network error completing reservation`}}}async function je(e){try{let t=await b(`${h()}/orders/cancel/${e}`);return t.success?{success:!0,message:t.data?.message}:{success:!1,error:t.error||`Failed to cancel reservation`}}catch(e){return N.error(`Error cancelling reservation:`,e),{success:!1,error:`Network error cancelling reservation`}}}async function Me(e,t){try{let n=await b(`${h()}/orders/create`,{eventID:e,promoCode:t,attribution:k()});return n.success?n.data:(N.error(`Create order failed:`,n.error),null)}catch(e){return N.error(`createOrder error:`,e),null}}async function Ne(e){return C(`${h()}/orders/${e}`)}async function Pe(e,t,n){let r=M(n);try{let n=await b(`${_()}/validatePaymentIntent/${e}`,{...t,attribution:k(),...r?{locale:r}:{}});if(!n.success)return N.error(`Payment validation failed:`,n.error),{success:!1,status:`failed`,error:n.error||`Payment validation failed`};let i=n.data;return i.eventCanceled||i.eventPostponed?{success:!1,status:`failed`,eventCanceled:i.eventCanceled,eventPostponed:i.eventPostponed}:{success:!0,status:i.status||`Payment succeeded`,orderUUID:i.orderUUID||i.uuid}}catch(e){return N.error(`validatePaymentIntent error:`,e),null}}async function Fe(e){try{let t=await b(`${h()}/orders/extend-session`,{orderUuid:e});if(!t.success)return{success:!1,error:t.error||`Failed to extend session`,statusCode:t.statusCode};let n=t.data;return{success:!0,newExpiryTime:n.newExpiryTime,remainingExtensions:n.remainingExtensions}}catch(e){return N.error(`Error extending checkout session:`,e),{success:!1,error:`Network error extending session`}}}async function Ie(e){try{let t=await y(`${h()}/orders/session/${e}`);if(!t.success)return{error:t.error||`No active session found`,notFound:t.statusCode===404};let n=t.data;return{expiresAt:n.expiresAt,extensionCount:n.extensionCount,remainingExtensions:n.remainingExtensions,canExtend:n.canExtend,reservationCount:n.reservationCount,eventStatus:n.eventStatus}}catch(e){return N.error(`Error getting session status:`,e),{error:`Network error getting session status`}}}async function Le(e={eventID:``}){try{let t=await b(`${h()}/orders/create`,{...e,attribution:k()});return t.success?t.data?.uuid??null:(N.error(`Order initiation failed:`,t.error),null)}catch(e){return N.error(`initiateOrder error:`,e),null}}async function Re(e){if(typeof window>`u`)return;let t=ce(new URLSearchParams(window.location.search).get(`utm_source`))||`direct`;try{await fetch(`${h()}/utm/${e}/${encodeURIComponent(t)}`)}catch(e){N.error(`UTM tracking failed:`,e)}}var P=(0,e.createLogger)(`VC`);function ze(e,t){if(e===404)return`Promo code isn't valid.`;let n=(t??``).toLowerCase();return e===400?n.includes(`not yet active`)?`Promo code doesn't apply.`:n.includes(`expired`)?`Promo code expired.`:n.includes(`limit`)?`Promo code has reached its limit.`:`Promo code isn't valid.`:`Failed to validate code`}async function Be(e,t){try{if(!t||!t.trim())return{valid:!1,error:`Promo code is required`};let n=await y(`/promo-codes/validate/${e}/${encodeURIComponent(t.trim())}`);if(!n.success)return{valid:!1,error:ze(n.statusCode,n.error)};let r=n.data;return{valid:r.valid??!0,revealHiddenTickets:r.revealHiddenTickets,revealTicketIds:r.revealTicketIds,provideDiscount:r.provideDiscount,discountType:r.discountType,amount:r.discount??r.amount,code:r.name||r.code||t,appliesToAllTickets:r.appliesToAllTickets,applyToTicketIds:r.applyToTicketIds}}catch(e){return P.error(`Error validating promo code:`,e),{valid:!1,error:`Network error validating code`}}}async function Ve(e){try{let t=await y(`/promo-codes/check/${e}`);return!t.success||t.data.hasPromoCodes===!0}catch(e){return P.error(`Error checking promo codes availability:`,e),!0}}async function He(e,t,n){try{let r={promoCode:t};n&&Object.keys(n).length>0&&(r.productQuantities=n);let i=await b(`${_()}/cart/${e}/apply-promo`,r);return i.success?{success:!0}:{success:!1,error:i.error||`Failed to apply promo code`}}catch(e){return P.error(`Error applying promo code:`,e),{success:!1,error:`Network error applying code`}}}async function Ue(e){try{let t=await b(`/orders/${e}/remove-promo`);return t.success?{success:!0}:{success:!1,error:t.error||`Failed to remove promo code`}}catch(e){return P.error(`Error removing promo code:`,e),{success:!1,error:`Network error removing code`}}}function We(e){let t=e??{};return{performers:Array.isArray(t.performers)?t.performers:[],showPerformers:t.showPerformers===!0}}function F(e){return{ok:!0,data:e}}function I(e){return{ok:!1,error:e}}function L(e){return{ok:!1,error:e,notFound:!0}}function Ge(e){return e.ok}function Ke(e){return!e.ok}function R(e,t){return e.ok?e.data:t}var z=`/api/v2/public`,B=`/api/orders/v2/public`,V=`/api/orders/v2`,qe=`00000000-0000-0000-0000-000000000000`,H=qe;`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}${H}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}`,`${z}${H}`,`${B}`,`${B}`,`${B}`,`${B}${H}`,`${B}`,`${B}${H}`,`${B}`,`${B}${H}`,`${B}`,`${B}${H}`,`${B}`,`${B}${H}`,`${B}`,`${B}${H}`,`${B}`,`${B}${H}`,`${B}`,`${B}${H}`,`${V}`,`${V}`,`${B}`,`${B}`,`${B}`,`${B}`,`${z}`,`${z}${H}`,`${z}`,`${z}`;var U=(0,e.createLogger)(`VC`),W=new Map;async function Je(e,t=fetch,n){let r=n?`${e}:pw`:String(e);if(t===fetch){let e=W.get(r);if(e)return e}let i=(async()=>{try{let r=await t(n?`${h()}/events/${e}?password=${encodeURIComponent(n)}`:`${h()}/events/${e}`);if(!r.ok)return r.status===404?L(`event_not_found`):(U.error(`Failed to fetch event details: ${r.status}`),I(`event_fetch_failed`));let i=await r.json();return i?F(i):L(`event_not_found`)}catch(e){return U.error(`Error fetching event details:`,e),I(`event_fetch_failed`)}})();return t===fetch&&(W.set(r,i),i.finally(()=>{W.get(r)===i&&W.delete(r)})),i}async function Ye(e,t=fetch,n){let r=await Je(e,t,n);return r.ok?r.data:null}async function G(e,t,n=e=>e){try{let r=await C(e);return r?F(n(r)):(U.error(`Failed to load (${t}): network or server error`),I(t))}catch(e){return U.error(`Error loading (${t}):`,e),I(t)}}function K(e){return Array.isArray(e)?e:[]}async function Xe(e,t){let n=t?.trim(),r=n?`?promoCode=${encodeURIComponent(n)}`:``;return G(`${h()}/tickets/event/${e}${r}`,`tickets_fetch_failed`,K)}async function Ze(e,t){return R(await Xe(e,t),[])}async function Qe(e){return e?G(`${h()}/events/${e}/performers`,`performers_fetch_failed`,e=>We(e)):(U.warn(`fetchEventPerformers called without eventId`),I(`performers_missing_event_id`))}async function $e(e){return R(await Qe(e),{performers:[],showPerformers:!1})}async function et(e){return e?G(`${h()}/venues/organization/${e}`,`venues_fetch_failed`,K):(U.warn(`fetchAllVenues called without orgId`),I(`venues_missing_org_id`))}async function tt(e){return R(await et(e),[])}async function nt(e){return e?G(`${h()}/events/venue/${e}`,`venue_events_fetch_failed`,K):(U.warn(`fetchVenueEvents called without venueId`),I(`venue_events_missing_venue_id`))}async function rt(e){return R(await nt(e),[])}function it(e){return Array.isArray(e)?e:Array.isArray(e.events)?e.events:[]}var q=new Map;function at(e,t,n){if(!n?.fresh){let t=q.get(e);if(t)return t}let r=G(e,t,e=>it(e));return q.set(e,r),r.finally(()=>{q.get(e)===r&&q.delete(e)}),r}async function ot(e,t,n,r){return at(`${h()}/events/venue/${e}/month/${t}/${n}`,`month_events_fetch_failed`,r)}async function st(e,t,n){return R(await ot(e,t,n),[])}async function ct(e,t,n,r){return at(`${h()}/events/organization/${e}/month/${t}/${n}`,`org_month_events_fetch_failed`,r)}async function lt(e,t,n){return R(await ct(e,t,n),[])}async function ut(e){return G(`${h()}/series/${e}/occurrences`,`series_occurrences_fetch_failed`)}async function dt(e){let t=await ut(e);return t.ok?t.data:null}async function ft(e,t){return G(`${h()}/series/${e}/occurrences?venueId=${t}`,`series_cta_fetch_failed`)}async function pt(e,t){let n=await ft(e,t);return n.ok?n.data:null}async function mt(e,n){try{let r=n?`?slug=${encodeURIComponent(n)}`:``,i=await C(`${h()}/resolve/${encodeURIComponent(String(e))}${r}`);if(!i||!i.type)throw new t.NotFoundError(`entity`,String(e));return i}catch(e){return U.error(`Error resolving public entity:`,e),null}}async function ht(e,n){try{let r=await C(n?`${h()}/collections/${e}?password=${encodeURIComponent(n)}`:`${h()}/collections/${e}`);if(!r)throw new t.NotFoundError(`collection`,String(e));return r}catch(e){return U.error(`Error fetching collection:`,e),null}}async function gt(e,t){try{return(await C(`${h()}/collections/${e}/check-password`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({password:t})}))?.valid===!0}catch(e){return U.error(`Error checking collection password:`,e),!1}}async function _t(e,t){try{let n=await C(`${h()}/events/${e}/check-password`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({password:t})});return typeof n==`boolean`?{valid:n}:{valid:n?.valid===!0}}catch(e){return U.error(`Error checking event password:`,e),{valid:!1}}}async function vt(e,t){try{let n=t?`${h()}/events/venue/${t}`:e?`${h()}/venues/organization/${e}`:`${h()}/venues/${qe}`;return(await fetch(n,{method:`HEAD`})).status<500}catch(e){return U.error(`Network connection test failed:`,e),!1}}var yt=`get-micdrop.com`;function bt(e){let t=typeof e==`string`?e.trim():``;return t?`https://${encodeURIComponent(t)}.${yt}`:``}var J=(0,e.createLogger)(`VC`);async function xt(e){try{if(!e)return J.warn(`getVenue called without venueId`),null;let t=await y(`/venues/${e}`);return t.success?t.data??null:(J.error(`Failed to fetch venue: ${t.statusCode}`),null)}catch(e){return J.error(`Error fetching venue:`,e),null}}async function St(e){let t=await xt(e);return t?{serviceFeePercentage:t.serviceFeePercentage??0,serviceFeeCents:t.serviceFeeCents==null?0:t.serviceFeeCents,taxPercentage:t.taxPercentage??0}:null}async function Ct(e){try{if(!e)return J.warn(`getVenueBySlug called without slug`),null;let t=await y(`/venues/slug/${encodeURIComponent(e)}`);return t.success?t.data??null:(J.error(`Failed to fetch venue by slug: ${t.statusCode}`),null)}catch(e){return J.error(`Error fetching venue by slug:`,e),null}}async function wt(e){let t=bt(e);if(!t)return!1;try{let e=await y(`/sites/by-host/${encodeURIComponent(new URL(t).host)}`);return!!(e.success&&e.data)}catch(e){return J.warn(`hasPublishedSite failed:`,e),!1}}function Y(e,t){return e==null||t(e)}function Tt(e){if(typeof e!=`object`||!e)return!1;let t=e;return t.valid===!0&&Number.isInteger(t.appliedAmount)&&typeof t.remainingTotal==`number`&&Number.isFinite(t.remainingTotal)&&Y(t.giftCardCode,e=>typeof e==`string`)&&Y(t.giftCardBalance,e=>typeof e==`number`&&Number.isFinite(e))&&Y(t.fullyCoveredByCard,e=>typeof e==`boolean`)}var Et=`We couldn't apply that gift card. Please try again.`;function Dt(e){if(!Tt(e))return{valid:!1,error:Et};let t=e,r=(0,n.centsToDollars)((0,n.toCents)(t.appliedAmount)),i=t.remainingTotal,a=t.fullyCoveredByCard??i<=0,o=!a;return{valid:!0,giftCardCode:t.giftCardCode??void 0,giftCardAmount:r,giftCardBalance:t.giftCardBalance??void 0,paymentType:a?`gift_card_only`:`split`,stripeAmount:i,orderTotal:r+i,requiresStripe:o}}var X=(0,e.createLogger)(`VC`);async function Ot(e){try{let n=await b(`${_()}/gift-cards/purchase/create`,e);if(!n.success)throw X.error(`Gift card purchase creation failed:`,n.error),new t.ApiError(n.error||`Failed to create gift card purchase`,n.statusCode??0,{endpoint:`${_()}/gift-cards/purchase/create`,method:`POST`});return X.debug(`Gift card purchase created:`,n.data),n.data}catch(e){return X.error(`Gift card purchase creation error:`,e),null}}async function kt(e,t){try{let n=await b(`${_()}/cart/${e}/apply-gift-card`,{giftCardCode:t});if(!n.success)return n.statusCode===429?{valid:!1,error:`Too many attempts. Please wait a moment and try again.`}:(X.error(`Apply gift card failed:`,n.error),{valid:!1,error:n.error||`Invalid gift card code`});let r=Dt(n.data);return r.valid||X.error(`Apply gift card returned an unusable payload:`,n.data),r}catch(e){return X.error(`applyGiftCard error:`,e),{valid:!1,error:`Network error. Please check your connection and try again.`}}}async function At(e,t){try{let n=t?.giftCardId?{giftCardId:t.giftCardId}:t?.code?{giftCardCode:t.code}:null,r=await x(`${_()}/cart/${e}/gift-card`,n?{body:JSON.stringify(n)}:void 0);if(!r.success)return X.error(`Remove gift card failed:`,r.error),{success:!1,error:r.error||`Failed to remove gift card`};let i=r.data??{},a=i.newTotal??i.NewTotal;return{success:!0,...typeof a==`number`?{remainingTotal:a}:{}}}catch(e){return X.error(`removeGiftCard error:`,e),{success:!1,error:`Network error. Please check your connection and try again.`}}}async function jt(e,t,r){let i=M(r);try{let r=await b(`${_()}/cart/${e}/complete-gift-card-payment`,{customerName:(0,n.formatFullName)(t.firstName,t.lastName),customerEmail:t.email,firstName:t.firstName,lastName:t.lastName,email:t.email,phoneNumber:t.phoneNumber||null,questionAnswer:t.questionAnswer||``,mailingList:t.mailingList||!1,attribution:k(),...i?{locale:i}:{}});return r.success?{success:!0,orderId:r.data?.orderId,confirmationNumber:r.data?.confirmationNumber}:(X.error(`Complete gift card payment failed:`,r.error),{success:!1,error:r.error||`Failed to complete payment`})}catch(e){return X.error(`completeGiftCardPayment error:`,e),{success:!1,error:`Network error. Please check your connection and try again.`}}}var Z=(0,e.createLogger)(`VC`);async function Mt(e,t,n=null,r=!1){try{let i={email:t};n&&r&&(i.phone=n,i.smsOptIn=!0);let a=await b(`/events/${e}/waitlist`,i);return a.success?{success:!0,updated:a.data?.updated,position:a.data?.position}:(Z.error(`Join waitlist failed:`,a.error),{success:!1,errorCode:a.error||`join_failed`})}catch(e){return Z.error(`joinWaitlist error:`,e),{success:!1,errorCode:`network_error`}}}async function Nt(e,t){try{let n=await b(`/checkout/validate-token/${e}`,{email:t});return n.success?{valid:!0,eventId:n.data?.eventId??0,expiresAt:n.data?.expiresAt}:{valid:!1,eventId:0,errorCode:n.error}}catch(e){return Z.error(`validateWaitlistToken error:`,e),{valid:!1,eventId:0,errorCode:`invalid_token`}}}async function Pt(e,t){try{let n=await b(`/waitlist/requeue/${e}`,{email:t});return n.success?{success:!0}:{success:!1,errorCode:n.error}}catch(e){return Z.error(`requeueWaitlistToFront error:`,e),{success:!1,errorCode:`internal_error`}}}async function Ft(e){let t={waitlistEnabled:!1,soldOut:!1,gated:!1};try{let n=await y(`/events/${e}/waitlist/status`);return n.success?{waitlistEnabled:!!n.data?.waitlistEnabled,soldOut:!!n.data?.soldOut,gated:!!n.data?.gated}:t}catch(e){return Z.error(`getWaitlistStatus error:`,e),t}}function It(e){let t=String(e%60).padStart(2,`0`);return e>=3600?`${Math.floor(e/3600)}:${String(Math.floor(e%3600/60)).padStart(2,`0`)}:${t}`:`${Math.floor(e/60)}:${t}`}function Lt(e,t,n={}){let{cancelled:a=!1,isRegistration:o=!1,waitlistEnabled:s=!1}=n,c=(0,r.browserNow)();if(a)return{text:`Canceled`,disabled:!0,reason:`cancelled`};if((e?.status||``).trim().toLowerCase()===`postponed`)return{text:`Postponed`,disabled:!0,reason:`postponed`};let l=(0,r.toInstantOrNull)(e.endDateTime||e.startDateTime);if(l&&(0,r.compareInstants)(l,c)<0)return{text:`Sales ended`,disabled:!0,reason:`event_past`};let u=(e?.salesStatus||``).trim().toLowerCase();if(u===`paused`)return{text:`Sales paused`,disabled:!0,reason:`sales_paused`};if(u===`ended`)return{text:`Sales ended`,disabled:!0,reason:`sales_ended`};let d=e?.hasPurchasableHiddenTickets===!0||Array.isArray(t)&&t.some(i.isHiddenTicketPurchasable),f=()=>d?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:s?{text:`Join Waitlist`,disabled:!1,reason:`sold_out_waitlist`}:{text:`Sold out`,disabled:!0,reason:`sold_out`};if(u===`sold_out`)return f();let p=(t||[]).filter(e=>e.salesChannel!==2&&!e.isHidden&&!(typeof e.visibility==`number`&&e.visibility>=i.TICKET_VISIBILITY.HIDDEN));if(p.length===0)return d?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`No tickets available`,disabled:!0,reason:`no_tickets`};let m=!1,h=!0,g=!0,_=null;for(let e of p){let t=(0,r.toInstantOrNull)(e.salesBegin||e.salesStart||e.saleBegin||e.onSaleStart),n=(0,r.toInstantOrNull)(e.salesEnd||e.saleEnd||e.onSaleEnd),i=e.remainingCapacity??e.quantityRemaining??e.quantity,a=e.soldOut||i!=null&&i<=0,o=t?(0,r.compareInstants)(t,c)>0:!1,s=n?(0,r.compareInstants)(n,c)<0:!1;!a&&!o&&!s&&(m=!0),a||(h=!1),o||(g=!1),o&&t&&!a&&!s&&(!_||(0,r.compareInstants)(t,_)<0)&&(_=t)}return m?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`available`}:g&&_?d?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`On sale ${Rt(_,(0,r.compareInstants)(_,c),[e.timezone,e.timeZone].find(e=>!!e&&(0,r.isValidIANATimezone)(e)))}`,disabled:!0,reason:`coming_soon`}:h?f():d?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`Sales ended`,disabled:!0,reason:`sales_ended`}}function Rt(e,t,n){let i=t/36e5,a=t/864e5;if(n){let t=e.toISOString(),o=(0,r.formatTzAbbreviation)(n,e),s=`${(0,r.formatEventTime)(t,n)} ${o}`;return i<24?s:a<=7?`${(0,r.formatDayOfWeek)(t,n,!0)} ${s}`:`${(0,r.formatEventDate)(t,n,{includeYear:!1})} ${s}`}let o=e=>(0,r.formatLocal)(e,{hour:`numeric`,minute:`2-digit`,hour12:!0},`en-US`);return i<24?o(e):a<=7?(0,r.formatLocal)(e,{weekday:`short`,hour:`numeric`,minute:`2-digit`,hour12:!0},`en-US`):`${(0,r.formatLocal)(e,{month:`short`,day:`numeric`},`en-US`)} ${o(e)}`}function zt(e){let t=e;return{uuid:t.uuid||String(t.id||t.ID||``),id:t.id||t.ID,ticketNumber:t.ticketNumber||t.ticket_number,orderId:t.orderId||t.order_id,attendeeFirstName:t.attendeeFirstName||t.attendee_first_name||t.firstName,attendeeLastName:t.attendeeLastName||t.attendee_last_name||t.lastName,attendeeEmail:t.attendeeEmail||t.attendee_email||t.email,ticketName:t.ticketName||t.ticket_name||t.name||``,ticketTypeId:t.ticketTypeId||t.ticket_type_id,purchasePrice:t.purchasePrice||t.purchase_price||t.price||0,status:t.status,checkedIn:t.checkedIn||t.checked_in,checkedInAt:t.checkedInAt||t.checked_in_at}}function Bt(e){let t=e,n=t.purchasedTickets||t.tickets||t.purchased_tickets||[];return{uuid:t.uuid||String(t.id||t.ID||``),id:t.id||t.ID,customerEmail:t.customerEmail||t.email||t.customer_email||``,customerFirstName:t.customerFirstName||t.firstName||t.first_name,customerLastName:t.customerLastName||t.lastName||t.last_name,status:t.status||`unknown`,totalAmount:t.totalAmount||t.total||t.total_amount||0,subtotal:t.subtotal,serviceFeesAmount:t.serviceFeesAmount||t.serviceFee||t.service_fee||t.service_fees_amount||0,taxAmount:t.taxAmount||t.tax||t.tax_amount||0,discount:t.discount==null?0:t.discount,paymentIntentId:t.paymentIntentId||t.payment_intent_id,paymentMethod:t.paymentMethod||t.payment_method,purchasedTickets:n.map(zt),createdAt:t.createdAt||t.created_at,updatedAt:t.updatedAt||t.updated_at}}var Vt=zt,Ht=Bt;function Ut(e){let t=Bt(e),r=t.uuid.split(`-`)[0]||t.uuid,i=Number(t.totalAmount);return{orderId:t.uuid,displayOrderId:r,email:t.customerEmail,customerName:[t.customerFirstName,t.customerLastName].filter(Boolean).join(` `),total:t.totalAmount,formattedTotal:`${(0,n.formatCurrency)((0,n.asUSD)(Number.isFinite(i)?i/100:0))}`,ticketCount:t.purchasedTickets.length,status:t.status}}function Wt(e){return(0,n.resolveImageUrl)(e,{cdn:!0})}function Q(e){return Wt(e.imageUrl||e.imageURL||e.image_url||e.image||``)}function Gt(e){switch(e){case`available`:case`sold_out`:case`coming_soon`:case`ended`:return e;default:return null}}function Kt(e){let t=e.ctaState||e.cta_state;if(t){let e=Gt(t);if(e)return e}if(e.isCancelled||e.is_cancelled)return`ended`;let n=(0,r.toInstantOrNull)(e.startDateTime||e.start_date_time||e.date);if(n){let e=Date.now();if(n.getTime()<e)return`ended`}let i=e.ticketsAvailable??e.tickets_available;if(i!==void 0)return i<=0?`sold_out`:`available`;let a=e.availableTickets||e.available_tickets||e.tickets||[];return a.length===0?`coming_soon`:a.reduce((e,t)=>{let n=t.quantityAvailable??t.quantity_available??t.quantity??0,r=t.quantitySold??t.quantity_sold??0;return e+Math.max(0,n-r)},0)<=0?`sold_out`:`available`}function qt(e){let t=e;return{id:t.id||t.ID,name:t.name||t.ticketName||``,description:t.description,price:t.price==null?0:t.price,quantity:t.quantity||t.totalQuantity||0,quantitySold:t.quantitySold||t.quantity_sold||0,quantityAvailable:t.quantityAvailable||t.quantity_available||(t.quantity||0)-(t.quantitySold||0),minPerOrder:t.minPerOrder||t.min_per_order||1,maxPerOrder:t.maxPerOrder||t.max_per_order||10,saleStartDate:t.saleStartDate||t.sale_start_date,saleEndDate:t.saleEndDate||t.sale_end_date,isHidden:t.isHidden||t.is_hidden||!1,revealWithPromoCode:t.revealWithPromoCode||t.reveal_with_promo_code,ticketType:t.ticketType||t.ticket_type||0,sectionId:t.sectionId||t.section_id,sortOrder:t.sortOrder||t.sort_order||0}}function $(e){let t=e,n=(t.availableTickets||t.available_tickets||t.tickets||[]).map(qt),r=n.map(e=>e.price).filter(e=>e>0),i=r.length>0?Math.min(...r):void 0,a=r.length>0?Math.max(...r):void 0;return{eventID:t.eventID||t.id||t.ID||0,id:t.id||t.ID,name:t.name||t.title||``,title:t.title||t.name,slug:t.slug,description:t.description,date:t.date||t.startDateTime||t.start_date_time||``,startDateTime:t.startDateTime||t.start_date_time,endDateTime:t.endDateTime||t.end_date_time,doorsOpenTime:t.doorsOpenTime||t.doors_open_time,timezone:t.timezone||t.time_zone,venueId:t.venueId||t.venue_id,venueName:t.venueName||t.venue_name,venueAddress:t.venueAddress||t.venue_address,location:t.location||t.venueAddress||t.venue_address,imageUrl:Q(t),imageURL:Q(t),status:t.status,isPublished:t.isPublished??t.is_published,isCancelled:t.isCancelled??t.is_cancelled,availableTickets:n,ticketsAvailable:t.ticketsAvailable??t.tickets_available??n.reduce((e,t)=>e+(t.quantityAvailable||0),0),ticketsSold:t.ticketsSold??t.tickets_sold,minPrice:t.minPrice??t.min_price??i,maxPrice:t.maxPrice??t.max_price??a,ctaText:t.ctaText||t.cta_text,ctaState:Kt(t),showPerformers:t.showPerformers??t.show_performers,eventSeriesId:t.eventSeriesId||t.event_series_id,seriesInstanceNumber:t.seriesInstanceNumber||t.series_instance_number,timeZone:t.timeZone,salesStatus:t.salesStatus||t.sales_status,eventSummary:t.eventSummary,password:t.password,hasPassword:t.hasPassword,disclaimer:t.disclaimer,ticketType:t.ticketType,eventTicketingType:t.eventTicketingType,ageRestriction:t.ageRestriction,displayAgeRestriction:t.displayAgeRestriction,displayStartTime:t.displayStartTime,displayEndTime:t.displayEndTime,displayDoorsTime:t.displayDoorsTime,displayTicketsLeft:t.displayTicketsLeft,postSalesMessage:t.postSalesMessage,collectionId:t.collectionId||t.collection_id,ticketsRemaining:t.ticketsRemaining,ticketsTotal:t.ticketsTotal,hasHiddenTickets:t.hasHiddenTickets,stage:t.stage,stageName:t.stageName,stageId:t.stageId,eventCategoryTypes:t.eventCategoryTypes,publicPerformers:t.publicPerformers,collectionIds:t.collectionIds,venue:t.venue,performers:t.performers,faqs:t.faqs,showtimes:t.showtimes,purchasedTickets:t.purchasedTickets}}var Jt=qt,Yt=$,Xt=$;function Zt(e){return(0,n.resolveImageUrl)(e,{cdn:!0})}function Qt(e){let t=e,n=t.logoUrl||t.logo_url||t.logo;return{id:t.id||t.ID||0,name:t.name||``,slug:t.slug,address:t.address,googleLocationNameCache:t.googleLocationNameCache||t.google_location_name_cache,city:t.city,state:t.state,zipCode:t.zipCode||t.zip_code,country:t.country,timezone:t.timezone||t.time_zone,logoUrl:Zt(n),serviceFeePercentage:t.serviceFeePercentage??t.service_fee_percentage??0,serviceFeeCents:t.serviceFeeCents??t.service_fee_cents??0,absorbServiceFee:(t.absorbServiceFee??t.absorb_service_fee)===!0,taxPercentage:t.taxPercentage??t.tax_percentage??0,organizationId:t.organizationId||t.organization_id}}var $t=Qt;function en(e){let t=e;return{serviceFeePercentage:t.serviceFeePercentage??t.service_fee_percentage??0,serviceFeeCents:t.serviceFeeCents??t.service_fee_cents??0,taxPercentage:t.taxPercentage??t.tax_percentage??0}}function tn(e){return[e.address,e.city,e.state,e.zipCode].filter(Boolean).join(`, `)}exports.apiDelete=x,exports.apiGet=y,exports.apiPost=b,exports.apiPut=ne,exports.applyGiftCard=kt,exports.applyPromoCode=He,exports.calculateCtaState=Kt,exports.cancelReservation=je,exports.checkCollectionPassword=gt,exports.checkEventPassword=_t,exports.completeGiftCardPayment=jt,exports.completeReservation=Ae,exports.computeCtaState=Lt,exports.configureApi=p,exports.createGiftCardPurchase=Ot,exports.createOrder=Me,exports.createPaymentIntent=De,exports.err=I,exports.errNotFound=L,exports.extendCheckoutSession=Fe,exports.extractVenueFees=en,exports.fetchAllVenues=tt,exports.fetchAllVenuesResult=et,exports.fetchEventDetails=Ye,exports.fetchEventDetailsResult=Je,exports.fetchEventPerformers=$e,exports.fetchEventPerformersResult=Qe,exports.fetchEventTickets=Ze,exports.fetchEventTicketsResult=Xe,exports.fetchPublicCollection=ht,exports.fetchSeriesOccurrences=pt,exports.fetchSeriesOccurrencesResult=ft,exports.fetchVenueEvents=rt,exports.fetchVenueEventsResult=nt,exports.formatVenueAddress=tn,exports.formatWaitlistWindow=It,exports.getApiConfig=m,exports.getCDNImageUrl=Wt,exports.getCartByUUID=Oe,exports.getClientIP=ee,exports.getEventImageUrl=Q,exports.getLegacyPublicUrl=g,exports.getMonthEvents=st,exports.getMonthEventsResult=ot,exports.getOrder=Ne,exports.getOrdersV2Url=_,exports.getOrgMonthEvents=lt,exports.getOrgMonthEventsResult=ct,exports.getPublicBaseUrl=h,exports.getSeriesOccurrences=dt,exports.getSeriesOccurrencesResult=ut,exports.getSessionStatus=Ie,exports.getVenue=xt,exports.getVenueBySlug=Ct,exports.getVenueFees=St,exports.getWaitlistStatus=Ft,exports.hasPromoCodes=Ve,exports.hasPublishedSite=wt,exports.initiateOrder=Le,exports.isErr=Ke,exports.isOk=Ge,exports.joinWaitlist=Mt,exports.ok=F,exports.removeGiftCard=At,exports.removePromoCode=Ue,exports.requeueWaitlistToFront=Pt,exports.resolvePublicEntity=mt,exports.testNetworkConnection=vt,exports.trackUTMSource=Re,exports.transformAvailableTicket=Jt,exports.transformEvent=Yt,exports.transformEventData=Xt,exports.transformOrder=Ht,exports.transformOrderForDisplay=Ut,exports.transformTicket=Vt,exports.transformVenue=$t,exports.unwrapOr=R,exports.updateCartQuantities=ke,exports.validatePaymentIntent=Pe,exports.validatePromoCode=Be,exports.validateWaitlistToken=Nt;
|
package/dist/api/api.mjs
CHANGED
|
@@ -1144,7 +1144,7 @@ function nn(e) {
|
|
|
1144
1144
|
function rn(e, t, n = {}) {
|
|
1145
1145
|
let { cancelled: r = !1, isRegistration: i = !1, waitlistEnabled: a = !1 } = n, o = ee();
|
|
1146
1146
|
if (r) return {
|
|
1147
|
-
text: "
|
|
1147
|
+
text: "Canceled",
|
|
1148
1148
|
disabled: !0,
|
|
1149
1149
|
reason: "cancelled"
|
|
1150
1150
|
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical Bearer auth-header builder for venue-calendar (R-AUTH-03).
|
|
3
|
+
*
|
|
4
|
+
* Doctrine: "One Bearer-header builder per app, used everywhere. All HTTP call
|
|
5
|
+
* sites import this builder — no inline Bearer template literals." Every VC call
|
|
6
|
+
* site that needs an `Authorization: Bearer <token>` header routes through here,
|
|
7
|
+
* so the Bearer construction lives in exactly one place and any future
|
|
8
|
+
* rename/format change has a single surface.
|
|
9
|
+
*
|
|
10
|
+
* Empty-token contract: when `token` is falsy (an unset operator token), the
|
|
11
|
+
* `Authorization` value is the empty string — byte-identical to what the call
|
|
12
|
+
* sites sent before migration (`token ? \`Bearer ${token}\` : ''`). The builder
|
|
13
|
+
* preserves that shape; it does not drop the header or alter what an unset token
|
|
14
|
+
* transmits.
|
|
15
|
+
*
|
|
16
|
+
* @stale-doc-comment-allow: Authorization
|
|
17
|
+
* (`Authorization` is an HTTP header NAME, not a code entity. It exists here only
|
|
18
|
+
* as an object key and a type-literal property — both of which stopped resolving
|
|
19
|
+
* in vc#685, because a property key labels a slot rather than declaring a binding.
|
|
20
|
+
* The header is real and external, which is exactly what the per-name hatch is
|
|
21
|
+
* for; a file-level escape would blind the rest of this file.)
|
|
22
|
+
*/
|
|
23
|
+
export declare function buildAuthHeaders(token: string | undefined | null): {
|
|
24
|
+
Authorization: string;
|
|
25
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Can this page complete a purchase?
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS EXISTS (embed audit 2026-08-22, blocker B1)
|
|
5
|
+
*
|
|
6
|
+
* The buy path is gated on the `cors_allowed_domains` allowlist: a venue that
|
|
7
|
+
* embeds the calendar on its own website must have that domain registered, or
|
|
8
|
+
* every cart/promo/gift-card/payment call is refused. Before this module the
|
|
9
|
+
* failure was invisible until a buyer had already chosen a ticket — the
|
|
10
|
+
* calendar rendered perfectly, and the dead end was a disabled CTA three
|
|
11
|
+
* screens in. This asks the question up front so the calendar can say so.
|
|
12
|
+
*
|
|
13
|
+
* The probe is deliberately conservative in three ways:
|
|
14
|
+
*
|
|
15
|
+
* 1. It only runs CROSS-ORIGIN. On get-micdrop.com's own pages — the large
|
|
16
|
+
* majority of traffic — the allowlist is not in play and no request is made.
|
|
17
|
+
* 2. It runs ONCE per browser session per origin, memoized in-module (so N
|
|
18
|
+
* widgets on one page share one request) and in sessionStorage (so it
|
|
19
|
+
* survives navigation around the venue's site).
|
|
20
|
+
* 3. Only an explicit `ORIGIN_NOT_REGISTERED` counts as unavailable. A 429, a
|
|
21
|
+
* 5xx, a timeout, an offline browser — anything that merely failed to
|
|
22
|
+
* answer — resolves to `unknown`, which renders nothing. An alert that
|
|
23
|
+
* appears during an unrelated outage would be worse than no alert.
|
|
24
|
+
*/
|
|
25
|
+
/** The backend code that means "this domain is not registered for checkout". */
|
|
26
|
+
export declare const ORIGIN_NOT_REGISTERED = "ORIGIN_NOT_REGISTERED";
|
|
27
|
+
export type CheckoutAvailabilityReason =
|
|
28
|
+
/** Purchases work from this origin. */
|
|
29
|
+
'available'
|
|
30
|
+
/** The host domain is not on the allowlist; buying is refused. */
|
|
31
|
+
| 'origin-not-registered'
|
|
32
|
+
/** Not asked, or the question could not be answered. Render nothing. */
|
|
33
|
+
| 'unknown';
|
|
34
|
+
export interface CheckoutAvailability {
|
|
35
|
+
/** False ONLY when the origin was explicitly rejected. `unknown` is true. */
|
|
36
|
+
available: boolean;
|
|
37
|
+
reason: CheckoutAvailabilityReason;
|
|
38
|
+
/** The page's own origin, for the message. Empty during SSR. */
|
|
39
|
+
origin: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* True when the widget is running on a domain that is not the API's own.
|
|
43
|
+
*
|
|
44
|
+
* `getApiConfig().baseUrl` is a hard literal (`https://get-micdrop.com`), never
|
|
45
|
+
* derived from the host page, so this is a genuine first-party/third-party test
|
|
46
|
+
* and not a tautology.
|
|
47
|
+
*/
|
|
48
|
+
export declare function isCrossOriginEmbed(): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Subscribe to the answer. Fires immediately with whatever is already known,
|
|
51
|
+
* and again if it changes. Returns an unsubscribe function.
|
|
52
|
+
*/
|
|
53
|
+
export declare function onCheckoutAvailabilityChange(listener: (_state: CheckoutAvailability) => void): () => void;
|
|
54
|
+
/**
|
|
55
|
+
* Record that a REAL buy-path call was refused for this origin.
|
|
56
|
+
*
|
|
57
|
+
* This is the authoritative signal — an actual cart or payment request, not a
|
|
58
|
+
* probe — so it overrides a cached `available` and is what keeps the alert
|
|
59
|
+
* correct if the domain is de-registered mid-session, or if the probe was
|
|
60
|
+
* skipped entirely. Wired from the API client, which sees every failure code.
|
|
61
|
+
*/
|
|
62
|
+
export declare function noteCheckoutOriginRejected(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Ask whether this origin may complete a purchase.
|
|
65
|
+
*
|
|
66
|
+
* Safe to call from every widget instance on the page: the first call owns the
|
|
67
|
+
* request and the rest await it.
|
|
68
|
+
*/
|
|
69
|
+
export declare function probeCheckoutAvailability(): Promise<CheckoutAvailability>;
|
|
70
|
+
/** Test seam: forget the memo, the cache and the subscribers. */
|
|
71
|
+
export declare function resetCheckoutAvailability(): void;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory cache of gate passwords the server has already accepted.
|
|
3
|
+
*
|
|
4
|
+
* WHY THIS IS NOT sessionStorage (security audit 2026-08-14, F36).
|
|
5
|
+
*
|
|
6
|
+
* `CollectionView` used to persist the plaintext collection password to
|
|
7
|
+
* `sessionStorage` under `micdrop:authedCollections:list`. This widget is a
|
|
8
|
+
* light-DOM embed: it runs on the VENUE'S OWN ORIGIN, alongside whatever else
|
|
9
|
+
* that page loads — tag managers, RUM agents, session-replay recorders,
|
|
10
|
+
* chat widgets. `sessionStorage` is readable by every one of them, and it kept
|
|
11
|
+
* the password readable for the whole tab session, long after the visitor
|
|
12
|
+
* typed it. Gate passwords are stored plaintext at rest server-side and are
|
|
13
|
+
* SHARED BY EVERY ATTENDEE of a private/pre-sale event, so one harvested value
|
|
14
|
+
* defeats the gate for everyone.
|
|
15
|
+
*
|
|
16
|
+
* A module-scoped Map keeps the same UX for the case that actually matters —
|
|
17
|
+
* the widget is a SPA, so navigating collection → event → back re-mounts the
|
|
18
|
+
* component and the unlock still survives — while removing the cross-script
|
|
19
|
+
* read surface and the persistence. The trade is deliberate and narrow: a hard
|
|
20
|
+
* page RELOAD now re-prompts, where before it did not.
|
|
21
|
+
*
|
|
22
|
+
* The server remains the authority either way. A cached password that no
|
|
23
|
+
* longer matches comes back as `passwordRequired` and the caller re-prompts,
|
|
24
|
+
* so nothing here can reveal gated content on its own.
|
|
25
|
+
*/
|
|
26
|
+
/** Which gate a cached password belongs to. Keys are namespaced by scope so an
|
|
27
|
+
* unlocked collection never satisfies the per-event gate (or vice versa). */
|
|
28
|
+
export type GateScope = 'collection' | 'event';
|
|
29
|
+
/** Remember a password the server just accepted. No-op for an empty password. */
|
|
30
|
+
export declare function rememberGatePassword(scope: GateScope, id: string | number, password?: string): void;
|
|
31
|
+
/** Recall a previously accepted password for this page load, if any. */
|
|
32
|
+
export declare function recallGatePassword(scope: GateScope, id: string | number): string | undefined;
|
|
33
|
+
/** Drop a cached password the server has since rejected (rotated / revoked). */
|
|
34
|
+
export declare function forgetGatePassword(scope: GateScope, id: string | number): void;
|
|
35
|
+
/**
|
|
36
|
+
* Record that a gate has been unlocked for this page load.
|
|
37
|
+
*
|
|
38
|
+
* This is the ONLY store of "already authenticated" for the event/collection
|
|
39
|
+
* gates. It is deliberately NOT web storage:
|
|
40
|
+
*
|
|
41
|
+
* - a blocked store (sandboxed iframe, Safari private mode, a partitioned
|
|
42
|
+
* third-party context) made the old `sessionStorage.getItem` READ throw, and
|
|
43
|
+
* that throw propagated out of the `isLocked` derivation and out of the
|
|
44
|
+
* correct-password handler — so on a venue's own domain a buyer could type
|
|
45
|
+
* the RIGHT password and still be told nothing happened. A Map cannot throw,
|
|
46
|
+
* so a blocked store now degrades to "re-prompt on the next mount", which is
|
|
47
|
+
* the honest fallback.
|
|
48
|
+
* - it is unreachable from other scripts on the host page, closing the forge
|
|
49
|
+
* surface described on LEGACY_STORAGE_KEYS.
|
|
50
|
+
*
|
|
51
|
+
* The server stays the authority: an unlock recorded here only suppresses the
|
|
52
|
+
* prompt, and any payload that still arrives with `passwordRequired` re-locks.
|
|
53
|
+
*/
|
|
54
|
+
export declare function rememberGateUnlock(scope: GateScope, id: string | number): void;
|
|
55
|
+
/** Whether this page load has already cleared that gate. Never throws. */
|
|
56
|
+
export declare function recallGateUnlock(scope: GateScope, id: string | number): boolean;
|
|
57
|
+
/** Re-lock a gate (password rotated / revoked, or the server said so). */
|
|
58
|
+
export declare function forgetGateUnlock(scope: GateScope, id: string | number): void;
|
|
59
|
+
/** Test hook: wipe the whole cache between cases. */
|
|
60
|
+
export declare function clearGatePasswordCache(): void;
|