@mapl/web 0.1.1 → 0.1.2

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/core/compile.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import type { AnyRouter } from "./index.js";
2
- declare const _default: (router: AnyRouter) => ((req: Request) => any);
1
+ import type { RouterTag } from "./index.js";
2
+ declare const _default: (router: RouterTag) => ((req: Request) => any);
3
3
  export default _default;
package/core/context.d.ts CHANGED
@@ -1,10 +1,9 @@
1
1
  export type Header = [string, string] | readonly [string, string];
2
- export type Headers = Header[];
3
2
  export interface Context {
4
3
  req: Request;
5
- headers: Headers;
4
+ headers: Header[];
6
5
  status?: number;
7
6
  statusText?: string;
8
7
  }
9
- declare const _default: (req: Request, headers: Headers) => Context;
8
+ declare const _default: (req: Request, headers: Header[]) => Context;
10
9
  export default _default;
package/index.d.ts CHANGED
@@ -2,4 +2,5 @@ export { default as router } from "./core/index.js";
2
2
  export * as handle from "./core/handler.js";
3
3
  export * as layer from "./core/middleware.js";
4
4
  export { default as compile } from "./core/compile.js";
5
- export { st } from "safe-throw";
5
+ export * as cors from "./utils/cors.js";
6
+ export * as st from "safe-throw/error";
package/index.js CHANGED
@@ -1 +1 @@
1
- export{default as router}from"./core/index.js";export*as handle from"./core/handler.js";export*as layer from"./core/middleware.js";export{default as compile}from"./core/compile.js";export{st}from"safe-throw";
1
+ export{default as router}from"./core/index.js";export*as handle from"./core/handler.js";export*as layer from"./core/middleware.js";export{default as compile}from"./core/compile.js";export*as cors from"./utils/cors.js";export*as st from"safe-throw/error";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mapl/web",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "A compiled web framework for all runtimes",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -10,16 +10,17 @@
10
10
  "dependencies": {
11
11
  "@mapl/framework": "^0.1.3",
12
12
  "@mapl/router": "^0.4.15",
13
- "safe-throw": "^0.5.1"
13
+ "safe-throw": "^0.5.2"
14
14
  },
15
15
  "exports": {
16
16
  "./constants": "./constants.js",
17
- "./core/compile": "./core/compile.js",
18
- "./core/context": "./core/context.js",
19
- ".": "./index.js",
20
17
  "./core/utils": "./core/utils.js",
18
+ "./core/compile": "./core/compile.js",
21
19
  "./core/middleware": "./core/middleware.js",
20
+ "./utils/cors": "./utils/cors.js",
21
+ ".": "./index.js",
22
+ "./core/handler": "./core/handler.js",
22
23
  "./core": "./core/index.js",
23
- "./core/handler": "./core/handler.js"
24
+ "./core/context": "./core/context.js"
24
25
  }
25
26
  }
@@ -0,0 +1,14 @@
1
+ import { type MiddlewareTypes } from "../core/middleware.js";
2
+ import type { Tag } from "../core/utils.js";
3
+ type HeaderValue = "*" | (string & {}) | [string, string, ...string[]];
4
+ declare const header: unique symbol;
5
+ type Header = Tag<{}, typeof header>;
6
+ declare const preflight: unique symbol;
7
+ type PreflightHeader = Tag<{}, typeof preflight>;
8
+ export declare const allowMethods: (v: HeaderValue) => PreflightHeader;
9
+ export declare const allowHeaders: (v: HeaderValue) => PreflightHeader;
10
+ export declare const maxAge: (v: number) => PreflightHeader;
11
+ export declare const allowCredentials: Header;
12
+ export declare const exposeHeaders: (v: HeaderValue) => Header;
13
+ export declare const init: (origins: HeaderValue, preflightHeaders?: PreflightHeader[], headers?: Header[]) => MiddlewareTypes<never, {}>;
14
+ export {};
package/utils/cors.js ADDED
@@ -0,0 +1 @@
1
+ import{tap}from"../core/middleware.js";export let allowMethods=v=>[`Access-Control-Allow-Methods`,``+v];export let allowHeaders=v=>[`Access-Control-Allow-Headers`,``+v];export let maxAge=v=>[`Access-Control-Max-Age`,``+v];export let allowCredentials=[`Access-Control-Allow-Credentials`,`true`];export let exposeHeaders=v=>[`Access-Control-Expose-Headers`,``+v];export let init=(origins,preflightHeaders=[],headers=[])=>{if(origins!==`*`){headers.push([`Vary`,`Origin`]);if(Array.isArray(origins))return tap(c=>{let origin=c.req.headers.get(`Origin`);c.headers.push([`Access-Control-Allow-Origin`,typeof origin===`string`&&origins.includes(origin)?origin:origins[0]]);c.headers.push(...headers);if(c.req.method===`OPTIONS`)c.headers.push(...preflightHeaders)})}headers.push([`Access-Control-Allow-Origin`,origins]);return tap(c=>{c.headers.push(...headers);if(c.req.method===`OPTIONS`)c.headers.push(...preflightHeaders)})};