@getmicdrop/venue-calendar 4.0.84 → 4.0.87

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/{CartView-DwAGELwG.js → CartView-DrfUvXHU.js} +370 -370
  2. package/dist/CartView-DrfUvXHU.js.map +1 -0
  3. package/dist/Checkout-BIT0aula.js +809 -0
  4. package/dist/Checkout-BIT0aula.js.map +1 -0
  5. package/dist/{Checkout-CHo11MsU.js → Checkout-DNwBnmE3.js} +51 -51
  6. package/dist/{Checkout-CHo11MsU.js.map → Checkout-DNwBnmE3.js.map} +1 -1
  7. package/dist/{CheckoutTimer-CAGR7L-7.js → CheckoutTimer-C50Ahi93.js} +4 -4
  8. package/dist/{CheckoutTimer-CAGR7L-7.js.map → CheckoutTimer-C50Ahi93.js.map} +1 -1
  9. package/dist/{CollectionView-Dstgu8sR.js → CollectionView-W4Atllhp.js} +5 -5
  10. package/dist/{CollectionView-Dstgu8sR.js.map → CollectionView-W4Atllhp.js.map} +1 -1
  11. package/dist/{Event-kfRjkMzQ.js → Event-t3hhfFuJ.js} +10 -7
  12. package/dist/{Event-kfRjkMzQ.js.map → Event-t3hhfFuJ.js.map} +1 -1
  13. package/dist/{EventPage-CnhccVCI.js → EventPage-CEWppTrK.js} +7 -7
  14. package/dist/{EventPage-CnhccVCI.js.map → EventPage-CEWppTrK.js.map} +1 -1
  15. package/dist/Heading-DUg5tgzm.js +91 -0
  16. package/dist/Heading-DUg5tgzm.js.map +1 -0
  17. package/dist/{ModalHeader-Q7levd4l.js → ModalHeader-DEuHuPK2.js} +2 -2
  18. package/dist/{ModalHeader-Q7levd4l.js.map → ModalHeader-DEuHuPK2.js.map} +1 -1
  19. package/dist/{ScarcityBadge-CG7Mz5YN.js → ScarcityBadge-BVM_XAXR.js} +2 -2
  20. package/dist/{ScarcityBadge-CG7Mz5YN.js.map → ScarcityBadge-BVM_XAXR.js.map} +1 -1
  21. package/dist/{SeriesPage-C8fIvt63.js → SeriesPage-Bg4oZ2fA.js} +5 -5
  22. package/dist/{SeriesPage-C8fIvt63.js.map → SeriesPage-Bg4oZ2fA.js.map} +1 -1
  23. package/dist/{Success-SZNXo-Ou.js → Success-DwpMMfeZ.js} +19 -19
  24. package/dist/{Success-SZNXo-Ou.js.map → Success-DwpMMfeZ.js.map} +1 -1
  25. package/dist/Text-D4lbf8Z6.js +167 -0
  26. package/dist/{Text-DHgQP4rA.js.map → Text-D4lbf8Z6.js.map} +1 -1
  27. package/dist/{VenueCalendar-DTOyAhDU.js → VenueCalendar-DYnha5wZ.js} +105 -105
  28. package/dist/VenueCalendar-DYnha5wZ.js.map +1 -0
  29. package/dist/{ViewTicketsEmbed-DBEOjijY.js → ViewTicketsEmbed-mrawQhqD.js} +382 -382
  30. package/dist/{ViewTicketsEmbed-DBEOjijY.js.map → ViewTicketsEmbed-mrawQhqD.js.map} +1 -1
  31. package/dist/api/api.cjs +1 -1
  32. package/dist/api/api.cjs.map +1 -1
  33. package/dist/api/api.mjs +36 -33
  34. package/dist/api/api.mjs.map +1 -1
  35. package/dist/api/gift-cards.d.ts +3 -2
  36. package/dist/api/transformers/venue.d.ts +17 -7
  37. package/dist/{data-toggle-store.svelte-E2JyoGTV.js → data-toggle-store.svelte-CgH3EfQF.js} +2 -2
  38. package/dist/{data-toggle-store.svelte-E2JyoGTV.js.map → data-toggle-store.svelte-CgH3EfQF.js.map} +1 -1
  39. package/dist/{labels-nQIooadc.js → labels-CV4Mq9xD.js} +3 -3
  40. package/dist/{labels-nQIooadc.js.map → labels-CV4Mq9xD.js.map} +1 -1
  41. package/dist/seo/seo.cjs.map +1 -1
  42. package/dist/seo/seo.mjs.map +1 -1
  43. package/dist/{transform-C1Rmuzlt.js → transform-DrAudcCa.js} +2 -2
  44. package/dist/{transform-C1Rmuzlt.js.map → transform-DrAudcCa.js.map} +1 -1
  45. package/dist/venue-calendar.css +1 -1
  46. package/dist/venue-calendar.es.js +2 -2
  47. package/dist/venue-calendar.iife.js +22 -22
  48. package/dist/venue-calendar.iife.js.map +1 -1
  49. package/dist/venue-calendar.umd.js +19 -19
  50. package/dist/venue-calendar.umd.js.map +1 -1
  51. package/package.json +170 -170
  52. package/dist/CartView-DwAGELwG.js.map +0 -1
  53. package/dist/Checkout-_NuoBAKt.js +0 -789
  54. package/dist/Checkout-_NuoBAKt.js.map +0 -1
  55. package/dist/Heading-Ielp7dS-.js +0 -81
  56. package/dist/Heading-Ielp7dS-.js.map +0 -1
  57. package/dist/Text-DHgQP4rA.js +0 -158
  58. package/dist/VenueCalendar-DTOyAhDU.js.map +0 -1
package/dist/api/api.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=require("@getmicdrop/svelte-components/utils/logger"),v=require("@getmicdrop/svelte-components"),R=require("@getmicdrop/svelte-components/utils/formatters"),X=require("@getmicdrop/svelte-components/transforms");require("@getmicdrop/svelte-components/utils/timezones");const F=$.createLogger("VC"),ee={baseUrl:"https://get-micdrop.com",timeout:3e4,retries:2,retryDelay:500,onError:r=>F.error("API Error:",r)};let y={...ee};function re(r){y={...y,...r}}function te(){return{...y}}function u(){return`${y.baseUrl}/api/v2/public`}function ne(){return`${y.baseUrl}/api/public`}function E(){return`${y.baseUrl}/api/orders/v2/public`}async function ae(){return""}const se=r=>new Promise(e=>setTimeout(e,r));async function z(r,e,t){const n=(e.method||"GET").toUpperCase(),o=n==="GET"||n==="HEAD"?t.retries+1:1;let s;for(let i=1;i<=o;i++){const c=new AbortController,C=setTimeout(()=>c.abort(),t.timeout),p=e.signal;let _;p&&(p.aborted?c.abort():(_=()=>c.abort(),p.addEventListener("abort",_,{once:!0})));try{const h=await fetch(r,{...e,signal:c.signal});if(h.status>=500&&i<o)s=new Error(`HTTP ${h.status}`);else return h}catch(h){if(s=h,p?.aborted)throw h}finally{clearTimeout(C),p&&_&&p.removeEventListener("abort",_)}i<o&&await se(t.retryDelay*Math.pow(2,i-1))}throw s}async function b(r,e){return U("GET",r,void 0,e)}async function m(r,e,t){return U("POST",r,e,t)}async function oe(r,e,t){return U("PUT",r,e,t)}async function M(r,e){return U("DELETE",r,void 0,e)}async function U(r,e,t,n){const a=e.startsWith("http")?e:`${u()}${e}`;try{const o=await z(a,{method:r,headers:{"Content-Type":"application/json",...n?.headers},body:t!==void 0?JSON.stringify(t):void 0,credentials:"include",...n},y);if(!o.ok){const i=await o.json().catch(()=>({})),c=i.error||i.message||`HTTP ${o.status}`;return y.onError(new Error(c)),{success:!1,error:c,statusCode:o.status}}return{success:!0,data:await o.json(),statusCode:o.status}}catch(o){const s=o instanceof Error?o.name==="AbortError"?"Request timed out":o.message:"Unknown error";return y.onError(o instanceof Error?o:new Error(s)),{success:!1,error:s}}}async function g(r,e){try{const t=await z(r,{credentials:"include",...e},y);if(!t.ok){const n=await t.json().catch(()=>({}));return F.error(`API request failed: ${t.status}`,n),null}return t.json()}catch(t){return F.error("API request error:",t),null}}function ie(r){const e=r??{};return{ticketID:Number(e.TicketID??e.ticketID??0),quantity:Number(e.Quantity??e.quantity??0),priceAtReservation:Number(e.PriceAtReservation??e.priceAtReservation??0),status:String(e.Status??e.status??"")}}function ce(r){const e=r??{},t=e.UUID??e.uuid??"",n=Number(e.EventID??e.eventID??0),a=e.Status??e.status??"",o=e.ExpiresAt??e.expiresAt??"",i=(e.Reservations??e.reservations??[]).map(ie);return{uuid:t,eventID:n,status:a,expiresAt:o,reservations:i}}const f=$.createLogger("VC");async function ue(r,e,t){try{const n=await m(`${E()}/cart/${r}/payment-intent`,{productQuantities:e,...t&&Object.keys(t).length>0?{donationAmounts:t}:{}});if(!n.success)throw f.error("Payment intent creation failed:",n.error),new v.AppError(n.error||"Failed to create payment intent","lib/api/orders/createPaymentIntent");return f.debug("Payment intent created:",n.data),n.data}catch(n){return f.error("createPaymentIntent error:",n),null}}async function le(r,e){if(!r)return null;try{const t=await b(`${E()}/cart/${r}`);if(!t.success)return null;const{uuid:n,eventID:a,status:o,expiresAt:s,reservations:i}=ce(t.data);return o!=="reserved"&&o!=="active"||e!==void 0&&a!==Number(e)?null:{uuid:n,eventID:a,status:o,expiresAt:s,reservations:i}}catch(t){return f.error("getCartByUUID error:",t),null}}async function de(r,e,t){try{const n={};for(const[s,i]of Object.entries(e)){const c=typeof s=="number"?s:parseInt(s,10);!Number.isNaN(c)&&i>0&&(n[c]=i)}const a={};if(t)for(const[s,i]of Object.entries(t)){const c=typeof s=="number"?s:parseInt(s,10);!Number.isNaN(c)&&i>0&&(a[c]=i)}const o=await fetch(`${E()}/cart/${r}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({quantities:n,...Object.keys(a).length>0?{donationAmounts:a}:{}})});if(!o.ok){const s=await o.json().catch(()=>({}));return f.error("Cart update failed:",s),!1}return!0}catch(n){return f.error("updateCartQuantities error:",n),!1}}async function fe(r){try{const e=await m(`${u()}/orders/complete/${r}`);return e.success?{success:!0,message:e.data?.message}:{success:!1,error:e.error||"Failed to complete reservation"}}catch(e){return f.error("Error completing reservation:",e),{success:!1,error:"Network error completing reservation"}}}async function me(r){try{const e=await m(`${u()}/orders/cancel/${r}`);return e.success?{success:!0,message:e.data?.message}:{success:!1,error:e.error||"Failed to cancel reservation"}}catch(e){return f.error("Error cancelling reservation:",e),{success:!1,error:"Network error cancelling reservation"}}}async function pe(r,e){try{const t=await m(`${u()}/orders/create`,{eventID:r,promoCode:e});return t.success?t.data:(f.error("Create order failed:",t.error),null)}catch(t){return f.error("createOrder error:",t),null}}async function ge(r){return g(`${u()}/orders/${r}`)}async function ye(r,e){try{const t=await m(`${E()}/validatePaymentIntent/${r}`,e);if(!t.success)return f.error("Payment validation failed:",t.error),{success:!1,status:"failed",error:t.error||"Payment validation failed"};const n=t.data;return{success:!0,status:n.status||"Payment succeeded",orderUUID:n.orderUUID||n.uuid}}catch(t){return f.error("validatePaymentIntent error:",t),null}}async function ve(r){try{const e=await m(`${u()}/orders/extend-session`,{orderUuid:r});if(!e.success)return{success:!1,error:e.error||"Failed to extend session",statusCode:e.statusCode};const t=e.data;return{success:!0,newExpiryTime:t.newExpiryTime,remainingExtensions:t.remainingExtensions}}catch(e){return f.error("Error extending checkout session:",e),{success:!1,error:"Network error extending session"}}}async function he(r){try{const e=await b(`${u()}/orders/session/${r}`);if(!e.success)return{error:e.error||"No active session found",notFound:e.statusCode===404};const t=e.data;return{expiresAt:t.expiresAt,extensionCount:t.extensionCount,remainingExtensions:t.remainingExtensions,canExtend:t.canExtend,reservationCount:t.reservationCount}}catch(e){return f.error("Error getting session status:",e),{error:"Network error getting session status"}}}async function we(r={}){try{const e=await m(`${u()}/orders/create`,r);return e.success?e.data?.uuid??null:(f.error("Order initiation failed:",e.error),null)}catch(e){return f.error("initiateOrder error:",e),null}}async function ke(r){if(typeof window>"u")return;const t=new URLSearchParams(window.location.search).get("utm_source")||"Direct";try{await fetch(`${u()}/utm/${r}/${encodeURIComponent(t)}`)}catch(n){f.error("UTM tracking failed:",n)}}const O=$.createLogger("VC"),Ce=()=>E();async function _e(r,e){try{if(!e||!e.trim())return{valid:!1,error:"Promo code is required"};const t=encodeURIComponent(e.trim()),n=await b(`/promo-codes/validate/${r}/${t}`);if(!n.success)return n.statusCode===404?{valid:!1,error:"Invalid promo code"}:{valid:!1,error:"Failed to validate code"};const a=n.data;return{valid:a.valid??!0,revealHiddenTickets:a.revealHiddenTickets,revealTicketIds:a.revealTicketIds,provideDiscount:a.provideDiscount,discountType:a.discountType,amount:a.amount,code:a.code||e}}catch(t){return O.error("Error validating promo code:",t),{valid:!1,error:"Network error validating code"}}}async function Pe(r){try{const e=await b(`/promo-codes/check/${r}`);return e.success?e.data.hasPromoCodes===!0:!0}catch(e){return O.error("Error checking promo codes availability:",e),!0}}async function be(r,e){try{const t=await m(`${Ce()}/cart/${r}/apply-promo`,{promoCode:e});return t.success?{success:!0}:{success:!1,error:t.error||"Failed to apply promo code"}}catch(t){return O.error("Error applying promo code:",t),{success:!1,error:"Network error applying code"}}}async function $e(r){try{const e=await m(`/orders/${r}/remove-promo`);return e.success?{success:!0}:{success:!1,error:e.error||"Failed to remove promo code"}}catch(e){return O.error("Error removing promo code:",e),{success:!1,error:"Network error removing code"}}}function Ee(r){const e=r??{};return{performers:Array.isArray(e.performers)?e.performers:[],showPerformers:e.showPerformers===!0}}const l=$.createLogger("VC"),x=new Map;async function Te(r,e=fetch,t){const n=t?`${r}:pw`:String(r);if(e===fetch){const o=x.get(n);if(o)return o}const a=(async()=>{try{const o=t?`${u()}/events/${r}?password=${encodeURIComponent(t)}`:`${u()}/events/${r}`,s=await e(o);if(!s.ok)throw new v.AppError(`Failed to fetch event details: ${s.status}`,"lib/api/events/fetchEventDetails");return await s.json()}catch(o){return l.error("Error fetching event details:",o),null}})();return e===fetch&&(x.set(n,a),a.finally(()=>{x.get(n)===a&&x.delete(n)})),a}async function Ie(r){try{const e=await g(`${u()}/tickets/event/${r}`);return Array.isArray(e)?e:[]}catch(e){return l.error("Error fetching tickets:",e),[]}}async function Ae(r){try{if(!r)return l.warn("fetchEventPerformers called without eventId"),{performers:[],showPerformers:!1};const e=await g(`${u()}/events/${r}/performers`);return e?Ee(e):(l.error("Failed to fetch performers: network or server error"),{performers:[],showPerformers:!1})}catch(e){return l.error("Error fetching event performers:",e),{performers:[],showPerformers:!1}}}async function Se(r){try{if(!r)return l.warn("fetchAllVenues called without orgId"),[];const e=await g(`${u()}/venues/organization/${r}`);return e?Array.isArray(e)?e:[]:(l.error("Failed to fetch venues: network or server error"),[])}catch(e){return l.error("Error fetching venues:",e),[]}}async function De(r){try{if(!r)return l.warn("fetchVenueEvents called without venueId"),[];const e=await g(`${u()}/events/venue/${r}`);return e?Array.isArray(e)?e:[]:(l.error("Failed to fetch venue events: network or server error"),[])}catch(e){return l.error("Error fetching venue events:",e),[]}}async function Re(r,e,t){try{const n=await g(`${u()}/events/venue/${r}/month/${e}/${t}`);return n?Array.isArray(n)?n:Array.isArray(n.events)?n.events:[]:(l.error("Failed to fetch month events: network or server error"),[])}catch(n){return l.error("Error fetching month events:",n),[]}}async function xe(r,e,t){try{const n=await g(`${u()}/events/organization/${r}/month/${e}/${t}`);return n?Array.isArray(n)?n:Array.isArray(n.events)?n.events:[]:(l.error("Failed to fetch org month events: network or server error"),[])}catch(n){return l.error("Error fetching org month events:",n),[]}}async function Ne(r){try{const e=await g(`${u()}/series/${r}/occurrences`);return e||(l.error("Failed to fetch series occurrences: network or server error"),null)}catch(e){return l.error("Error fetching series occurrences:",e),null}}async function Ue(r,e){try{const t=await g(`${u()}/series/${r}/occurrences?venueId=${e}`);return t||(l.error("Failed to fetch series with CTA: network or server error"),null)}catch(t){return l.error("Error fetching series occurrences:",t),null}}async function Oe(r,e){try{const t=e?`?slug=${encodeURIComponent(e)}`:"",n=await g(`${u()}/resolve/${encodeURIComponent(String(r))}${t}`);if(!n||!n.type)throw new v.AppError("Failed to resolve entity","lib/api/events/resolvePublicEntity");return n}catch(t){return l.error("Error resolving public entity:",t),null}}async function Fe(r){try{const e=await g(`${u()}/series/${r}/page`);if(!e)throw new v.AppError("Failed to fetch series page","lib/api/events/fetchSeriesPage");return e}catch(e){return l.error("Error fetching series page:",e),null}}async function qe(r,e){try{const t=e?`${u()}/collections/${r}?password=${encodeURIComponent(e)}`:`${u()}/collections/${r}`,n=await g(t);if(!n)throw new v.AppError("Failed to fetch collection","lib/api/events/fetchPublicCollection");return n}catch(t){return l.error("Error fetching collection:",t),null}}async function Le(r,e){try{const t=encodeURIComponent(e);return(await g(`${u()}/collections/${r}/check-password/${t}`))?.valid===!0}catch(t){return l.error("Error checking collection password:",t),!1}}async function Ve(r,e){try{const t=await m(`${u()}/events/${r}/check-password`,{password:e});if(!t.success)return{valid:!1};const n=t.data;return typeof n=="boolean"?{valid:n}:{valid:n.valid===!0}}catch(t){return l.error("Error checking event password:",t),{valid:!1}}}async function Ge(r,e){try{const t=e?`${u()}/events/venue/${e}`:r?`${u()}/venues/organization/${r}`:`${u()}/health`;return(await fetch(t,{method:"HEAD"})).ok}catch(t){return l.error("Network connection test failed:",t),!1}}const I=$.createLogger("VC");async function W(r){try{if(!r)return I.warn("getVenue called without venueId"),null;const e=await b(`/venues/${r}`);return e.success?e.data??null:(I.error(`Failed to fetch venue: ${e.statusCode}`),null)}catch(e){return I.error("Error fetching venue:",e),null}}async function Be(r){const e=await W(r);return e?{serviceFeePercentage:e.serviceFeePercentage??0,serviceFeeCents:e.serviceFeeCents??0,taxPercentage:e.taxPercentage??0}:null}async function je(r){try{if(!r)return I.warn("getVenueBySlug called without slug"),null;const e=encodeURIComponent(r),t=await b(`/venues/slug/${e}`);return t.success?t.data??null:(I.error(`Failed to fetch venue by slug: ${t.statusCode}`),null)}catch(e){return I.error("Error fetching venue by slug:",e),null}}function ze(r){const e=r??{},t=(e.appliedAmount??0)/100,n=e.remainingTotal??0,a=e.fullyCoveredByCard??n<=0,o=!a;return{valid:!0,giftCardCode:e.giftCardCode,giftCardAmount:t,giftCardBalance:e.giftCardBalance,paymentType:a?"gift_card_only":"split",stripeAmount:n,orderTotal:t+n,requiresStripe:o}}const k=$.createLogger("VC"),Me="https://get-micdrop.com",We=`${Me}/api/orders/v2`,G=()=>E();async function He(r){try{const e=await m(`${We}/gift-cards`,r);if(!e.success)throw k.error("Gift card purchase creation failed:",e.error),new v.AppError(e.error||"Failed to create gift card purchase","lib/api/gift-cards/createGiftCardPurchase");return k.debug("Gift card purchase created:",e.data),e.data}catch(e){return k.error("Gift card purchase creation error:",e),null}}async function Qe(r,e){try{const t=await m(`${G()}/cart/${r}/apply-gift-card`,{giftCardCode:e});return t.success?ze(t.data):t.statusCode===429?{valid:!1,error:"Too many attempts. Please wait a moment and try again."}:(k.error("Apply gift card failed:",t.error),{valid:!1,error:t.error||"Invalid gift card code"})}catch(t){return k.error("applyGiftCard error:",t),{valid:!1,error:"Network error. Please check your connection and try again."}}}async function Je(r){try{const e=await M(`${G()}/cart/${r}/gift-card`);return e.success?{success:!0}:(k.error("Remove gift card failed:",e.error),{success:!1,error:e.error||"Failed to remove gift card"})}catch(e){return k.error("removeGiftCard error:",e),{success:!1,error:"Network error. Please check your connection and try again."}}}async function Ze(r,e){try{const t=await m(`${G()}/cart/${r}/complete-gift-card-payment`,{firstName:e.firstName,lastName:e.lastName,email:e.email,phoneNumber:e.phoneNumber||null,mailingList:e.mailingList||!1});return t.success?{success:!0,orderId:t.data?.orderId,confirmationNumber:t.data?.confirmationNumber}:(k.error("Complete gift card payment failed:",t.error),{success:!1,error:t.error||"Failed to complete payment"})}catch(t){return k.error("completeGiftCardPayment error:",t),{success:!1,error:"Network error. Please check your connection and try again."}}}const q=$.createLogger("VC"),Ye={waitlist_not_enabled:"Waitlist is not available for this event",event_not_found:"Event not found",invalid_phone:"Please enter a valid phone number",already_purchased:"You have already purchased tickets for this event",phone_already_registered:"This phone number is already on the waitlist"};async function Ke(r,e,t=null,n=!1){try{const a={email:e};t&&n&&(a.phone=t,a.smsOptIn=!0);const o=await m(`/events/${r}/waitlist`,a);return o.success?{success:!0,updated:o.data?.updated}:(q.error("Join waitlist failed:",o.error),{success:!1,error:Ye[o.error??""]||"Failed to join waitlist. Please try again."})}catch(a){return q.error("joinWaitlist error:",a),{success:!1,error:"Network error. Please check your connection and try again."}}}async function Xe(r){const e={waitlistEnabled:!1,soldOut:!1,gated:!1};try{const t=await b(`/events/${r}/waitlist/status`);return t.success?{waitlistEnabled:!!t.data?.waitlistEnabled,soldOut:!!t.data?.soldOut,gated:!!t.data?.gated}:e}catch(t){return q.error("getWaitlistStatus error:",t),e}}function er(r,e,t={}){const{cancelled:n=!1,isRegistration:a=!1,waitlistEnabled:o=!1}=t,s=new Date;if(n)return{text:"Cancelled",disabled:!0,reason:"cancelled"};const i=r.endDateTime||r.startDateTime;if(i&&new Date(i)<s)return{text:"Sales ended",disabled:!0,reason:"event_past"};const c=r?.hasPurchasableHiddenTickets===!0||Array.isArray(e)&&e.some(X.isHiddenTicketPurchasable),C=(e||[]).filter(d=>d.salesChannel!==2&&!d.isHidden&&!(typeof d.visibility=="number"&&d.visibility>=2));if(C.length===0)return c?{text:a?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"}:{text:"No tickets available",disabled:!0,reason:"no_tickets"};let p=!1,_=!0,h=!0,w=null;for(const d of C){const T=d.salesBegin||d.salesStart||d.saleBegin||d.onSaleStart,D=d.salesEnd||d.saleEnd||d.onSaleEnd,P=d.remainingCapacity??d.quantityRemaining??d.quantity,A=d.soldOut||P!=null&&P<=0,S=T?new Date(T)>s:!1,B=D?new Date(D)<s:!1;if(!A&&!S&&!B&&(p=!0),A||(_=!1),S||(h=!1),S&&T&&!A&&!B){const j=new Date(T);(!w||j<w)&&(w=j)}}if(p)return{text:a?"Reserve a spot":"Get tickets",disabled:!1,reason:"available"};if(h&&w){if(c)return{text:a?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"};const d=w.getTime()-s.getTime(),T=d/(1e3*60*60),D=d/(1e3*60*60*24);let P;if(T<24)P=R.formatTime(w,{hour12:!0},"en-US");else if(D<=7)P=R.formatDateRaw(w,{weekday:"short",hour:"numeric",minute:"2-digit",hour12:!0},"en-US");else{const A=R.formatDateRaw(w,{month:"short",day:"numeric"},"en-US"),S=R.formatTime(w,{hour12:!0},"en-US");P=`${A} ${S}`}return{text:`On sale ${P}`,disabled:!0,reason:"coming_soon"}}return _?c?{text:a?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"}:o?{text:"Join Waitlist",disabled:!1,reason:"sold_out_waitlist"}:{text:"Sold out",disabled:!0,reason:"sold_out"}:c?{text:a?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"}:{text:"Sales ended",disabled:!0,reason:"sales_ended"}}function H(r){const e=r;return{uuid:e.uuid||String(e.id||e.ID||""),id:e.id||e.ID,ticketNumber:e.ticketNumber||e.ticket_number,orderId:e.orderId||e.order_id,attendeeFirstName:e.attendeeFirstName||e.attendee_first_name||e.firstName,attendeeLastName:e.attendeeLastName||e.attendee_last_name||e.lastName,attendeeEmail:e.attendeeEmail||e.attendee_email||e.email,ticketName:e.ticketName||e.ticket_name||e.name||"",ticketTypeId:e.ticketTypeId||e.ticket_type_id,purchasePrice:e.purchasePrice||e.purchase_price||e.price||0,status:e.status,checkedIn:e.checkedIn||e.checked_in,checkedInAt:e.checkedInAt||e.checked_in_at}}function Q(r){const e=r,t=e.purchasedTickets||e.tickets||e.purchased_tickets||[];return{uuid:e.uuid||String(e.id||e.ID||""),id:e.id||e.ID,customerEmail:e.customerEmail||e.email||e.customer_email||"",customerFirstName:e.customerFirstName||e.firstName||e.first_name,customerLastName:e.customerLastName||e.lastName||e.last_name,status:e.status||"unknown",totalAmount:e.totalAmount||e.total||e.total_amount||0,subtotal:e.subtotal,serviceFeesAmount:e.serviceFeesAmount||e.serviceFee||e.service_fee||e.service_fees_amount||0,taxAmount:e.taxAmount||e.tax||e.tax_amount||0,discount:e.discount||0,paymentIntentId:e.paymentIntentId||e.payment_intent_id,paymentMethod:e.paymentMethod||e.payment_method,purchasedTickets:t.map(H),createdAt:e.createdAt||e.created_at,updatedAt:e.updatedAt||e.updated_at}}const rr=H,tr=Q;function nr(r){const e=Q(r),t=e.uuid.split("-")[0]||e.uuid;return{orderId:e.uuid,displayOrderId:t,email:e.customerEmail,customerName:[e.customerFirstName,e.customerLastName].filter(Boolean).join(" "),total:e.totalAmount,formattedTotal:`${v.formatCurrency(e.totalAmount/100)}`,ticketCount:e.purchasedTickets.length,status:e.status}}const ar="https://micdrop-images.sfo3.digitaloceanspaces.com";function J(r){return r?r.startsWith("http")?r:`${ar}/${r.replace(/^\//,"")}`:""}function L(r){const e=r.imageUrl||r.imageURL||r.image_url||r.image||"";return J(e)}function Z(r){const e=r.ctaState||r.cta_state;if(e)return e;if(r.isCancelled||r.is_cancelled)return"ended";const t=r.startDateTime||r.start_date_time||r.date;if(t){const s=new Date(t).getTime(),i=Date.now();if(s<i)return"ended"}const n=r.ticketsAvailable??r.tickets_available;if(n!==void 0)return n<=0?"sold_out":"available";const a=r.availableTickets||r.available_tickets||r.tickets||[];return a.length===0?"coming_soon":a.reduce((s,i)=>{const c=i.quantityAvailable??i.quantity_available??i.quantity??0,C=i.quantitySold??i.quantity_sold??0;return s+Math.max(0,c-C)},0)<=0?"sold_out":"available"}function Y(r){const e=r;return{id:e.id||e.ID,name:e.name||e.ticketName||"",description:e.description,price:e.price||0,quantity:e.quantity||e.totalQuantity||0,quantitySold:e.quantitySold||e.quantity_sold||0,quantityAvailable:e.quantityAvailable||e.quantity_available||(e.quantity||0)-(e.quantitySold||0),minPerOrder:e.minPerOrder||e.min_per_order||1,maxPerOrder:e.maxPerOrder||e.max_per_order||10,saleStartDate:e.saleStartDate||e.sale_start_date,saleEndDate:e.saleEndDate||e.sale_end_date,isHidden:e.isHidden||e.is_hidden||!1,revealWithPromoCode:e.revealWithPromoCode||e.reveal_with_promo_code,ticketType:e.ticketType||e.ticket_type||0,sectionId:e.sectionId||e.section_id,sortOrder:e.sortOrder||e.sort_order||0}}function K(r){const e=r,n=(e.availableTickets||e.available_tickets||e.tickets||[]).map(Y),a=n.map(i=>i.price).filter(i=>i>0),o=a.length>0?Math.min(...a):void 0,s=a.length>0?Math.max(...a):void 0;return{eventID:e.eventID||e.id||e.ID||0,id:e.id||e.ID,name:e.name||e.title||"",title:e.title||e.name,slug:e.slug,description:e.description,date:e.date||e.startDateTime||e.start_date_time||"",startDateTime:e.startDateTime||e.start_date_time,endDateTime:e.endDateTime||e.end_date_time,doorsOpenTime:e.doorsOpenTime||e.doors_open_time,timezone:e.timezone||e.time_zone,venueId:e.venueId||e.venue_id,venueName:e.venueName||e.venue_name,venueAddress:e.venueAddress||e.venue_address,location:e.location||e.venueAddress||e.venue_address,imageUrl:L(e),imageURL:L(e),status:e.status,isPublished:e.isPublished??e.is_published,isCancelled:e.isCancelled??e.is_cancelled,availableTickets:n,ticketsAvailable:e.ticketsAvailable??e.tickets_available??n.reduce((i,c)=>i+(c.quantityAvailable||0),0),ticketsSold:e.ticketsSold??e.tickets_sold,minPrice:e.minPrice??e.min_price??o,maxPrice:e.maxPrice??e.max_price??s,ctaText:e.ctaText||e.cta_text,ctaState:Z(e),showPerformers:e.showPerformers??e.show_performers,eventSeriesId:e.eventSeriesId||e.event_series_id,seriesInstanceNumber:e.seriesInstanceNumber||e.series_instance_number,timeZone:e.timeZone,eventSummary:e.eventSummary,password:e.password,hasPassword:e.hasPassword,disclaimer:e.disclaimer,ticketType:e.ticketType,eventTicketingType:e.eventTicketingType,ageRestriction:e.ageRestriction,displayAgeRestriction:e.displayAgeRestriction,displayStartTime:e.displayStartTime,displayEndTime:e.displayEndTime,displayDoorsTime:e.displayDoorsTime,collectionId:e.collectionId||e.collection_id,ticketsRemaining:e.ticketsRemaining,ticketsTotal:e.ticketsTotal,hasHiddenTickets:e.hasHiddenTickets,stage:e.stage,stageName:e.stageName,stageId:e.stageId,eventCategoryTypes:e.eventCategoryTypes,publicPerformers:e.publicPerformers,collectionIds:e.collectionIds,venue:e.venue,performers:e.performers,faqs:e.faqs,showtimes:e.showtimes,purchasedTickets:e.purchasedTickets}}const sr=Y,or=K,ir=K,cr="https://micdrop-images.sfo3.digitaloceanspaces.com";function ur(r){return r?r.startsWith("http")?r:`${cr}/${r.replace(/^\//,"")}`:""}function lr(r){const e=r,t=e.logoUrl||e.logo_url||e.logo;return{id:e.id||e.ID||0,name:e.name||"",slug:e.slug,address:e.address,googleLocationNameCache:e.googleLocationNameCache||e.google_location_name_cache,city:e.city,state:e.state,zipCode:e.zipCode||e.zip_code,country:e.country,timezone:e.timezone||e.time_zone,logoUrl:ur(t),serviceFeePercentage:e.serviceFeePercentage??e.service_fee_percentage??0,serviceFeeCents:e.serviceFeeCents??e.service_fee_cents??0,taxPercentage:e.taxPercentage??e.tax_percentage??0,organizationId:e.organizationId||e.organization_id}}const dr=lr;function fr(r){const e=r;return{serviceFeePercentage:e.serviceFeePercentage??e.service_fee_percentage??0,serviceFeeCents:e.serviceFeeCents??e.service_fee_cents??0,taxPercentage:e.taxPercentage??e.tax_percentage??0}}function mr(r){return[r.address,r.city,r.state,r.zipCode].filter(Boolean).join(", ")}function N(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)n!=="__proto__"&&(r[n]=t[n])}return r}var pr={read:function(r){return r[0]==='"'&&(r=r.slice(1,-1)),r.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(r){return encodeURIComponent(r).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function V(r,e){function t(a,o,s){if(!(typeof document>"u")){s=N({},e,s),typeof s.expires=="number"&&(s.expires=new Date(Date.now()+s.expires*864e5)),s.expires&&(s.expires=s.expires.toUTCString()),a=encodeURIComponent(a).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var i="";for(var c in s)s[c]&&(i+="; "+c,s[c]!==!0&&(i+="="+s[c].split(";")[0]));return document.cookie=a+"="+r.write(o,a)+i}}function n(a){if(!(typeof document>"u"||arguments.length&&!a)){for(var o=document.cookie?document.cookie.split("; "):[],s={},i=0;i<o.length;i++){var c=o[i].split("="),C=c.slice(1).join("=");try{var p=decodeURIComponent(c[0]);if(p in s||(s[p]=r.read(C,p)),a===p)break}catch{}}return a?s[a]:s}}return Object.create({set:t,get:n,remove:function(a,o){t(a,"",N({},o,{expires:-1}))},withAttributes:function(a){return V(this.converter,N({},this.attributes,a))},withConverter:function(a){return V(N({},this.converter,a),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(r)}})}V(pr,{path:"/"});v.createLogger("checkoutState");v.createLogger("orderApi");v.createLogger("utm");exports.apiDelete=M;exports.apiGet=b;exports.apiPost=m;exports.apiPut=oe;exports.applyGiftCard=Qe;exports.applyPromoCode=be;exports.calculateCtaState=Z;exports.cancelReservation=me;exports.checkCollectionPassword=Le;exports.checkEventPassword=Ve;exports.completeGiftCardPayment=Ze;exports.completeReservation=fe;exports.computeCtaState=er;exports.configureApi=re;exports.createGiftCardPurchase=He;exports.createOrder=pe;exports.createPaymentIntent=ue;exports.extendCheckoutSession=ve;exports.extractVenueFees=fr;exports.fetchAllVenues=Se;exports.fetchEventDetails=Te;exports.fetchEventPerformers=Ae;exports.fetchEventTickets=Ie;exports.fetchPublicCollection=qe;exports.fetchSeriesOccurrences=Ue;exports.fetchSeriesPage=Fe;exports.fetchVenueEvents=De;exports.formatVenueAddress=mr;exports.getApiConfig=te;exports.getCDNImageUrl=J;exports.getCartByUUID=le;exports.getClientIP=ae;exports.getEventImageUrl=L;exports.getLegacyPublicUrl=ne;exports.getMonthEvents=Re;exports.getOrder=ge;exports.getOrdersV2Url=E;exports.getOrgMonthEvents=xe;exports.getPublicBaseUrl=u;exports.getSeriesOccurrences=Ne;exports.getSessionStatus=he;exports.getVenue=W;exports.getVenueBySlug=je;exports.getVenueFees=Be;exports.getWaitlistStatus=Xe;exports.hasPromoCodes=Pe;exports.initiateOrder=we;exports.joinWaitlist=Ke;exports.removeGiftCard=Je;exports.removePromoCode=$e;exports.resolvePublicEntity=Oe;exports.testNetworkConnection=Ge;exports.trackUTMSource=ke;exports.transformAvailableTicket=sr;exports.transformEvent=or;exports.transformEventData=ir;exports.transformOrder=tr;exports.transformOrderForDisplay=nr;exports.transformTicket=rr;exports.transformVenue=dr;exports.updateCartQuantities=de;exports.validatePaymentIntent=ye;exports.validatePromoCode=_e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const $=require("@getmicdrop/svelte-components/utils/logger"),v=require("@getmicdrop/svelte-components"),R=require("@getmicdrop/svelte-components/utils/formatters"),X=require("@getmicdrop/svelte-components/transforms");require("@getmicdrop/svelte-components/utils/timezones");const F=$.createLogger("VC"),ee={baseUrl:"https://get-micdrop.com",timeout:3e4,retries:2,retryDelay:500,onError:r=>F.error("API Error:",r)};let y={...ee};function re(r){y={...y,...r}}function te(){return{...y}}function u(){return`${y.baseUrl}/api/v2/public`}function ne(){return`${y.baseUrl}/api/public`}function E(){return`${y.baseUrl}/api/orders/v2/public`}async function ae(){return""}const se=r=>new Promise(e=>setTimeout(e,r));async function z(r,e,t){const n=(e.method||"GET").toUpperCase(),o=n==="GET"||n==="HEAD"?t.retries+1:1;let s;for(let i=1;i<=o;i++){const c=new AbortController,k=setTimeout(()=>c.abort(),t.timeout),p=e.signal;let _;p&&(p.aborted?c.abort():(_=()=>c.abort(),p.addEventListener("abort",_,{once:!0})));try{const h=await fetch(r,{...e,signal:c.signal});if(h.status>=500&&i<o)s=new Error(`HTTP ${h.status}`);else return h}catch(h){if(s=h,p?.aborted)throw h}finally{clearTimeout(k),p&&_&&p.removeEventListener("abort",_)}i<o&&await se(t.retryDelay*Math.pow(2,i-1))}throw s}async function b(r,e){return U("GET",r,void 0,e)}async function m(r,e,t){return U("POST",r,e,t)}async function oe(r,e,t){return U("PUT",r,e,t)}async function M(r,e){return U("DELETE",r,void 0,e)}async function U(r,e,t,n){const a=e.startsWith("http")?e:`${u()}${e}`;try{const o=await z(a,{method:r,headers:{"Content-Type":"application/json",...n?.headers},body:t!==void 0?JSON.stringify(t):void 0,credentials:"include",...n},y);if(!o.ok){const i=await o.json().catch(()=>({})),c=i.error||i.message||`HTTP ${o.status}`;return y.onError(new Error(c)),{success:!1,error:c,statusCode:o.status}}return{success:!0,data:await o.json(),statusCode:o.status}}catch(o){const s=o instanceof Error?o.name==="AbortError"?"Request timed out":o.message:"Unknown error";return y.onError(o instanceof Error?o:new Error(s)),{success:!1,error:s}}}async function g(r,e){try{const t=await z(r,{credentials:"include",...e},y);if(!t.ok){const n=await t.json().catch(()=>({}));return F.error(`API request failed: ${t.status}`,n),null}return t.json()}catch(t){return F.error("API request error:",t),null}}function ie(r){const e=r??{};return{ticketID:Number(e.TicketID??e.ticketID??0),quantity:Number(e.Quantity??e.quantity??0),priceAtReservation:Number(e.PriceAtReservation??e.priceAtReservation??0),status:String(e.Status??e.status??"")}}function ce(r){const e=r??{},t=e.UUID??e.uuid??"",n=Number(e.EventID??e.eventID??0),a=e.Status??e.status??"",o=e.ExpiresAt??e.expiresAt??"",i=(e.Reservations??e.reservations??[]).map(ie);return{uuid:t,eventID:n,status:a,expiresAt:o,reservations:i}}const f=$.createLogger("VC");async function ue(r,e,t){try{const n=await m(`${E()}/cart/${r}/payment-intent`,{productQuantities:e,...t&&Object.keys(t).length>0?{donationAmounts:t}:{}});if(!n.success)throw f.error("Payment intent creation failed:",n.error),new v.AppError(n.error||"Failed to create payment intent","lib/api/orders/createPaymentIntent");return f.debug("Payment intent created:",n.data),n.data}catch(n){return f.error("createPaymentIntent error:",n),null}}async function le(r,e){if(!r)return null;try{const t=await b(`${E()}/cart/${r}`);if(!t.success)return null;const{uuid:n,eventID:a,status:o,expiresAt:s,reservations:i}=ce(t.data);return o!=="reserved"&&o!=="active"||e!==void 0&&a!==Number(e)?null:{uuid:n,eventID:a,status:o,expiresAt:s,reservations:i}}catch(t){return f.error("getCartByUUID error:",t),null}}async function de(r,e,t){try{const n={};for(const[s,i]of Object.entries(e)){const c=typeof s=="number"?s:parseInt(s,10);!Number.isNaN(c)&&i>0&&(n[c]=i)}const a={};if(t)for(const[s,i]of Object.entries(t)){const c=typeof s=="number"?s:parseInt(s,10);!Number.isNaN(c)&&i>0&&(a[c]=i)}const o=await fetch(`${E()}/cart/${r}`,{method:"PUT",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({quantities:n,...Object.keys(a).length>0?{donationAmounts:a}:{}})});if(!o.ok){const s=await o.json().catch(()=>({}));return f.error("Cart update failed:",s),!1}return!0}catch(n){return f.error("updateCartQuantities error:",n),!1}}async function fe(r){try{const e=await m(`${u()}/orders/complete/${r}`);return e.success?{success:!0,message:e.data?.message}:{success:!1,error:e.error||"Failed to complete reservation"}}catch(e){return f.error("Error completing reservation:",e),{success:!1,error:"Network error completing reservation"}}}async function me(r){try{const e=await m(`${u()}/orders/cancel/${r}`);return e.success?{success:!0,message:e.data?.message}:{success:!1,error:e.error||"Failed to cancel reservation"}}catch(e){return f.error("Error cancelling reservation:",e),{success:!1,error:"Network error cancelling reservation"}}}async function pe(r,e){try{const t=await m(`${u()}/orders/create`,{eventID:r,promoCode:e});return t.success?t.data:(f.error("Create order failed:",t.error),null)}catch(t){return f.error("createOrder error:",t),null}}async function ge(r){return g(`${u()}/orders/${r}`)}async function ye(r,e){try{const t=await m(`${E()}/validatePaymentIntent/${r}`,e);if(!t.success)return f.error("Payment validation failed:",t.error),{success:!1,status:"failed",error:t.error||"Payment validation failed"};const n=t.data;return{success:!0,status:n.status||"Payment succeeded",orderUUID:n.orderUUID||n.uuid}}catch(t){return f.error("validatePaymentIntent error:",t),null}}async function ve(r){try{const e=await m(`${u()}/orders/extend-session`,{orderUuid:r});if(!e.success)return{success:!1,error:e.error||"Failed to extend session",statusCode:e.statusCode};const t=e.data;return{success:!0,newExpiryTime:t.newExpiryTime,remainingExtensions:t.remainingExtensions}}catch(e){return f.error("Error extending checkout session:",e),{success:!1,error:"Network error extending session"}}}async function he(r){try{const e=await b(`${u()}/orders/session/${r}`);if(!e.success)return{error:e.error||"No active session found",notFound:e.statusCode===404};const t=e.data;return{expiresAt:t.expiresAt,extensionCount:t.extensionCount,remainingExtensions:t.remainingExtensions,canExtend:t.canExtend,reservationCount:t.reservationCount}}catch(e){return f.error("Error getting session status:",e),{error:"Network error getting session status"}}}async function we(r={}){try{const e=await m(`${u()}/orders/create`,r);return e.success?e.data?.uuid??null:(f.error("Order initiation failed:",e.error),null)}catch(e){return f.error("initiateOrder error:",e),null}}async function Ce(r){if(typeof window>"u")return;const t=new URLSearchParams(window.location.search).get("utm_source")||"Direct";try{await fetch(`${u()}/utm/${r}/${encodeURIComponent(t)}`)}catch(n){f.error("UTM tracking failed:",n)}}const O=$.createLogger("VC"),ke=()=>E();async function _e(r,e){try{if(!e||!e.trim())return{valid:!1,error:"Promo code is required"};const t=encodeURIComponent(e.trim()),n=await b(`/promo-codes/validate/${r}/${t}`);if(!n.success)return n.statusCode===404?{valid:!1,error:"Invalid promo code"}:{valid:!1,error:"Failed to validate code"};const a=n.data;return{valid:a.valid??!0,revealHiddenTickets:a.revealHiddenTickets,revealTicketIds:a.revealTicketIds,provideDiscount:a.provideDiscount,discountType:a.discountType,amount:a.amount,code:a.code||e}}catch(t){return O.error("Error validating promo code:",t),{valid:!1,error:"Network error validating code"}}}async function Pe(r){try{const e=await b(`/promo-codes/check/${r}`);return e.success?e.data.hasPromoCodes===!0:!0}catch(e){return O.error("Error checking promo codes availability:",e),!0}}async function be(r,e){try{const t=await m(`${ke()}/cart/${r}/apply-promo`,{promoCode:e});return t.success?{success:!0}:{success:!1,error:t.error||"Failed to apply promo code"}}catch(t){return O.error("Error applying promo code:",t),{success:!1,error:"Network error applying code"}}}async function $e(r){try{const e=await m(`/orders/${r}/remove-promo`);return e.success?{success:!0}:{success:!1,error:e.error||"Failed to remove promo code"}}catch(e){return O.error("Error removing promo code:",e),{success:!1,error:"Network error removing code"}}}function Ee(r){const e=r??{};return{performers:Array.isArray(e.performers)?e.performers:[],showPerformers:e.showPerformers===!0}}const l=$.createLogger("VC"),x=new Map;async function Te(r,e=fetch,t){const n=t?`${r}:pw`:String(r);if(e===fetch){const o=x.get(n);if(o)return o}const a=(async()=>{try{const o=t?`${u()}/events/${r}?password=${encodeURIComponent(t)}`:`${u()}/events/${r}`,s=await e(o);if(!s.ok)throw new v.AppError(`Failed to fetch event details: ${s.status}`,"lib/api/events/fetchEventDetails");return await s.json()}catch(o){return l.error("Error fetching event details:",o),null}})();return e===fetch&&(x.set(n,a),a.finally(()=>{x.get(n)===a&&x.delete(n)})),a}async function Ie(r){try{const e=await g(`${u()}/tickets/event/${r}`);return Array.isArray(e)?e:[]}catch(e){return l.error("Error fetching tickets:",e),[]}}async function Ae(r){try{if(!r)return l.warn("fetchEventPerformers called without eventId"),{performers:[],showPerformers:!1};const e=await g(`${u()}/events/${r}/performers`);return e?Ee(e):(l.error("Failed to fetch performers: network or server error"),{performers:[],showPerformers:!1})}catch(e){return l.error("Error fetching event performers:",e),{performers:[],showPerformers:!1}}}async function Se(r){try{if(!r)return l.warn("fetchAllVenues called without orgId"),[];const e=await g(`${u()}/venues/organization/${r}`);return e?Array.isArray(e)?e:[]:(l.error("Failed to fetch venues: network or server error"),[])}catch(e){return l.error("Error fetching venues:",e),[]}}async function De(r){try{if(!r)return l.warn("fetchVenueEvents called without venueId"),[];const e=await g(`${u()}/events/venue/${r}`);return e?Array.isArray(e)?e:[]:(l.error("Failed to fetch venue events: network or server error"),[])}catch(e){return l.error("Error fetching venue events:",e),[]}}async function Re(r,e,t){try{const n=await g(`${u()}/events/venue/${r}/month/${e}/${t}`);return n?Array.isArray(n)?n:Array.isArray(n.events)?n.events:[]:(l.error("Failed to fetch month events: network or server error"),[])}catch(n){return l.error("Error fetching month events:",n),[]}}async function xe(r,e,t){try{const n=await g(`${u()}/events/organization/${r}/month/${e}/${t}`);return n?Array.isArray(n)?n:Array.isArray(n.events)?n.events:[]:(l.error("Failed to fetch org month events: network or server error"),[])}catch(n){return l.error("Error fetching org month events:",n),[]}}async function Ne(r){try{const e=await g(`${u()}/series/${r}/occurrences`);return e||(l.error("Failed to fetch series occurrences: network or server error"),null)}catch(e){return l.error("Error fetching series occurrences:",e),null}}async function Ue(r,e){try{const t=await g(`${u()}/series/${r}/occurrences?venueId=${e}`);return t||(l.error("Failed to fetch series with CTA: network or server error"),null)}catch(t){return l.error("Error fetching series occurrences:",t),null}}async function Oe(r,e){try{const t=e?`?slug=${encodeURIComponent(e)}`:"",n=await g(`${u()}/resolve/${encodeURIComponent(String(r))}${t}`);if(!n||!n.type)throw new v.AppError("Failed to resolve entity","lib/api/events/resolvePublicEntity");return n}catch(t){return l.error("Error resolving public entity:",t),null}}async function Fe(r){try{const e=await g(`${u()}/series/${r}/page`);if(!e)throw new v.AppError("Failed to fetch series page","lib/api/events/fetchSeriesPage");return e}catch(e){return l.error("Error fetching series page:",e),null}}async function qe(r,e){try{const t=e?`${u()}/collections/${r}?password=${encodeURIComponent(e)}`:`${u()}/collections/${r}`,n=await g(t);if(!n)throw new v.AppError("Failed to fetch collection","lib/api/events/fetchPublicCollection");return n}catch(t){return l.error("Error fetching collection:",t),null}}async function Le(r,e){try{const t=encodeURIComponent(e);return(await g(`${u()}/collections/${r}/check-password/${t}`))?.valid===!0}catch(t){return l.error("Error checking collection password:",t),!1}}async function Ve(r,e){try{const t=await m(`${u()}/events/${r}/check-password`,{password:e});if(!t.success)return{valid:!1};const n=t.data;return typeof n=="boolean"?{valid:n}:{valid:n.valid===!0}}catch(t){return l.error("Error checking event password:",t),{valid:!1}}}async function Ge(r,e){try{const t=e?`${u()}/events/venue/${e}`:r?`${u()}/venues/organization/${r}`:`${u()}/health`;return(await fetch(t,{method:"HEAD"})).ok}catch(t){return l.error("Network connection test failed:",t),!1}}const I=$.createLogger("VC");async function W(r){try{if(!r)return I.warn("getVenue called without venueId"),null;const e=await b(`/venues/${r}`);return e.success?e.data??null:(I.error(`Failed to fetch venue: ${e.statusCode}`),null)}catch(e){return I.error("Error fetching venue:",e),null}}async function Be(r){const e=await W(r);return e?{serviceFeePercentage:e.serviceFeePercentage??0,serviceFeeCents:e.serviceFeeCents??0,taxPercentage:e.taxPercentage??0}:null}async function je(r){try{if(!r)return I.warn("getVenueBySlug called without slug"),null;const e=encodeURIComponent(r),t=await b(`/venues/slug/${e}`);return t.success?t.data??null:(I.error(`Failed to fetch venue by slug: ${t.statusCode}`),null)}catch(e){return I.error("Error fetching venue by slug:",e),null}}function ze(r){const e=r??{},t=(e.appliedAmount??0)/100,n=e.remainingTotal??0,a=e.fullyCoveredByCard??n<=0,o=!a;return{valid:!0,giftCardCode:e.giftCardCode,giftCardAmount:t,giftCardBalance:e.giftCardBalance,paymentType:a?"gift_card_only":"split",stripeAmount:n,orderTotal:t+n,requiresStripe:o}}const C=$.createLogger("VC"),Me="https://get-micdrop.com",We=`${Me}/api/orders/v2`,G=()=>E();async function He(r){try{const e=await m(`${We}/gift-cards`,r);if(!e.success)throw C.error("Gift card purchase creation failed:",e.error),new v.AppError(e.error||"Failed to create gift card purchase","lib/api/gift-cards/createGiftCardPurchase");return C.debug("Gift card purchase created:",e.data),e.data}catch(e){return C.error("Gift card purchase creation error:",e),null}}async function Qe(r,e){try{const t=await m(`${G()}/cart/${r}/apply-gift-card`,{giftCardCode:e});return t.success?ze(t.data):t.statusCode===429?{valid:!1,error:"Too many attempts. Please wait a moment and try again."}:(C.error("Apply gift card failed:",t.error),{valid:!1,error:t.error||"Invalid gift card code"})}catch(t){return C.error("applyGiftCard error:",t),{valid:!1,error:"Network error. Please check your connection and try again."}}}async function Je(r,e){try{const t=await M(`${G()}/cart/${r}/gift-card`,e?{body:JSON.stringify({giftCardCode:e})}:void 0);return t.success?{success:!0}:(C.error("Remove gift card failed:",t.error),{success:!1,error:t.error||"Failed to remove gift card"})}catch(t){return C.error("removeGiftCard error:",t),{success:!1,error:"Network error. Please check your connection and try again."}}}async function Ze(r,e){try{const t=await m(`${G()}/cart/${r}/complete-gift-card-payment`,{firstName:e.firstName,lastName:e.lastName,email:e.email,phoneNumber:e.phoneNumber||null,mailingList:e.mailingList||!1});return t.success?{success:!0,orderId:t.data?.orderId,confirmationNumber:t.data?.confirmationNumber}:(C.error("Complete gift card payment failed:",t.error),{success:!1,error:t.error||"Failed to complete payment"})}catch(t){return C.error("completeGiftCardPayment error:",t),{success:!1,error:"Network error. Please check your connection and try again."}}}const q=$.createLogger("VC"),Ye={waitlist_not_enabled:"Waitlist is not available for this event",event_not_found:"Event not found",invalid_phone:"Please enter a valid phone number",already_purchased:"You have already purchased tickets for this event",phone_already_registered:"This phone number is already on the waitlist"};async function Ke(r,e,t=null,n=!1){try{const a={email:e};t&&n&&(a.phone=t,a.smsOptIn=!0);const o=await m(`/events/${r}/waitlist`,a);return o.success?{success:!0,updated:o.data?.updated}:(q.error("Join waitlist failed:",o.error),{success:!1,error:Ye[o.error??""]||"Failed to join waitlist. Please try again."})}catch(a){return q.error("joinWaitlist error:",a),{success:!1,error:"Network error. Please check your connection and try again."}}}async function Xe(r){const e={waitlistEnabled:!1,soldOut:!1,gated:!1};try{const t=await b(`/events/${r}/waitlist/status`);return t.success?{waitlistEnabled:!!t.data?.waitlistEnabled,soldOut:!!t.data?.soldOut,gated:!!t.data?.gated}:e}catch(t){return q.error("getWaitlistStatus error:",t),e}}function er(r,e,t={}){const{cancelled:n=!1,isRegistration:a=!1,waitlistEnabled:o=!1}=t,s=new Date;if(n)return{text:"Cancelled",disabled:!0,reason:"cancelled"};const i=r.endDateTime||r.startDateTime;if(i&&new Date(i)<s)return{text:"Sales ended",disabled:!0,reason:"event_past"};const c=r?.hasPurchasableHiddenTickets===!0||Array.isArray(e)&&e.some(X.isHiddenTicketPurchasable),k=(e||[]).filter(d=>d.salesChannel!==2&&!d.isHidden&&!(typeof d.visibility=="number"&&d.visibility>=2));if(k.length===0)return c?{text:a?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"}:{text:"No tickets available",disabled:!0,reason:"no_tickets"};let p=!1,_=!0,h=!0,w=null;for(const d of k){const T=d.salesBegin||d.salesStart||d.saleBegin||d.onSaleStart,D=d.salesEnd||d.saleEnd||d.onSaleEnd,P=d.remainingCapacity??d.quantityRemaining??d.quantity,A=d.soldOut||P!=null&&P<=0,S=T?new Date(T)>s:!1,B=D?new Date(D)<s:!1;if(!A&&!S&&!B&&(p=!0),A||(_=!1),S||(h=!1),S&&T&&!A&&!B){const j=new Date(T);(!w||j<w)&&(w=j)}}if(p)return{text:a?"Reserve a spot":"Get tickets",disabled:!1,reason:"available"};if(h&&w){if(c)return{text:a?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"};const d=w.getTime()-s.getTime(),T=d/(1e3*60*60),D=d/(1e3*60*60*24);let P;if(T<24)P=R.formatTime(w,{hour12:!0},"en-US");else if(D<=7)P=R.formatDateRaw(w,{weekday:"short",hour:"numeric",minute:"2-digit",hour12:!0},"en-US");else{const A=R.formatDateRaw(w,{month:"short",day:"numeric"},"en-US"),S=R.formatTime(w,{hour12:!0},"en-US");P=`${A} ${S}`}return{text:`On sale ${P}`,disabled:!0,reason:"coming_soon"}}return _?c?{text:a?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"}:o?{text:"Join Waitlist",disabled:!1,reason:"sold_out_waitlist"}:{text:"Sold out",disabled:!0,reason:"sold_out"}:c?{text:a?"Reserve a spot":"Get tickets",disabled:!1,reason:"hidden_only"}:{text:"Sales ended",disabled:!0,reason:"sales_ended"}}function H(r){const e=r;return{uuid:e.uuid||String(e.id||e.ID||""),id:e.id||e.ID,ticketNumber:e.ticketNumber||e.ticket_number,orderId:e.orderId||e.order_id,attendeeFirstName:e.attendeeFirstName||e.attendee_first_name||e.firstName,attendeeLastName:e.attendeeLastName||e.attendee_last_name||e.lastName,attendeeEmail:e.attendeeEmail||e.attendee_email||e.email,ticketName:e.ticketName||e.ticket_name||e.name||"",ticketTypeId:e.ticketTypeId||e.ticket_type_id,purchasePrice:e.purchasePrice||e.purchase_price||e.price||0,status:e.status,checkedIn:e.checkedIn||e.checked_in,checkedInAt:e.checkedInAt||e.checked_in_at}}function Q(r){const e=r,t=e.purchasedTickets||e.tickets||e.purchased_tickets||[];return{uuid:e.uuid||String(e.id||e.ID||""),id:e.id||e.ID,customerEmail:e.customerEmail||e.email||e.customer_email||"",customerFirstName:e.customerFirstName||e.firstName||e.first_name,customerLastName:e.customerLastName||e.lastName||e.last_name,status:e.status||"unknown",totalAmount:e.totalAmount||e.total||e.total_amount||0,subtotal:e.subtotal,serviceFeesAmount:e.serviceFeesAmount||e.serviceFee||e.service_fee||e.service_fees_amount||0,taxAmount:e.taxAmount||e.tax||e.tax_amount||0,discount:e.discount||0,paymentIntentId:e.paymentIntentId||e.payment_intent_id,paymentMethod:e.paymentMethod||e.payment_method,purchasedTickets:t.map(H),createdAt:e.createdAt||e.created_at,updatedAt:e.updatedAt||e.updated_at}}const rr=H,tr=Q;function nr(r){const e=Q(r),t=e.uuid.split("-")[0]||e.uuid;return{orderId:e.uuid,displayOrderId:t,email:e.customerEmail,customerName:[e.customerFirstName,e.customerLastName].filter(Boolean).join(" "),total:e.totalAmount,formattedTotal:`${v.formatCurrency(e.totalAmount/100)}`,ticketCount:e.purchasedTickets.length,status:e.status}}const ar="https://micdrop-images.sfo3.digitaloceanspaces.com";function J(r){return r?r.startsWith("http")?r:`${ar}/${r.replace(/^\//,"")}`:""}function L(r){const e=r.imageUrl||r.imageURL||r.image_url||r.image||"";return J(e)}function Z(r){const e=r.ctaState||r.cta_state;if(e)return e;if(r.isCancelled||r.is_cancelled)return"ended";const t=r.startDateTime||r.start_date_time||r.date;if(t){const s=new Date(t).getTime(),i=Date.now();if(s<i)return"ended"}const n=r.ticketsAvailable??r.tickets_available;if(n!==void 0)return n<=0?"sold_out":"available";const a=r.availableTickets||r.available_tickets||r.tickets||[];return a.length===0?"coming_soon":a.reduce((s,i)=>{const c=i.quantityAvailable??i.quantity_available??i.quantity??0,k=i.quantitySold??i.quantity_sold??0;return s+Math.max(0,c-k)},0)<=0?"sold_out":"available"}function Y(r){const e=r;return{id:e.id||e.ID,name:e.name||e.ticketName||"",description:e.description,price:e.price||0,quantity:e.quantity||e.totalQuantity||0,quantitySold:e.quantitySold||e.quantity_sold||0,quantityAvailable:e.quantityAvailable||e.quantity_available||(e.quantity||0)-(e.quantitySold||0),minPerOrder:e.minPerOrder||e.min_per_order||1,maxPerOrder:e.maxPerOrder||e.max_per_order||10,saleStartDate:e.saleStartDate||e.sale_start_date,saleEndDate:e.saleEndDate||e.sale_end_date,isHidden:e.isHidden||e.is_hidden||!1,revealWithPromoCode:e.revealWithPromoCode||e.reveal_with_promo_code,ticketType:e.ticketType||e.ticket_type||0,sectionId:e.sectionId||e.section_id,sortOrder:e.sortOrder||e.sort_order||0}}function K(r){const e=r,n=(e.availableTickets||e.available_tickets||e.tickets||[]).map(Y),a=n.map(i=>i.price).filter(i=>i>0),o=a.length>0?Math.min(...a):void 0,s=a.length>0?Math.max(...a):void 0;return{eventID:e.eventID||e.id||e.ID||0,id:e.id||e.ID,name:e.name||e.title||"",title:e.title||e.name,slug:e.slug,description:e.description,date:e.date||e.startDateTime||e.start_date_time||"",startDateTime:e.startDateTime||e.start_date_time,endDateTime:e.endDateTime||e.end_date_time,doorsOpenTime:e.doorsOpenTime||e.doors_open_time,timezone:e.timezone||e.time_zone,venueId:e.venueId||e.venue_id,venueName:e.venueName||e.venue_name,venueAddress:e.venueAddress||e.venue_address,location:e.location||e.venueAddress||e.venue_address,imageUrl:L(e),imageURL:L(e),status:e.status,isPublished:e.isPublished??e.is_published,isCancelled:e.isCancelled??e.is_cancelled,availableTickets:n,ticketsAvailable:e.ticketsAvailable??e.tickets_available??n.reduce((i,c)=>i+(c.quantityAvailable||0),0),ticketsSold:e.ticketsSold??e.tickets_sold,minPrice:e.minPrice??e.min_price??o,maxPrice:e.maxPrice??e.max_price??s,ctaText:e.ctaText||e.cta_text,ctaState:Z(e),showPerformers:e.showPerformers??e.show_performers,eventSeriesId:e.eventSeriesId||e.event_series_id,seriesInstanceNumber:e.seriesInstanceNumber||e.series_instance_number,timeZone:e.timeZone,eventSummary:e.eventSummary,password:e.password,hasPassword:e.hasPassword,disclaimer:e.disclaimer,ticketType:e.ticketType,eventTicketingType:e.eventTicketingType,ageRestriction:e.ageRestriction,displayAgeRestriction:e.displayAgeRestriction,displayStartTime:e.displayStartTime,displayEndTime:e.displayEndTime,displayDoorsTime:e.displayDoorsTime,collectionId:e.collectionId||e.collection_id,ticketsRemaining:e.ticketsRemaining,ticketsTotal:e.ticketsTotal,hasHiddenTickets:e.hasHiddenTickets,stage:e.stage,stageName:e.stageName,stageId:e.stageId,eventCategoryTypes:e.eventCategoryTypes,publicPerformers:e.publicPerformers,collectionIds:e.collectionIds,venue:e.venue,performers:e.performers,faqs:e.faqs,showtimes:e.showtimes,purchasedTickets:e.purchasedTickets}}const sr=Y,or=K,ir=K,cr="https://micdrop-images.sfo3.digitaloceanspaces.com";function ur(r){return r?r.startsWith("http")?r:`${cr}/${r.replace(/^\//,"")}`:""}function lr(r){const e=r,t=e.logoUrl||e.logo_url||e.logo;return{id:e.id||e.ID||0,name:e.name||"",slug:e.slug,address:e.address,googleLocationNameCache:e.googleLocationNameCache||e.google_location_name_cache,city:e.city,state:e.state,zipCode:e.zipCode||e.zip_code,country:e.country,timezone:e.timezone||e.time_zone,logoUrl:ur(t),serviceFeePercentage:e.serviceFeePercentage??e.service_fee_percentage??0,serviceFeeCents:e.serviceFeeCents??e.service_fee_cents??0,taxPercentage:e.taxPercentage??e.tax_percentage??0,organizationId:e.organizationId||e.organization_id}}const dr=lr;function fr(r){const e=r;return{serviceFeePercentage:e.serviceFeePercentage??e.service_fee_percentage??0,serviceFeeCents:e.serviceFeeCents??e.service_fee_cents??0,taxPercentage:e.taxPercentage??e.tax_percentage??0}}function mr(r){return[r.address,r.city,r.state,r.zipCode].filter(Boolean).join(", ")}function N(r){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)n!=="__proto__"&&(r[n]=t[n])}return r}var pr={read:function(r){return r[0]==='"'&&(r=r.slice(1,-1)),r.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(r){return encodeURIComponent(r).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function V(r,e){function t(a,o,s){if(!(typeof document>"u")){s=N({},e,s),typeof s.expires=="number"&&(s.expires=new Date(Date.now()+s.expires*864e5)),s.expires&&(s.expires=s.expires.toUTCString()),a=encodeURIComponent(a).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var i="";for(var c in s)s[c]&&(i+="; "+c,s[c]!==!0&&(i+="="+s[c].split(";")[0]));return document.cookie=a+"="+r.write(o,a)+i}}function n(a){if(!(typeof document>"u"||arguments.length&&!a)){for(var o=document.cookie?document.cookie.split("; "):[],s={},i=0;i<o.length;i++){var c=o[i].split("="),k=c.slice(1).join("=");try{var p=decodeURIComponent(c[0]);if(p in s||(s[p]=r.read(k,p)),a===p)break}catch{}}return a?s[a]:s}}return Object.create({set:t,get:n,remove:function(a,o){t(a,"",N({},o,{expires:-1}))},withAttributes:function(a){return V(this.converter,N({},this.attributes,a))},withConverter:function(a){return V(N({},this.converter,a),this.attributes)}},{attributes:{value:Object.freeze(e)},converter:{value:Object.freeze(r)}})}V(pr,{path:"/"});v.createLogger("checkoutState");v.createLogger("orderApi");v.createLogger("utm");exports.apiDelete=M;exports.apiGet=b;exports.apiPost=m;exports.apiPut=oe;exports.applyGiftCard=Qe;exports.applyPromoCode=be;exports.calculateCtaState=Z;exports.cancelReservation=me;exports.checkCollectionPassword=Le;exports.checkEventPassword=Ve;exports.completeGiftCardPayment=Ze;exports.completeReservation=fe;exports.computeCtaState=er;exports.configureApi=re;exports.createGiftCardPurchase=He;exports.createOrder=pe;exports.createPaymentIntent=ue;exports.extendCheckoutSession=ve;exports.extractVenueFees=fr;exports.fetchAllVenues=Se;exports.fetchEventDetails=Te;exports.fetchEventPerformers=Ae;exports.fetchEventTickets=Ie;exports.fetchPublicCollection=qe;exports.fetchSeriesOccurrences=Ue;exports.fetchSeriesPage=Fe;exports.fetchVenueEvents=De;exports.formatVenueAddress=mr;exports.getApiConfig=te;exports.getCDNImageUrl=J;exports.getCartByUUID=le;exports.getClientIP=ae;exports.getEventImageUrl=L;exports.getLegacyPublicUrl=ne;exports.getMonthEvents=Re;exports.getOrder=ge;exports.getOrdersV2Url=E;exports.getOrgMonthEvents=xe;exports.getPublicBaseUrl=u;exports.getSeriesOccurrences=Ne;exports.getSessionStatus=he;exports.getVenue=W;exports.getVenueBySlug=je;exports.getVenueFees=Be;exports.getWaitlistStatus=Xe;exports.hasPromoCodes=Pe;exports.initiateOrder=we;exports.joinWaitlist=Ke;exports.removeGiftCard=Je;exports.removePromoCode=$e;exports.resolvePublicEntity=Oe;exports.testNetworkConnection=Ge;exports.trackUTMSource=Ce;exports.transformAvailableTicket=sr;exports.transformEvent=or;exports.transformEventData=ir;exports.transformOrder=tr;exports.transformOrderForDisplay=nr;exports.transformTicket=rr;exports.transformVenue=dr;exports.updateCartQuantities=de;exports.validatePaymentIntent=ye;exports.validatePromoCode=_e;
2
2
  //# sourceMappingURL=api.cjs.map