ws-dottie
Version:
Your friendly TypeScript companion for Washington State transportation APIs - WSDOT and WSF data with smart caching and React Query integration
3 lines • 64.7 kB
JavaScript
import {z as z$1}from'zod';import {useQuery,useQueryClient}from'@tanstack/react-query';import {useRef,useEffect}from'react';var lo=Object.defineProperty;var v=(e,t)=>{for(var a in t)lo(e,a,{get:t[a],enumerable:true});};var la="https://www.wsdot.wa.gov",ma=e=>{if(typeof process<"u"&&process.env)return process.env[e];if(typeof window<"u"){let t=window.__ENV__;if(t)return t[e]}},ua=()=>{let e=ma("WSDOT_ACCESS_TOKEN")||"",t=ma("WSDOT_BASE_URL")||la;return {WSDOT_ACCESS_TOKEN:e,WSDOT_BASE_URL:t}},G=ua(),uo=()=>{if(!G.WSDOT_ACCESS_TOKEN)throw new Error("WSDOT_ACCESS_TOKEN is required. Set it via WSDOT_ACCESS_TOKEN environment variable or use configManager.setApiKey().");return G.WSDOT_ACCESS_TOKEN},po=()=>G.WSDOT_BASE_URL||la,yo=e=>{if(!e||e.trim()==="")throw new Error("API key cannot be empty");G.WSDOT_ACCESS_TOKEN=e.trim();},ho=e=>{if(!e||e.trim()==="")throw new Error("Base URL cannot be empty");G.WSDOT_BASE_URL=e.trim();},To=()=>{G=ua();},z={getApiKey:uo,getBaseUrl:po,setApiKey:yo,setBaseUrl:ho,clearConfig:To};var Sa={};v(Sa,{getBorderCrossings:()=>de,useBorderCrossings:()=>ga});var fo=typeof process<"u"&&process.env.NODE_ENV==="development",go={debug:fo?console.debug.bind(console,"[WS-Dottie Debug]"):()=>{},info:console.info.bind(console,"[WS-Dottie Info]"),warn:console.warn.bind(console,"[WS-Dottie Warn]"),error:console.error.bind(console,"[WS-Dottie Error]")},ce=go;var O=class extends Error{code;context;constructor(t,a,m={}){super(t),this.name="WsdotApiError",this.code=a,this.context={timestamp:new Date,...m};}getUserMessage(){switch(this.code){case "NETWORK_ERROR":return "Network connection failed. Please check your internet connection.";case "API_ERROR":return "The API is currently unavailable. Please try again later.";case "TRANSFORM_ERROR":return "Received invalid data from the server.";case "TIMEOUT_ERROR":return "Request timed out. Please try again.";case "CORS_ERROR":return "Cross-origin request failed. This may be a browser security issue.";case "INVALID_RESPONSE":return "Received an invalid response from the server.";case "RATE_LIMIT_ERROR":return "Too many requests. Please wait before trying again.";default:return this.message}}};function Tt(e,t,a,m){let c={endpoint:t,url:a,status:m};if(e instanceof O)return e;if(e instanceof Error){let d=e.message.toLowerCase();return d.includes("timeout")||d.includes("timed out")?new O(e.message,"TIMEOUT_ERROR",c):d.includes("cors")||d.includes("cross-origin")?new O(e.message,"CORS_ERROR",c):d.includes("network")||d.includes("fetch")?new O(e.message,"NETWORK_ERROR",c):m&&m>=400?new O(e.message,"API_ERROR",c):new O(e.message,"NETWORK_ERROR",c)}return new O(typeof e=="string"?e:"Unknown error occurred","NETWORK_ERROR",c)}var S=e=>e.toISOString().split("T")[0],So=/^(\d{1,2})\/(\d{1,2})\/(\d{4})$/,Do=/^(\d{1,2})\/(\d{1,2})\/(\d{4})\s+(\d{1,2}):(\d{2}):(\d{2})\s+(AM|PM)$/i,pa=e=>{if(!e)return null;let t=e.match(So);if(!t)return null;let[,a,m,c]=t.map(Number);if(a<1||a>12||m<1||m>31||c<1900)return null;let d=new Date(c,a-1,m);return d.getFullYear()===c&&d.getMonth()===a-1&&d.getDate()===m?d:null},bo=e=>{if(!e)return null;let t=e.match(Do);if(!t)return null;let[,a,m,c,d,R,j]=t.map(Number),J=t[7].toUpperCase(),ee=Io(d,J),k=new Date(c,a-1,m,ee,R,j,0);return Number.isNaN(k.getTime())?null:k},Io=(e,t)=>t==="PM"?e===12?12:e+12:t==="AM"&&e===12?0:e,da=e=>e.length>=19&&e.startsWith("/Date(")&&e.endsWith(")/"),$=e=>{let t=parseInt(e.slice(6,19),10);if(Number.isNaN(t)||t<0)return null;let a=new Date(t);return Number.isNaN(a.getTime())?null:a},ya=new Map([["FromDate",pa],["ThruDate",pa],["ModifiedDate",bo],["ScheduledDeparture",$],["TimeStamp",$],["LeftDock",$],["Eta",$]]);var ft=e=>JSON.parse(e,Ro),Ro=(e,t)=>{if(typeof t!="string")return t;let a=ya.get(e);return a?a(t):da(t)?$(t):t};var ha=e=>{if(!e||typeof e!="object")return false;let t=e;if(!("Message"in t)||typeof t.Message!="string")return false;let a=t.Message.toLowerCase();return a.includes("failed")||a.includes("invalid")||a.includes("not valid")||a.includes("cannot be used")||a.includes("error")},te=e=>{if(ha(e))throw new Error(e.Message);return JSON.stringify(e)};var Ao=3e4,xo=["/timeadjbyroute/","/timeadjbyschedroute/","/alternativeformats/","/schedroutes","/routes","/sailings","/allsailings","/terminals","/terminalsandmates","/alerts","/timeadjustments","/activeseasons","/BorderCrossings","/BridgeClearances","/CommercialVehicleRestrictions","/HighwayAlerts","/HighwayCameras","/MountainPasses","/TollRates","/TrafficFlow","/TravelTimes","/WeatherInformation","/WeatherInformationExtended","/WeatherStations"],wo=e=>xo.some(t=>e.includes(t)),vo=()=>`jsonp_${Date.now()}_${Math.random().toString(36).slice(2,9)}`,me=e=>new Promise((t,a)=>{let m=vo(),c=document.createElement("script"),d=window,R=wo(e),j=()=>{c.parentNode&&document.head.removeChild(c),d[m]&&delete d[m];},J=()=>{clearTimeout(ee),j();},ee=setTimeout(()=>{j(),a(new Error("JSONP request timeout"));},Ao);d[m]=k=>{if(J(),k==null){t(R?"[]":"{}");return}if(typeof k=="string"&&!k.trim()){t(R?"[]":"{}");return}if(typeof k=="object"&&k!==null&&Object.keys(k).length===0){t(R?"[]":"{}");return}try{let ht=te(k);t(ht);}catch(ht){a(ht);}},c.onerror=()=>{J(),a(new Error("JSONP script load failed"));},c.src=`${e}${e.includes("?")?"&":"?"}callback=${m}`,document.head.appendChild(c);});var le=async(e,t)=>{let a=await fetch(e);if(!a.ok){let d=new Error(`HTTP ${a.status}: ${a.statusText}`);throw d.status=a.status,d}let m=await a.text();if(!m.trim())throw new Error("API returned HTTP 200 with empty body (invalid response)");let c=JSON.parse(m);return te(c)};var gt=()=>{let e=ue();if(typeof process<"u"&&process.env.FORCE_JSONP==="true")return me;switch(e){case "test":case "server":return le;case "web":return me;default:return le}};var Co=()=>typeof window<"u"&&typeof document<"u",Eo=()=>{if(typeof process<"u"&&(process.env.NODE_ENV==="test"||process.env.VITEST_WORKER_ID!==void 0))return true;if(typeof window<"u"&&window.navigator?.userAgent){let e=window.navigator.userAgent;return e.includes("jsdom")||e.includes("happy-dom")}return false},ue=()=>Eo()?"test":Co()?"web":"server";var re=()=>{let e=gt();return async(t,a,m)=>{let c=t.startsWith("http")?new URL(t).pathname:t;Ta(a,c,`Using ${ue()} fetch strategy`);try{let d=await e(t,m),R=ft(d);return Ta(a,c,"Response transformed",R),R}catch(d){(a==="debug"||a==="info")&&ce.error(`[${c}] Request failed:`,d);let R=d instanceof Error?d.status:void 0;throw Tt(d,c,t,R)}}},Ta=(e,t,a,m)=>{if(e!=="debug")return;let c=`[${t}]`;m!==void 0?ce.debug(`${c} ${a}:`,m):ce.debug(`${c} ${a}`);};var y=e=>{let t=re();function a(m){return (c,d)=>{let R=Lo(m,c),j=Vo(e,R);return t(j,d)}}return a},Fo=e=>e.includes("/ferries/")?"apiaccesscode":"AccessCode",Lo=(e,t)=>!t||Object.keys(t).length===0?e:Object.entries(t).reduce((a,m)=>Bo(a,m),e),Vo=(e,t)=>{let a=z.getBaseUrl(),m=Fo(e),c=t.includes("?")?"&":"?";return `${a}${e}${t}${c}${m}=${z.getApiKey()}`},Bo=(e,[t,a])=>{let m=`{${t}}`;if(!e.includes(m))throw new Error(`Parameter "${t}" was provided but placeholder "{${t}}" not found in endpoint template. Available placeholders: ${e.match(/\{[^}]+\}/g)?.join(", ")||"none"}`);let c=a instanceof Date?S(a):String(a);return e.replace(m,c)};var T=()=>z$1.string().refine(e=>e.length>=19&&e.startsWith("/Date(")&&e.endsWith(")/"),{message:"Invalid WSDOT date format"}).transform(e=>new Date(parseInt(e.slice(6,19),10))).or(z$1.date());var b=()=>z$1.string().nullable(),l=()=>z$1.number().nullable();var ko=z$1.object({Description:z$1.string(),Direction:b(),Latitude:z$1.number(),Longitude:z$1.number(),MilePost:z$1.number(),RoadName:z$1.string()}).catchall(z$1.unknown()).nullable(),Uo=z$1.object({BorderCrossingLocation:ko,CrossingName:z$1.string(),Time:T(),WaitTime:z$1.number()}).catchall(z$1.unknown()),fa=z$1.array(Uo);var Po=y("/Traffic/api/BorderCrossings/BorderCrossingsREST.svc"),de=async()=>{let t=await Po("/GetBorderCrossingsAsJson")();return fa.parse(t)};var s={REALTIME_UPDATES:{staleTime:5e3,gcTime:36e5,refetchInterval:5e3,refetchOnWindowFocus:true,retry:1,retryDelay:2e3},MINUTE_UPDATES:{staleTime:6e4,gcTime:36e5,refetchInterval:6e4,refetchOnWindowFocus:true,retry:false},HOURLY_UPDATES:{staleTime:36e5,gcTime:144e5,refetchInterval:36e5,refetchOnWindowFocus:true,retry:5,retryDelay:e=>Math.min(3e4*2**e,12e4)},DAILY_UPDATES:{staleTime:864e5,gcTime:1728e5,refetchInterval:864e5,refetchOnWindowFocus:true,retry:5,retryDelay:e=>Math.min(6e4*2**e,6e5)},WEEKLY_UPDATES:{staleTime:6048e5,gcTime:12096e5,refetchInterval:false,refetchOnWindowFocus:true,retry:5,retryDelay:e=>Math.min(6e4*2**e,6e5)}};var ga=e=>useQuery({queryKey:["wsdot","border-crossings","getBorderCrossings"],queryFn:()=>de(),...s.MINUTE_UPDATES,...e});var Ia={};v(Ia,{getBridgeClearances:()=>ye,useBridgeClearances:()=>ba});var Wo=z$1.object({APILastUpdate:T(),BridgeNumber:z$1.string(),ControlEntityGuid:z$1.string(),CrossingDescription:z$1.string(),CrossingLocationId:z$1.number(),CrossingRecordGuid:z$1.string(),InventoryDirection:b(),Latitude:z$1.number(),LocationGuid:z$1.string(),Longitude:z$1.number(),RouteDate:T(),SRMP:z$1.number(),SRMPAheadBackIndicator:b(),StateRouteID:z$1.string(),StateStructureId:z$1.string(),VerticalClearanceMaximumFeetInch:z$1.string(),VerticalClearanceMaximumInches:z$1.number(),VerticalClearanceMinimumFeetInch:z$1.string(),VerticalClearanceMinimumInches:z$1.number()}).catchall(z$1.unknown()),Da=z$1.array(Wo);var qo=y("/Traffic/api/Bridges/ClearanceREST.svc"),ye=async e=>{let a=await qo("/GetClearancesAsJson?Route={route}")(e);return Da.parse(a)};var ba=(e,t)=>useQuery({queryKey:["wsdot","bridge-clearances","getBridgeClearances",e.route],queryFn:()=>ye({route:e.route}),...s.DAILY_UPDATES,...t});var La={};v(La,{getCommercialVehicleRestrictions:()=>he,getCommercialVehicleRestrictionsWithId:()=>Te,useCommercialVehicleRestrictions:()=>Ea,useCommercialVehicleRestrictionsWithId:()=>Fa});var Ra=z$1.object({Description:b(),Direction:b(),Latitude:z$1.number(),Longitude:z$1.number(),MilePost:z$1.number(),RoadName:z$1.string()}).catchall(z$1.unknown()),Aa=z$1.object({BLMaxAxle:l(),BridgeName:z$1.string(),BridgeNumber:z$1.string(),CL8MaxAxle:l(),DateEffective:T(),DateExpires:T(),DatePosted:T(),EndRoadwayLocation:Ra,IsDetourAvailable:z$1.boolean(),IsExceptionsAllowed:z$1.boolean(),IsPermanentRestriction:z$1.boolean(),IsWarning:z$1.boolean(),Latitude:z$1.number(),LocationDescription:z$1.string(),LocationName:z$1.string(),Longitude:z$1.number(),MaximumGrossVehicleWeightInPounds:l(),RestrictionComment:z$1.string(),RestrictionHeightInInches:l(),RestrictionLengthInInches:l(),RestrictionType:z$1.number(),RestrictionWeightInPounds:l(),RestrictionWidthInInches:l(),SAMaxAxle:l(),StartRoadwayLocation:Ra,State:z$1.string(),StateRouteID:z$1.string(),TDMaxAxle:l(),VehicleType:z$1.string()}).catchall(z$1.unknown()),Mo=Aa.extend({UniqueID:z$1.string()}).catchall(z$1.unknown()),xa=z$1.array(Aa),wa=z$1.array(Mo);var va=y("/Traffic/api/CVRestrictions/CVRestrictionsREST.svc"),he=async()=>{let t=await va("/GetCommercialVehicleRestrictionsAsJson")();return xa.parse(t)},Te=async()=>{let t=await va("/GetCommercialVehicleRestrictionsWithIdAsJson")();return wa.parse(t)};var Ea=e=>useQuery({queryKey:["wsdot","commercial-vehicle-restrictions","getCommercialVehicleRestrictions"],queryFn:()=>he(),...s.DAILY_UPDATES,...e}),Fa=e=>useQuery({queryKey:["wsdot","commercial-vehicle-restrictions","getCommercialVehicleRestrictionsWithId"],queryFn:()=>Te(),...s.DAILY_UPDATES,...e});var Pa={};v(Pa,{getHighwayAlertById:()=>ge,getHighwayAlerts:()=>fe,getHighwayAlertsByMapArea:()=>Se,useHighwayAlertById:()=>ka,useHighwayAlerts:()=>Ba,useHighwayAlertsByMapArea:()=>Ua});var Va=z$1.object({Description:b(),Direction:b(),Latitude:z$1.number(),Longitude:z$1.number(),MilePost:z$1.number(),RoadName:z$1.string()}).catchall(z$1.unknown()),St=z$1.object({AlertID:z$1.number(),County:b(),EndRoadwayLocation:Va,EndTime:T().nullable(),EventCategory:z$1.string(),EventStatus:z$1.string(),ExtendedDescription:z$1.string(),HeadlineDescription:z$1.string(),LastUpdatedTime:T(),Priority:z$1.string(),Region:z$1.string(),StartRoadwayLocation:Va,StartTime:T()}).catchall(z$1.unknown()),Dt=z$1.array(St);var bt=y("/Traffic/api/HighwayAlerts/HighwayAlertsREST.svc"),fe=async()=>{let t=await bt("/GetAlertsAsJson")();return Dt.parse(t)},ge=async e=>{let a=await bt("/GetAlertAsJson?AlertID={alertId}")(e);return St.parse(a)},Se=async e=>{let a=await bt("/GetAlertsByMapAreaAsJson?MapArea={mapArea}")(e);return Dt.parse(a)};var Ba=e=>useQuery({queryKey:["wsdot","highway-alerts","getHighwayAlerts"],queryFn:()=>fe(),...s.MINUTE_UPDATES,...e}),ka=(e,t)=>useQuery({queryKey:["wsdot","highway-alerts","getHighwayAlertById",e.alertId],queryFn:()=>ge({alertId:e.alertId}),...s.MINUTE_UPDATES,...t}),Ua=(e,t)=>useQuery({queryKey:["wsdot","highway-alerts","getHighwayAlertsByMapArea",e.mapArea],queryFn:()=>Se({mapArea:e.mapArea}),...s.MINUTE_UPDATES,...t});var _a={};v(_a,{getHighwayCamera:()=>be,getHighwayCameras:()=>De,searchHighwayCameras:()=>Ie,useHighwayCamera:()=>Na,useHighwayCameras:()=>qa,useSearchHighwayCameras:()=>Ma});var _o=z$1.object({Description:b(),Direction:b(),Latitude:z$1.number(),Longitude:z$1.number(),MilePost:z$1.number(),RoadName:z$1.string()}).catchall(z$1.unknown()),Rt=z$1.object({CameraID:z$1.number(),CameraLocation:_o,CameraOwner:b(),Description:b(),DisplayLatitude:z$1.number(),DisplayLongitude:z$1.number(),ImageHeight:z$1.number(),ImageURL:z$1.string(),ImageWidth:z$1.number(),IsActive:z$1.boolean(),OwnerURL:b(),Region:z$1.string(),SortOrder:z$1.number(),Title:z$1.string()}).catchall(z$1.unknown()),At=z$1.array(Rt),Oa=z$1.object({StateRoute:z$1.string().optional(),Region:z$1.string().optional(),StartingMilepost:z$1.number().optional(),EndingMilepost:z$1.number().optional()}).strict();var Wa=y("/Traffic/api/HighwayCameras/HighwayCamerasREST.svc"),De=async()=>{let t=await Wa("/GetCamerasAsJson")();return At.parse(t)},be=async e=>{let a=await Wa("/GetCameraAsJson?CameraID={cameraID}")(e);return Rt.parse(a)},Ie=async(e,t)=>{Oa.parse(e);let a=new URLSearchParams;e.StateRoute!==void 0&&a.append("StateRoute",String(e.StateRoute)),e.Region!==void 0&&a.append("Region",String(e.Region)),e.StartingMilepost!==void 0&&a.append("StartingMilepost",String(e.StartingMilepost)),e.EndingMilepost!==void 0&&a.append("EndingMilepost",String(e.EndingMilepost));let m=`/SearchCamerasAsJson?${a.toString()}`,c=`${z.getBaseUrl()}/Traffic/api/HighwayCameras/HighwayCamerasREST.svc${m}`,R=await re()(c,t);return At.parse(R)};var qa=e=>useQuery({queryKey:["wsdot","highway-cameras","getHighwayCameras"],queryFn:()=>De(),...s.DAILY_UPDATES,...e}),Na=(e,t)=>useQuery({queryKey:["wsdot","highway-cameras","getHighwayCamera",e.cameraID],queryFn:()=>be({cameraID:e.cameraID}),...s.DAILY_UPDATES,...t}),Ma=(e,t)=>useQuery({queryKey:["wsdot","highway-cameras","searchHighwayCameras",e],queryFn:()=>Ie(e),...s.DAILY_UPDATES,...t});var Ja={};v(Ja,{getMountainPassConditionById:()=>Ae,getMountainPassConditions:()=>Re,useMountainPassConditionById:()=>Ya,useMountainPassConditions:()=>Qa});var ja=z$1.object({TravelDirection:z$1.string(),RestrictionText:z$1.string()}).catchall(z$1.unknown()),wt=z$1.object({DateUpdated:T(),ElevationInFeet:z$1.number(),Latitude:z$1.number(),Longitude:z$1.number(),MountainPassId:z$1.number(),MountainPassName:z$1.string(),RestrictionOne:ja,RestrictionTwo:ja,RoadCondition:z$1.string(),TemperatureInFahrenheit:l(),TravelAdvisoryActive:z$1.boolean(),WeatherCondition:z$1.string()}).catchall(z$1.unknown()),za=z$1.array(wt);var Ha=y("/Traffic/api/MountainPassConditions/MountainPassConditionsREST.svc"),Re=async()=>{let t=await Ha("/GetMountainPassConditionsAsJson")();return za.parse(t)},Ae=async e=>{let a=await Ha("/GetMountainPassConditionAsJson?PassConditionID={passConditionId}")(e);return wt.parse(a)};var Qa=e=>useQuery({queryKey:["wsdot","mountain-pass-conditions","getMountainPassConditions"],queryFn:()=>Re(),...s.DAILY_UPDATES,...e}),Ya=(e,t)=>useQuery({queryKey:["wsdot","mountain-pass-conditions","getMountainPassConditionById",e.passConditionId],queryFn:()=>Ae({passConditionId:e.passConditionId}),...s.DAILY_UPDATES,...t});var rn={};v(rn,{getTollRates:()=>xe,getTollTripInfo:()=>we,getTollTripRates:()=>ve,useTollRates:()=>Xa,useTollTripInfo:()=>en,useTollTripRates:()=>tn});var jo=z$1.object({CurrentMessage:b(),CurrentToll:z$1.number(),EndLatitude:z$1.number(),EndLocationName:z$1.string(),EndLongitude:z$1.number(),EndMilepost:z$1.number(),StartLatitude:z$1.number(),StartLocationName:z$1.string(),StartLongitude:z$1.number(),StartMilepost:z$1.number(),StateRoute:z$1.string(),TimeUpdated:T(),TravelDirection:z$1.string(),TripName:z$1.string()}).catchall(z$1.unknown()),Ga=z$1.array(jo),zo=z$1.object({EndLatitude:z$1.number(),EndLocationName:z$1.string(),EndLongitude:z$1.number(),EndMilepost:z$1.number(),Geometry:z$1.string(),ModifiedDate:T().nullable(),StartLatitude:z$1.number(),StartLocationName:z$1.string(),StartLongitude:z$1.number(),StartMilepost:z$1.number(),TravelDirection:z$1.string(),TripName:z$1.string()}).catchall(z$1.unknown()),$a=z$1.array(zo),Ho=z$1.object({Message:z$1.string(),MessageUpdateTime:T(),Toll:z$1.number(),TripName:z$1.string()}).catchall(z$1.unknown()),Za=z$1.object({LastUpdated:T(),Trips:z$1.array(Ho)}).catchall(z$1.unknown());var vt=y("/Traffic/api/TollRates/TollRatesREST.svc"),xe=async()=>{let t=await vt("/GetTollRatesAsJson")();return Ga.parse(t)},we=async()=>{let t=await vt("/GetTollTripInfoAsJson")();return $a.parse(t)},ve=async()=>{let t=await vt("/GetTollTripRatesAsJson")();return Za.parse(t)};var Xa=e=>useQuery({queryKey:["wsdot","toll-rates","getTollRates"],queryFn:()=>xe(),...s.MINUTE_UPDATES,...e}),en=e=>useQuery({queryKey:["wsdot","toll-rates","getTollTripInfo"],queryFn:()=>we(),...s.MINUTE_UPDATES,...e}),tn=e=>useQuery({queryKey:["wsdot","toll-rates","getTollTripRates"],queryFn:()=>ve(),...s.MINUTE_UPDATES,...e});var mn={};v(mn,{getTrafficFlowById:()=>Ee,getTrafficFlows:()=>Ce,useTrafficFlowById:()=>cn,useTrafficFlows:()=>sn});var Ko=z$1.object({Description:z$1.string(),Direction:z$1.string(),Latitude:z$1.number(),Longitude:z$1.number(),MilePost:z$1.number(),RoadName:z$1.string()}).catchall(z$1.unknown()),Et=z$1.object({FlowDataID:z$1.number(),FlowReadingValue:z$1.number(),FlowStationLocation:Ko,Region:z$1.string(),StationName:z$1.string(),Time:T()}).catchall(z$1.unknown()),an=z$1.array(Et);var nn=y("/traffic/api/TrafficFlow/TrafficFlowREST.svc"),Ce=async()=>{let t=await nn("/GetTrafficFlowsAsJson")();return an.parse(t)},Ee=async e=>{let a=await nn("/GetTrafficFlowAsJson?FlowDataID={flowDataID}")(e);return Et.parse(a)};var sn=e=>useQuery({queryKey:["wsdot","traffic-flow","getTrafficFlows"],queryFn:()=>Ce(),...s.MINUTE_UPDATES,...e}),cn=(e,t)=>useQuery({queryKey:["wsdot","traffic-flow","getTrafficFlowById",e.flowDataID],queryFn:()=>Ee({flowDataID:e.flowDataID}),...s.MINUTE_UPDATES,...t});var Tn={};v(Tn,{getTravelTimeById:()=>Le,getTravelTimes:()=>Fe,useTravelTimeById:()=>hn,useTravelTimes:()=>yn});var ln=z$1.object({Description:z$1.string(),Direction:z$1.string(),Latitude:z$1.number(),Longitude:z$1.number(),MilePost:z$1.number(),RoadName:z$1.string()}).catchall(z$1.unknown()),Ft=z$1.object({AverageTime:z$1.number(),CurrentTime:z$1.number(),Description:z$1.string(),Distance:z$1.number(),EndPoint:ln,Name:z$1.string(),StartPoint:ln,TimeUpdated:T(),TravelTimeID:z$1.number()}).catchall(z$1.unknown()),un=z$1.array(Ft);var pn=y("/Traffic/api/TravelTimes/TravelTimesREST.svc"),Fe=async()=>{let t=await pn("/GetTravelTimesAsJson")();return un.parse(t)},Le=async e=>{let a=await pn("/GetTravelTimeAsJson?TravelTimeID={travelTimeId}")(e);return Ft.parse(a)};var yn=e=>useQuery({queryKey:["wsdot","travel-times","getTravelTimes"],queryFn:()=>Fe(),...s.MINUTE_UPDATES,...e}),hn=(e,t)=>useQuery({queryKey:["wsdot","travel-times","getTravelTimeById",e.travelTimeId],queryFn:()=>Le({travelTimeId:e.travelTimeId}),...s.MINUTE_UPDATES,...t});var Dn={};v(Dn,{getWeatherInformation:()=>Ve,getWeatherInformationByStationId:()=>Be,getWeatherInformationForStations:()=>ke,useWeatherInformation:()=>fn,useWeatherInformationByStationId:()=>gn,useWeatherInformationForStations:()=>Sn});var Lt=z$1.object({BarometricPressure:l(),Latitude:z$1.number(),Longitude:z$1.number(),PrecipitationInInches:l(),ReadingTime:T(),RelativeHumidity:l(),SkyCoverage:b(),StationID:z$1.number(),StationName:z$1.string(),TemperatureInFahrenheit:l(),Visibility:l(),WindDirection:l(),WindDirectionCardinal:b(),WindGustSpeedInMPH:l(),WindSpeedInMPH:l()}).catchall(z$1.unknown()),Vt=z$1.array(Lt);var Bt=y("/Traffic/api/WeatherInformation/WeatherInformationREST.svc"),Ve=async()=>{let t=await Bt("/GetCurrentWeatherInformationAsJson")();return Vt.parse(t)},Be=async e=>{let a=await Bt("/GetCurrentWeatherInformationByStationIDAsJson?StationID={stationId}")(e);return Lt.parse(a)},ke=async e=>{let a=await Bt("/GetCurrentWeatherForStationsAsJson?StationList={stationIds}")(e);return Vt.parse(a)};var fn=e=>useQuery({queryKey:["wsdot","weather-information","getWeatherInformation"],queryFn:()=>Ve(),...s.MINUTE_UPDATES,...e}),gn=(e,t)=>useQuery({queryKey:["wsdot","weather-information","getWeatherInformationByStationId",e.stationId],queryFn:()=>Be({stationId:e.stationId}),...s.MINUTE_UPDATES,...t}),Sn=(e,t)=>useQuery({queryKey:["wsdot","weather-information","getWeatherInformationForStations",e.stationIds],queryFn:()=>ke({stationIds:e.stationIds.join(",")}),...s.MINUTE_UPDATES,...t});var Rn={};v(Rn,{getWeatherInformationExtended:()=>Ue,useWeatherInformationExtended:()=>In});var Qo=()=>z$1.string().transform(e=>new Date(e)).refine(e=>!Number.isNaN(e.getTime()),{message:"Invalid ISO date"}).nullable().or(z$1.date().nullable()),Yo=z$1.object({SensorId:z$1.number(),SurfaceTemperature:l(),RoadFreezingTemperature:l(),RoadSurfaceCondition:l()}).catchall(z$1.unknown()),Jo=z$1.object({SensorId:z$1.number(),SubSurfaceTemperature:l()}).catchall(z$1.unknown()),Go=z$1.object({StationId:z$1.string(),StationName:z$1.string(),Latitude:z$1.number(),Longitude:z$1.number(),Elevation:z$1.number(),ReadingTime:Qo(),AirTemperature:l(),RelativeHumidty:l(),AverageWindSpeed:l(),AverageWindDirection:l(),WindGust:l(),Visibility:l(),PrecipitationIntensity:l(),PrecipitationType:l(),PrecipitationPast1Hour:l(),PrecipitationPast3Hours:l(),PrecipitationPast6Hours:l(),PrecipitationPast12Hours:l(),PrecipitationPast24Hours:l(),PrecipitationAccumulation:l(),BarometricPressure:l(),SnowDepth:l(),SurfaceMeasurements:z$1.array(Yo).nullable(),SubSurfaceMeasurements:z$1.array(Jo).nullable()}).catchall(z$1.unknown()),bn=z$1.array(Go);var $o=y("/traffic/api/api/Scanweb"),Ue=async()=>{let t=await $o("")();return bn.parse(t)};var In=e=>useQuery({queryKey:["wsdot","weather-information-extended","getWeatherInformationExtended"],queryFn:()=>Ue(),...s.HOURLY_UPDATES,...e});var wn={};v(wn,{getWeatherStations:()=>Pe,useWeatherStations:()=>xn});var Xo=z$1.object({Latitude:z$1.number(),Longitude:z$1.number(),StationCode:z$1.number(),StationName:z$1.string()}).catchall(z$1.unknown()),An=z$1.array(Xo);var es=y("/Traffic/api/WeatherStations/WeatherStationsREST.svc"),Pe=async()=>{let t=await es("/GetCurrentStationsAsJson")();return An.parse(t)};var xn=e=>useQuery({queryKey:["wsdot","weather-stations","getWeatherStations"],queryFn:()=>Pe(),...s.DAILY_UPDATES,...e});var qn={};v(qn,{getFareLineItems:()=>He,getFareLineItemsBasic:()=>ze,getFareLineItemsVerbose:()=>Ke,getFareTotals:()=>Qe,getFaresCacheFlushDate:()=>We,getFaresTerminalMates:()=>Me,getFaresTerminals:()=>Ne,getFaresValidDateRange:()=>qe,getTerminalCombo:()=>_e,getTerminalComboVerbose:()=>je});var Ut=()=>z$1.union([z$1.date(),z$1.string().transform(e=>new Date(e)),z$1.number().transform(e=>new Date(e))]).transform(e=>e instanceof Date?e:new Date(e)),vn=Ut(),Cn=z$1.object({DateFrom:Ut(),DateThru:Ut()}).catchall(z$1.unknown()),En=z$1.object({TerminalID:z$1.number(),Description:z$1.string()}).catchall(z$1.unknown()),rs=En,Fn=z$1.object({DepartingDescription:z$1.string(),ArrivingDescription:z$1.string(),CollectionDescription:z$1.string()}).catchall(z$1.unknown()),Ln=z$1.object({DepartingTerminalID:z$1.number(),DepartingDescription:z$1.string(),ArrivingTerminalID:z$1.number(),ArrivingDescription:z$1.string(),CollectionDescription:z$1.string()}).catchall(z$1.unknown()),Oe=z$1.object({FareLineItemID:z$1.number(),FareLineItem:z$1.string(),Category:z$1.string(),DirectionIndependent:z$1.boolean(),Amount:z$1.number()}).catchall(z$1.unknown()),as=Oe;z$1.object({DepartingTerminalID:z$1.number(),DepartingDescription:z$1.string(),ArrivingTerminalID:z$1.number(),ArrivingDescription:z$1.string(),FareLineItemID:z$1.number(),FareLineItem:z$1.string(),Category:z$1.string(),DirectionIndependent:z$1.boolean(),Amount:z$1.number(),RoundTrip:z$1.boolean()}).catchall(z$1.unknown());var ns=z$1.object({TerminalComboIndex:z$1.number(),LineItemIndex:z$1.number(),RoundTripLineItemIndex:z$1.number()}).catchall(z$1.unknown()),Vn=z$1.object({TerminalComboVerbose:z$1.array(Ln),LineItemLookup:z$1.array(ns),LineItems:z$1.array(z$1.array(Oe)),RoundTripLineItems:z$1.array(z$1.array(Oe))}).catchall(z$1.unknown()),Bn=z$1.array(En),kn=z$1.array(rs),Un=z$1.array(Ln),Pn=z$1.array(Oe),On=z$1.array(as),Wn=z$1.array(z$1.object({TotalType:z$1.number(),Description:z$1.string(),BriefDescription:z$1.string(),Amount:z$1.number()}).catchall(z$1.unknown()));var W=y("/ferries/api/fares/rest"),We=async()=>{let t=await W("/cacheflushdate")();return vn.parse(t)},qe=async()=>{let t=await W("/validdaterange")();return Cn.parse(t)},Ne=async e=>{let a=await W("/terminals/{tripDate}")(e);return Bn.parse(a)},Me=async e=>{let a=await W("/terminalmates/{tripDate}/{terminalID}")(e);return kn.parse(a)},_e=async e=>{let a=await W("/terminalcombo/{tripDate}/{departingTerminalID}/{arrivingTerminalID}")(e);return Fn.parse(a)},je=async e=>{let a=await W("/terminalcomboverbose/{tripDate}")(e);return Un.parse(a)},ze=async e=>{let a=await W("/farelineitemsbasic/{tripDate}/{departingTerminalID}/{arrivingTerminalID}/{roundTrip}")(e);return On.parse(a)},He=async e=>{let a=await W("/farelineitems/{tripDate}/{departingTerminalID}/{arrivingTerminalID}/{roundTrip}")(e);return Pn.parse(a)},Ke=async e=>{let a=await W("/farelineitemsverbose/{tripDate}")(e);return Vn.parse(a)},Qe=async e=>{let a=await W("/faretotals/{tripDate}/{departingTerminalID}/{arrivingTerminalID}/{roundTrip}/{fareLineItemIDs}/{quantities}")(e);return Wn.parse(a)};var to={};v(to,{ScheduleCacheProvider:()=>ks,activeSeasonSchema:()=>Xn,activeSeasonsArraySchema:()=>Mt,alertSchema:()=>Kn,alertsArraySchema:()=>Nt,alternativeFormatSchema:()=>eo,alternativeFormatsArraySchema:()=>_t,annotationSchema:()=>Pt,contingencyAdjustmentSchema:()=>Nn,getActiveSeasons:()=>ar,getAlerts:()=>hr,getAllSailings:()=>ir,getAlternativeFormats:()=>Tr,getCacheFlushDateSchedule:()=>Ht,getRouteDetails:()=>er,getRouteDetailsByRoute:()=>rr,getRouteDetailsByTerminals:()=>tr,getRoutes:()=>$t,getRoutesByTerminals:()=>Zt,getRoutesWithDisruptions:()=>Xt,getSailings:()=>sr,getScheduleByRoute:()=>ur,getScheduleByTerminals:()=>pr,getScheduleTodayByRoute:()=>dr,getScheduleTodayByTerminals:()=>yr,getScheduledRoutes:()=>nr,getScheduledRoutesBySeason:()=>or,getTerminalMates:()=>Gt,getTerminals:()=>Qt,getTerminalsAndMates:()=>Yt,getTerminalsAndMatesByRoute:()=>Jt,getTimeAdjustments:()=>cr,getTimeAdjustmentsByRoute:()=>mr,getTimeAdjustmentsBySchedRoute:()=>lr,getValidDateRange:()=>Kt,journeySchema:()=>zn,routeDetailsLooseSchema:()=>zt,routeDetailsSchema:()=>Ot,routeSchema:()=>_n,routesArrayLooseSchema:()=>jt,routesArraySchema:()=>Q,sailingSchema:()=>Hn,sailingsArraySchema:()=>Ge,scheduleCacheFlushDateSchema:()=>qt,scheduleDepartureSchema:()=>Zn,scheduleResponseSchema:()=>Z,scheduleResponseTerminalComboSchema:()=>$n,scheduleSchema:()=>os,scheduleTerminalComboSchema:()=>Jn,scheduleTerminalCombosArraySchema:()=>Ze,scheduleTerminalSchema:()=>Yn,scheduleTerminalsArraySchema:()=>$e,scheduleTimeSchema:()=>Gn,scheduledRouteSchema:()=>Mn,scheduledRoutesArraySchema:()=>Je,serviceDisruptionSchema:()=>Ye,terminalTimeSchema:()=>jn,timeAdjustmentSchema:()=>Qn,timeAdjustmentsArraySchema:()=>ne,useActiveSeasons:()=>Ds,useAlerts:()=>Vs,useAllSailings:()=>As,useAlternativeFormats:()=>Bs,useCacheFlushDateSchedule:()=>fr,useRouteDetails:()=>fs,useRouteDetailsByRoute:()=>Ss,useRouteDetailsByTerminals:()=>gs,useRoutes:()=>ys,useRoutesByTerminals:()=>hs,useRoutesWithDisruptions:()=>Ts,useSailings:()=>Rs,useScheduleByRoute:()=>Cs,useScheduleByTerminals:()=>Es,useScheduleTodayByRoute:()=>Fs,useScheduleTodayByTerminals:()=>Ls,useScheduledRoutes:()=>bs,useScheduledRoutesBySeason:()=>Is,useTerminalMates:()=>ds,useTerminals:()=>ls,useTerminalsAndMates:()=>us,useTerminalsAndMatesByRoute:()=>ps,useTimeAdjustments:()=>xs,useTimeAdjustmentsByRoute:()=>ws,useTimeAdjustmentsBySchedRoute:()=>vs,useValidDateRange:()=>ms,validDateRangeSchema:()=>Wt});var I=()=>z$1.date(),ae=()=>z$1.date().nullable(),M=()=>z$1.string().nullable(),_=()=>z$1.number().nullable(),Ye=z$1.record(z$1.string(),z$1.unknown()),Pt=z$1.object({AnnotationID:z$1.number(),AnnotationText:z$1.string(),AnnotationIVRText:z$1.string(),AdjustedCrossingTime:_(),AnnotationImg:z$1.string(),TypeDescription:z$1.string(),SortSeq:z$1.number()}).catchall(z$1.unknown()),Nn=z$1.object({DateFrom:I(),DateThru:I(),EventID:_(),EventDescription:M(),AdjType:z$1.number(),ReplacedBySchedRouteID:_()}).catchall(z$1.unknown()),Mn=z$1.object({ScheduleID:z$1.number(),SchedRouteID:z$1.number(),ContingencyOnly:z$1.boolean(),RouteID:z$1.number(),RouteAbbrev:z$1.string(),Description:z$1.string(),SeasonalRouteNotes:z$1.string(),RegionID:z$1.number(),ServiceDisruptions:z$1.array(Ye),ContingencyAdj:z$1.array(Nn)}).catchall(z$1.unknown()),_n=z$1.object({RouteID:z$1.number(),RouteAbbrev:z$1.string(),Description:z$1.string(),RegionID:z$1.number(),Alerts:z$1.array(Ye).optional()}).catchall(z$1.unknown()),Ot=z$1.object({RouteID:z$1.number(),RouteAbbrev:z$1.string(),Description:z$1.string(),RegionID:z$1.number(),CrossingTime:_(),ReservationFlag:z$1.boolean(),PassengerOnlyFlag:z$1.boolean(),InternationalFlag:z$1.boolean(),VesselWatchID:z$1.number(),GeneralRouteNotes:z$1.string(),SeasonalRouteNotes:z$1.string(),AdaNotes:M(),Alerts:z$1.array(Ye)}).catchall(z$1.unknown()),jn=z$1.object({JourneyTerminalID:z$1.number(),TerminalID:z$1.number(),TerminalDescription:z$1.string(),TerminalBriefDescription:z$1.string(),Time:ae(),DepArrIndicator:_(),IsNA:z$1.boolean(),Annotations:z$1.array(Pt)}).catchall(z$1.unknown()),zn=z$1.object({JourneyID:z$1.number(),ReservationInd:z$1.boolean(),InternationalInd:z$1.boolean(),InterislandInd:z$1.boolean(),VesselID:z$1.number(),VesselName:z$1.string(),VesselHandicapAccessible:z$1.boolean(),VesselPositionNum:z$1.number(),TerminalTimes:z$1.array(jn)}).catchall(z$1.unknown()),Hn=z$1.object({ScheduleID:z$1.number(),SchedRouteID:z$1.number(),RouteID:z$1.number(),SailingID:z$1.number(),SailingDescription:z$1.string(),SailingNotes:z$1.string(),DisplayColNum:z$1.number(),SailingDir:z$1.number(),DayOpDescription:z$1.string(),DayOpUseForHoliday:z$1.boolean(),ActiveDateRanges:z$1.array(z$1.object({DateFrom:I(),DateThru:I(),EventID:_(),EventDescription:M()}).catchall(z$1.unknown())),Journs:z$1.array(zn)}).catchall(z$1.unknown()),Kn=z$1.object({BulletinID:z$1.number(),BulletinFlag:z$1.boolean(),BulletinText:z$1.string(),CommunicationFlag:z$1.boolean(),CommunicationText:M(),RouteAlertFlag:z$1.boolean(),RouteAlertText:z$1.string(),HomepageAlertText:z$1.string(),PublishDate:I(),DisruptionDescription:M(),AllRoutesFlag:z$1.boolean(),SortSeq:z$1.number(),AlertTypeID:z$1.number(),AlertType:z$1.string(),AlertFullTitle:z$1.string(),AffectedRouteIDs:z$1.array(z$1.number()),IVRText:M()}).catchall(z$1.unknown()),Qn=z$1.object({ScheduleID:z$1.number(),SchedRouteID:z$1.number(),RouteID:z$1.number(),RouteDescription:z$1.string(),RouteSortSeq:z$1.number(),SailingID:z$1.number(),SailingDescription:z$1.string(),ActiveSailingDateRange:z$1.object({DateFrom:I(),DateThru:I(),EventID:_(),EventDescription:M()}).catchall(z$1.unknown()),SailingDir:z$1.number(),JourneyID:z$1.number(),VesselID:z$1.number(),VesselName:z$1.string(),VesselHandicapAccessible:z$1.boolean(),VesselPositionNum:z$1.number(),TerminalID:z$1.number(),TerminalDescription:z$1.string(),TerminalBriefDescription:z$1.string(),JourneyTerminalID:z$1.number(),DepArrIndicator:z$1.number(),AdjDateFrom:I(),AdjDateThru:I(),AdjType:z$1.number(),TidalAdj:z$1.boolean(),TimeToAdj:ae(),Annotations:z$1.array(Pt),EventID:_(),EventDescription:M()}).catchall(z$1.unknown()),Yn=z$1.object({TerminalID:z$1.number(),Description:z$1.string()}).catchall(z$1.unknown()),Jn=z$1.object({DepartingTerminalID:z$1.number(),DepartingDescription:z$1.string(),ArrivingTerminalID:z$1.number(),ArrivingDescription:z$1.string()}).catchall(z$1.unknown()),Gn=z$1.object({DepartingTime:I(),ArrivingTime:I(),LoadingRule:z$1.number(),VesselID:z$1.number(),VesselName:z$1.string(),VesselHandicapAccessible:z$1.boolean(),VesselPositionNum:z$1.number(),Routes:z$1.array(z$1.number()),AnnotationIndexes:z$1.array(z$1.number())}).catchall(z$1.unknown()),$n=z$1.object({DepartingTerminalID:z$1.number(),DepartingTerminalName:z$1.string(),ArrivingTerminalID:z$1.number(),ArrivingTerminalName:z$1.string(),SailingNotes:z$1.string(),Annotations:z$1.array(z$1.string()),AnnotationsIVR:z$1.array(z$1.string()),Times:z$1.array(Gn)}).catchall(z$1.unknown()),Z=z$1.object({ScheduleID:z$1.number(),ScheduleName:z$1.string(),ScheduleSeason:z$1.number(),SchedulePDFUrl:z$1.string(),ScheduleStart:I(),ScheduleEnd:I(),AllRoutes:z$1.array(z$1.number()),TerminalCombos:z$1.array($n)}).catchall(z$1.unknown()),Zn=z$1.object({SailingID:z$1.number(),SchedRouteID:z$1.number(),DepartureTime:I(),ArrivalTime:I(),VesselID:z$1.number(),VesselName:z$1.string(),DepartingTerminalID:z$1.number(),DepartingTerminalName:z$1.string(),ArrivingTerminalID:z$1.number(),ArrivingTerminalName:z$1.string(),IsCancelled:z$1.boolean(),Notes:z$1.string().optional(),LastUpdated:I()}).catchall(z$1.unknown()),os=z$1.object({RouteID:z$1.number(),RouteName:z$1.string(),SailingDate:I(),Departures:z$1.array(Zn),LastUpdated:I()}).catchall(z$1.unknown()),Wt=z$1.object({DateFrom:I(),DateThru:I()}).catchall(z$1.unknown()),qt=I(),Xn=z$1.object({ScheduleID:z$1.number(),ScheduleName:z$1.string(),ScheduleSeason:z$1.number(),SchedulePDFUrl:z$1.string(),ScheduleStart:I(),ScheduleEnd:I()}).catchall(z$1.unknown()),eo=z$1.object({AltID:z$1.number(),SubjectID:z$1.number(),SubjectName:z$1.string(),AltTitle:z$1.string(),AltUrl:z$1.string(),AltDesc:z$1.string(),FileType:z$1.string(),Status:z$1.string(),SortSeq:z$1.number(),FromDate:ae(),ThruDate:ae(),ModifiedDate:ae(),ModifiedBy:z$1.string()}).catchall(z$1.unknown()),Je=z$1.array(Mn),Q=z$1.array(_n),Ge=z$1.array(Hn),Nt=z$1.array(Kn),ne=z$1.array(Qn),$e=z$1.array(Yn),Ze=z$1.array(Jn),Mt=z$1.array(Xn),_t=z$1.array(eo),jt=z$1.array(z$1.record(z$1.string(),z$1.unknown())),zt=z$1.record(z$1.string(),z$1.unknown());var f=y("/ferries/api/schedule/rest"),Ht=async()=>{let t=await f("/cacheflushdate")();return qt.parse(t)},Kt=async()=>{let t=await f("/validdaterange")();return Wt.parse(t)},Qt=async e=>{let a=await f("/terminals/{tripDate}")(e);return $e.parse(a)},Yt=async e=>{let a=await f("/terminalsandmates/{tripDate}")(e);return Ze.parse(a)},Jt=async e=>{let a=await f("/terminalsandmatesbyroute/{tripDate}/{routeId}")(e);return Ze.parse(a)},Gt=async e=>{let a=await f("/terminalmates/{tripDate}/{terminalId}")(e);return $e.parse(a)},$t=async e=>{let a=await f("/routes/{tripDate}")(e);try{return Q.parse(a)}catch{return jt.parse(a)}},Zt=async e=>{let a=await f("/routes/{tripDate}/{departingTerminalId}/{arrivingTerminalId}")(e);return Q.parse(a)},Xt=async e=>{let a=await f("/routeshavingservicedisruptions/{tripDate}")(e);return Q.parse(a)},er=async e=>{let a=await f("/routedetails/{tripDate}")(e);return Q.parse(a)},tr=async e=>{let a=await f("/routedetails/{tripDate}/{departingTerminalId}/{arrivingTerminalId}")(e);return Q.parse(a)},rr=async e=>{let a=await f("/routedetails/{tripDate}/{routeId}")(e);try{return Ot.parse(a)}catch{return zt.parse(a)}},ar=async()=>{let t=await f("/activeseasons")();return Mt.parse(t)},nr=async()=>{let t=await f("/schedroutes")();return Je.parse(t)},or=async e=>{let a=await f("/schedroutes/{scheduleId}")(e);return Je.parse(a)},sr=async e=>{let a=await f("/sailings/{schedRouteId}")(e);return Ge.parse(a)},ir=async e=>{let a=await f("/allsailings/{schedRouteId}")(e);return Ge.parse(a)},cr=async()=>{let t=await f("/timeadj")();return ne.parse(t)},mr=async e=>{let a=await f("/timeadjbyroute/{routeId}")(e);return ne.parse(a)},lr=async e=>{let a=await f("/timeadjbyschedroute/{schedRouteId}")(e);return ne.parse(a)},ur=async e=>{let a=await f("/schedule/{tripDate}/{routeId}")(e);return Z.parse(a)},pr=async e=>{let a=await f("/schedule/{tripDate}/{departingTerminalId}/{arrivingTerminalId}")(e);return Z.parse(a)},dr=async e=>{let a=await f("/scheduletoday/{routeId}/{onlyRemainingTimes}")(e);return Z.parse(a)},yr=async e=>{let a=await f("/scheduletoday/{departingTerminalId}/{arrivingTerminalId}/{onlyRemainingTimes}")(e);return Z.parse(a)},hr=async()=>{let t=await f("/alerts")();return Nt.parse(t)},Tr=async e=>{let a=await f("/alternativeformats/{subjectName}")(e);return _t.parse(a)};var X=(e,t)=>{let a=useQueryClient(),m=useRef(null),{data:c}=t();return useEffect(()=>{m.current&&c&&m.current.getTime()!==c.getTime()&&a.invalidateQueries({queryKey:e}),m.current=c||null;},[c,a,e]),null};var fr=e=>useQuery({queryKey:["wsf","schedule","cacheFlushDate"],queryFn:()=>Ht(),...s.DAILY_UPDATES,...e}),ms=e=>useQuery({queryKey:["wsf","schedule","validDateRange"],queryFn:()=>Kt(),...s.DAILY_UPDATES,...e}),ls=(e,t)=>useQuery({queryKey:["wsf","schedule","terminals",S(e.tripDate)],queryFn:()=>Qt({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),us=(e,t)=>useQuery({queryKey:["wsf","schedule","terminalsAndMates",S(e.tripDate)],queryFn:()=>Yt({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),ps=(e,t)=>useQuery({queryKey:["wsf","schedule","terminalsAndMatesByRoute",S(e.tripDate),e.routeId],queryFn:()=>Jt({tripDate:e.tripDate,routeId:e.routeId}),...s.DAILY_UPDATES,...t}),ds=(e,t)=>useQuery({queryKey:["wsf","schedule","terminalMates",S(e.tripDate),e.terminalId],queryFn:()=>Gt({tripDate:e.tripDate,terminalId:e.terminalId}),...s.DAILY_UPDATES,...t}),ys=(e,t)=>useQuery({queryKey:["wsf","schedule","routes",S(e.tripDate)],queryFn:()=>$t({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),hs=(e,t)=>useQuery({queryKey:["wsf","schedule","routesByTerminals",S(e.tripDate),e.departingTerminalId,e.arrivingTerminalId],queryFn:()=>Zt({tripDate:e.tripDate,departingTerminalId:e.departingTerminalId,arrivingTerminalId:e.arrivingTerminalId}),...s.DAILY_UPDATES,...t}),Ts=(e,t)=>useQuery({queryKey:["wsf","schedule","routesWithDisruptions",S(e.tripDate)],queryFn:()=>Xt({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),fs=(e,t)=>useQuery({queryKey:["wsf","schedule","routeDetails",S(e.tripDate)],queryFn:()=>er({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),gs=(e,t)=>useQuery({queryKey:["wsf","schedule","routeDetailsByTerminals",S(e.tripDate),e.departingTerminalId,e.arrivingTerminalId],queryFn:()=>tr({tripDate:e.tripDate,departingTerminalId:e.departingTerminalId,arrivingTerminalId:e.arrivingTerminalId}),...s.DAILY_UPDATES,...t}),Ss=(e,t)=>useQuery({queryKey:["wsf","schedule","routeDetailsByRoute",S(e.tripDate),e.routeId],queryFn:()=>rr({tripDate:e.tripDate,routeId:e.routeId}),...s.DAILY_UPDATES,...t}),Ds=e=>useQuery({queryKey:["wsf","schedule","activeSeasons"],queryFn:()=>ar(),...s.DAILY_UPDATES,...e}),bs=e=>useQuery({queryKey:["wsf","schedule","scheduledRoutes"],queryFn:()=>nr(),...s.DAILY_UPDATES,...e}),Is=(e,t)=>useQuery({queryKey:["wsf","schedule","scheduledRoutes","bySeason",e.scheduleId],queryFn:()=>or({scheduleId:e.scheduleId}),...s.DAILY_UPDATES,...t}),Rs=(e,t)=>useQuery({queryKey:["wsf","schedule","sailings",e.schedRouteId],queryFn:()=>sr({schedRouteId:e.schedRouteId}),...s.DAILY_UPDATES,...t}),As=(e,t)=>useQuery({queryKey:["wsf","schedule","allSailings",e.schedRouteId],queryFn:()=>ir({schedRouteId:e.schedRouteId}),...s.DAILY_UPDATES,...t}),xs=e=>useQuery({queryKey:["wsf","schedule","timeAdjustments"],queryFn:()=>cr(),...s.DAILY_UPDATES,...e}),ws=(e,t)=>useQuery({queryKey:["wsf","schedule","timeAdjustments","byRoute",e.routeId],queryFn:()=>mr({routeId:e.routeId}),...s.DAILY_UPDATES,...t}),vs=(e,t)=>useQuery({queryKey:["wsf","schedule","timeAdjustments","bySchedRoute",e.schedRouteId],queryFn:()=>lr({schedRouteId:e.schedRouteId}),...s.DAILY_UPDATES,...t}),Cs=(e,t)=>useQuery({queryKey:["wsf","schedule","scheduleByRoute",S(e.tripDate),e.routeId],queryFn:()=>ur({tripDate:e.tripDate,routeId:e.routeId}),...s.DAILY_UPDATES,...t}),Es=(e,t)=>useQuery({queryKey:["wsf","schedule","scheduleByTerminals",S(e.tripDate),e.departingTerminalId,e.arrivingTerminalId],queryFn:()=>pr({tripDate:e.tripDate,departingTerminalId:e.departingTerminalId,arrivingTerminalId:e.arrivingTerminalId}),...s.DAILY_UPDATES,...t}),Fs=(e,t)=>useQuery({queryKey:["wsf","schedule","scheduleTodayByRoute",e.routeId,e.onlyRemainingTimes],queryFn:()=>dr({routeId:e.routeId,onlyRemainingTimes:e.onlyRemainingTimes}),...s.DAILY_UPDATES,...t}),Ls=(e,t)=>useQuery({queryKey:["wsf","schedule","scheduleTodayByTerminals",e.departingTerminalId,e.arrivingTerminalId,e.onlyRemainingTimes],queryFn:()=>yr({departingTerminalId:e.departingTerminalId,arrivingTerminalId:e.arrivingTerminalId,onlyRemainingTimes:e.onlyRemainingTimes}),...s.DAILY_UPDATES,...t}),Vs=e=>useQuery({queryKey:["wsf","schedule","alerts"],queryFn:()=>hr(),...s.DAILY_UPDATES,...e}),Bs=(e,t)=>useQuery({queryKey:["wsf","schedule","alternativeFormats",e.subjectName],queryFn:()=>Tr({subjectName:e.subjectName}),...s.DAILY_UPDATES,...t});var ks=()=>X(["schedule"],fr);var so={};v(so,{TerminalCacheProvider:()=>Js,getCacheFlushDateTerminals:()=>Mr,getTerminalBasics:()=>vr,getTerminalBasicsByTerminalId:()=>Cr,getTerminalBulletins:()=>Br,getTerminalBulletinsByTerminalId:()=>kr,getTerminalLocations:()=>Er,getTerminalLocationsByTerminalId:()=>Fr,getTerminalSailingSpace:()=>Lr,getTerminalSailingSpaceByTerminalId:()=>Vr,getTerminalTransports:()=>Ur,getTerminalTransportsByTerminalId:()=>Pr,getTerminalVerbose:()=>qr,getTerminalVerboseByTerminalId:()=>Nr,getTerminalWaitTimes:()=>Or,getTerminalWaitTimesByTerminalId:()=>Wr,terminalArrivalSpaceSchema:()=>ao,terminalBasicsArraySchema:()=>br,terminalBasicsSchema:()=>tt,terminalBulletinArraySchema:()=>Ir,terminalBulletinItemSchema:()=>Sr,terminalBulletinSchema:()=>rt,terminalCacheFlushDateSchema:()=>it,terminalDepartingSpaceSchema:()=>no,terminalLocationArraySchema:()=>Rr,terminalLocationSchema:()=>at,terminalSailingSpaceArraySchema:()=>Ar,terminalSailingSpaceSchema:()=>nt,terminalTransitLinkSchema:()=>Xe,terminalTransportArraySchema:()=>xr,terminalTransportSchema:()=>ot,terminalVerboseArraySchema:()=>wr,terminalVerboseSchema:()=>st,terminalWaitTimeSchema:()=>Dr,terminalWaitTimesArraySchema:()=>oe,terminalWaitTimesSchema:()=>oo,useCacheFlushDateTerminals:()=>_r,useTerminalBasics:()=>Us,useTerminalBasicsByTerminalId:()=>Ps,useTerminalBulletins:()=>Os,useTerminalBulletinsByTerminalId:()=>Ws,useTerminalLocations:()=>qs,useTerminalLocationsByTerminalId:()=>Ns,useTerminalSailingSpace:()=>Ms,useTerminalSailingSpaceByTerminalId:()=>_s,useTerminalTransports:()=>js,useTerminalTransportsByTerminalId:()=>zs,useTerminalVerbose:()=>Qs,useTerminalVerboseByTerminalId:()=>Ys,useTerminalWaitTimes:()=>Hs,useTerminalWaitTimesByTerminalId:()=>Ks});var u=()=>z$1.string().nullable(),gr=()=>z$1.number().nullable(),ro=()=>z$1.boolean().nullable(),et=()=>z$1.date(),tt=z$1.object({TerminalID:z$1.number(),TerminalSubjectID:z$1.number(),RegionID:z$1.number(),TerminalName:z$1.string(),TerminalAbbrev:z$1.string(),SortSeq:z$1.number(),OverheadPassengerLoading:z$1.boolean(),Elevator:z$1.boolean(),WaitingRoom:z$1.boolean(),FoodService:z$1.boolean(),Restroom:z$1.boolean()}).catchall(z$1.unknown()),Sr=z$1.object({BulletinTitle:z$1.string(),BulletinText:z$1.string(),BulletinSortSeq:z$1.number(),BulletinLastUpdated:et().optional(),BulletinLastUpdatedSortable:z$1.string().optional()}).catchall(z$1.unknown()),rt=z$1.object({TerminalID:z$1.number(),TerminalSubjectID:z$1.number(),RegionID:z$1.number(),TerminalName:z$1.string(),TerminalAbbrev:z$1.string(),SortSeq:z$1.number(),Bulletins:z$1.array(Sr)}).catchall(z$1.unknown()),at=z$1.object({TerminalID:z$1.number(),TerminalSubjectID:z$1.number(),RegionID:z$1.number(),TerminalName:z$1.string(),TerminalAbbrev:z$1.string(),SortSeq:z$1.number(),AddressLineOne:z$1.string(),AddressLineTwo:u(),City:z$1.string(),State:z$1.string(),ZipCode:z$1.string(),Country:z$1.string(),Latitude:z$1.number(),Longitude:z$1.number(),Directions:u(),DispGISZoomLoc:z$1.array(z$1.object({Latitude:z$1.number(),Longitude:z$1.number(),ZoomLevel:z$1.number()}).catchall(z$1.unknown())),MapLink:u()}).catchall(z$1.unknown()),ao=z$1.object({TerminalID:z$1.number(),TerminalName:z$1.string(),VesselID:z$1.number(),VesselName:z$1.string(),DisplayReservableSpace:z$1.boolean(),ReservableSpaceCount:gr(),ReservableSpaceHexColor:u(),DisplayDriveUpSpace:z$1.boolean(),DriveUpSpaceCount:z$1.number(),DriveUpSpaceHexColor:z$1.string(),MaxSpaceCount:z$1.number(),ArrivalTerminalIDs:z$1.array(z$1.number())}).catchall(z$1.unknown()),no=z$1.object({Departure:et(),IsCancelled:z$1.boolean(),VesselID:z$1.number(),VesselName:z$1.string(),MaxSpaceCount:z$1.number(),SpaceForArrivalTerminals:z$1.array(ao)}).catchall(z$1.unknown()),nt=z$1.object({TerminalID:z$1.number(),TerminalSubjectID:z$1.number(),RegionID:z$1.number(),TerminalName:z$1.string(),TerminalAbbrev:z$1.string(),SortSeq:z$1.number(),DepartingSpaces:z$1.array(no),IsNoFareCollected:ro(),NoFareCollectedMsg:u()}).catchall(z$1.unknown()),Xe=z$1.object({LinkName:z$1.string(),LinkURL:z$1.string(),SortSeq:gr()}).catchall(z$1.unknown()),ot=z$1.object({TerminalID:z$1.number(),TerminalSubjectID:z$1.number(),RegionID:z$1.number(),TerminalName:z$1.string(),TerminalAbbrev:z$1.string(),SortSeq:z$1.number(),ParkingInfo:z$1.string(),ParkingShuttleInfo:u(),AirportInfo:u(),AirportShuttleInfo:u(),MotorcycleInfo:z$1.string(),TruckInfo:z$1.string(),BikeInfo:u(),TrainInfo:u(),TaxiInfo:u(),HovInfo:u(),TransitLinks:z$1.array(Xe)}).catchall(z$1.unknown()),Dr=z$1.object({RouteID:gr(),RouteName:u(),WaitTimeIVRNotes:u(),WaitTimeLastUpdated:et(),WaitTimeNotes:u()}).catchall(z$1.unknown()),oo=z$1.object({TerminalID:z$1.number(),TerminalSubjectID:z$1.number(),RegionID:z$1.number(),TerminalName:z$1.string(),TerminalAbbrev:z$1.string(),SortSeq:z$1.number(),WaitTimes:z$1.array(Dr)}).catchall(z$1.unknown()),st=z$1.object({TerminalID:z$1.number(),TerminalSubjectID:z$1.number(),RegionID:z$1.number(),TerminalName:z$1.string(),TerminalAbbrev:z$1.string(),SortSeq:z$1.number(),AddressLineOne:z$1.string(),AddressLineTwo:u(),City:z$1.string(),State:z$1.string(),ZipCode:z$1.string(),Country:z$1.string(),Latitude:z$1.number(),Longitude:z$1.number(),Directions:u(),DispGISZoomLoc:z$1.array(z$1.object({Latitude:z$1.number(),Longitude:z$1.number(),ZoomLevel:z$1.number()}).catchall(z$1.unknown())),MapLink:u(),Elevator:z$1.boolean(),WaitingRoom:z$1.boolean(),FoodService:z$1.boolean(),Restroom:z$1.boolean(),OverheadPassengerLoading:z$1.boolean(),IsNoFareCollected:ro(),NoFareCollectedMsg:u(),AdaInfo:u(),AdditionalInfo:u(),AirportInfo:u(),AirportShuttleInfo:u(),BikeInfo:u(),ChamberOfCommerce:Xe.nullable(),ConstructionInfo:u(),FacInfo:u(),FareDiscountInfo:u(),FoodServiceInfo:u(),HovInfo:u(),LostAndFoundInfo:u(),MotorcycleInfo:u(),ParkingInfo:u(),ParkingShuttleInfo:u(),REALTIME_SHUTOFF_FLAG:z$1.boolean(),REALTIME_SHUTOFF_MESSAGE:u(),RealtimeIntroMsg:u(),ResourceStatus:u(),SecurityInfo:u(),TallySystemInfo:u(),TaxiInfo:u(),TrainInfo:u(),TruckInfo:u(),TypeDesc:u(),VisitorLinks:z$1.array(z$1.any()).nullable(),Bulletins:z$1.array(Sr),TransitLinks:z$1.array(Xe),WaitTimes:z$1.array(Dr)}).catchall(z$1.unknown()),it=et().nullable(),br=z$1.array(tt),Ir=z$1.array(rt),Rr=z$1.array(at),Ar=z$1.array(nt),xr=z$1.array(ot),oe=z$1.array(oo),wr=z$1.array(st);var L=y("/ferries/api/terminals/rest"),vr=async()=>{let t=await L("/terminalbasics")();return br.parse(t)},Cr=async e=>{let a=await L("/terminalbasics/{terminalId}")(e);return tt.parse(a)},Er=async()=>{let t=await L("/terminallocations")();return Rr.parse(t)},Fr=async e=>{let a=await L("/terminallocations/{terminalId}")(e);return at.parse(a)},Lr=async()=>{let t=await L("/terminalsailingspace")();return Ar.parse(t)},Vr=async e=>{let a=await L("/terminalsailingspace/{terminalId}")(e);return nt.parse(a)},Br=async()=>{let t=await L("/terminalbulletins")();return Ir.parse(t)},kr=async e=>{let a=await L("/terminalbulletins/{terminalId}")(e);return rt.parse(a)},Ur=async()=>{let t=await L("/terminaltransports")();return xr.parse(t)},Pr=async e=>{let a=await L("/terminaltransports/{terminalId}")(e);return ot.parse(a)},Or=async()=>{let t=await L("/terminalwaittimes")();return oe.parse(t)},Wr=async e=>{let a=await L("/terminalwaittimes/{terminalId}")(e);return it&&oe.element?oe.element.parse(a):a},qr=async()=>{let t=await L("/terminalverbose")();return wr.parse(t)},Nr=async e=>{let a=await L("/terminalverbose/{terminalId}")(e);return st.parse(a)},Mr=async()=>{let t=await L("/cacheflushdate")();return it.parse(t)};var Us=e=>useQuery({queryKey:["wsf","terminals","basics"],queryFn:()=>vr(),...s.DAILY_UPDATES,...e}),Ps=(e,t)=>useQuery({queryKey:["wsf","terminals","basics","byTerminalId",e.terminalId],queryFn:()=>Cr({terminalId:e.terminalId}),...s.DAILY_UPDATES,...t}),Os=e=>useQuery({queryKey:["wsf","terminals","bulletins"],queryFn:()=>Br(),...s.DAILY_UPDATES,...e}),Ws=(e,t)=>useQuery({queryKey:["wsf","terminals","bulletins","byTerminalId",e.terminalId],queryFn:()=>kr({terminalId:e.terminalId}),...s.DAILY_UPDATES,...t}),qs=e=>useQuery({queryKey:["wsf","terminals","locations"],queryFn:()=>Er(),...s.DAILY_UPDATES,...e}),Ns=(e,t)=>useQuery({queryKey:["wsf","terminals","locations","byTerminalId",e.terminalId],queryFn:()=>Fr({terminalId:e.terminalId}),...s.DAILY_UPDATES,...t}),Ms=e=>useQuery({queryKey:["wsf","terminals","sailing-space"],queryFn:()=>Lr(),...s.REALTIME_UPDATES,...e}),_s=(e,t)=>useQuery({queryKey:["wsf","terminals","sailingSpace","byTerminalId",e.terminalId],queryFn:()=>Vr({terminalId:e.terminalId}),...s.REALTIME_UPDATES,...t}),js=e=>useQuery({queryKey:["wsf","terminals","transports"],queryFn:()=>Ur(),...s.DAILY_UPDATES,...e}),zs=(e,t)=>useQuery({queryKey:["wsf","terminals","transports","byTerminalId",e.terminalId],queryFn:()=>Pr({terminalId:e.terminalId}),...s.DAILY_UPDATES,...t}),Hs=e=>useQuery({queryKey:["wsf","terminals","wait-times"],queryFn:()=>Or(),...s.DAILY_UPDATES,...e}),Ks=(e,t)=>useQuery({queryKey:["wsf","terminals","wait-times","byTerminalId",e.terminalId],queryFn:()=>Wr({terminalId:e.terminalId}),...s.REALTIME_UPDATES,...t}),Qs=e=>useQuery({queryKey:["wsf","terminals","verbose"],queryFn:()=>qr(),...s.DAILY_UPDATES,...e}),Ys=(e,t)=>useQuery({queryKey:["wsf","terminals","verbose","byTerminalId",e.terminalId],queryFn:()=>Nr({terminalId:e.terminalId}),...s.DAILY_UPDATES,...t}),_r=e=>useQuery({queryKey:["wsf","terminals","cache-flush-date"],queryFn:()=>Mr(),...s.DAILY_UPDATES,...e});var Js=()=>X(["terminals"],_r);var mo={};v(mo,{VesselCacheProvider:()=>mi,getAllVesselHistories:()=>na,getCacheFlushDateVessels:()=>ia,getMultipleVesselHistories:()=>yt,getVesselAccommodations:()=>ea,getVesselAccommodationsById:()=>ta,getVesselBasics:()=>Gr,getVesselBasicsById:()=>$r,getVesselHistoryByVesselAndDateRange:()=>dt,getVesselLocations:()=>Zr,getVesselLocationsByVesselId:()=>Xr,getVesselStats:()=>ra,getVesselStatsById:()=>aa,getVesselVerbose:()=>oa,getVesselVerboseById:()=>sa,useAllVesselHistories:()=>si,useCacheFlushDateVessels:()=>ca,useMultipleVesselHistories:()=>oi,useVesselAccommodations:()=>Zs,useVesselAccommodationsById:()=>Xs,useVesselBasics:()=>Gs,useVesselBasicsById:()=>$s,useVesselHistoryByVesselAndDateRange:()=>ni,useVesselLocations:()=>ei,useVesselLocationsByVesselId:()=>ti,useVesselStats:()=>ri,useVesselStatsById:()=>ai,useVesselVerbose:()=>ii,useVesselVerboseById:()=>ci,vesselAccommodationArraySchema:()=>Hr,vesselAccommodationSchema:()=>mt,vesselBasicArraySchema:()=>zr,vesselBasicSchema:()=>ct,vesselClassSchema:()=>ie,vesselHistoryArraySchema:()=>Qr,vesselHistorySchema:()=>co,vesselLocationArraySchema:()=>Yr,vesselLocationSchema:()=>ut,vesselStatsArraySchema:()=>Kr,vesselStatsSchema:()=>lt,vesselVerboseArraySchema:()=>Jr,vesselVerboseSchema:()=>pt,vesselsCacheFlushDateSchema:()=>jr});var io=()=>z$1.date(),Y=()=>z$1.date().nullable(),N=()=>z$1.string().nullable(),se=()=>z$1.number().nullable(),ie=z$1.object({ClassID:z$1.number(),ClassSubjectID:z$1.number(),ClassName:z$1.string(),SortSeq:z$1.number(),DrawingImg:z$1.string(),SilhouetteImg:z$1.string(),PublicDisplayName:z$1.string()}).catchall(z$1.unknown()),ct=z$1.object({VesselID:z$1.number(),VesselSubjectID:z$1.number(),VesselName:z$1.string(),VesselAbbrev:z$1.string(),Class:ie,Status:z$1.number(),OwnedByWSF:z$1.boolean()}).catchall(z$1.unknown()),mt=z$1.object({VesselID:z$1.number(),VesselSubjectID:z$1.number(),VesselName:z$1.string(),VesselAbbrev:z$1.string(),Class:ie,CarDeckRestroom:z$1.boolean(),CarDeckShelter:z$1.boolean(),Elevator:z$1.boolean(),ADAAccessible:z$1.boolean(),MainCabinGalley:z$1.boolean(),MainCabinRestroom:z$1.boolean(),PublicWifi:z$1.boolean(),ADAInfo:z$1.string(),AdditionalInfo:N()}).catchall(z$1.unknown()),lt=z$1.object({VesselID:z$1.number(),VesselSubjectID:z$1.number(),VesselName:z$1.string(),VesselAbbrev:z$1.string(),Class:ie,VesselNameDesc:z$1.string(),VesselHistory:N(),Beam:z$1.string(),CityBuilt:z$1.string(),SpeedInKnots:z$1.number(),Draft:z$1.string(),EngineCount:z$1.number(),Horsepower:z$1.number(),Length:z$1.string(),MaxPassengerCount:z$1.number(),PassengerOnly:z$1.boolean(),FastFerry:z$1.boolean(),PropulsionInfo:z$1.string(),TallDeckClearance:z$1.number(),RegDeckSpace:z$1.number(),TallDeckSpace:z$1.number(),Tonnage:z$1.number(),Displacement:z$1.number(),YearBuilt:z$1.number(),YearRebuilt:se(),VesselDrawingImg:N(),SolasCertified:z$1.boolean(),MaxPassengerCountForInternational:se()}).catchall(z$1.unknown()),co=z$1.object({VesselId:z$1.number(),Vessel:z$1.string(),Departing:N(),Arriving:N(),ScheduledDepart:Y(),ActualDepart:Y(),EstArrival:Y(),Date:Y()}).catchall(z$1.unknown()),ut=z$1.object({VesselID:z$1.number(),VesselName:z$1.string(),Mmsi:z$1.number(),DepartingTerminalID:z$1.number(),DepartingTerminalName:z$1.string(),DepartingTerminalAbbrev:z$1.string(),ArrivingTerminalID:se(),ArrivingTerminalName:N(),ArrivingTerminalAbbrev:N(),Latitude:z$1.number(),Longitude:z$1.number(),Speed:z$1.number(),Heading:z$1.number(),InService:z$1.boolean(),AtDock:z$1.boolean(),LeftDock:Y(),Eta:Y(),EtaBasis:N(),ScheduledDeparture:Y(),OpRouteAbbrev:z$1.array(z$1.string()),VesselPositionNum:se(),SortSeq:z$1.number(),ManagedBy:z$1.number(),TimeStamp:io()}).catchall(z$1.unknown()),pt=z$1.object({VesselID:z$1.number(),VesselName:z$1.string(),VesselAbbrev:z$1.string(),Class:ie,Status:z$1.number(),OwnedByWSF:z$1.boolean(),YearBuilt:z$1.number(),Displacement:z$1.number(),Length:z$1.string(),Beam:z$1.string(),Draft:z$1.string(),SpeedInKnots:z$1.number(),EngineCount:z$1.number(),Horsepower:z$1.number(),MaxPassengerCount:z$1.number(),RegDeckSpace:z$1.number(),TallDeckSpace:z$1.number(),Tonnage:z$1.number(),PropulsionInfo:z$1.string(),ADAAccessible:z$1.boolean(),Elevator:z$1.boolean(),CarDeckRestroom:z$1.boolean(),MainCabinGalley:z$1.boolean(),MainCabinRestroom:z$1.boolean(),PublicWifi:z$1.boolean(),ADAInfo:z$1.string(),VesselNameDesc:z$1.string(),VesselHistory:N(),CityBuilt:z$1.string(),YearRebuilt:se()}).catchall(z$1.unknown()),jr=io(),zr=z$1.array(ct),Hr=z$1.array(mt),Kr=z$1.array(lt),Qr=z$1.array(co),Yr=z$1.array(ut),Jr=z$1.array(pt);var P=y("/ferries/api/vessels/rest"),Gr=async()=>{let t=await P("/vesselbasics")();return zr.parse(t)},$r=async e=>{let a=await P("/vesselbasics/{vesselId}")(e);return ct.parse(a)},Zr=async()=>{let t=await P("/vessellocations")();return Yr.parse(t)},Xr=async e=>{let a=await P("/vessellocations/{vesselId}")(e);return ut.parse(a)},ea=async()=>{let t=await P("/vesselaccommodations")();return Hr.parse(t)},ta=async e=>{let a=await P("/vesselaccommodations/{vesselId}")(e);return mt.parse(a)},ra=async()=>{let t=await P("/vesselstats")();return Kr.parse(t)},aa=async e=>{let a=await P("/vesselstats/{vesselId}")(e);return lt.parse(a)},dt=async e=>{let a=await P("/vesselhistory/{vesselName}/{dateStart}/{dateEnd}")(e);return Qr.parse(a)},yt=async e=>{let{vesselNames:t,dateStart:a,dateEnd:m,batchSize:c=6}=e,d=[];for(let R=0;R<t.length;R+=c){let J=t.slice(R,R+c).map(k=>dt({vesselName:k,dateStart:a,dateEnd:m})),ee=await Promise.all(J);d.push(...ee.flat());}return d},na=async e=>yt({vesselNames:["Cathlamet","Chelan","Chetzemoka","Chimacum","Issaquah","Kaleetan","Kennewick","Kitsap","Kittitas","Puyallup","Salish","Samish","Sealth","Spokane","Suquamish","Tacoma","Tillikum","Tokitae","Walla Walla","Wenatchee","Yakima"],dateStart:e.dateStart,dateEnd:e.dateEnd,batchSize:e.batchSize}),oa=async()=>{let t=await P("/vesselverbose")();return Jr.parse(t)},sa=async e=>{let a=await P("/vesselverbose/{vesselId}")(e);return pt.parse(a)},ia=async()=>{let t=await P("/cacheflushdate")();return jr.parse(t)};var Gs=e=>useQuery({queryKey:["wsf","vessels","basics"],queryFn:()=>Gr(),...s.DAILY_UPDATES,...e}),$s=(e,t)=>useQuery({queryKey:["wsf","vessels","basics","byId",e.vesselId],queryFn:()=>$r({vesselId:e.vesselId}),...s.DAILY_UPDATES,...t}),Zs=e=>useQuery({queryKey:["wsf","vessels","accommodations"],queryFn:()=>ea(),...s.DAILY_UPDATES,...e}),Xs=(e,t)=>useQuery({queryKey:["wsf","vessels","accommodations","byId",e.vesselId],queryFn:()=>ta({vesselId:e.vesselId}),...s.DAILY_UPDATES,...t}),ei=e=>useQuery({queryKey:["wsf","vessels","locations"],queryFn:()=>Zr(),...s.REALTIME_UPDATES,...e}),ti=(e,t)=>useQuery({queryKey:["wsf","vessels","locations","byVesselId",e.vesselId],queryFn:()=>Xr({vesselId:e.vesselId}),...s.REALTIME_UPDATES,...t}),ri=e=>useQuery({queryKey:["wsf","vessels","stats"],queryFn:()=>ra(),...s.DAILY_UPDATES,...e}),ai=(e,t)=>useQuery({queryKey:["wsf","vessels","stats","byId",e.vesselId],queryFn:()=>aa({vesselId:e.vesselId}),...s.DAILY_UPDATES,...t}),ni=(e,t)=>useQuery({queryKey:["wsf","vessels","history","byVesselAndDateRange",e.vesselName,e.dateStart.toISOString(),e.dateEnd.toISOString()],queryFn:()=>dt({vesselName:e.vesselName,dateStart:e.dateStart,dateEnd:e.dateEnd}),...s.MINUTE_UPDATES,...t}),oi=(e,t)=>useQuery({queryKey:["wsf","vessels","history","multipleVessels",e.vesselNames.sort(),e.dateStart.toISOString(),e.dateEnd.toISOString(),e.batchSize],queryFn:()=>yt({vesselNames:e.vesselNames,dateStart:e.dateStart,dateEnd:e.dateEnd,batchSize:e.batchSize}),...s.MINUTE_UPDATES,...t}),si=(e,t)=>useQuery({queryKey:["wsf","vessels","history","allVessels",e.dateStart.toISOString(),e.dateEnd.toISOString(),e.batchSize],queryFn:()=>na({dateStart:e.dateStart,dateEnd:e.dateEnd,batchSize:e.batchSize}),...s.MINUTE_UPDATES,...t}),ii=e=>useQuery({queryKey:["wsf","vessels","verbose"],queryFn:()=>oa(),...s.DAILY_UPDATES,...e}),ci=(e,t)=>useQuery({queryKey:["wsf","vessels","verbose","byId",e.vesselId],queryFn:()=>sa({vesselId:e.vesselId}),...s.DAILY_UPDATES,...t}),ca=e=>useQuery({queryKey:["wsf","vessels","cacheFlushDate"],queryFn:()=>ia(),...s.DAILY_UPDATES,...e});var mi=()=>X(["vessels"],ca);var ju=e=>useQuery({queryKey:["wsf","fares","cacheFlushDate"],queryFn:()=>We(),...s.DAILY_UPDATES,...e}),zu=e=>useQuery({queryKey:["wsf","fares","validDateRange"],queryFn:()=>qe(),...s.DAILY_UPDATES,...e}),Hu=(e,t)=>useQuery({queryKey:["wsf","fares","terminals",S(e.tripDate)],queryFn:()=>Ne({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),Ku=(e,t)=>useQuery({queryKey:["wsf","fares","terminalMates",S(e.tripDate),e.terminalID],queryFn:()=>Me({tripDate:e.tripDate,terminalID:e.terminalID}),...s.DAILY_UPDATES,...t}),Qu=(e,t)=>useQuery({queryKey:["wsf","fares","terminalCombo",S(e.tripDate),e.departingTerminalID,e.arrivingTerminalID],queryFn:()=>_e({tripDate:e.tripDate,departingTerminalID:e.departingTerminalID,arrivingTerminalID:e.arrivingTerminalID}),...s.DAILY_UPDATES,...t}),Yu=(e,t)=>useQuery({queryKey:["wsf","fares","terminalComboVerbose",S(e.tripDate)],queryFn:()=>je({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),Ju=(e,t)=>useQuery({queryKey:["wsf","fares","fareLineItemsBasic",S(e.tripDate),e.departingTerminalID,e.arrivingTerminalID,e.roundTrip],queryFn:()=>ze({tripDate:e.tripDate,departingTerminalID:e.departingTerminalID,arrivingTerminalID:e.arrivingTerminalID,roundTrip:e.roundTrip}),...s.DAILY_UPDATES,...t}),Gu=(e,t)=>useQuery({queryKey:["wsf","fares","fareLineItems",S(e.tripDate),e.departingTerminalID,e.arrivingTerminalID,e.roundTrip],queryFn:()=>He({tripDate:e.tripDate,departingTerminalID:e.departingTerminalID,arrivingTerminalID:e.arrivingTerminalID,roundTrip:e.roundTrip}),...s.DAILY_UPDATES,...t}),$u=(e,t)=>useQuery({queryKey:["wsf","fares","fareLineItemsVerbose",S(e.tripDate)],queryFn:()=>Ke({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),Zu=(e,t)=>useQuery({queryKey:["wsf","fares","fareTotals",S(e.tripDate),e.departingTerminalID,e.arrivingTerminalID,e.roundTrip,e.fareLineItemIDs,e.quantities],queryFn:()=>Qe(e),enabled:e.fareLineItemIDs.length>0&&e.quantities.length>0,...s.DAILY_UPDATES,...t});
export{X as CacheProvider,O as WsdotApiError,Sa as WsdotBorderCrossings,Ia as WsdotBridgeClearances,La as WsdotCommercialVehicleRestrictions,Pa as WsdotHighwayAlerts,_a as WsdotHighwayCameras,Ja as WsdotMountainPassConditions,rn as WsdotTollRates,mn as WsdotTrafficFlow,Tn as WsdotTravelTimes,Dn as WsdotWeatherInformation,Rn as WsdotWeatherInformationExtended,wn as WsdotWeatherStations,qn as WsfFares,to as WsfSchedule,so as WsfTerminals,mo as WsfVessels,z as configManager,re as createApiClient,Tt as createApiError,y as createFetchFactory,me as fetchJsonp,le as fetchNative,ue as getEnvironmentType,ha as hasApiError,S as jsDateToYyyyMmDd,ft as parseWsdotJson,te as processApiResponse,gt as selectFetchStrategy,s as tanstackQueryOptions,Ds as useActiveSeasons,Vs as useAlerts,As as useAllSailings,si as useAllVesselHistories,Bs as useAlternativeFormats,ga as useBorderCrossings,ba as useBridgeClearances,fr as useCacheFlushDateSchedule,_r as useCacheFlushDateTerminals,ca as useCacheFlushDateVessels,Ea as useCommercialVehicleRestrictions,Fa as useCommercialVehicleRestrictionsWithId,Gu as useFareLineItems,Ju as useFareLineItemsBasic,$u as useFareLineItemsVerbose,Zu as useFareTotals,ju as useFaresCacheFlushDate,Ku as useFaresTerminalMates,Hu as useFaresTerminals,zu as useFaresValidDateRange,ka as useHighwayAlertById,Ba as useHighwayAlerts,Ua as useHighwayAlertsByMapArea,Na as useHighwayCamera,qa as useHighwayCameras,Ya as useMountainPassConditionById,Qa as useMountainPassConditions,oi as useMultipleVesselHistories,fs as useRouteDetails,Ss as useRouteDetailsByRoute,gs as useRouteDetailsByTerminals,ys as useRoutes,hs as useRoutesByTerminals,Ts as useRoutesWithDisruptions,Rs as useSailings,Cs as useScheduleByRoute,Es as useScheduleByTerminals,Fs as useScheduleTodayByRoute,Ls as useScheduleTodayByTerminals,bs as useScheduledRoutes,Is as useScheduledRoutesBySeason,Ma as useSearchHighwayCameras,Us as useTerminalBasics,Ps as useTerminalBasicsByTerminalId,Os as useTerminalBulletins,Ws as useTerminalBulletinsByTerminalId,Qu as useTerminalCombo,Yu as useTerminalComboVerbose,qs as useTerminalLocations,Ns as useTerminalLocationsByTerminalId,ds as useTerminalMates,Ms as useTerminalSailingSpace,_s as useTerminalSailingSpaceByTerminalId,js as useTerminalTransports,zs as useTerminalTransportsByTerminalId,Qs as useTerminalVerbose,Ys as useTerminalVerboseByTerminalId,Hs as useTerminalWaitTimes,Ks as useTerminalWaitTimesByTerminalId,ls as useTerminals,us as useTerminalsAndMates,ps as useTerminalsAndMatesByRoute,xs as useTimeAdjustments,ws as useTimeAdjustmentsByRoute,vs as useTimeAdjustmentsBySchedRoute,Xa as useTollRates,en as useTollTripInfo,tn as useTollTripRates,cn as useTrafficFlowById,sn as useTrafficFlows,hn as useTravelTimeById,yn as useTravelTimes,ms as useValidDateRange,Zs as useVesselAccommodations,Xs as useVesselAccommodationsById,Gs as useVesselBasics,$s as useVesselBasicsById,ni as useVesselHistoryByVesselAndDateRange,ei as useVesselLocations,ti as useVesselLocationsByVesselId,ri as useVesselStats,ai as useVesselStatsById,ii as useVesselVerbose,ci as useVesselVerboseById,fn as useWeatherInformation,gn as useWeatherInformationByStationId,In as useWeatherInformationExtended,Sn as useWeatherInformationForStations,xn as useWeatherStations};//# sourceMappingURL=index.mjs.map
//# sourceMappingURL=index.mjs.map