UNPKG

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 67.8 kB
'use strict';var zod=require('zod'),reactQuery=require('@tanstack/react-query'),react=require('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=()=>zod.z.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(zod.z.date());var b=()=>zod.z.string().nullable(),l=()=>zod.z.number().nullable();var ko=zod.z.object({Description:zod.z.string(),Direction:b(),Latitude:zod.z.number(),Longitude:zod.z.number(),MilePost:zod.z.number(),RoadName:zod.z.string()}).catchall(zod.z.unknown()).nullable(),Uo=zod.z.object({BorderCrossingLocation:ko,CrossingName:zod.z.string(),Time:T(),WaitTime:zod.z.number()}).catchall(zod.z.unknown()),fa=zod.z.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=>reactQuery.useQuery({queryKey:["wsdot","border-crossings","getBorderCrossings"],queryFn:()=>de(),...s.MINUTE_UPDATES,...e});var Ia={};v(Ia,{getBridgeClearances:()=>ye,useBridgeClearances:()=>ba});var Wo=zod.z.object({APILastUpdate:T(),BridgeNumber:zod.z.string(),ControlEntityGuid:zod.z.string(),CrossingDescription:zod.z.string(),CrossingLocationId:zod.z.number(),CrossingRecordGuid:zod.z.string(),InventoryDirection:b(),Latitude:zod.z.number(),LocationGuid:zod.z.string(),Longitude:zod.z.number(),RouteDate:T(),SRMP:zod.z.number(),SRMPAheadBackIndicator:b(),StateRouteID:zod.z.string(),StateStructureId:zod.z.string(),VerticalClearanceMaximumFeetInch:zod.z.string(),VerticalClearanceMaximumInches:zod.z.number(),VerticalClearanceMinimumFeetInch:zod.z.string(),VerticalClearanceMinimumInches:zod.z.number()}).catchall(zod.z.unknown()),Da=zod.z.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)=>reactQuery.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=zod.z.object({Description:b(),Direction:b(),Latitude:zod.z.number(),Longitude:zod.z.number(),MilePost:zod.z.number(),RoadName:zod.z.string()}).catchall(zod.z.unknown()),Aa=zod.z.object({BLMaxAxle:l(),BridgeName:zod.z.string(),BridgeNumber:zod.z.string(),CL8MaxAxle:l(),DateEffective:T(),DateExpires:T(),DatePosted:T(),EndRoadwayLocation:Ra,IsDetourAvailable:zod.z.boolean(),IsExceptionsAllowed:zod.z.boolean(),IsPermanentRestriction:zod.z.boolean(),IsWarning:zod.z.boolean(),Latitude:zod.z.number(),LocationDescription:zod.z.string(),LocationName:zod.z.string(),Longitude:zod.z.number(),MaximumGrossVehicleWeightInPounds:l(),RestrictionComment:zod.z.string(),RestrictionHeightInInches:l(),RestrictionLengthInInches:l(),RestrictionType:zod.z.number(),RestrictionWeightInPounds:l(),RestrictionWidthInInches:l(),SAMaxAxle:l(),StartRoadwayLocation:Ra,State:zod.z.string(),StateRouteID:zod.z.string(),TDMaxAxle:l(),VehicleType:zod.z.string()}).catchall(zod.z.unknown()),Mo=Aa.extend({UniqueID:zod.z.string()}).catchall(zod.z.unknown()),xa=zod.z.array(Aa),wa=zod.z.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=>reactQuery.useQuery({queryKey:["wsdot","commercial-vehicle-restrictions","getCommercialVehicleRestrictions"],queryFn:()=>he(),...s.DAILY_UPDATES,...e}),Fa=e=>reactQuery.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=zod.z.object({Description:b(),Direction:b(),Latitude:zod.z.number(),Longitude:zod.z.number(),MilePost:zod.z.number(),RoadName:zod.z.string()}).catchall(zod.z.unknown()),St=zod.z.object({AlertID:zod.z.number(),County:b(),EndRoadwayLocation:Va,EndTime:T().nullable(),EventCategory:zod.z.string(),EventStatus:zod.z.string(),ExtendedDescription:zod.z.string(),HeadlineDescription:zod.z.string(),LastUpdatedTime:T(),Priority:zod.z.string(),Region:zod.z.string(),StartRoadwayLocation:Va,StartTime:T()}).catchall(zod.z.unknown()),Dt=zod.z.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=>reactQuery.useQuery({queryKey:["wsdot","highway-alerts","getHighwayAlerts"],queryFn:()=>fe(),...s.MINUTE_UPDATES,...e}),ka=(e,t)=>reactQuery.useQuery({queryKey:["wsdot","highway-alerts","getHighwayAlertById",e.alertId],queryFn:()=>ge({alertId:e.alertId}),...s.MINUTE_UPDATES,...t}),Ua=(e,t)=>reactQuery.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=zod.z.object({Description:b(),Direction:b(),Latitude:zod.z.number(),Longitude:zod.z.number(),MilePost:zod.z.number(),RoadName:zod.z.string()}).catchall(zod.z.unknown()),Rt=zod.z.object({CameraID:zod.z.number(),CameraLocation:_o,CameraOwner:b(),Description:b(),DisplayLatitude:zod.z.number(),DisplayLongitude:zod.z.number(),ImageHeight:zod.z.number(),ImageURL:zod.z.string(),ImageWidth:zod.z.number(),IsActive:zod.z.boolean(),OwnerURL:b(),Region:zod.z.string(),SortOrder:zod.z.number(),Title:zod.z.string()}).catchall(zod.z.unknown()),At=zod.z.array(Rt),Oa=zod.z.object({StateRoute:zod.z.string().optional(),Region:zod.z.string().optional(),StartingMilepost:zod.z.number().optional(),EndingMilepost:zod.z.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=>reactQuery.useQuery({queryKey:["wsdot","highway-cameras","getHighwayCameras"],queryFn:()=>De(),...s.DAILY_UPDATES,...e}),Na=(e,t)=>reactQuery.useQuery({queryKey:["wsdot","highway-cameras","getHighwayCamera",e.cameraID],queryFn:()=>be({cameraID:e.cameraID}),...s.DAILY_UPDATES,...t}),Ma=(e,t)=>reactQuery.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=zod.z.object({TravelDirection:zod.z.string(),RestrictionText:zod.z.string()}).catchall(zod.z.unknown()),wt=zod.z.object({DateUpdated:T(),ElevationInFeet:zod.z.number(),Latitude:zod.z.number(),Longitude:zod.z.number(),MountainPassId:zod.z.number(),MountainPassName:zod.z.string(),RestrictionOne:ja,RestrictionTwo:ja,RoadCondition:zod.z.string(),TemperatureInFahrenheit:l(),TravelAdvisoryActive:zod.z.boolean(),WeatherCondition:zod.z.string()}).catchall(zod.z.unknown()),za=zod.z.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=>reactQuery.useQuery({queryKey:["wsdot","mountain-pass-conditions","getMountainPassConditions"],queryFn:()=>Re(),...s.DAILY_UPDATES,...e}),Ya=(e,t)=>reactQuery.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=zod.z.object({CurrentMessage:b(),CurrentToll:zod.z.number(),EndLatitude:zod.z.number(),EndLocationName:zod.z.string(),EndLongitude:zod.z.number(),EndMilepost:zod.z.number(),StartLatitude:zod.z.number(),StartLocationName:zod.z.string(),StartLongitude:zod.z.number(),StartMilepost:zod.z.number(),StateRoute:zod.z.string(),TimeUpdated:T(),TravelDirection:zod.z.string(),TripName:zod.z.string()}).catchall(zod.z.unknown()),Ga=zod.z.array(jo),zo=zod.z.object({EndLatitude:zod.z.number(),EndLocationName:zod.z.string(),EndLongitude:zod.z.number(),EndMilepost:zod.z.number(),Geometry:zod.z.string(),ModifiedDate:T().nullable(),StartLatitude:zod.z.number(),StartLocationName:zod.z.string(),StartLongitude:zod.z.number(),StartMilepost:zod.z.number(),TravelDirection:zod.z.string(),TripName:zod.z.string()}).catchall(zod.z.unknown()),$a=zod.z.array(zo),Ho=zod.z.object({Message:zod.z.string(),MessageUpdateTime:T(),Toll:zod.z.number(),TripName:zod.z.string()}).catchall(zod.z.unknown()),Za=zod.z.object({LastUpdated:T(),Trips:zod.z.array(Ho)}).catchall(zod.z.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=>reactQuery.useQuery({queryKey:["wsdot","toll-rates","getTollRates"],queryFn:()=>xe(),...s.MINUTE_UPDATES,...e}),en=e=>reactQuery.useQuery({queryKey:["wsdot","toll-rates","getTollTripInfo"],queryFn:()=>we(),...s.MINUTE_UPDATES,...e}),tn=e=>reactQuery.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=zod.z.object({Description:zod.z.string(),Direction:zod.z.string(),Latitude:zod.z.number(),Longitude:zod.z.number(),MilePost:zod.z.number(),RoadName:zod.z.string()}).catchall(zod.z.unknown()),Et=zod.z.object({FlowDataID:zod.z.number(),FlowReadingValue:zod.z.number(),FlowStationLocation:Ko,Region:zod.z.string(),StationName:zod.z.string(),Time:T()}).catchall(zod.z.unknown()),an=zod.z.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=>reactQuery.useQuery({queryKey:["wsdot","traffic-flow","getTrafficFlows"],queryFn:()=>Ce(),...s.MINUTE_UPDATES,...e}),cn=(e,t)=>reactQuery.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=zod.z.object({Description:zod.z.string(),Direction:zod.z.string(),Latitude:zod.z.number(),Longitude:zod.z.number(),MilePost:zod.z.number(),RoadName:zod.z.string()}).catchall(zod.z.unknown()),Ft=zod.z.object({AverageTime:zod.z.number(),CurrentTime:zod.z.number(),Description:zod.z.string(),Distance:zod.z.number(),EndPoint:ln,Name:zod.z.string(),StartPoint:ln,TimeUpdated:T(),TravelTimeID:zod.z.number()}).catchall(zod.z.unknown()),un=zod.z.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=>reactQuery.useQuery({queryKey:["wsdot","travel-times","getTravelTimes"],queryFn:()=>Fe(),...s.MINUTE_UPDATES,...e}),hn=(e,t)=>reactQuery.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=zod.z.object({BarometricPressure:l(),Latitude:zod.z.number(),Longitude:zod.z.number(),PrecipitationInInches:l(),ReadingTime:T(),RelativeHumidity:l(),SkyCoverage:b(),StationID:zod.z.number(),StationName:zod.z.string(),TemperatureInFahrenheit:l(),Visibility:l(),WindDirection:l(),WindDirectionCardinal:b(),WindGustSpeedInMPH:l(),WindSpeedInMPH:l()}).catchall(zod.z.unknown()),Vt=zod.z.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=>reactQuery.useQuery({queryKey:["wsdot","weather-information","getWeatherInformation"],queryFn:()=>Ve(),...s.MINUTE_UPDATES,...e}),gn=(e,t)=>reactQuery.useQuery({queryKey:["wsdot","weather-information","getWeatherInformationByStationId",e.stationId],queryFn:()=>Be({stationId:e.stationId}),...s.MINUTE_UPDATES,...t}),Sn=(e,t)=>reactQuery.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=()=>zod.z.string().transform(e=>new Date(e)).refine(e=>!Number.isNaN(e.getTime()),{message:"Invalid ISO date"}).nullable().or(zod.z.date().nullable()),Yo=zod.z.object({SensorId:zod.z.number(),SurfaceTemperature:l(),RoadFreezingTemperature:l(),RoadSurfaceCondition:l()}).catchall(zod.z.unknown()),Jo=zod.z.object({SensorId:zod.z.number(),SubSurfaceTemperature:l()}).catchall(zod.z.unknown()),Go=zod.z.object({StationId:zod.z.string(),StationName:zod.z.string(),Latitude:zod.z.number(),Longitude:zod.z.number(),Elevation:zod.z.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:zod.z.array(Yo).nullable(),SubSurfaceMeasurements:zod.z.array(Jo).nullable()}).catchall(zod.z.unknown()),bn=zod.z.array(Go);var $o=y("/traffic/api/api/Scanweb"),Ue=async()=>{let t=await $o("")();return bn.parse(t)};var In=e=>reactQuery.useQuery({queryKey:["wsdot","weather-information-extended","getWeatherInformationExtended"],queryFn:()=>Ue(),...s.HOURLY_UPDATES,...e});var wn={};v(wn,{getWeatherStations:()=>Pe,useWeatherStations:()=>xn});var Xo=zod.z.object({Latitude:zod.z.number(),Longitude:zod.z.number(),StationCode:zod.z.number(),StationName:zod.z.string()}).catchall(zod.z.unknown()),An=zod.z.array(Xo);var es=y("/Traffic/api/WeatherStations/WeatherStationsREST.svc"),Pe=async()=>{let t=await es("/GetCurrentStationsAsJson")();return An.parse(t)};var xn=e=>reactQuery.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=()=>zod.z.union([zod.z.date(),zod.z.string().transform(e=>new Date(e)),zod.z.number().transform(e=>new Date(e))]).transform(e=>e instanceof Date?e:new Date(e)),vn=Ut(),Cn=zod.z.object({DateFrom:Ut(),DateThru:Ut()}).catchall(zod.z.unknown()),En=zod.z.object({TerminalID:zod.z.number(),Description:zod.z.string()}).catchall(zod.z.unknown()),rs=En,Fn=zod.z.object({DepartingDescription:zod.z.string(),ArrivingDescription:zod.z.string(),CollectionDescription:zod.z.string()}).catchall(zod.z.unknown()),Ln=zod.z.object({DepartingTerminalID:zod.z.number(),DepartingDescription:zod.z.string(),ArrivingTerminalID:zod.z.number(),ArrivingDescription:zod.z.string(),CollectionDescription:zod.z.string()}).catchall(zod.z.unknown()),Oe=zod.z.object({FareLineItemID:zod.z.number(),FareLineItem:zod.z.string(),Category:zod.z.string(),DirectionIndependent:zod.z.boolean(),Amount:zod.z.number()}).catchall(zod.z.unknown()),as=Oe;zod.z.object({DepartingTerminalID:zod.z.number(),DepartingDescription:zod.z.string(),ArrivingTerminalID:zod.z.number(),ArrivingDescription:zod.z.string(),FareLineItemID:zod.z.number(),FareLineItem:zod.z.string(),Category:zod.z.string(),DirectionIndependent:zod.z.boolean(),Amount:zod.z.number(),RoundTrip:zod.z.boolean()}).catchall(zod.z.unknown());var ns=zod.z.object({TerminalComboIndex:zod.z.number(),LineItemIndex:zod.z.number(),RoundTripLineItemIndex:zod.z.number()}).catchall(zod.z.unknown()),Vn=zod.z.object({TerminalComboVerbose:zod.z.array(Ln),LineItemLookup:zod.z.array(ns),LineItems:zod.z.array(zod.z.array(Oe)),RoundTripLineItems:zod.z.array(zod.z.array(Oe))}).catchall(zod.z.unknown()),Bn=zod.z.array(En),kn=zod.z.array(rs),Un=zod.z.array(Ln),Pn=zod.z.array(Oe),On=zod.z.array(as),Wn=zod.z.array(zod.z.object({TotalType:zod.z.number(),Description:zod.z.string(),BriefDescription:zod.z.string(),Amount:zod.z.number()}).catchall(zod.z.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=()=>zod.z.date(),ae=()=>zod.z.date().nullable(),M=()=>zod.z.string().nullable(),_=()=>zod.z.number().nullable(),Ye=zod.z.record(zod.z.string(),zod.z.unknown()),Pt=zod.z.object({AnnotationID:zod.z.number(),AnnotationText:zod.z.string(),AnnotationIVRText:zod.z.string(),AdjustedCrossingTime:_(),AnnotationImg:zod.z.string(),TypeDescription:zod.z.string(),SortSeq:zod.z.number()}).catchall(zod.z.unknown()),Nn=zod.z.object({DateFrom:I(),DateThru:I(),EventID:_(),EventDescription:M(),AdjType:zod.z.number(),ReplacedBySchedRouteID:_()}).catchall(zod.z.unknown()),Mn=zod.z.object({ScheduleID:zod.z.number(),SchedRouteID:zod.z.number(),ContingencyOnly:zod.z.boolean(),RouteID:zod.z.number(),RouteAbbrev:zod.z.string(),Description:zod.z.string(),SeasonalRouteNotes:zod.z.string(),RegionID:zod.z.number(),ServiceDisruptions:zod.z.array(Ye),ContingencyAdj:zod.z.array(Nn)}).catchall(zod.z.unknown()),_n=zod.z.object({RouteID:zod.z.number(),RouteAbbrev:zod.z.string(),Description:zod.z.string(),RegionID:zod.z.number(),Alerts:zod.z.array(Ye).optional()}).catchall(zod.z.unknown()),Ot=zod.z.object({RouteID:zod.z.number(),RouteAbbrev:zod.z.string(),Description:zod.z.string(),RegionID:zod.z.number(),CrossingTime:_(),ReservationFlag:zod.z.boolean(),PassengerOnlyFlag:zod.z.boolean(),InternationalFlag:zod.z.boolean(),VesselWatchID:zod.z.number(),GeneralRouteNotes:zod.z.string(),SeasonalRouteNotes:zod.z.string(),AdaNotes:M(),Alerts:zod.z.array(Ye)}).catchall(zod.z.unknown()),jn=zod.z.object({JourneyTerminalID:zod.z.number(),TerminalID:zod.z.number(),TerminalDescription:zod.z.string(),TerminalBriefDescription:zod.z.string(),Time:ae(),DepArrIndicator:_(),IsNA:zod.z.boolean(),Annotations:zod.z.array(Pt)}).catchall(zod.z.unknown()),zn=zod.z.object({JourneyID:zod.z.number(),ReservationInd:zod.z.boolean(),InternationalInd:zod.z.boolean(),InterislandInd:zod.z.boolean(),VesselID:zod.z.number(),VesselName:zod.z.string(),VesselHandicapAccessible:zod.z.boolean(),VesselPositionNum:zod.z.number(),TerminalTimes:zod.z.array(jn)}).catchall(zod.z.unknown()),Hn=zod.z.object({ScheduleID:zod.z.number(),SchedRouteID:zod.z.number(),RouteID:zod.z.number(),SailingID:zod.z.number(),SailingDescription:zod.z.string(),SailingNotes:zod.z.string(),DisplayColNum:zod.z.number(),SailingDir:zod.z.number(),DayOpDescription:zod.z.string(),DayOpUseForHoliday:zod.z.boolean(),ActiveDateRanges:zod.z.array(zod.z.object({DateFrom:I(),DateThru:I(),EventID:_(),EventDescription:M()}).catchall(zod.z.unknown())),Journs:zod.z.array(zn)}).catchall(zod.z.unknown()),Kn=zod.z.object({BulletinID:zod.z.number(),BulletinFlag:zod.z.boolean(),BulletinText:zod.z.string(),CommunicationFlag:zod.z.boolean(),CommunicationText:M(),RouteAlertFlag:zod.z.boolean(),RouteAlertText:zod.z.string(),HomepageAlertText:zod.z.string(),PublishDate:I(),DisruptionDescription:M(),AllRoutesFlag:zod.z.boolean(),SortSeq:zod.z.number(),AlertTypeID:zod.z.number(),AlertType:zod.z.string(),AlertFullTitle:zod.z.string(),AffectedRouteIDs:zod.z.array(zod.z.number()),IVRText:M()}).catchall(zod.z.unknown()),Qn=zod.z.object({ScheduleID:zod.z.number(),SchedRouteID:zod.z.number(),RouteID:zod.z.number(),RouteDescription:zod.z.string(),RouteSortSeq:zod.z.number(),SailingID:zod.z.number(),SailingDescription:zod.z.string(),ActiveSailingDateRange:zod.z.object({DateFrom:I(),DateThru:I(),EventID:_(),EventDescription:M()}).catchall(zod.z.unknown()),SailingDir:zod.z.number(),JourneyID:zod.z.number(),VesselID:zod.z.number(),VesselName:zod.z.string(),VesselHandicapAccessible:zod.z.boolean(),VesselPositionNum:zod.z.number(),TerminalID:zod.z.number(),TerminalDescription:zod.z.string(),TerminalBriefDescription:zod.z.string(),JourneyTerminalID:zod.z.number(),DepArrIndicator:zod.z.number(),AdjDateFrom:I(),AdjDateThru:I(),AdjType:zod.z.number(),TidalAdj:zod.z.boolean(),TimeToAdj:ae(),Annotations:zod.z.array(Pt),EventID:_(),EventDescription:M()}).catchall(zod.z.unknown()),Yn=zod.z.object({TerminalID:zod.z.number(),Description:zod.z.string()}).catchall(zod.z.unknown()),Jn=zod.z.object({DepartingTerminalID:zod.z.number(),DepartingDescription:zod.z.string(),ArrivingTerminalID:zod.z.number(),ArrivingDescription:zod.z.string()}).catchall(zod.z.unknown()),Gn=zod.z.object({DepartingTime:I(),ArrivingTime:I(),LoadingRule:zod.z.number(),VesselID:zod.z.number(),VesselName:zod.z.string(),VesselHandicapAccessible:zod.z.boolean(),VesselPositionNum:zod.z.number(),Routes:zod.z.array(zod.z.number()),AnnotationIndexes:zod.z.array(zod.z.number())}).catchall(zod.z.unknown()),$n=zod.z.object({DepartingTerminalID:zod.z.number(),DepartingTerminalName:zod.z.string(),ArrivingTerminalID:zod.z.number(),ArrivingTerminalName:zod.z.string(),SailingNotes:zod.z.string(),Annotations:zod.z.array(zod.z.string()),AnnotationsIVR:zod.z.array(zod.z.string()),Times:zod.z.array(Gn)}).catchall(zod.z.unknown()),Z=zod.z.object({ScheduleID:zod.z.number(),ScheduleName:zod.z.string(),ScheduleSeason:zod.z.number(),SchedulePDFUrl:zod.z.string(),ScheduleStart:I(),ScheduleEnd:I(),AllRoutes:zod.z.array(zod.z.number()),TerminalCombos:zod.z.array($n)}).catchall(zod.z.unknown()),Zn=zod.z.object({SailingID:zod.z.number(),SchedRouteID:zod.z.number(),DepartureTime:I(),ArrivalTime:I(),VesselID:zod.z.number(),VesselName:zod.z.string(),DepartingTerminalID:zod.z.number(),DepartingTerminalName:zod.z.string(),ArrivingTerminalID:zod.z.number(),ArrivingTerminalName:zod.z.string(),IsCancelled:zod.z.boolean(),Notes:zod.z.string().optional(),LastUpdated:I()}).catchall(zod.z.unknown()),os=zod.z.object({RouteID:zod.z.number(),RouteName:zod.z.string(),SailingDate:I(),Departures:zod.z.array(Zn),LastUpdated:I()}).catchall(zod.z.unknown()),Wt=zod.z.object({DateFrom:I(),DateThru:I()}).catchall(zod.z.unknown()),qt=I(),Xn=zod.z.object({ScheduleID:zod.z.number(),ScheduleName:zod.z.string(),ScheduleSeason:zod.z.number(),SchedulePDFUrl:zod.z.string(),ScheduleStart:I(),ScheduleEnd:I()}).catchall(zod.z.unknown()),eo=zod.z.object({AltID:zod.z.number(),SubjectID:zod.z.number(),SubjectName:zod.z.string(),AltTitle:zod.z.string(),AltUrl:zod.z.string(),AltDesc:zod.z.string(),FileType:zod.z.string(),Status:zod.z.string(),SortSeq:zod.z.number(),FromDate:ae(),ThruDate:ae(),ModifiedDate:ae(),ModifiedBy:zod.z.string()}).catchall(zod.z.unknown()),Je=zod.z.array(Mn),Q=zod.z.array(_n),Ge=zod.z.array(Hn),Nt=zod.z.array(Kn),ne=zod.z.array(Qn),$e=zod.z.array(Yn),Ze=zod.z.array(Jn),Mt=zod.z.array(Xn),_t=zod.z.array(eo),jt=zod.z.array(zod.z.record(zod.z.string(),zod.z.unknown())),zt=zod.z.record(zod.z.string(),zod.z.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=reactQuery.useQueryClient(),m=react.useRef(null),{data:c}=t();return react.useEffect(()=>{m.current&&c&&m.current.getTime()!==c.getTime()&&a.invalidateQueries({queryKey:e}),m.current=c||null;},[c,a,e]),null};var fr=e=>reactQuery.useQuery({queryKey:["wsf","schedule","cacheFlushDate"],queryFn:()=>Ht(),...s.DAILY_UPDATES,...e}),ms=e=>reactQuery.useQuery({queryKey:["wsf","schedule","validDateRange"],queryFn:()=>Kt(),...s.DAILY_UPDATES,...e}),ls=(e,t)=>reactQuery.useQuery({queryKey:["wsf","schedule","terminals",S(e.tripDate)],queryFn:()=>Qt({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),us=(e,t)=>reactQuery.useQuery({queryKey:["wsf","schedule","terminalsAndMates",S(e.tripDate)],queryFn:()=>Yt({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),ps=(e,t)=>reactQuery.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)=>reactQuery.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)=>reactQuery.useQuery({queryKey:["wsf","schedule","routes",S(e.tripDate)],queryFn:()=>$t({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),hs=(e,t)=>reactQuery.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)=>reactQuery.useQuery({queryKey:["wsf","schedule","routesWithDisruptions",S(e.tripDate)],queryFn:()=>Xt({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),fs=(e,t)=>reactQuery.useQuery({queryKey:["wsf","schedule","routeDetails",S(e.tripDate)],queryFn:()=>er({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),gs=(e,t)=>reactQuery.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)=>reactQuery.useQuery({queryKey:["wsf","schedule","routeDetailsByRoute",S(e.tripDate),e.routeId],queryFn:()=>rr({tripDate:e.tripDate,routeId:e.routeId}),...s.DAILY_UPDATES,...t}),Ds=e=>reactQuery.useQuery({queryKey:["wsf","schedule","activeSeasons"],queryFn:()=>ar(),...s.DAILY_UPDATES,...e}),bs=e=>reactQuery.useQuery({queryKey:["wsf","schedule","scheduledRoutes"],queryFn:()=>nr(),...s.DAILY_UPDATES,...e}),Is=(e,t)=>reactQuery.useQuery({queryKey:["wsf","schedule","scheduledRoutes","bySeason",e.scheduleId],queryFn:()=>or({scheduleId:e.scheduleId}),...s.DAILY_UPDATES,...t}),Rs=(e,t)=>reactQuery.useQuery({queryKey:["wsf","schedule","sailings",e.schedRouteId],queryFn:()=>sr({schedRouteId:e.schedRouteId}),...s.DAILY_UPDATES,...t}),As=(e,t)=>reactQuery.useQuery({queryKey:["wsf","schedule","allSailings",e.schedRouteId],queryFn:()=>ir({schedRouteId:e.schedRouteId}),...s.DAILY_UPDATES,...t}),xs=e=>reactQuery.useQuery({queryKey:["wsf","schedule","timeAdjustments"],queryFn:()=>cr(),...s.DAILY_UPDATES,...e}),ws=(e,t)=>reactQuery.useQuery({queryKey:["wsf","schedule","timeAdjustments","byRoute",e.routeId],queryFn:()=>mr({routeId:e.routeId}),...s.DAILY_UPDATES,...t}),vs=(e,t)=>reactQuery.useQuery({queryKey:["wsf","schedule","timeAdjustments","bySchedRoute",e.schedRouteId],queryFn:()=>lr({schedRouteId:e.schedRouteId}),...s.DAILY_UPDATES,...t}),Cs=(e,t)=>reactQuery.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)=>reactQuery.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)=>reactQuery.useQuery({queryKey:["wsf","schedule","scheduleTodayByRoute",e.routeId,e.onlyRemainingTimes],queryFn:()=>dr({routeId:e.routeId,onlyRemainingTimes:e.onlyRemainingTimes}),...s.DAILY_UPDATES,...t}),Ls=(e,t)=>reactQuery.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=>reactQuery.useQuery({queryKey:["wsf","schedule","alerts"],queryFn:()=>hr(),...s.DAILY_UPDATES,...e}),Bs=(e,t)=>reactQuery.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=()=>zod.z.string().nullable(),gr=()=>zod.z.number().nullable(),ro=()=>zod.z.boolean().nullable(),et=()=>zod.z.date(),tt=zod.z.object({TerminalID:zod.z.number(),TerminalSubjectID:zod.z.number(),RegionID:zod.z.number(),TerminalName:zod.z.string(),TerminalAbbrev:zod.z.string(),SortSeq:zod.z.number(),OverheadPassengerLoading:zod.z.boolean(),Elevator:zod.z.boolean(),WaitingRoom:zod.z.boolean(),FoodService:zod.z.boolean(),Restroom:zod.z.boolean()}).catchall(zod.z.unknown()),Sr=zod.z.object({BulletinTitle:zod.z.string(),BulletinText:zod.z.string(),BulletinSortSeq:zod.z.number(),BulletinLastUpdated:et().optional(),BulletinLastUpdatedSortable:zod.z.string().optional()}).catchall(zod.z.unknown()),rt=zod.z.object({TerminalID:zod.z.number(),TerminalSubjectID:zod.z.number(),RegionID:zod.z.number(),TerminalName:zod.z.string(),TerminalAbbrev:zod.z.string(),SortSeq:zod.z.number(),Bulletins:zod.z.array(Sr)}).catchall(zod.z.unknown()),at=zod.z.object({TerminalID:zod.z.number(),TerminalSubjectID:zod.z.number(),RegionID:zod.z.number(),TerminalName:zod.z.string(),TerminalAbbrev:zod.z.string(),SortSeq:zod.z.number(),AddressLineOne:zod.z.string(),AddressLineTwo:u(),City:zod.z.string(),State:zod.z.string(),ZipCode:zod.z.string(),Country:zod.z.string(),Latitude:zod.z.number(),Longitude:zod.z.number(),Directions:u(),DispGISZoomLoc:zod.z.array(zod.z.object({Latitude:zod.z.number(),Longitude:zod.z.number(),ZoomLevel:zod.z.number()}).catchall(zod.z.unknown())),MapLink:u()}).catchall(zod.z.unknown()),ao=zod.z.object({TerminalID:zod.z.number(),TerminalName:zod.z.string(),VesselID:zod.z.number(),VesselName:zod.z.string(),DisplayReservableSpace:zod.z.boolean(),ReservableSpaceCount:gr(),ReservableSpaceHexColor:u(),DisplayDriveUpSpace:zod.z.boolean(),DriveUpSpaceCount:zod.z.number(),DriveUpSpaceHexColor:zod.z.string(),MaxSpaceCount:zod.z.number(),ArrivalTerminalIDs:zod.z.array(zod.z.number())}).catchall(zod.z.unknown()),no=zod.z.object({Departure:et(),IsCancelled:zod.z.boolean(),VesselID:zod.z.number(),VesselName:zod.z.string(),MaxSpaceCount:zod.z.number(),SpaceForArrivalTerminals:zod.z.array(ao)}).catchall(zod.z.unknown()),nt=zod.z.object({TerminalID:zod.z.number(),TerminalSubjectID:zod.z.number(),RegionID:zod.z.number(),TerminalName:zod.z.string(),TerminalAbbrev:zod.z.string(),SortSeq:zod.z.number(),DepartingSpaces:zod.z.array(no),IsNoFareCollected:ro(),NoFareCollectedMsg:u()}).catchall(zod.z.unknown()),Xe=zod.z.object({LinkName:zod.z.string(),LinkURL:zod.z.string(),SortSeq:gr()}).catchall(zod.z.unknown()),ot=zod.z.object({TerminalID:zod.z.number(),TerminalSubjectID:zod.z.number(),RegionID:zod.z.number(),TerminalName:zod.z.string(),TerminalAbbrev:zod.z.string(),SortSeq:zod.z.number(),ParkingInfo:zod.z.string(),ParkingShuttleInfo:u(),AirportInfo:u(),AirportShuttleInfo:u(),MotorcycleInfo:zod.z.string(),TruckInfo:zod.z.string(),BikeInfo:u(),TrainInfo:u(),TaxiInfo:u(),HovInfo:u(),TransitLinks:zod.z.array(Xe)}).catchall(zod.z.unknown()),Dr=zod.z.object({RouteID:gr(),RouteName:u(),WaitTimeIVRNotes:u(),WaitTimeLastUpdated:et(),WaitTimeNotes:u()}).catchall(zod.z.unknown()),oo=zod.z.object({TerminalID:zod.z.number(),TerminalSubjectID:zod.z.number(),RegionID:zod.z.number(),TerminalName:zod.z.string(),TerminalAbbrev:zod.z.string(),SortSeq:zod.z.number(),WaitTimes:zod.z.array(Dr)}).catchall(zod.z.unknown()),st=zod.z.object({TerminalID:zod.z.number(),TerminalSubjectID:zod.z.number(),RegionID:zod.z.number(),TerminalName:zod.z.string(),TerminalAbbrev:zod.z.string(),SortSeq:zod.z.number(),AddressLineOne:zod.z.string(),AddressLineTwo:u(),City:zod.z.string(),State:zod.z.string(),ZipCode:zod.z.string(),Country:zod.z.string(),Latitude:zod.z.number(),Longitude:zod.z.number(),Directions:u(),DispGISZoomLoc:zod.z.array(zod.z.object({Latitude:zod.z.number(),Longitude:zod.z.number(),ZoomLevel:zod.z.number()}).catchall(zod.z.unknown())),MapLink:u(),Elevator:zod.z.boolean(),WaitingRoom:zod.z.boolean(),FoodService:zod.z.boolean(),Restroom:zod.z.boolean(),OverheadPassengerLoading:zod.z.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:zod.z.boolean(),REALTIME_SHUTOFF_MESSAGE:u(),RealtimeIntroMsg:u(),ResourceStatus:u(),SecurityInfo:u(),TallySystemInfo:u(),TaxiInfo:u(),TrainInfo:u(),TruckInfo:u(),TypeDesc:u(),VisitorLinks:zod.z.array(zod.z.any()).nullable(),Bulletins:zod.z.array(Sr),TransitLinks:zod.z.array(Xe),WaitTimes:zod.z.array(Dr)}).catchall(zod.z.unknown()),it=et().nullable(),br=zod.z.array(tt),Ir=zod.z.array(rt),Rr=zod.z.array(at),Ar=zod.z.array(nt),xr=zod.z.array(ot),oe=zod.z.array(oo),wr=zod.z.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=>reactQuery.useQuery({queryKey:["wsf","terminals","basics"],queryFn:()=>vr(),...s.DAILY_UPDATES,...e}),Ps=(e,t)=>reactQuery.useQuery({queryKey:["wsf","terminals","basics","byTerminalId",e.terminalId],queryFn:()=>Cr({terminalId:e.terminalId}),...s.DAILY_UPDATES,...t}),Os=e=>reactQuery.useQuery({queryKey:["wsf","terminals","bulletins"],queryFn:()=>Br(),...s.DAILY_UPDATES,...e}),Ws=(e,t)=>reactQuery.useQuery({queryKey:["wsf","terminals","bulletins","byTerminalId",e.terminalId],queryFn:()=>kr({terminalId:e.terminalId}),...s.DAILY_UPDATES,...t}),qs=e=>reactQuery.useQuery({queryKey:["wsf","terminals","locations"],queryFn:()=>Er(),...s.DAILY_UPDATES,...e}),Ns=(e,t)=>reactQuery.useQuery({queryKey:["wsf","terminals","locations","byTerminalId",e.terminalId],queryFn:()=>Fr({terminalId:e.terminalId}),...s.DAILY_UPDATES,...t}),Ms=e=>reactQuery.useQuery({queryKey:["wsf","terminals","sailing-space"],queryFn:()=>Lr(),...s.REALTIME_UPDATES,...e}),_s=(e,t)=>reactQuery.useQuery({queryKey:["wsf","terminals","sailingSpace","byTerminalId",e.terminalId],queryFn:()=>Vr({terminalId:e.terminalId}),...s.REALTIME_UPDATES,...t}),js=e=>reactQuery.useQuery({queryKey:["wsf","terminals","transports"],queryFn:()=>Ur(),...s.DAILY_UPDATES,...e}),zs=(e,t)=>reactQuery.useQuery({queryKey:["wsf","terminals","transports","byTerminalId",e.terminalId],queryFn:()=>Pr({terminalId:e.terminalId}),...s.DAILY_UPDATES,...t}),Hs=e=>reactQuery.useQuery({queryKey:["wsf","terminals","wait-times"],queryFn:()=>Or(),...s.DAILY_UPDATES,...e}),Ks=(e,t)=>reactQuery.useQuery({queryKey:["wsf","terminals","wait-times","byTerminalId",e.terminalId],queryFn:()=>Wr({terminalId:e.terminalId}),...s.REALTIME_UPDATES,...t}),Qs=e=>reactQuery.useQuery({queryKey:["wsf","terminals","verbose"],queryFn:()=>qr(),...s.DAILY_UPDATES,...e}),Ys=(e,t)=>reactQuery.useQuery({queryKey:["wsf","terminals","verbose","byTerminalId",e.terminalId],queryFn:()=>Nr({terminalId:e.terminalId}),...s.DAILY_UPDATES,...t}),_r=e=>reactQuery.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=()=>zod.z.date(),Y=()=>zod.z.date().nullable(),N=()=>zod.z.string().nullable(),se=()=>zod.z.number().nullable(),ie=zod.z.object({ClassID:zod.z.number(),ClassSubjectID:zod.z.number(),ClassName:zod.z.string(),SortSeq:zod.z.number(),DrawingImg:zod.z.string(),SilhouetteImg:zod.z.string(),PublicDisplayName:zod.z.string()}).catchall(zod.z.unknown()),ct=zod.z.object({VesselID:zod.z.number(),VesselSubjectID:zod.z.number(),VesselName:zod.z.string(),VesselAbbrev:zod.z.string(),Class:ie,Status:zod.z.number(),OwnedByWSF:zod.z.boolean()}).catchall(zod.z.unknown()),mt=zod.z.object({VesselID:zod.z.number(),VesselSubjectID:zod.z.number(),VesselName:zod.z.string(),VesselAbbrev:zod.z.string(),Class:ie,CarDeckRestroom:zod.z.boolean(),CarDeckShelter:zod.z.boolean(),Elevator:zod.z.boolean(),ADAAccessible:zod.z.boolean(),MainCabinGalley:zod.z.boolean(),MainCabinRestroom:zod.z.boolean(),PublicWifi:zod.z.boolean(),ADAInfo:zod.z.string(),AdditionalInfo:N()}).catchall(zod.z.unknown()),lt=zod.z.object({VesselID:zod.z.number(),VesselSubjectID:zod.z.number(),VesselName:zod.z.string(),VesselAbbrev:zod.z.string(),Class:ie,VesselNameDesc:zod.z.string(),VesselHistory:N(),Beam:zod.z.string(),CityBuilt:zod.z.string(),SpeedInKnots:zod.z.number(),Draft:zod.z.string(),EngineCount:zod.z.number(),Horsepower:zod.z.number(),Length:zod.z.string(),MaxPassengerCount:zod.z.number(),PassengerOnly:zod.z.boolean(),FastFerry:zod.z.boolean(),PropulsionInfo:zod.z.string(),TallDeckClearance:zod.z.number(),RegDeckSpace:zod.z.number(),TallDeckSpace:zod.z.number(),Tonnage:zod.z.number(),Displacement:zod.z.number(),YearBuilt:zod.z.number(),YearRebuilt:se(),VesselDrawingImg:N(),SolasCertified:zod.z.boolean(),MaxPassengerCountForInternational:se()}).catchall(zod.z.unknown()),co=zod.z.object({VesselId:zod.z.number(),Vessel:zod.z.string(),Departing:N(),Arriving:N(),ScheduledDepart:Y(),ActualDepart:Y(),EstArrival:Y(),Date:Y()}).catchall(zod.z.unknown()),ut=zod.z.object({VesselID:zod.z.number(),VesselName:zod.z.string(),Mmsi:zod.z.number(),DepartingTerminalID:zod.z.number(),DepartingTerminalName:zod.z.string(),DepartingTerminalAbbrev:zod.z.string(),ArrivingTerminalID:se(),ArrivingTerminalName:N(),ArrivingTerminalAbbrev:N(),Latitude:zod.z.number(),Longitude:zod.z.number(),Speed:zod.z.number(),Heading:zod.z.number(),InService:zod.z.boolean(),AtDock:zod.z.boolean(),LeftDock:Y(),Eta:Y(),EtaBasis:N(),ScheduledDeparture:Y(),OpRouteAbbrev:zod.z.array(zod.z.string()),VesselPositionNum:se(),SortSeq:zod.z.number(),ManagedBy:zod.z.number(),TimeStamp:io()}).catchall(zod.z.unknown()),pt=zod.z.object({VesselID:zod.z.number(),VesselName:zod.z.string(),VesselAbbrev:zod.z.string(),Class:ie,Status:zod.z.number(),OwnedByWSF:zod.z.boolean(),YearBuilt:zod.z.number(),Displacement:zod.z.number(),Length:zod.z.string(),Beam:zod.z.string(),Draft:zod.z.string(),SpeedInKnots:zod.z.number(),EngineCount:zod.z.number(),Horsepower:zod.z.number(),MaxPassengerCount:zod.z.number(),RegDeckSpace:zod.z.number(),TallDeckSpace:zod.z.number(),Tonnage:zod.z.number(),PropulsionInfo:zod.z.string(),ADAAccessible:zod.z.boolean(),Elevator:zod.z.boolean(),CarDeckRestroom:zod.z.boolean(),MainCabinGalley:zod.z.boolean(),MainCabinRestroom:zod.z.boolean(),PublicWifi:zod.z.boolean(),ADAInfo:zod.z.string(),VesselNameDesc:zod.z.string(),VesselHistory:N(),CityBuilt:zod.z.string(),YearRebuilt:se()}).catchall(zod.z.unknown()),jr=io(),zr=zod.z.array(ct),Hr=zod.z.array(mt),Kr=zod.z.array(lt),Qr=zod.z.array(co),Yr=zod.z.array(ut),Jr=zod.z.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=>reactQuery.useQuery({queryKey:["wsf","vessels","basics"],queryFn:()=>Gr(),...s.DAILY_UPDATES,...e}),$s=(e,t)=>reactQuery.useQuery({queryKey:["wsf","vessels","basics","byId",e.vesselId],queryFn:()=>$r({vesselId:e.vesselId}),...s.DAILY_UPDATES,...t}),Zs=e=>reactQuery.useQuery({queryKey:["wsf","vessels","accommodations"],queryFn:()=>ea(),...s.DAILY_UPDATES,...e}),Xs=(e,t)=>reactQuery.useQuery({queryKey:["wsf","vessels","accommodations","byId",e.vesselId],queryFn:()=>ta({vesselId:e.vesselId}),...s.DAILY_UPDATES,...t}),ei=e=>reactQuery.useQuery({queryKey:["wsf","vessels","locations"],queryFn:()=>Zr(),...s.REALTIME_UPDATES,...e}),ti=(e,t)=>reactQuery.useQuery({queryKey:["wsf","vessels","locations","byVesselId",e.vesselId],queryFn:()=>Xr({vesselId:e.vesselId}),...s.REALTIME_UPDATES,...t}),ri=e=>reactQuery.useQuery({queryKey:["wsf","vessels","stats"],queryFn:()=>ra(),...s.DAILY_UPDATES,...e}),ai=(e,t)=>reactQuery.useQuery({queryKey:["wsf","vessels","stats","byId",e.vesselId],queryFn:()=>aa({vesselId:e.vesselId}),...s.DAILY_UPDATES,...t}),ni=(e,t)=>reactQuery.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)=>reactQuery.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)=>reactQuery.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=>reactQuery.useQuery({queryKey:["wsf","vessels","verbose"],queryFn:()=>oa(),...s.DAILY_UPDATES,...e}),ci=(e,t)=>reactQuery.useQuery({queryKey:["wsf","vessels","verbose","byId",e.vesselId],queryFn:()=>sa({vesselId:e.vesselId}),...s.DAILY_UPDATES,...t}),ca=e=>reactQuery.useQuery({queryKey:["wsf","vessels","cacheFlushDate"],queryFn:()=>ia(),...s.DAILY_UPDATES,...e});var mi=()=>X(["vessels"],ca);var ju=e=>reactQuery.useQuery({queryKey:["wsf","fares","cacheFlushDate"],queryFn:()=>We(),...s.DAILY_UPDATES,...e}),zu=e=>reactQuery.useQuery({queryKey:["wsf","fares","validDateRange"],queryFn:()=>qe(),...s.DAILY_UPDATES,...e}),Hu=(e,t)=>reactQuery.useQuery({queryKey:["wsf","fares","terminals",S(e.tripDate)],queryFn:()=>Ne({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),Ku=(e,t)=>reactQuery.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)=>reactQuery.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)=>reactQuery.useQuery({queryKey:["wsf","fares","terminalComboVerbose",S(e.tripDate)],queryFn:()=>je({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),Ju=(e,t)=>reactQuery.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)=>reactQuery.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)=>reactQuery.useQuery({queryKey:["wsf","fares","fareLineItemsVerbose",S(e.tripDate)],queryFn:()=>Ke({tripDate:e.tripDate}),...s.DAILY_UPDATES,...t}),Zu=(e,t)=>reactQuery.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});
exports.CacheProvider=X;exports.WsdotApiError=O;exports.WsdotBorderCrossings=Sa;exports.WsdotBridgeClearances=Ia;exports.WsdotCommercialVehicleRestrictions=La;exports.WsdotHighwayAlerts=Pa;exports.WsdotHighwayCameras=_a;exports.WsdotMountainPassConditions=Ja;exports.WsdotTollRates=rn;exports.WsdotTrafficFlow=mn;exports.WsdotTravelTimes=Tn;exports.WsdotWeatherInformation=Dn;exports.WsdotWeatherInformationExtended=Rn;exports.WsdotWeatherStations=wn;exports.WsfFares=qn;exports.WsfSchedule=to;exports.WsfTerminals=so;exports.WsfVessels=mo;exports.configManager=z;exports.createApiClient=re;exports.createApiError=Tt;exports.createFetchFactory=y;exports.fetchJsonp=me;exports.fetchNative=le;exports.getEnvironmentType=ue;exports.hasApiError=ha;exports.jsDateToYyyyMmDd=S;exports.parseWsdotJson=ft;exports.processApiResponse=te;exports.selectFetchStrategy=gt;exports.tanstackQueryOptions=s;exports.useActiveSeasons=Ds;exports.useAlerts=Vs;exports.useAllSailings=As;exports.useAllVesselHistories=si;exports.useAlternativeFormats=Bs;exports.useBorderCrossings=ga;exports.useBridgeClearances=ba;exports.useCacheFlushDateSchedule=fr;exports.useCacheFlushDateTerminals=_r;exports.useCacheFlushDateVessels=ca;exports.useCommercialVehicleRestrictions=Ea;exports.useCommercialVehicleRestrictionsWithId=Fa;exports.useFareLineItems=Gu;exports.useFareLineItemsBasic=Ju;exports.useFareLineItemsVerbose=$u;exports.useFareTotals=Zu;exports.useFaresCacheFlushDate=ju;exports.useFaresTerminalMates=Ku;exports.useFaresTerminals=Hu;exports.useFaresValidDateRange=zu;exports.useHighwayAlertById=ka;exports.useHighwayAlerts=Ba;exports.useHighwayAlertsByMapArea=Ua;exports.useHighwayCamera=Na;exports.useHighwayCameras=qa;exports.useMountainPassConditionById=Ya;exports.useMountainPassConditions=Qa;exports.useMultipleVesselHistories=oi;exports.useRouteDetails=fs;exports.useRouteDetailsByRoute=Ss;exports.useRouteDetailsByTerminals=gs;exports.useRoutes=ys;exports.useRoutesByTerminals=hs;exports.useRoutesWithDisruptions=Ts;exports.useSailings=Rs;exports.useScheduleByRoute=Cs;exports.useScheduleByTerminals=Es;exports.useScheduleTodayByRoute=Fs;exports.useScheduleTodayByTerminals=Ls;exports.useScheduledRoutes=bs;exports.useScheduledRoutesBySeason=Is;exports.useSearchHighwayCameras=Ma;exports.useTerminalBasics=Us;exports.useTerminalBasicsByTerminalId=Ps;exports.useTerminalBulletins=Os;exports.useTerminalBulletinsByTerminalId=Ws;exports.useTerminalCombo=Qu;exports.useTerminalComboVerbose=Yu;exports.useTerminalLocations=qs;exports.useTerminalLocationsByTerminalId=Ns;exports.useTerminalMates=ds;exports.useTerminalSailingSpace=Ms;exports.useTerminalSailingSpaceByTerminalId=_s;exports.useTerminalTransports=js;exports.useTerminalTransportsByTerminalId=zs;exports.useTerminalVerbose=Qs;exports.useTerminalVerboseByTerminalId=Ys;exports.useTerminalWaitTimes=Hs;exports.useTerminalWaitTimesByTerminalId=Ks;exports.useTerminals=ls;exports.useTerminalsAndMates=us;exports.useTerminalsAndMatesByRoute=ps;exports.useTimeAdjustments=xs;exports.useTimeAdjustmentsByRoute=ws;exports.useTimeAdjustmentsBySchedRoute=vs;exports.useTollRates=Xa;exports.useTollTripInfo=en;exports.useTollTripRates=tn;exports.useTrafficFlowById=cn;exports.useTrafficFlows=sn;exports.useTravelTimeById=hn;exports.useTravelTimes=yn;exports.useValidDateRange=ms;exports.useVesselAccommodations=Zs;exports.useVesselAccommodationsById=Xs;exports.useVesselBasics=Gs;exports.useVesselBasicsById=$s;exports.useVesselHistoryByVesselAndDateRange=ni;exports.useVesselLocations=ei;exports.useVesselLocationsByVesselId=ti;exports.useVesselStats=ri;exports.useVesselStatsById=ai;exports.useVesselVerbose=ii;exports.useVesselVerboseById=ci;exports.useWeatherInformation=fn;exports.useWeatherInformationByStationId=gn;exports.useWeatherInformationExtended=In;exports.useWeatherInformationForStations=Sn;exports.useWeatherStations=xn;//# sourceMappingURL=index.js.map
//# sourceMappingURL=index.js.map