@arkstack/driver-h3 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/README.md CHANGED
@@ -6,18 +6,16 @@ H3 driver package for Arkstack providing H3-specific implementations of core Ark
6
6
 
7
7
  ```ts
8
8
  import { H3 } from 'h3';
9
- import { auth, type AuthenticatedH3Context } from '@arkstack/driver-h3/middlewares';
9
+ import { auth } from '@arkstack/driver-h3/middlewares';
10
10
 
11
11
  const app = new H3();
12
12
 
13
13
  app.use(auth);
14
- app.use('/account', (event) => {
15
- const context = event.context as AuthenticatedH3Context;
16
-
14
+ app.use('/account', ({ req }) => {
17
15
  return {
18
- user: context.authUser,
16
+ user: req.authUser,
19
17
  };
20
18
  });
21
19
  ```
22
20
 
23
- The middleware expects `Authorization: Bearer <token>` and attaches `user`, `authUser`, and `authToken` to `event.context`.
21
+ The middleware expects `Authorization: Bearer <token>` and attaches `user`, `authUser`, and `authToken` to `event.context` and `event.req`.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler-nV_ImqPa.d.ts","names":[],"sources":["../src/error-handler.ts"],"mappings":";;;cAMa,mBAAA,GAAuB,GAAA,EAAK,SAAA,GAAY,KAAA,WAAgB,KAAA,EAAO,OAAA,KAAO,YAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;KASY,YAAA,GAAe,UAAA,IAAoB,UAAA,EAAkB,MAAA;AAAA,UAEhD,eAAA;EACb,UAAA,GAAa,GAAA,EAAK,EAAA,KAAO,cAAA;EACzB,iBAAA,IAAqB,GAAA,EAAK,EAAA,EAAI,UAAA,aAAuB,cAAA;EACrD,SAAA,SAAkB,EAAA;EAClB,OAAA,IAAW,GAAA,EAAK,KAAA,WAAgB,KAAA,EAAO,OAAA;AAAA;AAAA,cAG9B,eAAA;EAIU,QAAA,EAAU,QAAA;EAH7B,MAAA;EACA,UAAA;cAEmB,QAAA,EAAU,QAAA;EAAA,IAKzB,OAAA,CAAA,GAAY,OAAA;AAAA;AAAA,cAQP,QAAA,SAAiB,iBAAA,CAAkB,EAAA,EAAI,YAAA;EAAA,SACvC,IAAA;EAAA,iBACQ,OAAA;cAOL,OAAA,EAAS,eAAA;EAUrB,SAAA,CAAA,GAAc,EAAA;EAYd,iBAAA,CAAmB,GAAA,EAAK,EAAA,EAAI,UAAA,WAAqB,cAAA;EAajD,UAAA,CAAY,GAAA,EAAK,EAAA,GAAK,cAAA;EAUtB,eAAA,CACI,GAAA,EAAK,EAAA,EACL,UAAA,EAAY,YAAA,GAAe,wBAAA,CAAyB,YAAA;EAqCxD,KAAA,CAAO,GAAA,EAAK,EAAA,EAAI,IAAA;AAAA"}
@@ -2,14 +2,8 @@ import "../error-handler-nV_ImqPa.js";
2
2
  import { H3Middleware } from "../index.js";
3
3
  import * as h3 from "h3";
4
4
  import { H3Event } from "h3";
5
- import { User } from "@arkstack/auth";
6
5
 
7
6
  //#region src/middlewares/auth.d.ts
8
- type AuthenticatedH3Context<TUser extends User = User> = {
9
- user?: TUser;
10
- authUser?: TUser;
11
- authToken?: string;
12
- };
13
7
  declare const auth: (event: H3Event, next: () => unknown | Promise<unknown>) => Promise<unknown>;
14
8
  //#endregion
15
9
  //#region src/middlewares/request-logger.d.ts
@@ -22,5 +16,5 @@ declare const requestLogger: ({
22
16
  //#region src/middlewares/static-asset-handler.d.ts
23
17
  declare const staticAssetHandler: (publicPath?: string) => (event: H3Event) => Promise<h3.HTTPResponse | undefined> | undefined;
24
18
  //#endregion
25
- export { AuthenticatedH3Context, auth, requestLogger, staticAssetHandler };
19
+ export { auth, requestLogger, staticAssetHandler };
26
20
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../src/middlewares/auth.ts","../../src/middlewares/request-logger.ts","../../src/middlewares/static-asset-handler.ts"],"mappings":";;;;;;cAKa,IAAA,GAAc,KAAA,EAAO,OAAA,EAAS,IAAA,kBAAsB,OAAA,cAAgB,OAAA;;;cCcpE,aAAA;EAAiB;AAAA;EAG1B,iBAAA;AAAA,MACK,YAAA;;;cCnBI,kBAAA,GAAsB,UAAA,eAGvB,KAAA,EAAO,OAAA,KAAO,OAAA,CAAA,EAAA,CAAA,YAAA"}
@@ -1,33 +1,42 @@
1
1
  import { serveStatic } from "h3";
2
- import { Logger, nodeEnv } from "@arkstack/common";
2
+ import { Hook, Logger, nodeEnv } from "@arkstack/common";
3
3
  import { Auth, AuthenticationException } from "@arkstack/auth";
4
4
  import { readFile, stat } from "node:fs/promises";
5
5
  import { join, resolve } from "node:path";
6
6
 
7
7
  //#region src/middlewares/auth.ts
8
8
  const auth = async (event, next) => {
9
- const token = readBearerToken(event.req.headers.get("authorization"));
10
- if (!token) throw new AuthenticationException("Unauthenticated", {
11
- req: {
9
+ try {
10
+ const token = readBearerToken(event.req.headers.get("authorization"));
11
+ if (!token) throw new AuthenticationException("Unauthenticated", {
12
+ req: {
13
+ headers: event.req.headers,
14
+ method: event.req.method,
15
+ url: event.req.url,
16
+ path: getEventPath(event)
17
+ },
18
+ status: 401
19
+ });
20
+ if (Hook.has("middleware:auth", "before")) Hook.get("middleware:auth", "before")?.(event);
21
+ const requestSource = {
12
22
  headers: event.req.headers,
13
23
  method: event.req.method,
14
24
  url: event.req.url,
15
25
  path: getEventPath(event)
16
- },
17
- status: 401
18
- });
19
- const requestSource = {
20
- headers: event.req.headers,
21
- method: event.req.method,
22
- url: event.req.url,
23
- path: getEventPath(event)
24
- };
25
- const user = await Auth.make().setRequest(requestSource).authorizeToken(token);
26
- const context = event.context;
27
- context.user = user;
28
- context.authUser = user;
29
- context.authToken = token;
30
- return await next();
26
+ };
27
+ const user = await Auth.make().setRequest(requestSource).authorizeToken(token);
28
+ event.context.user = user;
29
+ event.context.authUser = user;
30
+ event.context.authToken = token;
31
+ event.req.user = user;
32
+ event.req.authUser = user;
33
+ event.req.authToken = token;
34
+ if (Hook.has("middleware:auth", "after")) Hook.get("middleware:auth", "after")?.(event);
35
+ return await next();
36
+ } catch (error) {
37
+ if (Hook.has("middleware:auth", "error")) Hook.get("middleware:auth", "error")?.(error, event);
38
+ throw error;
39
+ }
31
40
  };
32
41
  const readBearerToken = (authorization) => {
33
42
  if (!authorization?.startsWith("Bearer ")) return null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/middlewares/auth.ts","../../src/middlewares/request-logger.ts","../../src/middlewares/static-asset-handler.ts"],"sourcesContent":["import type { H3Event } from 'h3'\nimport { Auth, AuthenticationException, type User } from '@arkstack/auth'\n\nexport type AuthenticatedH3Context<TUser extends User = User> = {\n user?: TUser;\n authUser?: TUser;\n authToken?: string;\n}\n\nexport const auth = async (event: H3Event, next: () => unknown | Promise<unknown>) => {\n const token = readBearerToken(event.req.headers.get('authorization'))\n\n if (!token) {\n throw new AuthenticationException('Unauthenticated', {\n req: {\n headers: event.req.headers,\n method: event.req.method,\n url: event.req.url,\n path: getEventPath(event),\n },\n status: 401,\n })\n }\n\n const requestSource = {\n headers: event.req.headers,\n method: event.req.method,\n url: event.req.url,\n path: getEventPath(event),\n }\n const user = await Auth.make().setRequest(requestSource).authorizeToken(token)\n const context = event.context as AuthenticatedH3Context\n\n context.user = user\n context.authUser = user\n context.authToken = token\n\n return await next()\n}\n\nconst readBearerToken = (authorization: string | null) => {\n if (!authorization?.startsWith('Bearer ')) {\n return null\n }\n\n return authorization.substring(7)\n}\n\nconst getEventPath = (event: H3Event) => event.req._url?.pathname\n","import { Logger, nodeEnv } from '@arkstack/common'\n\nimport { H3Middleware } from '..'\n\nconst colors: Record<string, 'green' | 'blue' | 'yellow' | 'red' | 'cyan'> = {\n GET: 'green',\n POST: 'blue',\n PUT: 'yellow',\n DELETE: 'red',\n PATCH: 'cyan',\n}\n\n/**\n * Middleware to log incoming requests and their response times.\n * \n * @param config Configuration options for the request logger middleware.\n * @param config.allowInProduction If true, the logger will also log requests in production environment. Default is false. \n * @returns H3Middleware function\n */\nexport const requestLogger = ({\n allowInProduction = false,\n}: {\n allowInProduction?: boolean\n} = {}): H3Middleware => async (event, next) => {\n if (nodeEnv() === 'prod' && !allowInProduction) return next()\n\n await next()\n\n const start = Date.now()\n const req = event.req\n const status = event.res.status || 200\n const duration = Date.now() - start\n\n Logger.log([\n [`[${req.method}]`, colors[req.method] || 'green'],\n [req.url, 'cyan'],\n [status.toString(), status >= 500 ? 'red' : status >= 400 ? 'yellow' : 'green'],\n [`- ${duration}ms`, 'dim']\n ], ' ')\n}","import { H3Event, serveStatic } from 'h3'\nimport { readFile, stat } from 'node:fs/promises'\nimport { join, resolve } from 'node:path'\n\nexport const staticAssetHandler = (publicPath: string = 'public') => {\n const rootPath = resolve(process.cwd(), publicPath)\n\n return (event: H3Event) => {\n const { pathname } = new URL(event.req.url)\n\n if (!/\\.[a-zA-Z0-9]+$/.test(pathname)) return\n if (pathname.startsWith('/.') || pathname.includes('..')) return\n\n event.res.headers.set('Cache-Control', 'public, max-age=31536000, immutable')\n event.res.headers.set('Access-Control-Allow-Origin', '*')\n event.res.headers.set('Access-Control-Allow-Methods', 'GET, HEAD, OPTIONS')\n event.res.headers.set('Access-Control-Allow-Headers', 'Content-Type, Authorization')\n\n return serveStatic(event, {\n indexNames: ['/index.html'],\n getContents: (id) => {\n const relativePath = id.replace(/^\\/+/, '')\n const file = join(rootPath, relativePath)\n\n return readFile(file).catch(() => null) as never\n },\n getMeta: async (id) => {\n const relativePath = id.replace(/^\\/+/, '')\n const file = join(rootPath, relativePath)\n const stats = await stat(file).catch(() => undefined)\n\n if (stats?.isFile()) {\n return {\n size: stats.size,\n mtime: stats.mtimeMs,\n }\n }\n },\n })\n }\n}"],"mappings":";;;;;;;AASA,MAAa,OAAO,OAAO,OAAgB,SAA2C;CAClF,MAAM,QAAQ,gBAAgB,MAAM,IAAI,QAAQ,IAAI,gBAAgB,CAAC;AAErE,KAAI,CAAC,MACD,OAAM,IAAI,wBAAwB,mBAAmB;EACjD,KAAK;GACD,SAAS,MAAM,IAAI;GACnB,QAAQ,MAAM,IAAI;GAClB,KAAK,MAAM,IAAI;GACf,MAAM,aAAa,MAAM;GAC5B;EACD,QAAQ;EACX,CAAC;CAGN,MAAM,gBAAgB;EAClB,SAAS,MAAM,IAAI;EACnB,QAAQ,MAAM,IAAI;EAClB,KAAK,MAAM,IAAI;EACf,MAAM,aAAa,MAAM;EAC5B;CACD,MAAM,OAAO,MAAM,KAAK,MAAM,CAAC,WAAW,cAAc,CAAC,eAAe,MAAM;CAC9E,MAAM,UAAU,MAAM;AAEtB,SAAQ,OAAO;AACf,SAAQ,WAAW;AACnB,SAAQ,YAAY;AAEpB,QAAO,MAAM,MAAM;;AAGvB,MAAM,mBAAmB,kBAAiC;AACtD,KAAI,CAAC,eAAe,WAAW,UAAU,CACrC,QAAO;AAGX,QAAO,cAAc,UAAU,EAAE;;AAGrC,MAAM,gBAAgB,UAAmB,MAAM,IAAI,MAAM;;;;AC5CzD,MAAM,SAAuE;CACzE,KAAK;CACL,MAAM;CACN,KAAK;CACL,QAAQ;CACR,OAAO;CACV;;;;;;;;AASD,MAAa,iBAAiB,EAC1B,oBAAoB,UAGpB,EAAE,KAAmB,OAAO,OAAO,SAAS;AAC5C,KAAI,SAAS,KAAK,UAAU,CAAC,kBAAmB,QAAO,MAAM;AAE7D,OAAM,MAAM;CAEZ,MAAM,QAAQ,KAAK,KAAK;CACxB,MAAM,MAAM,MAAM;CAClB,MAAM,SAAS,MAAM,IAAI,UAAU;CACnC,MAAM,WAAW,KAAK,KAAK,GAAG;AAE9B,QAAO,IAAI;EACP,CAAC,IAAI,IAAI,OAAO,IAAI,OAAO,IAAI,WAAW,QAAQ;EAClD,CAAC,IAAI,KAAK,OAAO;EACjB,CAAC,OAAO,UAAU,EAAE,UAAU,MAAM,QAAQ,UAAU,MAAM,WAAW,QAAQ;EAC/E,CAAC,KAAK,SAAS,KAAK,MAAM;EAC7B,EAAE,IAAI;;;;;AClCX,MAAa,sBAAsB,aAAqB,aAAa;CACjE,MAAM,WAAW,QAAQ,QAAQ,KAAK,EAAE,WAAW;AAEnD,SAAQ,UAAmB;EACvB,MAAM,EAAE,aAAa,IAAI,IAAI,MAAM,IAAI,IAAI;AAE3C,MAAI,CAAC,kBAAkB,KAAK,SAAS,CAAE;AACvC,MAAI,SAAS,WAAW,KAAK,IAAI,SAAS,SAAS,KAAK,CAAE;AAE1D,QAAM,IAAI,QAAQ,IAAI,iBAAiB,sCAAsC;AAC7E,QAAM,IAAI,QAAQ,IAAI,+BAA+B,IAAI;AACzD,QAAM,IAAI,QAAQ,IAAI,gCAAgC,qBAAqB;AAC3E,QAAM,IAAI,QAAQ,IAAI,gCAAgC,8BAA8B;AAEpF,SAAO,YAAY,OAAO;GACtB,YAAY,CAAC,cAAc;GAC3B,cAAc,OAAO;AAIjB,WAAO,SAFM,KAAK,UADG,GAAG,QAAQ,QAAQ,GAAG,CACF,CAEpB,CAAC,YAAY,KAAK;;GAE3C,SAAS,OAAO,OAAO;IAGnB,MAAM,QAAQ,MAAM,KADP,KAAK,UADG,GAAG,QAAQ,QAAQ,GAAG,CACF,CACX,CAAC,YAAY,OAAU;AAErD,QAAI,OAAO,QAAQ,CACf,QAAO;KACH,MAAM,MAAM;KACZ,OAAO,MAAM;KAChB;;GAGZ,CAAC"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/middlewares/auth.ts","../../src/middlewares/request-logger.ts","../../src/middlewares/static-asset-handler.ts"],"sourcesContent":["import { Auth, AuthenticationException } from '@arkstack/auth'\n\nimport type { H3Event } from 'h3'\nimport { Hook } from '@arkstack/common'\n\nexport const auth = async (event: H3Event, next: () => unknown | Promise<unknown>) => {\n try {\n const token = readBearerToken(event.req.headers.get('authorization'))\n\n if (!token) {\n throw new AuthenticationException('Unauthenticated', {\n req: {\n headers: event.req.headers,\n method: event.req.method,\n url: event.req.url,\n path: getEventPath(event),\n },\n status: 401,\n })\n }\n\n if (Hook.has('middleware:auth', 'before'))\n Hook.get('middleware:auth', 'before')?.(event)\n\n const requestSource = {\n headers: event.req.headers,\n method: event.req.method,\n url: event.req.url,\n path: getEventPath(event),\n }\n const user = await Auth.make().setRequest(requestSource).authorizeToken(token)\n\n event.context.user = user\n event.context.authUser = user\n event.context.authToken = token;\n (event.req as any).user = user;\n (event.req as any).authUser = user;\n (event.req as any).authToken = token\n\n if (Hook.has('middleware:auth', 'after'))\n Hook.get('middleware:auth', 'after')?.(event)\n\n return await next()\n } catch (error) {\n if (Hook.has('middleware:auth', 'error'))\n Hook.get('middleware:auth', 'error')?.(error, event)\n\n throw error\n }\n}\n\nconst readBearerToken = (authorization: string | null) => {\n if (!authorization?.startsWith('Bearer ')) {\n return null\n }\n\n return authorization.substring(7)\n}\n\nconst getEventPath = (event: H3Event) => event.req._url?.pathname\n","import { Logger, nodeEnv } from '@arkstack/common'\n\nimport { H3Middleware } from '..'\n\nconst colors: Record<string, 'green' | 'blue' | 'yellow' | 'red' | 'cyan'> = {\n GET: 'green',\n POST: 'blue',\n PUT: 'yellow',\n DELETE: 'red',\n PATCH: 'cyan',\n}\n\n/**\n * Middleware to log incoming requests and their response times.\n * \n * @param config Configuration options for the request logger middleware.\n * @param config.allowInProduction If true, the logger will also log requests in production environment. Default is false. \n * @returns H3Middleware function\n */\nexport const requestLogger = ({\n allowInProduction = false,\n}: {\n allowInProduction?: boolean\n} = {}): H3Middleware => async (event, next) => {\n if (nodeEnv() === 'prod' && !allowInProduction) return next()\n\n await next()\n\n const start = Date.now()\n const req = event.req\n const status = event.res.status || 200\n const duration = Date.now() - start\n\n Logger.log([\n [`[${req.method}]`, colors[req.method] || 'green'],\n [req.url, 'cyan'],\n [status.toString(), status >= 500 ? 'red' : status >= 400 ? 'yellow' : 'green'],\n [`- ${duration}ms`, 'dim']\n ], ' ')\n}","import { H3Event, serveStatic } from 'h3'\nimport { readFile, stat } from 'node:fs/promises'\nimport { join, resolve } from 'node:path'\n\nexport const staticAssetHandler = (publicPath: string = 'public') => {\n const rootPath = resolve(process.cwd(), publicPath)\n\n return (event: H3Event) => {\n const { pathname } = new URL(event.req.url)\n\n if (!/\\.[a-zA-Z0-9]+$/.test(pathname)) return\n if (pathname.startsWith('/.') || pathname.includes('..')) return\n\n event.res.headers.set('Cache-Control', 'public, max-age=31536000, immutable')\n event.res.headers.set('Access-Control-Allow-Origin', '*')\n event.res.headers.set('Access-Control-Allow-Methods', 'GET, HEAD, OPTIONS')\n event.res.headers.set('Access-Control-Allow-Headers', 'Content-Type, Authorization')\n\n return serveStatic(event, {\n indexNames: ['/index.html'],\n getContents: (id) => {\n const relativePath = id.replace(/^\\/+/, '')\n const file = join(rootPath, relativePath)\n\n return readFile(file).catch(() => null) as never\n },\n getMeta: async (id) => {\n const relativePath = id.replace(/^\\/+/, '')\n const file = join(rootPath, relativePath)\n const stats = await stat(file).catch(() => undefined)\n\n if (stats?.isFile()) {\n return {\n size: stats.size,\n mtime: stats.mtimeMs,\n }\n }\n },\n })\n }\n}"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arkstack/driver-h3",
3
- "version": "0.3.16",
3
+ "version": "0.3.17",
4
4
  "type": "module",
5
5
  "description": "H3 driver package for Arkstack providing H3-specific implementations of core Arkstack features such as routing, middleware, and database integration.",
6
6
  "homepage": "https://arkstack.toneflix.net",
@@ -36,13 +36,13 @@
36
36
  "./package.json": "./package.json"
37
37
  },
38
38
  "dependencies": {
39
- "@arkstack/contract": "^0.3.16"
39
+ "@arkstack/contract": "^0.3.17"
40
40
  },
41
41
  "peerDependencies": {
42
- "clear-router": "^2.3.3",
42
+ "clear-router": "^2.3.5",
43
43
  "h3": "2.0.1-rc.16",
44
- "@arkstack/common": "^0.3.16",
45
- "@arkstack/auth": "^0.3.16"
44
+ "@arkstack/auth": "^0.3.17",
45
+ "@arkstack/common": "^0.3.17"
46
46
  },
47
47
  "peerDependenciesMeta": {
48
48
  "@arkstack/auth": {