UNPKG

ws-dottie

Version:

Your friendly TypeScript companion for Washington State transportation APIs - WSDOT and WSF data with smart caching and React Query integration

11 lines 13.1 kB
'use strict';var chunkXD2OIZAB_js=require('./chunk-XD2OIZAB.js'),rr=require('json5'),be=require('picocolors');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var rr__default=/*#__PURE__*/_interopDefault(rr);var be__default=/*#__PURE__*/_interopDefault(be);var Be,R,_e,qe,He,ze;exports.a=void 0;var oe=chunkXD2OIZAB_js.a(()=>{Be="https://www.wsdot.wa.gov",R={apiKey:process.env.WSDOT_ACCESS_TOKEN||"",domain:process.env.WSDOT_BASE_URL||Be},_e=()=>R.apiKey,qe=()=>R.domain,He=e=>{R.apiKey=e;},ze=e=>{R.domain=e;},exports.a={getApiKey:_e,getDomain:qe,setApiKey:He,setBaseUrl:ze};});var Ze;exports.c=void 0;var se,Ye;exports.d=void 0;var ie=chunkXD2OIZAB_js.a(()=>{Ze=e=>{if(!e||typeof e!="string"||!e.startsWith("/Date(")||!e.endsWith(")/"))return null;let r=e.slice(6,-6),n=r.search(/[+-]/),s=n>0?r.slice(0,n):r,i=parseInt(s,10);if(Number.isNaN(i))return null;let o=new Date(i);return Number.isNaN(o.getTime())?null:o},exports.c=e=>e.toISOString().split("T")[0],se=e=>JSON.parse(JSON.stringify(e),(r,n)=>{if(typeof n=="string"){let s=Ze(n);if(s)return s;let i=new Date(n);return !Number.isNaN(i.getTime())&&Ye(n)?i:n}return n}),Ye=e=>/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d{1,3})?)?(Z|[+-]\d{2}:\d{2})?$/.test(e),exports.d={tomorrow:()=>exports.c(new Date(Date.now()+864e5)),dayAfterTomorrow:()=>exports.c(new Date(Date.now()+1728e5)),today:()=>exports.c(new Date),yesterday:()=>exports.c(new Date(Date.now()-864e5)),startOfMonth:()=>exports.c(new Date(2025,7,1)),endOfMonth:()=>exports.c(new Date(2025,7,31))};});var h,ae=chunkXD2OIZAB_js.a(()=>{h=class extends Error{constructor(r,n){super(`${r} at position ${n}`),this.position=n;}};});function ce(e){return /^[0-9A-Fa-f]$/.test(e)}function b(e){return e>="0"&&e<="9"}function ue(e){return e>=" "}function T(e){return `,:[]/{}() +`.includes(e)}function M(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e==="_"||e==="$"}function V(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e==="_"||e==="$"||e>="0"&&e<="9"}function B(e){return `,[]/{} +`.includes(e)}function _(e){return v(e)||Ge.test(e)}function le(e){return e===` `||e==="\r"||e===" "||e==="\b"||e==="\f"}function S(e,r){let n=e.charCodeAt(r);return n===32||n===10||n===9||n===13}function pe(e,r){let n=e.charCodeAt(r);return n===32||n===9||n===13}function fe(e,r){let n=e.charCodeAt(r);return n===160||n>=8192&&n<=8202||n===8239||n===8287||n===12288}function v(e){return q(e)||F(e)}function q(e){return e==='"'||e==="\u201C"||e==="\u201D"}function H(e){return e==='"'}function F(e){return e==="'"||e==="\u2018"||e==="\u2019"||e==="`"||e==="\xB4"}function z(e){return e==="'"}function O(e,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:false,s=e.lastIndexOf(r);return s!==-1?e.substring(0,s)+(n?"":e.substring(s+1)):e}function g(e,r){let n=e.length;if(!S(e,n-1))return e+r;for(;S(e,n-1);)n--;return e.substring(0,n)+r+e.substring(n)}function de(e,r,n){return e.substring(0,r)+e.substring(r+n)}function ge(e){return /[,\n][ \t\r]*$/.test(e)}var Q,K,Ge,me=chunkXD2OIZAB_js.a(()=>{Q=/^(http|https|ftp|mailto|file|data|irc):\/\/$/,K=/^[A-Za-z0-9-._~:/?#@!$&'()*+;=]$/;Ge=/^[[{\w-]$/;});function Z(e){let r=0,n="";N(["```","[```","{```"]),o()||Ve(),N(["```","```]","```}"]);let i=E(",");for(i&&a(),_(e[r])&&ge(n)?(i||(n=g(n,",")),Fe()):i&&(n=O(n,","));e[r]==="}"||e[r]==="]";)r++,a();if(r>=e.length)return n;Me();function o(){a();let t=We()||Re()||D()||Ie()||Je()||x(false)||je();return a(),t}function a(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:true,c=r,u=f(t);do u=m(),u&&(u=f(t));while(u);return r>c}function f(t){let c=t?S:pe,u="";for(;;)if(c(e,r))u+=e[r],r++;else if(fe(e,r))u+=" ",r++;else break;return u.length>0?(n+=u,true):false}function m(){if(e[r]==="/"&&e[r+1]==="*"){for(;r<e.length&&!er(e,r);)r++;return r+=2,true}if(e[r]==="/"&&e[r+1]==="/"){for(;r<e.length&&e[r]!==` `;)r++;return true}return false}function N(t){if(P(t)){if(M(e[r]))for(;r<e.length&&V(e[r]);)r++;return a(),true}return false}function P(t){f(true);for(let c of t){let u=r+c.length;if(e.slice(r,u)===c)return r=u,true}return false}function E(t){return e[r]===t?(n+=e[r],r++,true):false}function w(t){return e[r]===t?(r++,true):false}function Ue(){return w("\\")}function G(){return a(),e[r]==="."&&e[r+1]==="."&&e[r+2]==="."?(r+=3,a(),w(","),true):false}function We(){if(e[r]==="{"){n+="{",r++,a(),w(",")&&a();let t=true;for(;r<e.length&&e[r]!=="}";){let c;if(t?(c=true,t=false):(c=E(","),c||(n=g(n,",")),a()),G(),!(D()||x(true))){e[r]==="}"||e[r]==="{"||e[r]==="]"||e[r]==="["||e[r]===void 0?n=O(n,","):Qe();break}a();let W=E(":"),C=r>=e.length;W||(_(e[r])||C?n=g(n,":"):re()),o()||(W||C?n+="null":re());}return e[r]==="}"?(n+="}",r++):n=g(n,"}"),true}return false}function Re(){if(e[r]==="["){n+="[",r++,a(),w(",")&&a();let t=true;for(;r<e.length&&e[r]!=="]";)if(t?t=false:E(",")||(n=g(n,",")),G(),!o()){n=O(n,",");break}return e[r]==="]"?(n+="]",r++):n=g(n,"]"),true}return false}function Fe(){let t=true,c=true;for(;c;)t?t=false:E(",")||(n=g(n,",")),c=o();c||(n=O(n,",")),n=`[ ${n} ]`;}function D(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:false,c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:-1,u=e[r]==="\\";if(u&&(r++,u=true),v(e[r])){let W=H(e[r])?H:z(e[r])?z:F(e[r])?F:q,C=r,A=n.length,l='"';for(r++;;){if(r>=e.length){let p=ee(r-1);return !t&&T(e.charAt(p))?(r=C,n=n.substring(0,A),D(true)):(l=g(l,'"'),n+=l,true)}if(r===c)return l=g(l,'"'),n+=l,true;if(W(e[r])){let p=r,L=l.length;if(l+='"',r++,n+=l,a(false),t||r>=e.length||T(e[r])||v(e[r])||b(e[r]))return X(),true;let y=ee(p-1),ne=e.charAt(y);if(ne===",")return r=C,n=n.substring(0,A),D(false,y);if(T(ne))return r=C,n=n.substring(0,A),D(true);n=n.substring(0,A),r=p+1,l=`${l.substring(0,L)}\\${l.substring(L)}`;}else if(t&&B(e[r])){if(e[r-1]===":"&&Q.test(e.substring(C+1,r+2)))for(;r<e.length&&K.test(e[r]);)l+=e[r],r++;return l=g(l,'"'),n+=l,X(),true}else if(e[r]==="\\"){let p=e.charAt(r+1);if(xe[p]!==void 0)l+=e.slice(r,r+2),r+=2;else if(p==="u"){let y=2;for(;y<6&&ce(e[r+y]);)y++;y===6?(l+=e.slice(r,r+6),r+=6):r+y>=e.length?r=e.length:Ke();}else l+=p,r+=2;}else {let p=e.charAt(r);p==='"'&&e[r-1]!=="\\"?(l+=`\\${p}`,r++):le(p)?(l+=Xe[p],r++):(ue(p)||Le(p),l+=p,r++);}u&&Ue();}}return false}function X(){let t=false;for(a();e[r]==="+";){t=true,r++,a(),n=O(n,'"',true);let c=n.length;D()?n=de(n,c,1):n=g(n,'"');}return t}function Ie(){let t=r;if(e[r]==="-"){if(r++,U())return j(t),true;if(!b(e[r]))return r=t,false}for(;b(e[r]);)r++;if(e[r]==="."){if(r++,U())return j(t),true;if(!b(e[r]))return r=t,false;for(;b(e[r]);)r++;}if(e[r]==="e"||e[r]==="E"){if(r++,(e[r]==="-"||e[r]==="+")&&r++,U())return j(t),true;if(!b(e[r]))return r=t,false;for(;b(e[r]);)r++;}if(!U())return r=t,false;if(r>t){let c=e.slice(t,r),u=/^0\d/.test(c);return n+=u?`"${c}"`:c,true}return false}function Je(){return k("true","true")||k("false","false")||k("null","null")||k("True","true")||k("False","false")||k("None","null")}function k(t,c){return e.slice(r,r+t.length)===t?(n+=c,r+=t.length,true):false}function x(t){let c=r;if(M(e[r])){for(;r<e.length&&V(e[r]);)r++;let u=r;for(;S(e,u);)u++;if(e[u]==="(")return r=u+1,o(),e[r]===")"&&(r++,e[r]===";"&&r++),true}for(;r<e.length&&!B(e[r])&&!v(e[r])&&(!t||e[r]!==":");)r++;if(e[r-1]===":"&&Q.test(e.substring(c,r+2)))for(;r<e.length&&K.test(e[r]);)r++;if(r>c){for(;S(e,r-1)&&r>0;)r--;let u=e.slice(c,r);return n+=u==="undefined"?"null":JSON.stringify(u),e[r]==='"'&&r++,true}}function je(){if(e[r]==="/"){let t=r;for(r++;r<e.length&&(e[r]!=="/"||e[r-1]==="\\");)r++;return r++,n+=`"${e.substring(t,r)}"`,true}}function ee(t){let c=t;for(;c>0&&S(e,c);)c--;return c}function U(){return r>=e.length||T(e[r])||S(e,r)}function j(t){n+=`${e.slice(t,r)}0`;}function Le(t){throw new h(`Invalid character ${JSON.stringify(t)}`,r)}function Me(){throw new h(`Unexpected character ${JSON.stringify(e[r])}`,r)}function Ve(){throw new h("Unexpected end of json string",e.length)}function Qe(){throw new h("Object key expected",r)}function re(){throw new h("Colon expected",r)}function Ke(){let t=e.slice(r,r+6);throw new h(`Invalid unicode character "${t}"`,r)}}function er(e,r){return e[r]==="*"&&e[r+1]==="/"}var Xe,xe,he=chunkXD2OIZAB_js.a(()=>{ae();me();Xe={"\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t"},xe={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` `,r:"\r",t:" "};});var we=chunkXD2OIZAB_js.a(()=>{he();});var ye,Se=chunkXD2OIZAB_js.a(()=>{we();ye=e=>{try{return JSON.parse(e)}catch(r){try{let n=rr__default.default.parse(e);if(typeof n=="string"&&n===e)throw r;return n}catch{try{let s=Z(e),i=JSON.parse(s);if(typeof i=="string"&&i===e)throw r;return i}catch{throw r}}}};});var Ee,Ce,Ne=chunkXD2OIZAB_js.a(()=>{Ee=(e,r)=>{let n=e.split("/").pop()||e,s=r?JSON.stringify(r):"none",i=be__default.default.blue(`Calling ${n} with parameters ${s}...`);console.log(i);},Ce=(e,r,n)=>{let s=Date.now()-r,i=Array.isArray(e)?e.length:1,o=(s/1e3).toFixed(1),a=(n/1024).toFixed(1),f=be__default.default.green(` Retrieved ${i} objects in ${o} sec (${a} kb).`);console.log(f);};});var De,nr,tr,or,sr,ir,Y,ke=chunkXD2OIZAB_js.a(()=>{oe();De=(e,r)=>{if(!r){let[E]=e.split("?"),w=E.match(/\{[^}]+\}/g);if(w&&w.length>0)throw new Error(`Missing required URL parameters: ${w.join(", ")} in URL template: ${e}`);return e}let n=r,{path:s,query:i}=nr(e),o=tr(s,n),a=or(i,n),f=a?`${o}?${a}`:o,[m]=f.split("?"),N=m.match(/\{[^}]+\}/g);if(N&&N.length>0)throw new Error(`Missing required URL parameters: ${N.join(", ")} in URL: ${f}`);let P=new URL(f);return sr(P),P.toString()},nr=e=>{let[r,n=""]=e.split("?");return {path:r,query:n}},tr=(e,r)=>{let n=e;for(let[s,i]of Object.entries(r)){let o=Y(i);n=n.replace(`{${s}}`,o);}return n},or=(e,r)=>{let n=e;for(let[o,a]of Object.entries(r))if(a!=null){let f=Y(a);n=n.replace(new RegExp(`\\{${o}\\}`,"g"),f);}let s=n.match(/\{[^}]+\}/g);if(s&&s.length>0){for(let o of s){let a=o.slice(1,-1);n=n.replace(new RegExp(`[&?]${a}=${o}`,"g"),""),n=n.replace(new RegExp(`${o}=[^&]*&?`,"g"),""),n=n.replace(new RegExp(`&${o}=[^&]*`,"g"),"");}n=n.replace(/\{[^}]+\}/g,""),n=n.replace(/&&/g,"&"),n=n.replace(/[&?]$/,""),n=n.replace(/\?&/,"?");}let i=new URLSearchParams(n);for(let[o,a]of Object.entries(r))a!=null&&!i.has(o)&&i.set(o,Y(a));return i.toString()},sr=e=>{let r=ir(e.toString()),n=exports.a.getApiKey(),s=r==="wsdot"?"AccessCode":"apiaccesscode";e.searchParams.set(s,n);},ir=e=>e.toLowerCase().includes("/traffic/")?"wsdot":"wsf",Y=e=>e instanceof Date?e.toISOString():String(e);});var I;exports.f=void 0;var cr,J=chunkXD2OIZAB_js.a(()=>{I=(e,r)=>{let{message:n,status:s}=cr(e);return {name:"ApiError",message:n,status:s,context:{timestamp:new Date,endpoint:r,url:r}}},exports.f=e=>e!==null&&typeof e=="object"&&"name"in e&&e.name==="ApiError",cr=e=>{if(e instanceof Error&&e.name==="ZodError")return {message:`Validation failed: ${e.issues.map(i=>`${i.path.length>0?i.path.join("."):"root"}: ${i.message}`).join(` `)}`};if(e instanceof Error){let r=e.message.match(/HTTP (\d+)/),n=r?parseInt(r[1],10):void 0;return {message:e.message,status:n}}return {message:"An unexpected error occurred"}};});var $e,Oe,Ae=chunkXD2OIZAB_js.a(()=>{$e=async e=>{let r=await fetch(e);if(!r.ok)throw new Error(`HTTP ${r.status}: ${r.statusText}`);return r.text()},Oe=async e=>new Promise((r,n)=>{if(!document?.head){n(new Error("DOM environment not available"));return}let s=document.createElement("script"),i=`jsonp_${Date.now()}_${Math.random().toString(36).substring(2,11)}`,o=false,a=()=>{if(!o){o=true;try{s.parentNode?.removeChild(s);}catch{}window[i]&&delete window[i];}};setTimeout(()=>{a(),n(new Error("JSONP request timed out after 30 seconds"));},3e4);window[i]=m=>{a(),r(JSON.stringify(m));},s.onerror=()=>{a(),n(new Error("JSONP script failed to load"));},s.src=`${e}${e.includes("?")?"&":"?"}callback=${encodeURIComponent(i)}`,document.head.appendChild(s);});});var Te,ve=chunkXD2OIZAB_js.a(()=>{Se();Ne();ke();J();Ae();Te=async(e,r,n="none",s="native")=>{let i=Date.now();n!=="none"&&Ee(e.endpoint,r);try{let o=De(e.urlTemplate,r);n!=="none"&&console.log(`Fetching: ${o}`);let f=await(s==="jsonp"?Oe:$e)(o),m=ye(f);return n!=="none"&&Ce(m,i,f.length),m}catch(o){throw I(o,e.endpoint)}};});exports.g=void 0;var Pe=chunkXD2OIZAB_js.a(()=>{ie();ve();J();exports.g=async({endpoint:e,params:r,fetchMode:n="native",logMode:s="none",validate:i=false})=>{try{if(i&&r){if(!e.inputSchema)throw new Error("Validation requires schemas. This endpoint was built without schemas. Use the full build or import schemas from the /schemas subpath.");e.inputSchema.parse(r);}let o=await Te(e,r,s,n),a=se(o);if(i){if(!e.outputSchema)throw new Error("Validation requires schemas. This endpoint was built without schemas. Use the full build or import schemas from the /schemas subpath.");return e.outputSchema.parse(a)}else return a}catch(o){throw o&&typeof o=="object"&&"name"in o&&o.name==="ApiError"?o:I(o,e.endpoint)}};});var lr=chunkXD2OIZAB_js.a(()=>{Pe();J();});exports.b=oe;exports.e=ie;exports.h=lr;//# sourceMappingURL=chunk-3SKBQ6PR.js.map //# sourceMappingURL=chunk-3SKBQ6PR.js.map