@mapl/web 0.3.16 → 0.3.17
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/compiler/jit.d.ts +2 -2
- package/compiler/jit.js +1 -1
- package/index.d.ts +2 -0
- package/index.js +1 -1
- package/package.json +12 -9
- package/utils/basic-auth.d.ts +3 -0
- package/utils/basic-auth.js +1 -1
- package/utils/bearer-auth.d.ts +4 -0
- package/utils/bearer-auth.js +1 -0
- package/utils/body-limit.d.ts +7 -0
- package/utils/body-limit.js +1 -0
- package/utils/redirect.d.ts +3 -0
- package/utils/redirect.js +1 -0
package/compiler/jit.d.ts
CHANGED
|
@@ -2,8 +2,8 @@ import type { RouterTag } from "../core/index.js";
|
|
|
2
2
|
import { type CompiledDependency } from "runtime-compiler";
|
|
3
3
|
import type { FetchFn } from "../core/utils.js";
|
|
4
4
|
import type { GenericContext } from "../index.js";
|
|
5
|
-
export declare const RES404: string;
|
|
6
|
-
export declare const RES400: string;
|
|
5
|
+
export declare const RES404: () => string;
|
|
6
|
+
export declare const RES400: () => string;
|
|
7
7
|
export declare const paramArgs: string[];
|
|
8
8
|
export declare const compileToString: (router: RouterTag<GenericContext>) => string;
|
|
9
9
|
export declare const compileToExportedDependency: (router: RouterTag<GenericContext>) => CompiledDependency<FetchFn>;
|
package/compiler/jit.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{compileGroup,createArgSet,
|
|
1
|
+
import{compileGroup,createArgSet,contextInit,setContextInit,hooks}from"@mapl/framework";import compile from"@mapl/router/method/compiler";import{countParams}from"@mapl/router/path";import{insertItem}from"@mapl/router/method";import{AsyncFunction,exportDependency,getDependency,injectDependency,injectExternalDependency,lazyDependency,noOp}from"runtime-compiler";import{evaluate,evaluateSync}from"runtime-compiler/jit";import{isHydrating}from"runtime-compiler/config";let URL_ROUTER;export let RES404=isHydrating?noOp:lazyDependency(injectDependency,`new Response(null,{status:404})`);export let RES400=isHydrating?noOp:lazyDependency(injectDependency,`new Response(null,{status:400})`);export let paramArgs=createArgSet(new Array(16).fill(0).map((_1,i)=>`q`+i));export let compileReturn=(dat,fnAsync,scopeAsync,contextCreated,result)=>{let res=dat?.type;if(res==null)return`return `+result;let str=res(fnAsync?`await `+result:result,contextCreated);return fnAsync&&!scopeAsync?`return (async()=>{`+str+`})()`:str};export let compileErrorHandler=(input,fn,dat,scope)=>{let call=injectExternalDependency(fn)+`(`+input;if(fn.length>1){call+=`,c`;if(!scope[1])return contextInit+compileReturn(dat,fn instanceof AsyncFunction,scope[0],true,call+`)`)}return compileReturn(dat,fn instanceof AsyncFunction,scope[0],scope[1],call+`)`)};let compileToState=router=>{URL_ROUTER={};hooks.compileHandler=(handler,prevContent,path,scope)=>{let fn=handler[2];let call=injectExternalDependency(fn)+`(`;let paramCount=countParams(handler[1]);paramCount>0&&(call+=paramArgs[paramCount]);if(fn.length>paramCount){call+=paramCount===0?`c`:`,c`;if(!scope[1]){insertItem(URL_ROUTER,handler[0],path,prevContent+contextInit+compileReturn(handler[3],fn instanceof AsyncFunction,scope[0],true,call+`)`)+(scope[0]?`})()`:``));return}}insertItem(URL_ROUTER,handler[0],path,prevContent+compileReturn(handler[3],fn instanceof AsyncFunction,scope[0],scope[1],call+`)`)+(scope[0]?`})()`:``))};hooks.compileErrorHandler=compileErrorHandler;setContextInit(`let h=[],c={status:200,req:r,headers:h};`);compileGroup(router,[false,false,,`return `+RES400,false],``,``)};export let compileToString=router=>{compileToState(router);return`(r)=>{`+compile(URL_ROUTER,`r.method`,`let u=r.url,s=u.indexOf("/",12)+1,e=u.indexOf("?",s),p=e===-1?u.slice(s):u.slice(s,e);`,1)+`return `+RES404+`}`};export let compileToExportedDependency=router=>exportDependency(injectDependency(compileToString(router)));export let compileToHandler=async router=>{let id=compileToExportedDependency(router);await evaluate();return getDependency(id)};export let compileToHandlerSync=router=>{let id=compileToExportedDependency(router);evaluateSync();return getDependency(id)};
|
package/index.d.ts
CHANGED
|
@@ -18,4 +18,6 @@ export * as handle from "./core/handler.js";
|
|
|
18
18
|
export * as cors from "./utils/cors.js";
|
|
19
19
|
export * as stream from "./utils/stream.js";
|
|
20
20
|
export * as basicAuth from "./utils/basic-auth.js";
|
|
21
|
+
export * as bodyLimit from "./utils/body-limit.js";
|
|
22
|
+
export { default as redirect } from "./utils/redirect.js";
|
|
21
23
|
export { default as staticHeaders } from "./utils/static-headers.js";
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{routerImpl}from"./core/index.js";export let router=routerImpl;export*as layer from"./core/middleware.js";export*as handle from"./core/handler.js";export*as cors from"./utils/cors.js";export*as stream from"./utils/stream.js";export*as basicAuth from"./utils/basic-auth.js";export{default as staticHeaders}from"./utils/static-headers.js";
|
|
1
|
+
import{routerImpl}from"./core/index.js";export let router=routerImpl;export*as layer from"./core/middleware.js";export*as handle from"./core/handler.js";export*as cors from"./utils/cors.js";export*as stream from"./utils/stream.js";export*as basicAuth from"./utils/basic-auth.js";export*as bodyLimit from"./utils/body-limit.js";export{default as redirect}from"./utils/redirect.js";export{default as staticHeaders}from"./utils/static-headers.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mapl/web",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.17",
|
|
4
4
|
"description": "A compiled web framework for all runtimes",
|
|
5
5
|
"keywords": ["fast", "lightweight", "cross-runtime", "framework", "web", "backend"],
|
|
6
6
|
"repository": {
|
|
@@ -20,22 +20,25 @@
|
|
|
20
20
|
"exports": {
|
|
21
21
|
"./constants": "./constants.js",
|
|
22
22
|
".": "./index.js",
|
|
23
|
+
"./core": "./core/index.js",
|
|
24
|
+
"./core/utils": "./core/utils.js",
|
|
23
25
|
"./core/context": "./core/context.js",
|
|
24
26
|
"./core/handler": "./core/handler.js",
|
|
25
|
-
"./core": "./core/index.js",
|
|
26
27
|
"./utils/stream": "./utils/stream.js",
|
|
27
|
-
"./core/utils": "./core/utils.js",
|
|
28
28
|
"./core/middleware": "./core/middleware.js",
|
|
29
29
|
"./utils/cors": "./utils/cors.js",
|
|
30
|
-
"./
|
|
30
|
+
"./utils/redirect": "./utils/redirect.js",
|
|
31
|
+
"./utils/body-limit": "./utils/body-limit.js",
|
|
32
|
+
"./utils/bearer-auth": "./utils/bearer-auth.js",
|
|
33
|
+
"./utils/static-headers": "./utils/static-headers.js",
|
|
34
|
+
"./utils/basic-auth": "./utils/basic-auth.js",
|
|
31
35
|
"./bun": "./bun/index.js",
|
|
36
|
+
"./bun/compiler/jit": "./bun/compiler/jit.js",
|
|
32
37
|
"./bun/compiler/aot": "./bun/compiler/aot.js",
|
|
33
|
-
"./bun/compiler/router": "./bun/compiler/router.js",
|
|
34
38
|
"./build/utils": "./build/utils.js",
|
|
35
|
-
"./
|
|
36
|
-
"./build/rolldown": "./build/rolldown.js",
|
|
39
|
+
"./bun/compiler/router": "./bun/compiler/router.js",
|
|
37
40
|
"./compiler/jit": "./compiler/jit.js",
|
|
38
|
-
"./
|
|
39
|
-
"./
|
|
41
|
+
"./compiler/aot": "./compiler/aot.js",
|
|
42
|
+
"./build/rolldown": "./build/rolldown.js"
|
|
40
43
|
}
|
|
41
44
|
}
|
package/utils/basic-auth.d.ts
CHANGED
package/utils/basic-auth.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export let extract=req=>{let header=req.headers.get(`authorization`);if(header?.startsWith(`Basic `))try{let sliced=atob(header.slice(6));let sep=sliced.indexOf(`:`);if(sep>-1)return{name:sliced.slice(0,sep),pwd:sliced.slice(sep+1)}}catch{}};
|
|
1
|
+
export let extract=req=>{let header=req.headers.get(`authorization`);if(header?.startsWith(`Basic `))try{let sliced=atob(header.slice(6));let sep=sliced.indexOf(`:`);if(sep>-1)return{name:sliced.slice(0,sep),pwd:sliced.slice(sep+1)}}catch{}};export let realm=val=>[`www-authenticate`,`Basic realm=`+JSON.stringify(val)];export let error=val=>[`www-authenticate`,`Basic error=`+JSON.stringify(val)];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export let extract=req=>{let header=req.headers.get(`authorization`);if(header?.startsWith(`Bearer `))return header.slice(7)};export let realm=val=>[`www-authenticate`,`Basic realm=`+JSON.stringify(val)];export let error=val=>[`www-authenticate`,`Basic error=`+JSON.stringify(val)];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type MiddlewareTypes } from "../core/middleware.js";
|
|
2
|
+
export declare const RES413: () => string;
|
|
3
|
+
/**
|
|
4
|
+
* Set size limit for body.
|
|
5
|
+
* If you use Bun, use their `maxRequestBodySize` option instead.
|
|
6
|
+
*/
|
|
7
|
+
export declare const size: (bytes: number) => MiddlewareTypes<any, never, {}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{macro}from"../core/middleware.js";import{isHydrating}from"runtime-compiler/config";import{createAsyncScope}from"@mapl/framework";import{injectDependency,lazyDependency,noOp}from"runtime-compiler";export let RES413=isHydrating?noOp:lazyDependency(injectDependency,`new Response(null,{status:413})`);export let size=isHydrating?()=>macro(createAsyncScope):bytes=>macro(scope=>createAsyncScope(scope)+`if(r.body!==null){let l=r.headers.get("content-length");if(l===null||r.headers.has("transfer-encoding")){let g=r.clone().body.getReader(),i=await g.read(),s=0;while(!i.done){s+=i.value.byteLength;if(s>`+bytes+`)return `+RES413()+`;i=await g.read()}}else if(l>`+bytes+`)return `+RES413()+`}`);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default (c,location,status)=>{c.status=status;c.headers.push([`location`,location])};
|