@boon4681/giri 0.0.2-alpha-2 → 0.0.2-alpha-4
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/adapters/hono.d.ts +1 -1
- package/dist/adapters/hono.js +56 -3
- package/dist/adapters/hono.js.map +1 -1
- package/dist/cli.js +6 -3
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.js +39 -4
- package/dist/index.js.map +1 -1
- package/dist/{types-C4J1_iLZ.d.ts → types-NVvedshc.d.ts} +58 -1
- package/dist/validators/valibot.d.ts +1 -1
- package/dist/validators/valibot.js.map +1 -1
- package/dist/validators/zod.d.ts +1 -1
- package/dist/validators/zod.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { M as Middleware, C as Context, H as HandlerResponse, V as ValidatedInput, S as Services, c as StatusCode, R as ResponseFormat, T as TypedResponse,
|
|
2
|
-
export { G as GiriAdapter,
|
|
1
|
+
import { M as Middleware, C as Context, H as HandlerResponse, V as ValidatedInput, S as Services, c as CookieJarFactory, d as StatusCode, R as ResponseFormat, T as TypedResponse, e as MiddlewareOptions, B as BodyContentType, a as GiriBodySchema, b as GiriInputSchema, i as inputSchemaBrand, f as RouteInput, g as HttpMethod, h as GiriConfig, j as GiriPaths, k as SecurityRequirement } from './types-NVvedshc.js';
|
|
2
|
+
export { l as CookieJar, m as CookieOptions, n as CookieSink, G as GiriAdapter, o as GiriFetchHandler, p as GiriRequest, q as GiriRouteRegistration, r as GiriServeOptions, s as GiriServer, t as GiriServerInfo, u as Handle, I as Infer, v as InferStackVars, w as InputValidationResult, J as JsonSchema, x as MergeStack, y as MiddlewareOpenApi, z as MiddlewareVarsOf, N as Next, A as RouteInputOf, D as RouteOpenApi, E as RouteOpenApiConfig, F as ValidBody, K as ValidQuery, L as VarsOf } from './types-NVvedshc.js';
|
|
3
3
|
|
|
4
4
|
interface CreateContextOptions<Params extends Record<string, string> = Record<string, string>, Input extends ValidatedInput = ValidatedInput> {
|
|
5
5
|
request: Request;
|
|
@@ -8,6 +8,10 @@ interface CreateContextOptions<Params extends Record<string, string> = Record<st
|
|
|
8
8
|
app?: Services;
|
|
9
9
|
/** The adapter's native per-request context, stashed for backend-specific bridges. */
|
|
10
10
|
native?: unknown;
|
|
11
|
+
/** Secret for `c.signedCookie` / `c.req.signedCookie` (from `config.cookieSecret`). */
|
|
12
|
+
cookieSecret?: string;
|
|
13
|
+
/** The adapter's cookie jar, built from its runtime's native helpers. */
|
|
14
|
+
cookies?: CookieJarFactory;
|
|
11
15
|
}
|
|
12
16
|
declare function createTypedResponse<T, S extends StatusCode, F extends ResponseFormat>(data: T, status: S, format: F, headers?: HeadersInit): TypedResponse<T, S, F>;
|
|
13
17
|
declare function isTypedResponse(value: unknown): value is TypedResponse<unknown>;
|
|
@@ -168,4 +172,4 @@ declare function runInit(lifecycle: GiriLifecycle): Promise<Services>;
|
|
|
168
172
|
|
|
169
173
|
declare function defineConfig<App>(config: GiriConfig<App>): GiriConfig<App>;
|
|
170
174
|
|
|
171
|
-
export { BodyContentType, Context, GiriBodySchema, GiriConfig, GiriInputSchema, type GiriLifecycle, GiriPaths, HandlerResponse, HttpMethod, Middleware, MiddlewareOptions, RouteInput, SecurityRequirement, Services, StatusCode, TypedResponse, ValidatedInput, buildGiriApp, composeMiddleware, createContext, createTypedResponse, defineBodySchema, defineConfig, defineInputSchema, defineMiddleware, isGiriBodySchema, isGiriInputSchema, isTypedResponse, loadLifecycle, prepareRequestInput, resolveGiriPaths, runInit, scanRoutes, stack, syncProject, toResponse, typedResponseToResponse };
|
|
175
|
+
export { BodyContentType, Context, CookieJarFactory, GiriBodySchema, GiriConfig, GiriInputSchema, type GiriLifecycle, GiriPaths, HandlerResponse, HttpMethod, Middleware, MiddlewareOptions, RouteInput, SecurityRequirement, Services, StatusCode, TypedResponse, ValidatedInput, buildGiriApp, composeMiddleware, createContext, createTypedResponse, defineBodySchema, defineConfig, defineInputSchema, defineMiddleware, isGiriBodySchema, isGiriInputSchema, isTypedResponse, loadLifecycle, prepareRequestInput, resolveGiriPaths, runInit, scanRoutes, stack, syncProject, toResponse, typedResponseToResponse };
|
package/dist/index.js
CHANGED
|
@@ -429,6 +429,17 @@ var pendingResponseBrand = /* @__PURE__ */ Symbol("giri.pending-response");
|
|
|
429
429
|
function getPending(context) {
|
|
430
430
|
return context[pendingResponseBrand];
|
|
431
431
|
}
|
|
432
|
+
var unsupportedCookieJar = {
|
|
433
|
+
get: cookiesUnsupported,
|
|
434
|
+
all: cookiesUnsupported,
|
|
435
|
+
set: cookiesUnsupported,
|
|
436
|
+
delete: cookiesUnsupported,
|
|
437
|
+
getSigned: cookiesUnsupported,
|
|
438
|
+
setSigned: cookiesUnsupported
|
|
439
|
+
};
|
|
440
|
+
function cookiesUnsupported() {
|
|
441
|
+
throw new Error("The active adapter does not support cookies.");
|
|
442
|
+
}
|
|
432
443
|
function createTypedResponse(data, status, format, headers) {
|
|
433
444
|
return {
|
|
434
445
|
[typedResponseBrand]: { data, status, format },
|
|
@@ -447,6 +458,11 @@ function createContext(options) {
|
|
|
447
458
|
const validated = options.validated ?? {};
|
|
448
459
|
const pending = { headers: new Headers() };
|
|
449
460
|
const defaultStatus = () => pending.status ?? 200;
|
|
461
|
+
const cookies = options.cookies ? options.cookies({
|
|
462
|
+
request: options.request,
|
|
463
|
+
append: (header) => pending.headers.append("set-cookie", header),
|
|
464
|
+
secret: options.cookieSecret
|
|
465
|
+
}) : unsupportedCookieJar;
|
|
450
466
|
const context = {
|
|
451
467
|
params: options.params ?? {},
|
|
452
468
|
app: options.app ?? {},
|
|
@@ -464,7 +480,10 @@ function createContext(options) {
|
|
|
464
480
|
throw new Error(`No validated ${String(key)} data is available for this route.`);
|
|
465
481
|
}
|
|
466
482
|
return validated[key];
|
|
467
|
-
}
|
|
483
|
+
},
|
|
484
|
+
cookie: (name) => cookies.get(name),
|
|
485
|
+
cookies: () => cookies.all(),
|
|
486
|
+
signedCookie: (name) => cookies.getSigned(name)
|
|
468
487
|
},
|
|
469
488
|
set: (key, value) => {
|
|
470
489
|
store.set(key, value);
|
|
@@ -488,7 +507,15 @@ function createContext(options) {
|
|
|
488
507
|
},
|
|
489
508
|
status: (code) => {
|
|
490
509
|
pending.status = code;
|
|
491
|
-
}
|
|
510
|
+
},
|
|
511
|
+
cookie: (name, value, options2) => {
|
|
512
|
+
if (value === null) {
|
|
513
|
+
cookies.delete(name, options2);
|
|
514
|
+
} else {
|
|
515
|
+
cookies.set(name, value, options2);
|
|
516
|
+
}
|
|
517
|
+
},
|
|
518
|
+
signedCookie: (name, value, options2) => cookies.setSigned(name, value, options2)
|
|
492
519
|
};
|
|
493
520
|
context[nativeContextBrand] = options.native;
|
|
494
521
|
context[pendingResponseBrand] = pending;
|
|
@@ -526,10 +553,16 @@ function toResponse(response, context) {
|
|
|
526
553
|
}
|
|
527
554
|
const headers = new Headers(base.headers);
|
|
528
555
|
pending.headers.forEach((value, key) => {
|
|
556
|
+
if (key === "set-cookie") {
|
|
557
|
+
return;
|
|
558
|
+
}
|
|
529
559
|
if (!headers.has(key)) {
|
|
530
560
|
headers.set(key, value);
|
|
531
561
|
}
|
|
532
562
|
});
|
|
563
|
+
for (const cookie of pending.headers.getSetCookie?.() ?? []) {
|
|
564
|
+
headers.append("set-cookie", cookie);
|
|
565
|
+
}
|
|
533
566
|
return new Response(base.body, { status: base.status, statusText: base.statusText, headers });
|
|
534
567
|
}
|
|
535
568
|
async function composeMiddleware(middleware, handle, context) {
|
|
@@ -731,7 +764,8 @@ var configSchema = import_typebox.Type.Object({
|
|
|
731
764
|
port: import_typebox.Type.Optional(import_typebox.Type.Number()),
|
|
732
765
|
hostname: import_typebox.Type.Optional(import_typebox.Type.String())
|
|
733
766
|
}, { additionalProperties: false })),
|
|
734
|
-
errorSchema: import_typebox.Type.Optional(import_typebox.Type.Any())
|
|
767
|
+
errorSchema: import_typebox.Type.Optional(import_typebox.Type.Any()),
|
|
768
|
+
cookieSecret: import_typebox.Type.Optional(import_typebox.Type.String())
|
|
735
769
|
}, { additionalProperties: false });
|
|
736
770
|
|
|
737
771
|
// src/loader/loader.ts
|
|
@@ -1075,7 +1109,8 @@ async function buildGiriApp(config, options = {}) {
|
|
|
1075
1109
|
handle: routeModule.handle,
|
|
1076
1110
|
middleware: [...folderMiddleware, ...verbMiddleware],
|
|
1077
1111
|
input: routeInput(routeModule, route.file),
|
|
1078
|
-
services: options.services
|
|
1112
|
+
services: options.services,
|
|
1113
|
+
cookieSecret: config.cookieSecret
|
|
1079
1114
|
});
|
|
1080
1115
|
}
|
|
1081
1116
|
} finally {
|