Comparing version 0.5.0-exp-230505.1651 to 0.5.0-exp-230505.1731
@@ -1,2 +0,2 @@ | ||
import{parse as e}from"fast-querystring";import{mapEarlyResponse as r,mapResponse as t}from"./handler";import{SCHEMA as s,DEFS as a,removeHostnameRegex as o,removeFragmentRegex as n,removePathRegex as c,removeQueryRegex as l}from"./utils";import{ParseError as i,NotFoundError as d,ValidationError as u,InternalServerError as f}from"./error";let p="AsyncFunction",h=e=>e.constructor.name===p,y=new Headers;export const isFnUse=(e,r)=>{let t=r.slice(r.indexOf("(")+1,r.indexOf(")"));if(""===t)return!1;if(123===t.charCodeAt(0))return!!(t.includes(`{ ${e}`)||t.includes(`, ${e}`));if(r.includes(`${t}.${e}`))return!0;let s=RegExp(" (\\w+) = context","g"),a=[t];for(let e of r.matchAll(s))a.push(e[1]);let o=RegExp(`{.*?} = (${a.join("|")})`,"g");for(let[t]of r.matchAll(o))if(t.includes(`{ ${e}`)||t.includes(`, ${e}`))return!0;return!1};export const composeHandler=({method:o,hooks:n,validator:c,handler:l,handleError:m,meta:b})=>{let $="try {\n",w="string"==typeof n.type,q="GET"!==o&&(c.body||w||[l,...n.transform,...n.beforeHandle,...n.afterHandle].some(e=>isFnUse("body",e.toString()))),g=c.headers||[l,...n.transform,...n.beforeHandle,...n.afterHandle].some(e=>isFnUse("headers",e.toString()));g&&($+="\n"+(y.toJSON?`c.headers = c.request.headers.toJSON() | ||
import{parse as e}from"fast-querystring";import{mapEarlyResponse as r,mapResponse as t}from"./handler";import{SCHEMA as s,DEFS as a,removeHostnameRegex as o,removeFragmentRegex as n,removePathRegex as c,removeQueryRegex as l}from"./utils";import{ParseError as i,NotFoundError as d,ValidationError as u,InternalServerError as f}from"./error";let p="AsyncFunction",h=e=>e.constructor.name===p,y=new Headers;export const isFnUse=(e,r)=>{let t=r.slice(r.indexOf("(")+1,r.indexOf(")"));if(""===t)return!1;if(123===t.charCodeAt(0))return!!(t.includes(`{ ${e}`)||t.includes(`, ${e}`));if(r.includes(`${t}.${e}`))return!0;let s=RegExp(" (\\w+) = context","g"),a=[t];for(let e of r.matchAll(s))a.push(e[1]);let o=RegExp(`{.*?} = (${a.join("|")})`,"g");for(let[t]of r.matchAll(o))if(t.includes(`{ ${e}`)||t.includes(`, ${e}`))return!0;return!1};export const composeHandler=({method:o,hooks:n,validator:c,handler:l,handleError:m,meta:$})=>{let b="try {\n",w="string"==typeof n.type,q="GET"!==o&&(c.body||w||[l,...n.transform,...n.beforeHandle,...n.afterHandle].some(e=>isFnUse("body",e.toString()))),g=c.headers||[l,...n.transform,...n.beforeHandle,...n.afterHandle].some(e=>isFnUse("headers",e.toString()));g&&(b+="\n"+(y.toJSON?`c.headers = c.request.headers.toJSON() | ||
`:`c.headers = {} | ||
@@ -13,4 +13,4 @@ for (const key of c.request.headers.keys()) | ||
} | ||
`));let k=q||l.constructor.name===p||n.parse.length||n.afterHandle.find(h)||n.beforeHandle.find(h)||n.transform.find(h);if(q){let e=c?.body?.schema;if(e&&"anyOf"in e){let r=!1,t=e.anyOf[0].type;for(let s of e.anyOf)if(s.type!==t){r=!0;break}r&&(e=void 0)}if(w||e){if(e||($+="if(body) "),$+=`try { | ||
`,e)switch(e.type){case"object":"URLEncoded"===e.elysiaMeta?$+="c.body = parseQuery(await c.request.text())":c.body.Code().includes("custom('File")?$+=`c.body = {} | ||
`));let k=q||l.constructor.name===p||n.parse.length||n.afterHandle.find(h)||n.beforeHandle.find(h)||n.transform.find(h);if(q){let e=c?.body?.schema;if(e&&"anyOf"in e){let r=!1,t=e.anyOf[0].type;for(let s of e.anyOf)if(s.type!==t){r=!0;break}r&&(e=void 0)}if(w||e){if(b+=`try { | ||
`,e)switch(e.type){case"object":"URLEncoded"===e.elysiaMeta?b+="c.body = parseQuery(await c.request.text())":c.body.Code().includes("custom('File")?b+=`c.body = {} | ||
@@ -27,3 +27,3 @@ await c.request.formData().then((form) => { | ||
} | ||
})`:$+="c.body = JSON.parse(await c.request.text())";break;case"string":$+="c.body = await c.request.text()"}else switch(n.type){case"application/json":$+="c.body = JSON.parse(await c.request.text());";break;case"text/plain":$+="c.body = await c.request.text();";break;case"application/x-www-form-urlencoded":$+="c.body = parseQuery(await c.request.text());";break;case"multipart/form-data":$+=`c.body = {} | ||
})`:b+="c.body = JSON.parse(await c.request.text())";break;case"string":b+="c.body = await c.request.text()"}else switch(n.type){case"application/json":b+="c.body = JSON.parse(await c.request.text());";break;case"text/plain":b+="c.body = await c.request.text();";break;case"application/x-www-form-urlencoded":b+="c.body = parseQuery(await c.request.text());";break;case"multipart/form-data":b+=`c.body = {} | ||
@@ -38,14 +38,14 @@ for (const key of (await c.request.formData()).keys()) { | ||
else c.body[key] = value | ||
}`}$+=`} catch(error) { | ||
}`}b+=`} catch(error) { | ||
throw new ParseError() | ||
}`}else{if($+="\n"+(g?"let contentType = c.headers['content-type']":"let contentType = c.request.headers.get('content-type')")+` | ||
}`}else{if(b+="\n"+(g?"let contentType = c.headers['content-type']":"let contentType = c.request.headers.get('content-type')")+` | ||
if (contentType) { | ||
const index = contentType.indexOf(';') | ||
if (index !== -1) contentType = contentType.substring(0, index) | ||
`,n.parse.length){$+=`let used = false | ||
`;for(let e=0;e<n.parse.length;e++){let r=`bo${e}`;$+=`if(!c.request.bodyUsed) { | ||
`,n.parse.length){b+=`let used = false | ||
`;for(let e=0;e<n.parse.length;e++){let r=`bo${e}`;b+=`if(!c.request.bodyUsed) { | ||
let ${r} = parse[${e}](c, contentType); | ||
if(${r} instanceof Promise) ${r} = await ${r} | ||
if(${r} !== undefined) { c.body = ${r}; used = true } | ||
}`}$+="if (!used)"}$+=`switch (contentType) { | ||
}`}b+="if (!used)"}b+=`switch (contentType) { | ||
case 'application/json': | ||
@@ -79,3 +79,3 @@ c.body = JSON.parse(await c.request.text()) | ||
} | ||
`}}if(n?.transform)for(let e=0;e<n.transform.length;e++)$+=n.transform[e].constructor.name===p?`await transform[${e}](c);`:`transform[${e}](c);`;if(c&&(c.headers&&($+=` | ||
`}}if(n?.transform)for(let e=0;e<n.transform.length;e++)b+=n.transform[e].constructor.name===p?`await transform[${e}](c);`:`transform[${e}](c);`;if(c&&(c.headers&&(b+=` | ||
if (headers.Check(c.headers) === false) { | ||
@@ -88,24 +88,24 @@ throw new ValidationError( | ||
} | ||
`),c.params&&($+="if(params.Check(c.params) === false) { throw new ValidationError('params', params, c.params) }"),c.query&&($+="if(query.Check(c.query) === false) { throw new ValidationError('query', query, c.query) }"),c.body&&($+="if(body.Check(c.body) === false) { throw new ValidationError('body', body, c.body) }")),n?.beforeHandle)for(let e=0;e<n.beforeHandle.length;e++){let r=`be${e}`;if($+=(n.beforeHandle[e].constructor.name===p?`let ${r} = await beforeHandle[${e}](c); | ||
`),c.params&&(b+="if(params.Check(c.params) === false) { throw new ValidationError('params', params, c.params) }"),c.query&&(b+="if(query.Check(c.query) === false) { throw new ValidationError('query', query, c.query) }"),c.body&&(b+="if(body.Check(c.body) === false) { throw new ValidationError('body', body, c.body) }")),n?.beforeHandle)for(let e=0;e<n.beforeHandle.length;e++){let r=`be${e}`;if(b+=(n.beforeHandle[e].constructor.name===p?`let ${r} = await beforeHandle[${e}](c); | ||
`:`let ${r} = beforeHandle[${e}](c); | ||
`)+`if(${r} !== undefined) { | ||
`,n?.afterHandle)for(let e=0;e<n.afterHandle.length;e++){let t=`af${e}`;$+=(n.afterHandle[e].constructor.name===p?`const ${t} = await afterHandle[${e}](c, ${r}); | ||
`,n?.afterHandle)for(let e=0;e<n.afterHandle.length;e++){let t=`af${e}`;b+=(n.afterHandle[e].constructor.name===p?`const ${t} = await afterHandle[${e}](c, ${r}); | ||
`:`const ${t} = afterHandle[${e}](c, ${r}); | ||
`)+`if(${t} !== undefined) { ${r} = ${t} } | ||
`}c.response&&($+=`if(response[c.set.status]?.Check(${r}) === false) { throw new ValidationError('response', response[c.set.status], ${r}) } | ||
`),$+=`return mapEarlyResponse(${r}, c.set)} | ||
`}if(n?.afterHandle.length){$+=l.constructor.name===p?`let r = await handler(c); | ||
`}c.response&&(b+=`if(response[c.set.status]?.Check(${r}) === false) { throw new ValidationError('response', response[c.set.status], ${r}) } | ||
`),b+=`return mapEarlyResponse(${r}, c.set)} | ||
`}if(n?.afterHandle.length){b+=l.constructor.name===p?`let r = await handler(c); | ||
`:`let r = handler(c); | ||
`;for(let e=0;e<n.afterHandle.length;e++){let r=`af${e}`;$+=n.afterHandle[e].constructor.name===p?`let ${r} = await afterHandle[${e}](c, r) | ||
`;for(let e=0;e<n.afterHandle.length;e++){let r=`af${e}`;b+=n.afterHandle[e].constructor.name===p?`let ${r} = await afterHandle[${e}](c, r) | ||
`:`let ${r} = afterHandle[${e}](c, r) | ||
`,c.response?$+=`if(response[c.set.status]?.Check(${r}) === false) { throw new ValidationError('response', response[c.set.status], ${r}) } | ||
`,c.response?b+=`if(response[c.set.status]?.Check(${r}) === false) { throw new ValidationError('response', response[c.set.status], ${r}) } | ||
${r} = mapEarlyResponse(${r}, c.set) | ||
if(${r}) return ${r}; | ||
`:$+=`if(${r}) return ${r}; | ||
`}c.response&&($+=`if(response[c.set.status]?.Check(r) === false) { throw new ValidationError('response', response[c.set.status], r) } | ||
`),$+=`return mapResponse(r, c.set); | ||
`}else c.response?$+=(l.constructor.name===p?`const r = await handler(c); | ||
`:b+=`if(${r}) return ${r}; | ||
`}c.response&&(b+=`if(response[c.set.status]?.Check(r) === false) { throw new ValidationError('response', response[c.set.status], r) } | ||
`),b+=`return mapResponse(r, c.set); | ||
`}else c.response?b+=(l.constructor.name===p?`const r = await handler(c); | ||
`:`const r = handler(c); | ||
`)+`if(response[c.set.status]?.Check(r) === false) { throw new ValidationError('response', response[c.set.status], r) } | ||
`+"return mapResponse(r, c.set);":$+=l.constructor.name===p?"return handler(c).then((v) => mapResponse(v, c.set))":"return mapResponse(handler(c), c.set);";$+=` | ||
`+"return mapResponse(r, c.set);":b+=l.constructor.name===p?"return handler(c).then((v) => mapResponse(v, c.set))":"return mapResponse(handler(c), c.set);";b+=` | ||
} catch(error) { | ||
@@ -135,3 +135,3 @@ // Optimize this error return | ||
${k?"":"})()"} | ||
}`,$=`const { | ||
}`,b=`const { | ||
handler, | ||
@@ -165,3 +165,3 @@ handleError, | ||
}, | ||
${b?` | ||
${$?` | ||
meta, | ||
@@ -173,6 +173,6 @@ SCHEMA, | ||
return ${k?"async":""} function(c) { | ||
${b?"c[SCHEMA] = meta[SCHEMA]; c[DEFS] = meta[DEFS];":""} | ||
${$?"c[SCHEMA] = meta[SCHEMA]; c[DEFS] = meta[DEFS];":""} | ||
${$} | ||
}`;let x=Function("hooks",$);return x({handler:l,hooks:n,validator:c,handleError:m,utils:{mapResponse:t,mapEarlyResponse:r,parseQuery:e},error:{ParseError:i,NotFoundError:d,ValidationError:u,InternalServerError:f},meta:b,SCHEMA:b?s:void 0,DEFS:b?a:void 0})};export const composeGeneralHandler=t=>{let s=t.decorators,a="";for(let e of Object.keys(s))a+=`,${e}: app.decorators.${e}`;let i=t.staticRouter,u="";for(let[e,r]of Object.entries(i.map))u+=`case '${e}': | ||
${b} | ||
}`;let x=Function("hooks",b);return x({handler:l,hooks:n,validator:c,handleError:m,utils:{mapResponse:t,mapEarlyResponse:r,parseQuery:e},error:{ParseError:i,NotFoundError:d,ValidationError:u,InternalServerError:f},meta:$,SCHEMA:$?s:void 0,DEFS:$?a:void 0})};export const composeGeneralHandler=t=>{let s=t.decorators,a="";for(let e of Object.keys(s))a+=`,${e}: app.decorators.${e}`;let i=t.staticRouter,u="";for(let[e,r]of Object.entries(i.map))u+=`case '${e}': | ||
switch(method) { | ||
@@ -179,0 +179,0 @@ ${r}} |
{ | ||
"name": "elysia", | ||
"description": "Fast, and friendly Bun web framework", | ||
"version": "0.5.0-exp-230505.1651", | ||
"version": "0.5.0-exp-230505.1731", | ||
"author": { | ||
@@ -6,0 +6,0 @@ "name": "saltyAom", |
@@ -161,4 +161,2 @@ import type { Elysia } from '.' | ||
if (hasStrictContentType || schema) { | ||
if (!schema) fnLiteral += 'if(body) ' | ||
fnLiteral += `try {\n` | ||
@@ -165,0 +163,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Uses eval
Supply chain riskPackage uses dynamic code execution (e.g., eval()), which is a dangerous practice. This can prevent the code from running in certain environments and increases the risk that the code may contain exploits or malicious behavior.
Found 1 instance in 1 package
220708
5942