@arkstack/driver-h3 0.12.11 → 0.12.12
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/dist/index-BLhGjrmA.d.ts +79 -0
- package/dist/{index-DIJtwwZP.d.ts → index-Dls9g_8I.d.ts} +2 -9
- package/dist/index.d.ts +1 -1
- package/dist/index.js +21 -11
- package/dist/middlewares/index.d.ts +1 -1
- package/dist/types-C4wkZQOC.d.ts +18 -0
- package/dist/types.d.ts +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { n as MiddlewareConfig, t as Middleware$2 } from "./types-C4wkZQOC.js";
|
|
2
|
+
import { ArkstackKitDriver, ArkstackRouteListOptions, PromiseOrValue } from "@arkstack/contract";
|
|
3
|
+
import { H3, H3Event, HTTPError } from "h3";
|
|
4
|
+
import { Route } from "clear-router";
|
|
5
|
+
import { Router } from "clear-router/h3";
|
|
6
|
+
import { H3App, Handler, HttpContext, Middleware as Middleware$1 } from "clear-router/types/h3";
|
|
7
|
+
|
|
8
|
+
//#region src/error-handler.d.ts
|
|
9
|
+
declare const defaultErrorHandler: (err: HTTPError | Error | string, event: H3Event) => Promise<any>;
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region src/Router.d.ts
|
|
12
|
+
declare class Router$1 extends Router {
|
|
13
|
+
static bind(app: H3): Promise<H3App>;
|
|
14
|
+
static list(_options: ArkstackRouteListOptions | undefined, app: H3): Promise<Route<HttpContext, Middleware$1, Handler>[]>;
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
//#region src/index.d.ts
|
|
18
|
+
type H3Middleware = Middleware$1 | [Middleware$1, Record<string, any>];
|
|
19
|
+
interface H3DriverOptions {
|
|
20
|
+
bindRouter: (app: H3) => PromiseOrValue<void>;
|
|
21
|
+
mountPublicAssets?: (app: H3, publicPath: string) => PromiseOrValue<void>;
|
|
22
|
+
createApp?: () => H3;
|
|
23
|
+
onError?: (err: Error | string, event: H3Event) => unknown;
|
|
24
|
+
}
|
|
25
|
+
declare class H3EventResponse {
|
|
26
|
+
response: Response;
|
|
27
|
+
status: number;
|
|
28
|
+
statusText?: string;
|
|
29
|
+
constructor(response: Response);
|
|
30
|
+
get headers(): Headers;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The H3Driver class implements the ArkstackKitDriver contract for the H3 framework.
|
|
34
|
+
*/
|
|
35
|
+
declare class H3Driver extends ArkstackKitDriver<H3, H3Middleware> {
|
|
36
|
+
readonly name = "h3";
|
|
37
|
+
private readonly options;
|
|
38
|
+
/**
|
|
39
|
+
* Creates an instance of H3Driver.
|
|
40
|
+
*
|
|
41
|
+
* @param options
|
|
42
|
+
*/
|
|
43
|
+
constructor(options: H3DriverOptions);
|
|
44
|
+
/**
|
|
45
|
+
* Creates an H3 application instance.
|
|
46
|
+
*
|
|
47
|
+
* @returns
|
|
48
|
+
*/
|
|
49
|
+
createApp(): H3;
|
|
50
|
+
/**
|
|
51
|
+
* Mounts static assets from the specified public path to the H3 application.
|
|
52
|
+
*
|
|
53
|
+
* @param app
|
|
54
|
+
* @param publicPath
|
|
55
|
+
*/
|
|
56
|
+
mountPublicAssets(app: H3, publicPath: string): PromiseOrValue<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Binds the router to the H3 application using the provided bindRouter function.
|
|
59
|
+
*
|
|
60
|
+
* @param app
|
|
61
|
+
*/
|
|
62
|
+
bindRouter(app: H3): PromiseOrValue<void>;
|
|
63
|
+
/**
|
|
64
|
+
* Applies middleware to the H3 application.
|
|
65
|
+
*
|
|
66
|
+
* @param app
|
|
67
|
+
* @param middleware
|
|
68
|
+
*/
|
|
69
|
+
applyMiddleware(app: H3, middleware: H3Middleware | Middleware$2 | MiddlewareConfig): void;
|
|
70
|
+
/**
|
|
71
|
+
* Starts the H3 server on the specified port.
|
|
72
|
+
*
|
|
73
|
+
* @param app
|
|
74
|
+
* @param port
|
|
75
|
+
*/
|
|
76
|
+
start(app: H3, port: number): void;
|
|
77
|
+
}
|
|
78
|
+
//#endregion
|
|
79
|
+
export { Router$1 as a, H3Middleware as i, H3DriverOptions as n, defaultErrorHandler as o, H3EventResponse as r, H3Driver as t };
|
|
@@ -1,19 +1,12 @@
|
|
|
1
1
|
import { n as MiddlewareConfig, t as Middleware$2 } from "./types-DWUchLdg.js";
|
|
2
2
|
import { ArkstackKitDriver, ArkstackRouteListOptions, PromiseOrValue } from "@arkstack/contract";
|
|
3
|
-
import { H3, H3Event, HTTPError
|
|
3
|
+
import { H3, H3Event, HTTPError } from "h3";
|
|
4
4
|
import { Route } from "clear-router";
|
|
5
5
|
import { Router } from "clear-router/h3";
|
|
6
6
|
import { H3App, Handler, HttpContext, Middleware as Middleware$1 } from "clear-router/types/h3";
|
|
7
7
|
|
|
8
8
|
//#region src/error-handler.d.ts
|
|
9
|
-
declare const defaultErrorHandler: (err: HTTPError | Error | string, event: H3Event) => Promise<
|
|
10
|
-
error: boolean;
|
|
11
|
-
message: string;
|
|
12
|
-
status: "error";
|
|
13
|
-
code: number;
|
|
14
|
-
errors?: unknown;
|
|
15
|
-
stack?: string;
|
|
16
|
-
}>;
|
|
9
|
+
declare const defaultErrorHandler: (err: HTTPError | Error | string, event: H3Event) => Promise<any>;
|
|
17
10
|
//#endregion
|
|
18
11
|
//#region src/Router.d.ts
|
|
19
12
|
declare class Router$1 extends Router {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/// <reference path="./app.d.ts" />
|
|
2
|
-
import { a as Router, i as H3Middleware, n as H3DriverOptions, o as defaultErrorHandler, r as H3EventResponse, t as H3Driver } from "./index-
|
|
2
|
+
import { a as Router, i as H3Middleware, n as H3DriverOptions, o as defaultErrorHandler, r as H3EventResponse, t as H3Driver } from "./index-BLhGjrmA.js";
|
|
3
3
|
export { H3Driver, H3DriverOptions, H3EventResponse, H3Middleware, Router, defaultErrorHandler };
|
package/dist/index.js
CHANGED
|
@@ -65,7 +65,7 @@ const defaultErrorHandler = async (err, event) => {
|
|
|
65
65
|
});
|
|
66
66
|
};
|
|
67
67
|
//#endregion
|
|
68
|
-
//#region ../http/dist/redirect-
|
|
68
|
+
//#region ../http/dist/redirect-C1kZMywY.js
|
|
69
69
|
const unwrapRequestSource = (source) => {
|
|
70
70
|
if (source.headers) return source;
|
|
71
71
|
if (source.req) return source.req;
|
|
@@ -733,7 +733,7 @@ const ensureSession = (ctx, initial, persistent) => {
|
|
|
733
733
|
*/
|
|
734
734
|
const getSession = (ctx) => {
|
|
735
735
|
if (!isRecord(ctx)) return;
|
|
736
|
-
const session = ctx[sessionKey] ?? ctx.session;
|
|
736
|
+
const session = ctx[sessionKey] ?? (ctx.httpSession instanceof Session ? ctx.httpSession : void 0) ?? (ctx.session instanceof Session ? ctx.session : void 0) ?? (isRecord(ctx.req) && ctx.req.httpSession instanceof Session ? ctx.req.httpSession : void 0) ?? (isRecord(ctx.context) && ctx.context.httpSession instanceof Session ? ctx.context.httpSession : void 0);
|
|
737
737
|
return session instanceof Session ? session : void 0;
|
|
738
738
|
};
|
|
739
739
|
const generateSessionId = () => randomBytes(32).toString("base64url");
|
|
@@ -1170,16 +1170,26 @@ const getSessionDriver = () => {
|
|
|
1170
1170
|
definePlugin({
|
|
1171
1171
|
name: "arkstack-http",
|
|
1172
1172
|
setup: ({ bind, useHttpContext }) => {
|
|
1173
|
-
bind(Session, ({ ctx }) =>
|
|
1174
|
-
|
|
1173
|
+
bind(Session, async ({ ctx }) => {
|
|
1174
|
+
const existing = getSession(ctx);
|
|
1175
|
+
if (existing) return existing;
|
|
1176
|
+
const persistent = await getSessionDriver().start(ctx);
|
|
1177
|
+
const session = ensureSession(ctx, persistent.state, persistent);
|
|
1178
|
+
attachViewState(ctx, session);
|
|
1179
|
+
registerResponseFlashSweep(ctx, session);
|
|
1180
|
+
return session;
|
|
1181
|
+
});
|
|
1182
|
+
useHttpContext((context) => {
|
|
1183
|
+
const session = getSession(context.ctx);
|
|
1184
|
+
if (session) {
|
|
1185
|
+
context.httpSession = session;
|
|
1186
|
+
if (!("session" in context) || context.session instanceof Session) context.session = session;
|
|
1187
|
+
context.errors = session.errors;
|
|
1188
|
+
attachViewState(context.ctx, session);
|
|
1189
|
+
attachViewState(context, session);
|
|
1190
|
+
registerResponseFlashSweep(context, session);
|
|
1191
|
+
} else delete globalThis.session;
|
|
1175
1192
|
globalThis.request = (key) => key ? context.request.input(key) : context.request;
|
|
1176
|
-
const persistent = await getSessionDriver().start(context);
|
|
1177
|
-
const session = ensureSession(context.ctx, persistent.state, persistent);
|
|
1178
|
-
context.httpSession = session;
|
|
1179
|
-
if (!("session" in context) || context.session instanceof Session) context.session = session;
|
|
1180
|
-
context.errors = session.errors;
|
|
1181
|
-
attachViewState(context, session);
|
|
1182
|
-
registerResponseFlashSweep(context, session);
|
|
1183
1193
|
});
|
|
1184
1194
|
}
|
|
1185
1195
|
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/// <reference path="./app.d.ts" />
|
|
2
|
+
import { ArkstackKitDriver, ArkstackMiddlewareConfig, ArkstackRouteListOptions, PromiseOrValue } from "@arkstack/contract";
|
|
3
|
+
import { H3, H3Event, HTTPError, Middleware } from "h3";
|
|
4
|
+
import { Route } from "clear-router";
|
|
5
|
+
import { Router } from "clear-router/h3";
|
|
6
|
+
import { ClassMiddleware } from "clear-router/types/basic";
|
|
7
|
+
import { H3App, Handler, HttpContext, Middleware as Middleware$1 } from "clear-router/types/h3";
|
|
8
|
+
|
|
9
|
+
//#region dist/index-Dls9g_8I.d.ts
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region src/index.d.ts
|
|
12
|
+
type H3Middleware = Middleware$1 | [Middleware$1, Record<string, any>];
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region src/types.d.ts
|
|
15
|
+
type Middleware$2 = Middleware | ClassMiddleware<Middleware>;
|
|
16
|
+
type MiddlewareConfig = ArkstackMiddlewareConfig<Middleware$2> | ArkstackMiddlewareConfig<H3Middleware>;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { MiddlewareConfig as n, Middleware$2 as t };
|
package/dist/types.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as MiddlewareConfig, t as Middleware } from "./types-
|
|
1
|
+
import { n as MiddlewareConfig, t as Middleware } from "./types-C4wkZQOC.js";
|
|
2
2
|
export { Middleware, MiddlewareConfig };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arkstack/driver-h3",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "H3 driver for Arkstack, providing H3-based runtime integration for the framework.",
|
|
6
6
|
"homepage": "https://arkstack.toneflix.net",
|
|
@@ -40,13 +40,13 @@
|
|
|
40
40
|
"clear-router": "^2.8.6",
|
|
41
41
|
"@resora/plugin-clear-router": "^1.0.37",
|
|
42
42
|
"resora": "^1.3.6",
|
|
43
|
-
"@arkstack/contract": "^0.12.
|
|
43
|
+
"@arkstack/contract": "^0.12.12"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"h3": "2.0.1-rc.22",
|
|
47
|
-
"@arkstack/
|
|
48
|
-
"@arkstack/
|
|
49
|
-
"@arkstack/common": "^0.12.
|
|
47
|
+
"@arkstack/foundry": "^0.12.12",
|
|
48
|
+
"@arkstack/auth": "^0.12.12",
|
|
49
|
+
"@arkstack/common": "^0.12.12"
|
|
50
50
|
},
|
|
51
51
|
"peerDependenciesMeta": {
|
|
52
52
|
"@arkstack/auth": {
|