@getmicdrop/venue-calendar 4.3.48 → 4.3.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +818 -818
- package/dist/{CartView-CVKiyVOl.js → CartView-CqEvLqcY.js} +26 -26
- package/dist/{Checkout-CylGX5N6.js → Checkout-kqd7pwt8.js} +5 -5
- package/dist/{Checkout-BIau3rG4.js → Checkout-xNDWtRm4.js} +7 -7
- package/dist/{CheckoutTimer-DZ6F5dzh.js → CheckoutTimer-B5TjKUG4.js} +1 -1
- package/dist/{CollectionView-CX0yBblS.js → CollectionView-CiXDrCP-.js} +3 -3
- package/dist/{Event-CfiMQha6.js → Event-BQxHv-o0.js} +4 -4
- package/dist/{EventPage-Di0OwjvJ.js → EventPage-i0e9Ips0.js} +4 -4
- package/dist/{RecommendationsRail-VEK_pMvu.js → RecommendationsRail-tD2S6OIO.js} +18 -18
- package/dist/{SeriesPage-Cvqg0DwI.js → SeriesPage-B8GyXngM.js} +2 -2
- package/dist/{Success-D1Y2shCA.js → Success-C2GgrwlB.js} +6 -6
- package/dist/{ViewTicketsEmbed-DEOXlEri.js → ViewTicketsEmbed-cn4JCf10.js} +122 -126
- package/dist/api/api.cjs +1 -1
- package/dist/api/api.mjs +0 -2
- package/dist/api/checkout-availability.d.ts +4 -1
- package/dist/api/gate-password-cache.d.ts +4 -3
- package/dist/api/gift-cards.d.ts +1 -0
- package/dist/api/route-manifest.d.ts +21 -4
- package/dist/api/transformers/collection.d.ts +0 -5
- package/dist/api/transformers/event.d.ts +0 -1
- package/dist/api/transformers/index.d.ts +14 -18
- package/dist/api/transformers/series.d.ts +0 -5
- package/dist/api/transformers/venue.d.ts +1 -0
- package/dist/api/types.d.ts +16 -1
- package/dist/{api-BqDkZFK5.js → api-Dvs4Mzxe.js} +116 -219
- package/dist/{constants-MMSOmBOv.js → constants-CJyMUKEX.js} +3 -45
- package/dist/{event-transform-CJLXVtwq.js → event-transform-Cvr7dDpq.js} +158 -55
- package/dist/{i18n-CbpdmhA9.js → i18n-DMOn4Sr8.js} +2 -2
- package/dist/{showcase-state-options-DxMKyehO.js → showcase-state-options-Da1QiMDF.js} +3 -49
- package/dist/types/index.d.ts +575 -575
- package/dist/{utils-CBt88H2f.js → utils-CJ3W3Iul.js} +1 -1
- package/dist/venue-calendar.css +1 -1
- package/dist/venue-calendar.es.js +1016 -1016
- package/dist/venue-calendar.iife.js +56 -56
- package/dist/venue-calendar.umd.js +50 -50
- package/package.json +220 -220
- package/src/lib/theme.js +222 -222
- /package/dist/locales/{4.3.48 → 4.3.50}/flow/de.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/flow/es.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/flow/fr.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/flow/id.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/flow/it.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/flow/ja.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/flow/ko.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/flow/nl.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/flow/pl.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/flow/pt-br.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/flow/tr.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/flow/zh.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/main/de.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/main/es.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/main/fr.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/main/id.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/main/it.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/main/ja.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/main/ko.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/main/nl.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/main/pl.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/main/pt-br.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/main/tr.js +0 -0
- /package/dist/locales/{4.3.48 → 4.3.50}/main/zh.js +0 -0
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 v(){return``}var ee=e=>new Promise(t=>setTimeout(t,e));async function y(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 ee(n.retryDelay*2**(r-1))}throw a}async function b(e,t){return C(`GET`,e,void 0,t)}async function x(e,t,n){return C(`POST`,e,t,n)}async function te(e,t,n){return C(`PUT`,e,t,n)}async function S(e,t){return C(`DELETE`,e,void 0,t)}async function C(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 y(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 w(e,t){try{let n=e.startsWith(f.baseUrl),{widgetKey:r,...i}=t??{},o=await y(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 ne(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 re(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 ie(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(ne),giftCards:(t.GiftCards??t.giftCards??[]).map(re)}}var ae=[`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 ae)t[n]=ce(e[n]);return t.utmSource||=se,t}function ue(e){let t={};for(let n of ae)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 x(`${_()}/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 b(`${_()}/cart/${e}`);if(!n.success)return null;let{uuid:r,eventID:i,status:a,expiresAt:o,reservations:s,giftCards:c}=ie(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 x(`${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 x(`${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 x(`${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 w(`${h()}/orders/${e}`)}async function Pe(e,t,n){let r=M(n);try{let n=await x(`${_()}/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 x(`${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 b(`${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 x(`${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 b(`/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 b(`/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 x(`${_()}/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 x(`/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 w(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 w(`${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 w(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 w(`${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 w(`${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 b(`/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 b(`/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 b(`/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 x(`${_()}/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 x(`${_()}/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 S(`${_()}/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 x(`${_()}/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 x(`/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 x(`/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 x(`/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 b(`/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(),d=u===`not_started`;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 f=e?.hasPurchasableHiddenTickets===!0||Array.isArray(t)&&t.some(i.isHiddenTicketPurchasable),p=()=>f?{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 p();let m=(t||[]).filter(e=>e.salesChannel!==2&&!e.isHidden&&!(typeof e.visibility==`number`&&e.visibility>=i.TICKET_VISIBILITY.HIDDEN));if(m.length===0)return f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`No tickets available`,disabled:!0,reason:`no_tickets`};let h=!1,g=!0,_=!0,v=null;for(let e of m){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&&(h=!0),a||(g=!1),o||(_=!1),o&&t&&!a&&!s&&(!v||(0,r.compareInstants)(t,v)<0)&&(v=t)}return d&&h?f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`On sale soon`,disabled:!0,reason:`coming_soon`}:h?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`available`}:_&&v?f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`On sale ${Rt(v,(0,r.compareInstants)(v,c),[e.timezone,e.timeZone].find(e=>!!e&&(0,r.isValidIANATimezone)(e)))}`,disabled:!0,reason:`coming_soon`}:g?p():f?{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=S,exports.apiGet=b,exports.apiPost=x,exports.apiPut=te,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=v,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");(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 v(){return``}var ee=e=>new Promise(t=>setTimeout(t,e));async function y(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 ee(n.retryDelay*2**(r-1))}throw a}async function b(e,t){return C(`GET`,e,void 0,t)}async function x(e,t,n){return C(`POST`,e,t,n)}async function te(e,t,n){return C(`PUT`,e,t,n)}async function S(e,t){return C(`DELETE`,e,void 0,t)}async function C(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 y(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 w(e,t){try{let n=e.startsWith(f.baseUrl),{widgetKey:r,...i}=t??{},o=await y(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 ne(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 re(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 ie(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(ne),giftCards:(t.GiftCards??t.giftCards??[]).map(re)}}var ae=[`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 ae)t[n]=ce(e[n]);return t.utmSource||=se,t}function ue(e){let t={};for(let n of ae)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 x(`${_()}/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 b(`${_()}/cart/${e}`);if(!n.success)return null;let{uuid:r,eventID:i,status:a,expiresAt:o,reservations:s,giftCards:c}=ie(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 x(`${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 x(`${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 x(`${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 w(`${h()}/orders/${e}`)}async function Pe(e,t,n){let r=M(n);try{let n=await x(`${_()}/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 x(`${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 b(`${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 x(`${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 b(`/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 b(`/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 x(`${_()}/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 x(`/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 w(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 w(`${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 w(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 w(`${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 w(`${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 b(`/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 b(`/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 b(`/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 x(`${_()}/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 x(`${_()}/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 S(`${_()}/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 x(`${_()}/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 x(`/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 x(`/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 x(`/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 b(`/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(),d=u===`not_started`;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 f=e?.hasPurchasableHiddenTickets===!0||Array.isArray(t)&&t.some(i.isHiddenTicketPurchasable),p=()=>f?{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 p();let m=(t||[]).filter(e=>e.salesChannel!==2&&!e.isHidden&&!(typeof e.visibility==`number`&&e.visibility>=i.TICKET_VISIBILITY.HIDDEN));if(m.length===0)return f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`No tickets available`,disabled:!0,reason:`no_tickets`};let h=!1,g=!0,_=!0,v=null;for(let e of m){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&&(h=!0),a||(g=!1),o||(_=!1),o&&t&&!a&&!s&&(!v||(0,r.compareInstants)(t,v)<0)&&(v=t)}return d&&h?f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`On sale soon`,disabled:!0,reason:`coming_soon`}:h?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`available`}:_&&v?f?{text:o?`Reserve a spot`:`Get tickets`,disabled:!1,reason:`hidden_only`}:{text:`On sale ${Rt(v,(0,r.compareInstants)(v,c),[e.timezone,e.timeZone].find(e=>!!e&&(0,r.isValidIANATimezone)(e)))}`,disabled:!0,reason:`coming_soon`}:g?p():f?{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=S,exports.apiGet=b,exports.apiPost=x,exports.apiPut=te,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=v,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
|
@@ -3,8 +3,6 @@ import { ApiError as t, NotFoundError as n } from "@getmicdrop/svelte-components
|
|
|
3
3
|
import { asUSD as r, centsToDollars as i, createLogger as a, formatCurrency as o, formatFullName as s, getLocalStorage as c, getSessionStorage as l, resolveImageUrl as u, setLocalStorage as d, setSessionStorage as f, toCents as p } from "@getmicdrop/svelte-components";
|
|
4
4
|
import { browserNow as ee, compareInstants as m, formatDayOfWeek as h, formatEventDate as g, formatEventTime as _, formatLocal as v, formatTzAbbreviation as te, isValidIANATimezone as ne, toInstantOrNull as y } from "@getmicdrop/svelte-components/datetime";
|
|
5
5
|
import { TICKET_VISIBILITY as re, isHiddenTicketPurchasable as ie } from "@getmicdrop/svelte-components/transforms";
|
|
6
|
-
import "@getmicdrop/svelte-components/utils/timezones";
|
|
7
|
-
import "@getmicdrop/svelte-components/utils/formatters";
|
|
8
6
|
e("VC:config", { enabled: !0 });
|
|
9
7
|
//#endregion
|
|
10
8
|
//#region src/lib/api/client.ts
|
|
@@ -67,5 +67,8 @@ export declare function noteCheckoutOriginRejected(): void;
|
|
|
67
67
|
* request and the rest await it.
|
|
68
68
|
*/
|
|
69
69
|
export declare function probeCheckoutAvailability(): Promise<CheckoutAvailability>;
|
|
70
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* Test seam: forget the memo, the cache and the subscribers.
|
|
72
|
+
* @internal test-only reset of the module cache.
|
|
73
|
+
*/
|
|
71
74
|
export declare function resetCheckoutAvailability(): void;
|
|
@@ -54,7 +54,8 @@ export declare function forgetGatePassword(scope: GateScope, id: string | number
|
|
|
54
54
|
export declare function rememberGateUnlock(scope: GateScope, id: string | number): void;
|
|
55
55
|
/** Whether this page load has already cleared that gate. Never throws. */
|
|
56
56
|
export declare function recallGateUnlock(scope: GateScope, id: string | number): boolean;
|
|
57
|
-
/**
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Test hook: wipe the whole cache between cases.
|
|
59
|
+
* @internal test-only reset of the module cache.
|
|
60
|
+
*/
|
|
60
61
|
export declare function clearGatePasswordCache(): void;
|
package/dist/api/gift-cards.d.ts
CHANGED
|
@@ -115,5 +115,6 @@ export declare function getVenueBySlugResult(slug: string, customFetch?: typeof
|
|
|
115
115
|
*
|
|
116
116
|
* @param slug - Venue slug
|
|
117
117
|
* @returns Venue info or null on failure
|
|
118
|
+
* @internal no shipped caller left; gift-cards.test.ts is what exercises it.
|
|
118
119
|
*/
|
|
119
120
|
export declare function getVenueBySlug(slug: string, customFetch?: typeof fetch): Promise<VenueInfo | null>;
|
|
@@ -67,7 +67,10 @@ export declare const ORDERS_V2_ROOT = "/api/orders/v2";
|
|
|
67
67
|
*/
|
|
68
68
|
export declare const HTTP_METHODS: readonly ["GET", "HEAD", "POST", "PUT", "DELETE"];
|
|
69
69
|
export type HttpMethod = (typeof HTTP_METHODS)[number];
|
|
70
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* Whether a verb written at a call site is one this contract can reason about.
|
|
72
|
+
* @internal the manifest's readers are the route-answers contract and probe suites - nothing in the shipped widget reads it, which is the point of a manifest.
|
|
73
|
+
*/
|
|
71
74
|
export declare function isHttpMethod(verb: string): verb is HttpMethod;
|
|
72
75
|
/**
|
|
73
76
|
* Why a probe cannot mutate production — see PROBE SAFETY above. Required on
|
|
@@ -103,9 +106,15 @@ export interface BackendRoute {
|
|
|
103
106
|
/** A request that reaches the router and cannot change anything behind it. */
|
|
104
107
|
probe: Probe;
|
|
105
108
|
}
|
|
106
|
-
/**
|
|
109
|
+
/**
|
|
110
|
+
* The verbs that can write. These are the probes that need a safety claim.
|
|
111
|
+
* @internal the manifest's readers are the route-answers contract and probe suites - nothing in the shipped widget reads it, which is the point of a manifest.
|
|
112
|
+
*/
|
|
107
113
|
export declare function isMutating(method: HttpMethod): boolean;
|
|
108
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* Turn a manifest pattern into a matcher: `:name` matches any single segment.
|
|
116
|
+
* @internal the manifest's readers are the route-answers contract and probe suites - nothing in the shipped widget reads it, which is the point of a manifest.
|
|
117
|
+
*/
|
|
109
118
|
export declare function patternMatches(pattern: string, concrete: string): boolean;
|
|
110
119
|
/**
|
|
111
120
|
* A path param value that is syntactically valid and cannot exist.
|
|
@@ -120,6 +129,7 @@ export declare const NONEXISTENT_ID = "00000000-0000-0000-0000-000000000000";
|
|
|
120
129
|
* Routes the deployed backend ANSWERS. Verified by route-answers-probe.test.ts.
|
|
121
130
|
* Adding a row here without the probe agreeing is exactly the lie this gate exists
|
|
122
131
|
* to catch — the probe will fail the row.
|
|
132
|
+
* @internal the manifest's readers are the route-answers contract and probe suites - nothing in the shipped widget reads it, which is the point of a manifest.
|
|
123
133
|
*/
|
|
124
134
|
export declare const SERVED_ROUTES: BackendRoute[];
|
|
125
135
|
export interface UnservedRoute extends Omit<BackendRoute, 'body'> {
|
|
@@ -137,6 +147,7 @@ export interface UnservedRoute extends Omit<BackendRoute, 'body'> {
|
|
|
137
147
|
* contract test fails if a NEW call site names a route in neither list, and the
|
|
138
148
|
* probe fails if a route listed here starts answering (fix the call site, then
|
|
139
149
|
* move the row into SERVED_ROUTES). The list may only ever shrink.
|
|
150
|
+
* @internal the manifest's readers are the route-answers contract and probe suites - nothing in the shipped widget reads it, which is the point of a manifest.
|
|
140
151
|
*/
|
|
141
152
|
export declare const UNSERVED_ROUTES: UnservedRoute[];
|
|
142
153
|
export interface RetiredRoute {
|
|
@@ -166,6 +177,7 @@ export interface RetiredRoute {
|
|
|
166
177
|
* served one with a probe recipe proving the router answers it. That is a
|
|
167
178
|
* deliberate two-place edit, which is the whole point: coming back from the
|
|
168
179
|
* dead should cost more than adding a line.
|
|
180
|
+
* @internal the manifest's readers are the route-answers contract and probe suites - nothing in the shipped widget reads it, which is the point of a manifest.
|
|
169
181
|
*/
|
|
170
182
|
export declare const RETIRED_ROUTES: RetiredRoute[];
|
|
171
183
|
/**
|
|
@@ -182,6 +194,7 @@ export declare const RETIRED_ROUTES: RetiredRoute[];
|
|
|
182
194
|
* Takes the PATH, not just the body: the orders-v2 and public hosts answer a
|
|
183
195
|
* dead name with different bodies, so the body alone cannot be read without
|
|
184
196
|
* knowing which host produced it (#808).
|
|
197
|
+
* @internal the manifest's readers are the route-answers contract and probe suites - nothing in the shipped widget reads it, which is the point of a manifest.
|
|
185
198
|
*/
|
|
186
199
|
export declare function isRouterNotFound(status: number, bodyText: string, path: string): boolean;
|
|
187
200
|
export interface CanaryHost {
|
|
@@ -200,7 +213,11 @@ export interface CanaryHost {
|
|
|
200
213
|
* the discriminator cannot tell a dead name from a live one on a host whose 404
|
|
201
214
|
* shape it has never been taught. A new host prefix must be added to HOSTS (with
|
|
202
215
|
* its router-404 discriminator) before its rows can be trusted.
|
|
216
|
+
* @internal the manifest's readers are the route-answers contract and probe suites - nothing in the shipped widget reads it, which is the point of a manifest.
|
|
203
217
|
*/
|
|
204
218
|
export declare function hostsToCanary(paths: readonly string[]): CanaryHost[];
|
|
205
|
-
/**
|
|
219
|
+
/**
|
|
220
|
+
* HEAD is answered by the GET route — Express routes the two together.
|
|
221
|
+
* @internal the manifest's readers are the route-answers contract and probe suites - nothing in the shipped widget reads it, which is the point of a manifest.
|
|
222
|
+
*/
|
|
206
223
|
export declare function effectiveMethod(method: HttpMethod): HttpMethod;
|
|
@@ -5,8 +5,3 @@ import { EventData } from '../../public-calendar-flow/types';
|
|
|
5
5
|
* Sets collectionId so EventExperience renders in full-width collection mode.
|
|
6
6
|
*/
|
|
7
7
|
export declare function parseCollection(collection: PublicCollectionData): EventData;
|
|
8
|
-
/**
|
|
9
|
-
* Back-compat alias — the public-calendar-flow shaper name. Existing call
|
|
10
|
-
* sites importing transformCollectionData continue to work unchanged.
|
|
11
|
-
*/
|
|
12
|
-
export declare const transformCollectionData: typeof parseCollection;
|
|
@@ -1,27 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Transformers Index
|
|
3
3
|
*
|
|
4
|
-
* Re-exports
|
|
4
|
+
* Re-exports the transformer functions the ./api published surface carries
|
|
5
|
+
* (src/lib/api/index.ts re-exports from here), and nothing else.
|
|
5
6
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
7
|
+
* It USED to mirror every transformer under both its canonical parse<Entity>
|
|
8
|
+
* name and its back-compat alias. Half of those pairs had no importer on
|
|
9
|
+
* either side of the barrel — every internal caller imports the canonical name
|
|
10
|
+
* straight from its own module (./event.js, ./venue.js, ./series.js, …) and
|
|
11
|
+
* ./api re-exports only the alias. Those unreferenced halves were drained in
|
|
12
|
+
* MIC-3014; the canonical functions themselves are untouched and still live in
|
|
13
|
+
* their own modules. Add a name here only when ./api actually publishes it.
|
|
13
14
|
*/
|
|
14
|
-
export {
|
|
15
|
+
export { transformOrder, // back-compat alias
|
|
15
16
|
transformTicket, // back-compat alias
|
|
16
17
|
transformOrderForDisplay, } from './order.js';
|
|
17
|
-
export {
|
|
18
|
+
export { transformEvent, // back-compat alias
|
|
18
19
|
transformEventData, // legacy alias
|
|
19
20
|
transformTicket as transformAvailableTicket, // back-compat alias
|
|
20
|
-
getCDNImageUrl, getEventImageUrl, deriveEventCtaState
|
|
21
|
-
export {
|
|
22
|
-
extractVenueFees,
|
|
23
|
-
export { parseSeries, transformSeriesPageData, } from './series.js';
|
|
24
|
-
export { parseCollection, transformCollectionData, } from './collection.js';
|
|
25
|
-
export { parseCart, parseCartReservation } from './cart.js';
|
|
26
|
-
export { parseGiftCardApplication } from './giftCard.js';
|
|
27
|
-
export { parseEventPerformers } from './performer.js';
|
|
21
|
+
getCDNImageUrl, getEventImageUrl, deriveEventCtaState as calculateCtaState, } from './event.js';
|
|
22
|
+
export { transformVenue, // back-compat alias
|
|
23
|
+
extractVenueFees, formatVenueAddress, } from './venue.js';
|
|
@@ -5,8 +5,3 @@ import { EventData } from '../../public-calendar-flow/types';
|
|
|
5
5
|
* Sets eventSeriesId so EventExperience renders in full-width series mode.
|
|
6
6
|
*/
|
|
7
7
|
export declare function parseSeries(series: SeriesPageData): EventData;
|
|
8
|
-
/**
|
|
9
|
-
* Back-compat alias — the public-calendar-flow shaper name. Existing call
|
|
10
|
-
* sites importing transformSeriesPageData continue to work unchanged.
|
|
11
|
-
*/
|
|
12
|
-
export declare const transformSeriesPageData: typeof parseSeries;
|
|
@@ -13,6 +13,7 @@ declare function vcParseVenue(raw: unknown): Venue;
|
|
|
13
13
|
* sites using either parseVenue(apiVenue) or transformVenue(apiVenue) continue
|
|
14
14
|
* to work unchanged; re-exports don't redeclare the identifier so the
|
|
15
15
|
* no-shadowed-helper rule is satisfied without a suppression.
|
|
16
|
+
* @internal canonical name; ./api publishes the `transformVenue` alias, and characterization.test.ts pins this one.
|
|
16
17
|
*/
|
|
17
18
|
export { vcParseVenue as parseVenue };
|
|
18
19
|
export declare const transformVenue: typeof vcParseVenue;
|
package/dist/api/types.d.ts
CHANGED
|
@@ -328,7 +328,22 @@ export interface SeriesOccurrencesResponse {
|
|
|
328
328
|
occurrences: SeriesOccurrence[];
|
|
329
329
|
}
|
|
330
330
|
export interface SeriesPageData {
|
|
331
|
-
|
|
331
|
+
/**
|
|
332
|
+
* The series id, as `seriesId` (MIC-3838).
|
|
333
|
+
*
|
|
334
|
+
* THIS FIELD USED TO BE DECLARED `id`, AND THE WIRE HAS NEVER SENT `id`.
|
|
335
|
+
* Both doors that answer this shape — `GET /api/v2/public/series/:id/page`
|
|
336
|
+
* and `GET /api/v2/public/resolve/:slugId` when the id names a series — build
|
|
337
|
+
* SeriesPageResponseDTO, whose first field carries the json tag `seriesId`.
|
|
338
|
+
* The payload is cast rather than parsed, so TypeScript never caught the
|
|
339
|
+
* mismatch and `parseSeries` read `undefined` forever.
|
|
340
|
+
*/
|
|
341
|
+
seriesId: number;
|
|
342
|
+
/**
|
|
343
|
+
* @deprecated Never present on the wire. Read only so a hand-built fixture or
|
|
344
|
+
* an older mock that spells it `id` still resolves; see `parseSeries`.
|
|
345
|
+
*/
|
|
346
|
+
id?: number;
|
|
332
347
|
title: string;
|
|
333
348
|
description: string;
|
|
334
349
|
eventSummary?: string;
|