@venturekit/runtime 0.0.0-dev.20260427225816 → 0.0.0-dev.20260429113801
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/env/memo.d.ts +6 -1
- package/dist/env/memo.d.ts.map +1 -1
- package/dist/env/memo.js +4 -0
- package/dist/env/memo.js.map +1 -1
- package/dist/handler/context.d.ts +9 -3
- package/dist/handler/context.d.ts.map +1 -1
- package/dist/handler/context.js.map +1 -1
- package/dist/handler/handler.d.ts +38 -4
- package/dist/handler/handler.d.ts.map +1 -1
- package/dist/handler/handler.js +92 -34
- package/dist/handler/handler.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/env/memo.d.ts
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
* still observe fresh parses — changing the underlying env string
|
|
15
15
|
* transparently busts the cache.
|
|
16
16
|
*/
|
|
17
|
+
import type { IntentOutputs } from '@venturekit/core';
|
|
17
18
|
/**
|
|
18
19
|
* Parse `VENTURE_INTENT_OUTPUTS` with per-string memoization.
|
|
19
20
|
*
|
|
@@ -21,8 +22,12 @@
|
|
|
21
22
|
* existing callers' expectations. Malformed JSON intentionally fails silently
|
|
22
23
|
* so a misconfigured infra layer doesn't crash every request — the fallback
|
|
23
24
|
* is simply "no intent outputs available".
|
|
25
|
+
*
|
|
26
|
+
* The shape mirrors `IntentOutputs` from `@venturekit/core` — we do not
|
|
27
|
+
* validate the structure at runtime because the producer (the infra layer)
|
|
28
|
+
* is the only writer and it stamps a typed value at deploy time.
|
|
24
29
|
*/
|
|
25
|
-
export declare function getIntentOutputs():
|
|
30
|
+
export declare function getIntentOutputs(): IntentOutputs | undefined;
|
|
26
31
|
/**
|
|
27
32
|
* Parse `VENTURE_LOCAL_URLS` (`project=url,project2=url2`) with per-string
|
|
28
33
|
* memoization. Returns an empty object when unset, so callers can safely
|
package/dist/env/memo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memo.d.ts","sourceRoot":"","sources":["../../src/env/memo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"memo.d.ts","sourceRoot":"","sources":["../../src/env/memo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAKtD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,SAAS,CAkB5D;AAKD;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAkB5D;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAK7C"}
|
package/dist/env/memo.js
CHANGED
|
@@ -23,6 +23,10 @@ let cachedIntentValue;
|
|
|
23
23
|
* existing callers' expectations. Malformed JSON intentionally fails silently
|
|
24
24
|
* so a misconfigured infra layer doesn't crash every request — the fallback
|
|
25
25
|
* is simply "no intent outputs available".
|
|
26
|
+
*
|
|
27
|
+
* The shape mirrors `IntentOutputs` from `@venturekit/core` — we do not
|
|
28
|
+
* validate the structure at runtime because the producer (the infra layer)
|
|
29
|
+
* is the only writer and it stamps a typed value at deploy time.
|
|
26
30
|
*/
|
|
27
31
|
export function getIntentOutputs() {
|
|
28
32
|
const raw = process.env.VENTURE_INTENT_OUTPUTS;
|
package/dist/env/memo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/env/memo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"memo.js","sourceRoot":"","sources":["../../src/env/memo.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,IAAI,eAAmC,CAAC;AACxC,IAAI,iBAA4C,CAAC;AAEjD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;IAC/C,IAAI,GAAG,KAAK,eAAe;QAAE,OAAO,iBAAiB,CAAC;IAEtD,eAAe,GAAG,GAAG,CAAC;IACtB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,iBAAiB,GAAG,SAAS,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,iBAAiB,GAAG,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;YAChF,CAAC,CAAE,MAAwB;YAC3B,CAAC,CAAC,SAAS,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,iBAAiB,GAAG,SAAS,CAAC;IAChC,CAAC;IACD,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,IAAI,kBAAsC,CAAC;AAC3C,IAAI,oBAAoB,GAA2B,EAAE,CAAC;AAEtD;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC3C,IAAI,GAAG,KAAK,kBAAkB;QAAE,OAAO,oBAAoB,CAAC;IAE5D,kBAAkB,GAAG,GAAG,CAAC;IACzB,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,IAAI,GAAG,EAAE,CAAC;QACR,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAC3C,MAAM,cAAc,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC;YAC/B,IAAI,cAAc,IAAI,UAAU,EAAE,CAAC;gBACjC,GAAG,CAAC,cAAc,CAAC,GAAG,UAAU,CAAC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IACD,oBAAoB,GAAG,GAAG,CAAC;IAC3B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB;IACpC,eAAe,GAAG,SAAS,CAAC;IAC5B,iBAAiB,GAAG,SAAS,CAAC;IAC9B,kBAAkB,GAAG,SAAS,CAAC;IAC/B,oBAAoB,GAAG,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Extensible for future auth/tenancy modules.
|
|
6
6
|
*/
|
|
7
7
|
import type { APIGatewayProxyEventV2 } from 'aws-lambda';
|
|
8
|
+
import type { IntentOutputs } from '@venturekit/core';
|
|
8
9
|
/**
|
|
9
10
|
* Transaction handle for database operations.
|
|
10
11
|
* Mirrors the Transaction interface from @venturekit/data
|
|
@@ -54,8 +55,13 @@ export interface BaseContext {
|
|
|
54
55
|
timestamp: Date;
|
|
55
56
|
/** Database transaction (populated when transactional: true) */
|
|
56
57
|
tx?: Transaction;
|
|
57
|
-
/**
|
|
58
|
-
|
|
58
|
+
/**
|
|
59
|
+
* Infrastructure intent outputs (populated after infra provisioning).
|
|
60
|
+
* Hydrated from `VENTURE_INTENT_OUTPUTS` so handlers and middleware can
|
|
61
|
+
* read the typed `databases`, `storage`, `queues`, etc. blocks without
|
|
62
|
+
* casting from `Record<string, unknown>`.
|
|
63
|
+
*/
|
|
64
|
+
intentOutputs?: IntentOutputs;
|
|
59
65
|
/** Trace ID for distributed tracing */
|
|
60
66
|
traceId?: string;
|
|
61
67
|
}
|
|
@@ -96,7 +102,7 @@ export interface RequestContext extends BaseContext {
|
|
|
96
102
|
* Provides access to provisioned resource endpoints, ARNs, etc.
|
|
97
103
|
* Hydrated from the VENTURE_INTENT_OUTPUTS environment variable.
|
|
98
104
|
*/
|
|
99
|
-
intentOutputs?:
|
|
105
|
+
intentOutputs?: IntentOutputs;
|
|
100
106
|
/**
|
|
101
107
|
* Whether this request was invoked internally by another VentureKit function
|
|
102
108
|
* (via `invoke()`) rather than from an external client through API Gateway.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/handler/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/handler/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/handler/context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/handler/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,26 @@ import type { APIGatewayProxyEventV2, APIGatewayProxyResultV2, Context } from 'a
|
|
|
10
10
|
import { RequestContext } from './context.js';
|
|
11
11
|
import { Logger } from '../logging/logger.js';
|
|
12
12
|
import { Middleware } from '../middleware/middleware.js';
|
|
13
|
+
/**
|
|
14
|
+
* Override the runtime's default auth middleware for scoped routes.
|
|
15
|
+
*
|
|
16
|
+
* Called without `@venturekit/auth` installed, this is how you wire a
|
|
17
|
+
* custom auth source. Called with `null`, it disables auth-middleware
|
|
18
|
+
* injection entirely (scoped routes will 401 unless the API Gateway
|
|
19
|
+
* Cognito Authorizer is populating `event.requestContext.authorizer.jwt.claims`).
|
|
20
|
+
*
|
|
21
|
+
* **Timing.** Each `handler()` factory caches the resolved auth
|
|
22
|
+
* middleware on its first request. Call this before any route module is
|
|
23
|
+
* loaded (i.e. in an app bootstrap) or before invoking test handlers
|
|
24
|
+
* for the first time.
|
|
25
|
+
*/
|
|
26
|
+
export declare function setDefaultAuthMiddleware(mw: Middleware<RequestContext> | null): void;
|
|
27
|
+
/**
|
|
28
|
+
* Reset the auth-middleware resolution cache. **Test-only** — lets
|
|
29
|
+
* vitest suites that toggle `setDefaultAuthMiddleware` return to the
|
|
30
|
+
* default lazy-import behavior between cases.
|
|
31
|
+
*/
|
|
32
|
+
export declare function _resetDefaultAuthMiddlewareForTesting(): void;
|
|
13
33
|
/**
|
|
14
34
|
* Handler function signature
|
|
15
35
|
*/
|
|
@@ -19,7 +39,13 @@ export type HandlerFn<TBody = unknown, TResult = unknown> = (body: TBody, ctx: R
|
|
|
19
39
|
*/
|
|
20
40
|
export type StatusCode = 200 | 201 | 204;
|
|
21
41
|
/**
|
|
22
|
-
* Zod-like schema interface (compatible with Zod without hard dependency)
|
|
42
|
+
* Zod-like schema interface (compatible with Zod without hard dependency).
|
|
43
|
+
*
|
|
44
|
+
* `path` is typed as `readonly PropertyKey[]` because Zod 4.x widened its
|
|
45
|
+
* issue-path element type from `string | number` to `PropertyKey` (which
|
|
46
|
+
* includes `symbol`). Tightening this to `(string | number)[]` was making
|
|
47
|
+
* real `z.object(...)` schemas fail assignability and forcing users into
|
|
48
|
+
* `as unknown as ZodLikeSchema<T>` casts.
|
|
23
49
|
*/
|
|
24
50
|
export interface ZodLikeSchema<T = unknown> {
|
|
25
51
|
safeParse(data: unknown): {
|
|
@@ -28,8 +54,8 @@ export interface ZodLikeSchema<T = unknown> {
|
|
|
28
54
|
} | {
|
|
29
55
|
success: false;
|
|
30
56
|
error: {
|
|
31
|
-
issues:
|
|
32
|
-
path:
|
|
57
|
+
issues: ReadonlyArray<{
|
|
58
|
+
path: readonly PropertyKey[];
|
|
33
59
|
message: string;
|
|
34
60
|
}>;
|
|
35
61
|
};
|
|
@@ -117,7 +143,15 @@ export declare const DEFAULT_MAX_BODY_BYTES = 1048576;
|
|
|
117
143
|
* export const main = handler(async (body, ctx, log) => {
|
|
118
144
|
* return { id: '123' };
|
|
119
145
|
* }, { scopes: ['projects.write'] });
|
|
146
|
+
*
|
|
147
|
+
* // With Zod body validation — `body` is inferred from the schema.
|
|
148
|
+
* export const main = handler(async (body, ctx, log) => {
|
|
149
|
+
* return { title: body.title };
|
|
150
|
+
* }, { body: z.object({ title: z.string() }) });
|
|
120
151
|
* ```
|
|
121
152
|
*/
|
|
122
|
-
export declare function handler<TBody
|
|
153
|
+
export declare function handler<TBody, TResult = unknown>(fn: HandlerFn<TBody, TResult>, config: HandlerConfig<TBody> & {
|
|
154
|
+
body: ZodLikeSchema<TBody>;
|
|
155
|
+
}): (event: APIGatewayProxyEventV2, context: Context) => Promise<APIGatewayProxyResultV2>;
|
|
156
|
+
export declare function handler<TBody = unknown, TResult = unknown>(fn: HandlerFn<TBody, TResult>, config?: HandlerConfig<TBody>): (event: APIGatewayProxyEventV2, context: Context) => Promise<APIGatewayProxyResultV2>;
|
|
123
157
|
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/handler/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC3F,OAAO,EAAE,cAAc,EAA6B,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,MAAM,EAAgB,MAAM,sBAAsB,CAAC;AAE5D,OAAO,
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/handler/handler.ts"],"names":[],"mappings":"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"}
|
package/dist/handler/handler.js
CHANGED
|
@@ -9,9 +9,69 @@
|
|
|
9
9
|
import { buildContext } from './context.js';
|
|
10
10
|
import { createLogger } from '../logging/logger.js';
|
|
11
11
|
import { success, created, noContent, errorResponse } from './response.js';
|
|
12
|
-
import { compose, loggingMiddleware, errorBoundaryMiddleware } from '../middleware/middleware.js';
|
|
12
|
+
import { compose, loggingMiddleware, errorBoundaryMiddleware, } from '../middleware/middleware.js';
|
|
13
13
|
import { BadRequestError, UnauthorizedError, ForbiddenError, PayloadTooLargeError, ValidationError } from './errors.js';
|
|
14
14
|
import { loadDataModule } from './data-loader.js';
|
|
15
|
+
// ─── Default auth middleware ──────────────────────────────────────────────
|
|
16
|
+
//
|
|
17
|
+
// When a route declares `scopes: [...]`, the runtime populates `ctx.user`
|
|
18
|
+
// from an auth middleware before the scope check runs. The default
|
|
19
|
+
// behavior is a lazy dynamic import of `@venturekit/auth/server` — if the
|
|
20
|
+
// package is installed, its `cookieAuthMiddleware()` is used; if not, the
|
|
21
|
+
// runtime falls back to the API Gateway Cognito Authorizer path (claims
|
|
22
|
+
// arriving in `event.requestContext.authorizer.jwt.claims`, parsed by
|
|
23
|
+
// `extractUserContext`).
|
|
24
|
+
//
|
|
25
|
+
// Consumers who want a custom auth path (e.g. a different cookie name, a
|
|
26
|
+
// different JWKS source, or no auth at all for tests) call
|
|
27
|
+
// `setDefaultAuthMiddleware(mw)` BEFORE the first handler invocation.
|
|
28
|
+
//
|
|
29
|
+
// The dynamic import avoids a hard dep on `@venturekit/auth`, which would
|
|
30
|
+
// create a cycle (auth peer-depends on runtime for its middleware types).
|
|
31
|
+
let defaultAuthResolution = null;
|
|
32
|
+
function resolveDefaultAuthMiddleware() {
|
|
33
|
+
if (defaultAuthResolution)
|
|
34
|
+
return defaultAuthResolution;
|
|
35
|
+
defaultAuthResolution = (async () => {
|
|
36
|
+
try {
|
|
37
|
+
const mod = (await import(
|
|
38
|
+
/* @vite-ignore */ '@venturekit/auth/server'));
|
|
39
|
+
if (typeof mod.cookieAuthMiddleware === 'function') {
|
|
40
|
+
return mod.cookieAuthMiddleware();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
// @venturekit/auth not installed (or not exporting /server). Fall
|
|
45
|
+
// back to the gateway-authorizer path.
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
})();
|
|
49
|
+
return defaultAuthResolution;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Override the runtime's default auth middleware for scoped routes.
|
|
53
|
+
*
|
|
54
|
+
* Called without `@venturekit/auth` installed, this is how you wire a
|
|
55
|
+
* custom auth source. Called with `null`, it disables auth-middleware
|
|
56
|
+
* injection entirely (scoped routes will 401 unless the API Gateway
|
|
57
|
+
* Cognito Authorizer is populating `event.requestContext.authorizer.jwt.claims`).
|
|
58
|
+
*
|
|
59
|
+
* **Timing.** Each `handler()` factory caches the resolved auth
|
|
60
|
+
* middleware on its first request. Call this before any route module is
|
|
61
|
+
* loaded (i.e. in an app bootstrap) or before invoking test handlers
|
|
62
|
+
* for the first time.
|
|
63
|
+
*/
|
|
64
|
+
export function setDefaultAuthMiddleware(mw) {
|
|
65
|
+
defaultAuthResolution = Promise.resolve(mw);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Reset the auth-middleware resolution cache. **Test-only** — lets
|
|
69
|
+
* vitest suites that toggle `setDefaultAuthMiddleware` return to the
|
|
70
|
+
* default lazy-import behavior between cases.
|
|
71
|
+
*/
|
|
72
|
+
export function _resetDefaultAuthMiddlewareForTesting() {
|
|
73
|
+
defaultAuthResolution = null;
|
|
74
|
+
}
|
|
15
75
|
/**
|
|
16
76
|
* Default max request body size (1 MiB).
|
|
17
77
|
*
|
|
@@ -85,12 +145,18 @@ function getStatusCode(method, explicit) {
|
|
|
85
145
|
}
|
|
86
146
|
}
|
|
87
147
|
/**
|
|
88
|
-
* Convert Zod-like issues to a ValidationError
|
|
148
|
+
* Convert Zod-like issues to a ValidationError.
|
|
149
|
+
*
|
|
150
|
+
* `path` element type follows Zod 4.x — `PropertyKey` (string | number | symbol).
|
|
151
|
+
* Symbol path segments are stringified via `String(seg)` for the field key
|
|
152
|
+
* since the `fieldErrors` dictionary is keyed by string.
|
|
89
153
|
*/
|
|
90
154
|
function zodToValidationError(source, issues) {
|
|
91
155
|
const fieldErrors = {};
|
|
92
156
|
for (const issue of issues) {
|
|
93
|
-
const field = issue.path.length > 0
|
|
157
|
+
const field = issue.path.length > 0
|
|
158
|
+
? issue.path.map((seg) => String(seg)).join('.')
|
|
159
|
+
: source;
|
|
94
160
|
if (!fieldErrors[field]) {
|
|
95
161
|
fieldErrors[field] = [];
|
|
96
162
|
}
|
|
@@ -98,45 +164,37 @@ function zodToValidationError(source, issues) {
|
|
|
98
164
|
}
|
|
99
165
|
return new ValidationError(`Validation failed on ${source}`, fieldErrors);
|
|
100
166
|
}
|
|
101
|
-
/**
|
|
102
|
-
* VentureKit unified handler
|
|
103
|
-
*
|
|
104
|
-
* Adapts to context with smart defaults:
|
|
105
|
-
* - No scopes = public endpoint
|
|
106
|
-
* - With scopes = authenticated + scope check
|
|
107
|
-
* - Status: GET/PUT → 200, POST → 201, DELETE → 204 (or set explicitly)
|
|
108
|
-
*
|
|
109
|
-
* @example
|
|
110
|
-
* ```typescript
|
|
111
|
-
* // Public endpoint
|
|
112
|
-
* export const main = handler(async (body, ctx, log) => {
|
|
113
|
-
* return { status: 'ok' };
|
|
114
|
-
* });
|
|
115
|
-
*
|
|
116
|
-
* // Authenticated endpoint
|
|
117
|
-
* export const main = handler(async (body, ctx, log) => {
|
|
118
|
-
* return { id: '123' };
|
|
119
|
-
* }, { scopes: ['projects.write'] });
|
|
120
|
-
* ```
|
|
121
|
-
*/
|
|
122
167
|
export function handler(fn, config = {}) {
|
|
123
168
|
const { scopes = [], status, middleware = [], logLevel = 'info', } = config;
|
|
124
169
|
const requiresAuth = scopes.length > 0;
|
|
125
170
|
const logger = createLogger({ minLevel: logLevel });
|
|
126
|
-
//
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
171
|
+
// Compose the middleware stack lazily on the first invocation so the
|
|
172
|
+
// default auth middleware (resolved via dynamic import of
|
|
173
|
+
// `@venturekit/auth/server`) is available before the first scoped
|
|
174
|
+
// request runs. Subsequent requests reuse the cached composed fn.
|
|
175
|
+
// For public routes (no scopes) the resolver returns `null`
|
|
176
|
+
// immediately, so there's no dynamic-import overhead.
|
|
177
|
+
let composedPromise = null;
|
|
178
|
+
const getComposed = () => {
|
|
179
|
+
if (composedPromise)
|
|
180
|
+
return composedPromise;
|
|
181
|
+
composedPromise = (async () => {
|
|
182
|
+
const authMw = requiresAuth ? await resolveDefaultAuthMiddleware() : null;
|
|
183
|
+
const stack = [
|
|
184
|
+
errorBoundaryMiddleware((error, ctx) => errorResponse(error, { requestId: ctx.requestId })),
|
|
185
|
+
loggingMiddleware(logger),
|
|
186
|
+
...(authMw ? [authMw] : []),
|
|
187
|
+
...middleware,
|
|
188
|
+
];
|
|
189
|
+
return compose(stack);
|
|
190
|
+
})();
|
|
191
|
+
return composedPromise;
|
|
192
|
+
};
|
|
136
193
|
return async (event, _context) => {
|
|
137
194
|
// Build request context
|
|
138
195
|
const ctx = buildContext(event, { supportedLocales: ['en'], defaultLocale: 'en' });
|
|
139
196
|
logger.setContext(ctx);
|
|
197
|
+
const composedMiddleware = await getComposed();
|
|
140
198
|
// Run through middleware and handler
|
|
141
199
|
return composedMiddleware(ctx, async () => {
|
|
142
200
|
// Auth check (only if scopes provided)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/handler/handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAA+B,YAAY,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAU,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/handler/handler.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* This ensures `import { handler } from '@venturekit/runtime'` never triggers
|
|
17
17
|
* loading of AWS SDK or other heavy optional dependencies.
|
|
18
18
|
*/
|
|
19
|
-
export { handler } from './handler/handler.js';
|
|
19
|
+
export { handler, setDefaultAuthMiddleware, _resetDefaultAuthMiddlewareForTesting, } from './handler/handler.js';
|
|
20
20
|
export type { HandlerFn, HandlerConfig, StatusCode, ZodLikeSchema } from './handler/handler.js';
|
|
21
21
|
export { taskHandler, TaskValidationError } from './handler/task-handler.js';
|
|
22
22
|
export { queueBatchHandler } from './handler/queue-batch.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EACL,OAAO,EACP,wBAAwB,EACxB,qCAAqC,GACtC,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGhG,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,YAAY,EACV,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,aAAa,EACb,WAAW,EACX,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGjH,OAAO,EACL,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,MAAM,EACN,YAAY,EACZ,MAAM,GACP,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAG5E,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EACV,aAAa,EACb,cAAc,EACd,UAAU,EACV,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG7G,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,eAAe,EACf,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EACL,eAAe,EACf,GAAG,GACJ,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,aAAa,EACb,SAAS,GACV,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
* loading of AWS SDK or other heavy optional dependencies.
|
|
18
18
|
*/
|
|
19
19
|
// Handler (HTTP routes)
|
|
20
|
-
export { handler } from './handler/handler.js';
|
|
20
|
+
export { handler, setDefaultAuthMiddleware, _resetDefaultAuthMiddlewareForTesting, } from './handler/handler.js';
|
|
21
21
|
// Task Handler (functions, queues, crons)
|
|
22
22
|
export { taskHandler, TaskValidationError } from './handler/task-handler.js';
|
|
23
23
|
export { queueBatchHandler } from './handler/queue-batch.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,wBAAwB;AACxB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,wBAAwB;AACxB,OAAO,EACL,OAAO,EACP,wBAAwB,EACxB,qCAAqC,GACtC,MAAM,sBAAsB,CAAC;AAG9B,0CAA0C;AAC1C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAc7D,UAAU;AACV,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAG9B,qBAAqB;AACrB,OAAO,EACL,OAAO,EACP,OAAO,EACP,SAAS,EACT,KAAK,EACL,aAAa,EACb,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAG/B,SAAS;AACT,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,SAAS;AACT,OAAO,EACL,MAAM,EACN,YAAY,EACZ,MAAM,GACP,MAAM,qBAAqB,CAAC;AAG7B,2BAA2B;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAQrD,oCAAoC;AACpC,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,2DAA2D;AAC3D,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAM1C,qDAAqD;AACrD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAE9B,UAAU;AACV,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,aAAa,GACd,MAAM,sBAAsB,CAAC;AAG9B,sCAAsC;AACtC,OAAO,EACL,eAAe,EACf,GAAG,GACJ,MAAM,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venturekit/runtime",
|
|
3
|
-
"version": "0.0.0-dev.
|
|
3
|
+
"version": "0.0.0-dev.20260429113801",
|
|
4
4
|
"description": "VentureKit runtime utilities - handlers, context, middleware, logging",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -55,11 +55,11 @@
|
|
|
55
55
|
],
|
|
56
56
|
"license": "Apache-2.0",
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@venturekit/core": "0.0.0-dev.
|
|
58
|
+
"@venturekit/core": "0.0.0-dev.20260429113801",
|
|
59
59
|
"pino": "^10.3.1"
|
|
60
60
|
},
|
|
61
61
|
"peerDependencies": {
|
|
62
|
-
"@venturekit/data": "0.0.0-dev.
|
|
62
|
+
"@venturekit/data": "0.0.0-dev.20260429113801",
|
|
63
63
|
"@aws-sdk/client-dynamodb": "^3.500.0",
|
|
64
64
|
"@aws-sdk/lib-dynamodb": "^3.500.0",
|
|
65
65
|
"@aws-sdk/client-lambda": "^3.500.0",
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
}
|
|
92
92
|
},
|
|
93
93
|
"devDependencies": {
|
|
94
|
-
"@venturekit/data": "0.0.0-dev.
|
|
94
|
+
"@venturekit/data": "0.0.0-dev.20260429113801",
|
|
95
95
|
"@types/aws-lambda": "^8.10.131",
|
|
96
96
|
"@types/node": "^25.6.0",
|
|
97
97
|
"@aws-sdk/client-lambda": "^3.500.0",
|