itty-router 5.0.21 → 5.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cors.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";exports.cors=(e={})=>{const{origin:s="*",credentials:o=!1,allowMethods:r="*",allowHeaders:c,exposeHeaders:n,maxAge:t}=e,a=e=>{const r=e?.headers.get("origin");return!0===s?r:s instanceof RegExp?s.test(r)?r:void 0:Array.isArray(s)?s.includes(r)?r:void 0:s instanceof Function?s(r):"*"==s&&o?r:s},l=(e,s)=>{for(const[o,r]of Object.entries(s))r&&e.headers.append(o,r);return e};return{corsify:(e,s)=>e?.headers?.get("access-control-allow-origin")||101==e.status?e:l(new Response(e.body,e),{"access-control-allow-origin":a(s),"access-control-allow-credentials":o}),preflight:e=>{if("OPTIONS"==e.method){const s=new Response(null,{status:204});return l(s,{"access-control-allow-origin":a(e),"access-control-allow-methods":r?.join?.(",")??r,"access-control-expose-headers":n?.join?.(",")??n,"access-control-allow-headers":c?.join?.(",")??c??e.headers.get("access-control-request-headers"),"access-control-max-age":t,"access-control-allow-credentials":o})}}}};
package/cors.mjs CHANGED
@@ -1 +1 @@
1
- const e=(e={})=>{const{origin:o="*",credentials:s=!1,allowMethods:c="*",allowHeaders:r,exposeHeaders:n,maxAge:t}=e,a=e=>{const c=e?.headers.get("origin");return!0===o?c:o instanceof RegExp?o.test(c)?c:void 0:Array.isArray(o)?o.includes(c)?c:void 0:o instanceof Function?o(c):"*"==o&&s?c:o},l=(e,o)=>{for(const[s,c]of Object.entries(o))c&&e.headers.append(s,c);return e};return{corsify:(e,o)=>e?.headers?.get("access-control-allow-origin")||101==e.status?e:l(e.clone(),{"access-control-allow-origin":a(o),"access-control-allow-credentials":s}),preflight:e=>{if("OPTIONS"==e.method){const o=new Response(null,{status:204});return l(o,{"access-control-allow-origin":a(e),"access-control-allow-methods":c?.join?.(",")??c,"access-control-expose-headers":n?.join?.(",")??n,"access-control-allow-headers":r?.join?.(",")??r??e.headers.get("access-control-request-headers"),"access-control-max-age":t,"access-control-allow-credentials":s})}}}};export{e as cors};
1
+ const e=(e={})=>{const{origin:o="*",credentials:s=!1,allowMethods:r="*",allowHeaders:c,exposeHeaders:n,maxAge:t}=e,a=e=>{const r=e?.headers.get("origin");return!0===o?r:o instanceof RegExp?o.test(r)?r:void 0:Array.isArray(o)?o.includes(r)?r:void 0:o instanceof Function?o(r):"*"==o&&s?r:o},l=(e,o)=>{for(const[s,r]of Object.entries(o))r&&e.headers.append(s,r);return e};return{corsify:(e,o)=>e?.headers?.get("access-control-allow-origin")||101==e.status?e:l(new Response(e.body,e),{"access-control-allow-origin":a(o),"access-control-allow-credentials":s}),preflight:e=>{if("OPTIONS"==e.method){const o=new Response(null,{status:204});return l(o,{"access-control-allow-origin":a(e),"access-control-allow-methods":r?.join?.(",")??r,"access-control-expose-headers":n?.join?.(",")??n,"access-control-allow-headers":c?.join?.(",")??c??e.headers.get("access-control-request-headers"),"access-control-max-age":t,"access-control-allow-credentials":s})}}}};export{e as cors};
@@ -1 +1 @@
1
- "use strict";const e=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,s,a)=>(r,...n)=>t.push([o.toUpperCase?.(),RegExp(`^${(a=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,a])&&s}),routes:t,...r,async fetch(e,...o){let s,a,n=new URL(e.url),c=e.query={__proto__:null};for(let[e,t]of n.searchParams)c[e]=c[e]?[].concat(c[e],t):t;e:try{for(let t of r.before||[])if(null!=(s=await t(e.proxy??e,...o)))break e;t:for(let[r,c,l,p]of t)if((r==e.method||"ALL"==r)&&(a=n.pathname.match(c))){e.params=a.groups||{},e.route=p;for(let t of l)if(null!=(s=await t(e.proxy??e,...o)))break t}}catch(t){if(!r.catch)throw t;s=await r.catch(t,e.proxy??e,...o)}try{for(let t of r.finally||[])s=await t(s,e.proxy??e,...o)??s}catch(t){if(!r.catch)throw t;s=await r.catch(t,e.proxy??e,...o)}return s}}),t=(e="text/plain; charset=utf-8",t)=>(r,o={})=>{if(void 0===r||r instanceof Response)return r;const s=new Response(t?.(r)??r,o.url?void 0:o);return s.headers.set("content-type",e),s},r=t("application/json; charset=utf-8",JSON.stringify),o=e=>({400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error"}[e]||"Unknown Error"),s=(e=500,t)=>{if(e instanceof Error){const{message:r,...s}=e;e=e.status||500,t={error:r||o(e),...s}}return t={status:e,..."object"==typeof t?t:{error:t||o(e)}},r(t,{status:e})},a=e=>{e.proxy=new Proxy(e.proxy??e,{get:(t,r)=>t[r]?.bind?.(e)??t[r]??t?.params?.[r]})};class n extends Error{status;constructor(e=500,t){super("object"==typeof t?t.error:t),"object"==typeof t&&Object.assign(this,t),this.status=e}}const c=t("text/plain; charset=utf-8",String),l=t("text/html"),p=t("image/jpeg"),i=t("image/png"),u=t("image/webp");exports.AutoRouter=({format:t=r,missing:o=(()=>s(404)),finally:n=[],before:c=[],...l}={})=>e({before:[a,...c],catch:s,finally:[(e,...t)=>e??o(...t),t,...n],...l}),exports.IttyRouter=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,s,a)=>(r,...n)=>t.push([o.toUpperCase(),RegExp(`^${(a=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,a])&&s}),routes:t,...r,async fetch(e,...r){let o,s,a=new URL(e.url),n=e.query={__proto__:null};for(let[e,t]of a.searchParams)n[e]=n[e]?[].concat(n[e],t):t;for(let[n,c,l,p]of t)if((n==e.method||"ALL"==n)&&(s=a.pathname.match(c))){e.params=s.groups||{},e.route=p;for(let t of l)if(null!=(o=await t(e.proxy??e,...r)))return o}}}),exports.Router=e,exports.StatusError=n,exports.cors=(e={})=>{const{origin:t="*",credentials:r=!1,allowMethods:o="*",allowHeaders:s,exposeHeaders:a,maxAge:n}=e,c=e=>{const o=e?.headers.get("origin");return!0===t?o:t instanceof RegExp?t.test(o)?o:void 0:Array.isArray(t)?t.includes(o)?o:void 0:t instanceof Function?t(o):"*"==t&&r?o:t},l=(e,t)=>{for(const[r,o]of Object.entries(t))o&&e.headers.append(r,o);return e};return{corsify:(e,t)=>e?.headers?.get("access-control-allow-origin")||101==e.status?e:l(e.clone(),{"access-control-allow-origin":c(t),"access-control-allow-credentials":r}),preflight:e=>{if("OPTIONS"==e.method){const t=new Response(null,{status:204});return l(t,{"access-control-allow-origin":c(e),"access-control-allow-methods":o?.join?.(",")??o,"access-control-expose-headers":a?.join?.(",")??a,"access-control-allow-headers":s?.join?.(",")??s??e.headers.get("access-control-request-headers"),"access-control-max-age":n,"access-control-allow-credentials":r})}}}},exports.createResponse=t,exports.error=s,exports.html=l,exports.jpeg=p,exports.json=r,exports.png=i,exports.status=(e,t)=>new Response(null,{...t,status:e}),exports.text=c,exports.webp=u,exports.withContent=async e=>{e.content=e.body?await e.clone().json().catch((()=>e.clone().formData())).catch((()=>e.text())):void 0},exports.withCookies=e=>{e.cookies=(e.headers.get("Cookie")||"").split(/;\s*/).map((e=>e.split(/=(.+)/))).reduce(((e,[t,r])=>r?(e[t]=r,e):e),{})},exports.withParams=a;
1
+ "use strict";const e=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,s,a)=>(r,...n)=>t.push([o.toUpperCase?.(),RegExp(`^${(a=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,a])&&s}),routes:t,...r,async fetch(e,...o){let s,a,n=new URL(e.url),c=e.query={__proto__:null};for(let[e,t]of n.searchParams)c[e]=c[e]?[].concat(c[e],t):t;e:try{for(let t of r.before||[])if(null!=(s=await t(e.proxy??e,...o)))break e;t:for(let[r,c,l,p]of t)if((r==e.method||"ALL"==r)&&(a=n.pathname.match(c))){e.params=a.groups||{},e.route=p;for(let t of l)if(null!=(s=await t(e.proxy??e,...o)))break t}}catch(t){if(!r.catch)throw t;s=await r.catch(t,e.proxy??e,...o)}try{for(let t of r.finally||[])s=await t(s,e.proxy??e,...o)??s}catch(t){if(!r.catch)throw t;s=await r.catch(t,e.proxy??e,...o)}return s}}),t=(e="text/plain; charset=utf-8",t)=>(r,o={})=>{if(void 0===r||r instanceof Response)return r;const s=new Response(t?.(r)??r,o.url?void 0:o);return s.headers.set("content-type",e),s},r=t("application/json; charset=utf-8",JSON.stringify),o=e=>({400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error"}[e]||"Unknown Error"),s=(e=500,t)=>{if(e instanceof Error){const{message:r,...s}=e;e=e.status||500,t={error:r||o(e),...s}}return t={status:e,..."object"==typeof t?t:{error:t||o(e)}},r(t,{status:e})},a=e=>{e.proxy=new Proxy(e.proxy??e,{get:(t,r)=>t[r]?.bind?.(e)??t[r]??t?.params?.[r]})};class n extends Error{status;constructor(e=500,t){super("object"==typeof t?t.error:t),"object"==typeof t&&Object.assign(this,t),this.status=e}}const c=t("text/plain; charset=utf-8",String),l=t("text/html"),p=t("image/jpeg"),i=t("image/png"),u=t("image/webp");exports.AutoRouter=({format:t=r,missing:o=(()=>s(404)),finally:n=[],before:c=[],...l}={})=>e({before:[a,...c],catch:s,finally:[(e,...t)=>e??o(...t),t,...n],...l}),exports.IttyRouter=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,s,a)=>(r,...n)=>t.push([o.toUpperCase(),RegExp(`^${(a=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,a])&&s}),routes:t,...r,async fetch(e,...r){let o,s,a=new URL(e.url),n=e.query={__proto__:null};for(let[e,t]of a.searchParams)n[e]=n[e]?[].concat(n[e],t):t;for(let[n,c,l,p]of t)if((n==e.method||"ALL"==n)&&(s=a.pathname.match(c))){e.params=s.groups||{},e.route=p;for(let t of l)if(null!=(o=await t(e.proxy??e,...r)))return o}}}),exports.Router=e,exports.StatusError=n,exports.cors=(e={})=>{const{origin:t="*",credentials:r=!1,allowMethods:o="*",allowHeaders:s,exposeHeaders:a,maxAge:n}=e,c=e=>{const o=e?.headers.get("origin");return!0===t?o:t instanceof RegExp?t.test(o)?o:void 0:Array.isArray(t)?t.includes(o)?o:void 0:t instanceof Function?t(o):"*"==t&&r?o:t},l=(e,t)=>{for(const[r,o]of Object.entries(t))o&&e.headers.append(r,o);return e};return{corsify:(e,t)=>e?.headers?.get("access-control-allow-origin")||101==e.status?e:l(new Response(e.body,e),{"access-control-allow-origin":c(t),"access-control-allow-credentials":r}),preflight:e=>{if("OPTIONS"==e.method){const t=new Response(null,{status:204});return l(t,{"access-control-allow-origin":c(e),"access-control-allow-methods":o?.join?.(",")??o,"access-control-expose-headers":a?.join?.(",")??a,"access-control-allow-headers":s?.join?.(",")??s??e.headers.get("access-control-request-headers"),"access-control-max-age":n,"access-control-allow-credentials":r})}}}},exports.createResponse=t,exports.error=s,exports.html=l,exports.jpeg=p,exports.json=r,exports.png=i,exports.status=(e,t)=>new Response(null,{...t,status:e}),exports.text=c,exports.webp=u,exports.withContent=async e=>{e.content=e.body?await e.clone().json().catch((()=>e.clone().formData())).catch((()=>e.text())):void 0},exports.withCookies=e=>{e.cookies=(e.headers.get("Cookie")||"").split(/;\s*/).map((e=>e.split(/=(.+)/))).reduce(((e,[t,r])=>r?(e[t]=r,e):e),{})},exports.withParams=a;
package/index.mjs CHANGED
@@ -1 +1 @@
1
- const e=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,a,s)=>(r,...c)=>t.push([o.toUpperCase(),RegExp(`^${(s=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),c,s])&&a}),routes:t,...r,async fetch(e,...r){let o,a,s=new URL(e.url),c=e.query={__proto__:null};for(let[e,t]of s.searchParams)c[e]=c[e]?[].concat(c[e],t):t;for(let[c,n,l,i]of t)if((c==e.method||"ALL"==c)&&(a=s.pathname.match(n))){e.params=a.groups||{},e.route=i;for(let t of l)if(null!=(o=await t(e.proxy??e,...r)))return o}}}),t=({base:e="",routes:t=[],...r}={})=>({__proto__:new Proxy({},{get:(r,o,a,s)=>(r,...c)=>t.push([o.toUpperCase?.(),RegExp(`^${(s=(e+r).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),c,s])&&a}),routes:t,...r,async fetch(e,...o){let a,s,c=new URL(e.url),n=e.query={__proto__:null};for(let[e,t]of c.searchParams)n[e]=n[e]?[].concat(n[e],t):t;e:try{for(let t of r.before||[])if(null!=(a=await t(e.proxy??e,...o)))break e;t:for(let[r,n,l,i]of t)if((r==e.method||"ALL"==r)&&(s=c.pathname.match(n))){e.params=s.groups||{},e.route=i;for(let t of l)if(null!=(a=await t(e.proxy??e,...o)))break t}}catch(t){if(!r.catch)throw t;a=await r.catch(t,e.proxy??e,...o)}try{for(let t of r.finally||[])a=await t(a,e.proxy??e,...o)??a}catch(t){if(!r.catch)throw t;a=await r.catch(t,e.proxy??e,...o)}return a}}),r=(e="text/plain; charset=utf-8",t)=>(r,o={})=>{if(void 0===r||r instanceof Response)return r;const a=new Response(t?.(r)??r,o.url?void 0:o);return a.headers.set("content-type",e),a},o=r("application/json; charset=utf-8",JSON.stringify),a=e=>({400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error"}[e]||"Unknown Error"),s=(e=500,t)=>{if(e instanceof Error){const{message:r,...o}=e;e=e.status||500,t={error:r||a(e),...o}}return t={status:e,..."object"==typeof t?t:{error:t||a(e)}},o(t,{status:e})},c=e=>{e.proxy=new Proxy(e.proxy??e,{get:(t,r)=>t[r]?.bind?.(e)??t[r]??t?.params?.[r]})},n=({format:e=o,missing:r=(()=>s(404)),finally:a=[],before:n=[],...l}={})=>t({before:[c,...n],catch:s,finally:[(e,...t)=>e??r(...t),e,...a],...l});class l extends Error{status;constructor(e=500,t){super("object"==typeof t?t.error:t),"object"==typeof t&&Object.assign(this,t),this.status=e}}const i=(e,t)=>new Response(null,{...t,status:e}),p=r("text/plain; charset=utf-8",String),f=r("text/html"),u=r("image/jpeg"),h=r("image/png"),g=r("image/webp"),d=async e=>{e.content=e.body?await e.clone().json().catch((()=>e.clone().formData())).catch((()=>e.text())):void 0},w=e=>{e.cookies=(e.headers.get("Cookie")||"").split(/;\s*/).map((e=>e.split(/=(.+)/))).reduce(((e,[t,r])=>r?(e[t]=r,e):e),{})},y=(e={})=>{const{origin:t="*",credentials:r=!1,allowMethods:o="*",allowHeaders:a,exposeHeaders:s,maxAge:c}=e,n=e=>{const o=e?.headers.get("origin");return!0===t?o:t instanceof RegExp?t.test(o)?o:void 0:Array.isArray(t)?t.includes(o)?o:void 0:t instanceof Function?t(o):"*"==t&&r?o:t},l=(e,t)=>{for(const[r,o]of Object.entries(t))o&&e.headers.append(r,o);return e};return{corsify:(e,t)=>e?.headers?.get("access-control-allow-origin")||101==e.status?e:l(e.clone(),{"access-control-allow-origin":n(t),"access-control-allow-credentials":r}),preflight:e=>{if("OPTIONS"==e.method){const t=new Response(null,{status:204});return l(t,{"access-control-allow-origin":n(e),"access-control-allow-methods":o?.join?.(",")??o,"access-control-expose-headers":s?.join?.(",")??s,"access-control-allow-headers":a?.join?.(",")??a??e.headers.get("access-control-request-headers"),"access-control-max-age":c,"access-control-allow-credentials":r})}}}};export{n as AutoRouter,e as IttyRouter,t as Router,l as StatusError,y as cors,r as createResponse,s as error,f as html,u as jpeg,o as json,h as png,i as status,p as text,g as webp,d as withContent,w as withCookies,c as withParams};
1
+ const e=({base:e="",routes:t=[],...o}={})=>({__proto__:new Proxy({},{get:(o,r,a,s)=>(o,...n)=>t.push([r.toUpperCase(),RegExp(`^${(s=(e+o).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,s])&&a}),routes:t,...o,async fetch(e,...o){let r,a,s=new URL(e.url),n=e.query={__proto__:null};for(let[e,t]of s.searchParams)n[e]=n[e]?[].concat(n[e],t):t;for(let[n,c,l,i]of t)if((n==e.method||"ALL"==n)&&(a=s.pathname.match(c))){e.params=a.groups||{},e.route=i;for(let t of l)if(null!=(r=await t(e.proxy??e,...o)))return r}}}),t=({base:e="",routes:t=[],...o}={})=>({__proto__:new Proxy({},{get:(o,r,a,s)=>(o,...n)=>t.push([r.toUpperCase?.(),RegExp(`^${(s=(e+o).replace(/\/+(\/|$)/g,"$1")).replace(/(\/?\.?):(\w+)\+/g,"($1(?<$2>*))").replace(/(\/?\.?):(\w+)/g,"($1(?<$2>[^$1/]+?))").replace(/\./g,"\\.").replace(/(\/?)\*/g,"($1.*)?")}/*$`),n,s])&&a}),routes:t,...o,async fetch(e,...r){let a,s,n=new URL(e.url),c=e.query={__proto__:null};for(let[e,t]of n.searchParams)c[e]=c[e]?[].concat(c[e],t):t;e:try{for(let t of o.before||[])if(null!=(a=await t(e.proxy??e,...r)))break e;t:for(let[o,c,l,i]of t)if((o==e.method||"ALL"==o)&&(s=n.pathname.match(c))){e.params=s.groups||{},e.route=i;for(let t of l)if(null!=(a=await t(e.proxy??e,...r)))break t}}catch(t){if(!o.catch)throw t;a=await o.catch(t,e.proxy??e,...r)}try{for(let t of o.finally||[])a=await t(a,e.proxy??e,...r)??a}catch(t){if(!o.catch)throw t;a=await o.catch(t,e.proxy??e,...r)}return a}}),o=(e="text/plain; charset=utf-8",t)=>(o,r={})=>{if(void 0===o||o instanceof Response)return o;const a=new Response(t?.(o)??o,r.url?void 0:r);return a.headers.set("content-type",e),a},r=o("application/json; charset=utf-8",JSON.stringify),a=e=>({400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error"}[e]||"Unknown Error"),s=(e=500,t)=>{if(e instanceof Error){const{message:o,...r}=e;e=e.status||500,t={error:o||a(e),...r}}return t={status:e,..."object"==typeof t?t:{error:t||a(e)}},r(t,{status:e})},n=e=>{e.proxy=new Proxy(e.proxy??e,{get:(t,o)=>t[o]?.bind?.(e)??t[o]??t?.params?.[o]})},c=({format:e=r,missing:o=(()=>s(404)),finally:a=[],before:c=[],...l}={})=>t({before:[n,...c],catch:s,finally:[(e,...t)=>e??o(...t),e,...a],...l});class l extends Error{status;constructor(e=500,t){super("object"==typeof t?t.error:t),"object"==typeof t&&Object.assign(this,t),this.status=e}}const i=(e,t)=>new Response(null,{...t,status:e}),p=o("text/plain; charset=utf-8",String),f=o("text/html"),u=o("image/jpeg"),h=o("image/png"),g=o("image/webp"),d=async e=>{e.content=e.body?await e.clone().json().catch((()=>e.clone().formData())).catch((()=>e.text())):void 0},w=e=>{e.cookies=(e.headers.get("Cookie")||"").split(/;\s*/).map((e=>e.split(/=(.+)/))).reduce(((e,[t,o])=>o?(e[t]=o,e):e),{})},y=(e={})=>{const{origin:t="*",credentials:o=!1,allowMethods:r="*",allowHeaders:a,exposeHeaders:s,maxAge:n}=e,c=e=>{const r=e?.headers.get("origin");return!0===t?r:t instanceof RegExp?t.test(r)?r:void 0:Array.isArray(t)?t.includes(r)?r:void 0:t instanceof Function?t(r):"*"==t&&o?r:t},l=(e,t)=>{for(const[o,r]of Object.entries(t))r&&e.headers.append(o,r);return e};return{corsify:(e,t)=>e?.headers?.get("access-control-allow-origin")||101==e.status?e:l(new Response(e.body,e),{"access-control-allow-origin":c(t),"access-control-allow-credentials":o}),preflight:e=>{if("OPTIONS"==e.method){const t=new Response(null,{status:204});return l(t,{"access-control-allow-origin":c(e),"access-control-allow-methods":r?.join?.(",")??r,"access-control-expose-headers":s?.join?.(",")??s,"access-control-allow-headers":a?.join?.(",")??a??e.headers.get("access-control-request-headers"),"access-control-max-age":n,"access-control-allow-credentials":o})}}}};export{c as AutoRouter,e as IttyRouter,t as Router,l as StatusError,y as cors,o as createResponse,s as error,f as html,u as jpeg,r as json,h as png,i as status,p as text,g as webp,d as withContent,w as withCookies,n as withParams};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "itty-router",
3
- "version": "5.0.21",
3
+ "version": "5.0.23",
4
4
  "description": "A tiny, zero-dependency router, designed to make beautiful APIs in any environment.",
5
5
  "main": "./index.js",
6
6
  "module": "./index.mjs",
@@ -9,97 +9,97 @@
9
9
  ".": {
10
10
  "import": "./index.mjs",
11
11
  "types": "./index.d.ts",
12
- "require": "./index.cjs"
12
+ "require": "./index.js"
13
13
  },
14
14
  "./AutoRouter": {
15
15
  "import": "./AutoRouter.mjs",
16
16
  "types": "./AutoRouter.d.ts",
17
- "require": "./AutoRouter.cjs"
17
+ "require": "./AutoRouter.js"
18
18
  },
19
19
  "./cors": {
20
20
  "import": "./cors.mjs",
21
21
  "types": "./cors.d.ts",
22
- "require": "./cors.cjs"
22
+ "require": "./cors.js"
23
23
  },
24
24
  "./createResponse": {
25
25
  "import": "./createResponse.mjs",
26
26
  "types": "./createResponse.d.ts",
27
- "require": "./createResponse.cjs"
27
+ "require": "./createResponse.js"
28
28
  },
29
29
  "./error": {
30
30
  "import": "./error.mjs",
31
31
  "types": "./error.d.ts",
32
- "require": "./error.cjs"
32
+ "require": "./error.js"
33
33
  },
34
34
  "./html": {
35
35
  "import": "./html.mjs",
36
36
  "types": "./html.d.ts",
37
- "require": "./html.cjs"
37
+ "require": "./html.js"
38
38
  },
39
39
  "./IttyRouter": {
40
40
  "import": "./IttyRouter.mjs",
41
41
  "types": "./IttyRouter.d.ts",
42
- "require": "./IttyRouter.cjs"
42
+ "require": "./IttyRouter.js"
43
43
  },
44
44
  "./jpeg": {
45
45
  "import": "./jpeg.mjs",
46
46
  "types": "./jpeg.d.ts",
47
- "require": "./jpeg.cjs"
47
+ "require": "./jpeg.js"
48
48
  },
49
49
  "./json": {
50
50
  "import": "./json.mjs",
51
51
  "types": "./json.d.ts",
52
- "require": "./json.cjs"
52
+ "require": "./json.js"
53
53
  },
54
54
  "./png": {
55
55
  "import": "./png.mjs",
56
56
  "types": "./png.d.ts",
57
- "require": "./png.cjs"
57
+ "require": "./png.js"
58
58
  },
59
59
  "./Router": {
60
60
  "import": "./Router.mjs",
61
61
  "types": "./Router.d.ts",
62
- "require": "./Router.cjs"
62
+ "require": "./Router.js"
63
63
  },
64
64
  "./status": {
65
65
  "import": "./status.mjs",
66
66
  "types": "./status.d.ts",
67
- "require": "./status.cjs"
67
+ "require": "./status.js"
68
68
  },
69
69
  "./StatusError": {
70
70
  "import": "./StatusError.mjs",
71
71
  "types": "./StatusError.d.ts",
72
- "require": "./StatusError.cjs"
72
+ "require": "./StatusError.js"
73
73
  },
74
74
  "./text": {
75
75
  "import": "./text.mjs",
76
76
  "types": "./text.d.ts",
77
- "require": "./text.cjs"
77
+ "require": "./text.js"
78
78
  },
79
79
  "./webp": {
80
80
  "import": "./webp.mjs",
81
81
  "types": "./webp.d.ts",
82
- "require": "./webp.cjs"
82
+ "require": "./webp.js"
83
83
  },
84
84
  "./websocket": {
85
85
  "import": "./websocket.mjs",
86
86
  "types": "./websocket.d.ts",
87
- "require": "./websocket.cjs"
87
+ "require": "./websocket.js"
88
88
  },
89
89
  "./withContent": {
90
90
  "import": "./withContent.mjs",
91
91
  "types": "./withContent.d.ts",
92
- "require": "./withContent.cjs"
92
+ "require": "./withContent.js"
93
93
  },
94
94
  "./withCookies": {
95
95
  "import": "./withCookies.mjs",
96
96
  "types": "./withCookies.d.ts",
97
- "require": "./withCookies.cjs"
97
+ "require": "./withCookies.js"
98
98
  },
99
99
  "./withParams": {
100
100
  "import": "./withParams.mjs",
101
101
  "types": "./withParams.d.ts",
102
- "require": "./withParams.cjs"
102
+ "require": "./withParams.js"
103
103
  }
104
104
  },
105
105
  "keywords": [
@@ -120,8 +120,9 @@
120
120
  "test": "bun test --coverage",
121
121
  "lint": "itty lint",
122
122
  "build": "itty lint && itty build --hybrid",
123
- "release": "itty release --prepare --tag --push",
124
- "release:next": "itty release --prepare --tag --push --type=next"
123
+ "release": "itty release --prepare --tag --push --otp",
124
+ "release:dry": "itty release --prepare --type=dry --otp --dry-run",
125
+ "release:next": "itty release --prepare --tag --push --type=next --otp"
125
126
  },
126
127
  "repository": {
127
128
  "type": "git",
@@ -135,6 +136,6 @@
135
136
  "homepage": "https://itty.dev/itty-router",
136
137
  "devDependencies": {
137
138
  "@types/bun": "^1.2.17",
138
- "itty-packager": "^1.6.10"
139
+ "itty-packager": "^1.8.1"
139
140
  }
140
141
  }
package/cors.cjs DELETED
@@ -1 +0,0 @@
1
- "use strict";exports.cors=(e={})=>{const{origin:o="*",credentials:s=!1,allowMethods:r="*",allowHeaders:c,exposeHeaders:t,maxAge:n}=e,a=e=>{const r=e?.headers.get("origin");return!0===o?r:o instanceof RegExp?o.test(r)?r:void 0:Array.isArray(o)?o.includes(r)?r:void 0:o instanceof Function?o(r):"*"==o&&s?r:o},l=(e,o)=>{for(const[s,r]of Object.entries(o))r&&e.headers.append(s,r);return e};return{corsify:(e,o)=>e?.headers?.get("access-control-allow-origin")||101==e.status?e:l(e.clone(),{"access-control-allow-origin":a(o),"access-control-allow-credentials":s}),preflight:e=>{if("OPTIONS"==e.method){const o=new Response(null,{status:204});return l(o,{"access-control-allow-origin":a(e),"access-control-allow-methods":r?.join?.(",")??r,"access-control-expose-headers":t?.join?.(",")??t,"access-control-allow-headers":c?.join?.(",")??c??e.headers.get("access-control-request-headers"),"access-control-max-age":n,"access-control-allow-credentials":s})}}}};
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes