@venturekit/runtime 0.0.0-dev.20260312012510 → 0.0.0-dev.20260329102450
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 +1 -1
- package/dist/config/env.d.ts +62 -0
- package/dist/config/env.d.ts.map +1 -0
- package/dist/config/env.js +98 -0
- package/dist/config/env.js.map +1 -0
- package/dist/config/secrets.d.ts +67 -0
- package/dist/config/secrets.d.ts.map +1 -0
- package/dist/config/secrets.js +132 -0
- package/dist/config/secrets.js.map +1 -0
- package/dist/handler/adapter.d.ts.map +1 -0
- package/dist/{adapter.js → handler/adapter.js} +5 -44
- package/dist/handler/adapter.js.map +1 -0
- package/dist/{context.d.ts → handler/context.d.ts} +44 -3
- package/dist/handler/context.d.ts.map +1 -0
- package/dist/{context.js → handler/context.js} +9 -9
- package/dist/handler/context.js.map +1 -0
- package/dist/handler/errors.d.ts.map +1 -0
- package/dist/{errors.js → handler/errors.js} +11 -25
- package/dist/handler/errors.js.map +1 -0
- package/dist/{handler.d.ts → handler/handler.d.ts} +36 -3
- package/dist/handler/handler.d.ts.map +1 -0
- package/dist/{handler.js → handler/handler.js} +59 -23
- package/dist/handler/handler.js.map +1 -0
- package/dist/handler/response.d.ts.map +1 -0
- package/dist/{response.js → handler/response.js} +9 -17
- package/dist/handler/response.js.map +1 -0
- package/dist/handler/task-handler.d.ts +192 -0
- package/dist/handler/task-handler.d.ts.map +1 -0
- package/dist/handler/task-handler.js +262 -0
- package/dist/handler/task-handler.js.map +1 -0
- package/dist/index.d.ts +33 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -48
- package/dist/index.js.map +1 -1
- package/dist/{logger.d.ts → logging/logger.d.ts} +1 -1
- package/dist/logging/logger.d.ts.map +1 -0
- package/dist/{logger.js → logging/logger.js} +8 -16
- package/dist/logging/logger.js.map +1 -0
- package/dist/logging/tracing.d.ts +51 -0
- package/dist/logging/tracing.d.ts.map +1 -0
- package/dist/logging/tracing.js +77 -0
- package/dist/logging/tracing.js.map +1 -0
- package/dist/middleware/middleware.d.ts +120 -0
- package/dist/middleware/middleware.d.ts.map +1 -0
- package/dist/middleware/middleware.js +270 -0
- package/dist/middleware/middleware.js.map +1 -0
- package/dist/middleware/rate-limit-store.d.ts +153 -0
- package/dist/middleware/rate-limit-store.d.ts.map +1 -0
- package/dist/middleware/rate-limit-store.js +182 -0
- package/dist/middleware/rate-limit-store.js.map +1 -0
- package/dist/openapi/openapi.d.ts +147 -0
- package/dist/openapi/openapi.d.ts.map +1 -0
- package/dist/openapi/openapi.js +235 -0
- package/dist/openapi/openapi.js.map +1 -0
- package/dist/openapi.d.ts +10 -0
- package/dist/openapi.d.ts.map +1 -0
- package/dist/openapi.js +9 -0
- package/dist/openapi.js.map +1 -0
- package/dist/patterns/circuit-breaker.d.ts +78 -0
- package/dist/patterns/circuit-breaker.d.ts.map +1 -0
- package/dist/patterns/circuit-breaker.js +113 -0
- package/dist/patterns/circuit-breaker.js.map +1 -0
- package/dist/patterns/idempotency.d.ts +175 -0
- package/dist/patterns/idempotency.d.ts.map +1 -0
- package/dist/patterns/idempotency.js +305 -0
- package/dist/patterns/idempotency.js.map +1 -0
- package/dist/patterns/invoke.d.ts +279 -0
- package/dist/patterns/invoke.d.ts.map +1 -0
- package/dist/patterns/invoke.js +581 -0
- package/dist/patterns/invoke.js.map +1 -0
- package/dist/patterns/saga.d.ts +391 -0
- package/dist/patterns/saga.d.ts.map +1 -0
- package/dist/patterns/saga.js +556 -0
- package/dist/patterns/saga.js.map +1 -0
- package/dist/patterns.d.ts +17 -0
- package/dist/patterns.d.ts.map +1 -0
- package/dist/patterns.js +17 -0
- package/dist/patterns.js.map +1 -0
- package/dist/rate-limit.d.ts +16 -0
- package/dist/rate-limit.d.ts.map +1 -0
- package/dist/rate-limit.js +15 -0
- package/dist/rate-limit.js.map +1 -0
- package/dist/secrets.d.ts +11 -0
- package/dist/secrets.d.ts.map +1 -0
- package/dist/secrets.js +10 -0
- package/dist/secrets.js.map +1 -0
- package/dist/testing/test-utils.d.ts +99 -0
- package/dist/testing/test-utils.d.ts.map +1 -0
- package/dist/testing/test-utils.js +153 -0
- package/dist/testing/test-utils.js.map +1 -0
- package/dist/testing.d.ts +10 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +9 -0
- package/dist/testing.js.map +1 -0
- package/dist/ws/ws.d.ts +139 -0
- package/dist/ws/ws.d.ts.map +1 -0
- package/dist/ws/ws.js +294 -0
- package/dist/ws/ws.js.map +1 -0
- package/dist/ws.d.ts +5 -133
- package/dist/ws.d.ts.map +1 -1
- package/dist/ws.js +4 -291
- package/dist/ws.js.map +1 -1
- package/package.json +47 -5
- package/dist/adapter.d.ts.map +0 -1
- package/dist/adapter.js.map +0 -1
- package/dist/context.d.ts.map +0 -1
- package/dist/context.js.map +0 -1
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js.map +0 -1
- package/dist/handler.d.ts.map +0 -1
- package/dist/handler.js.map +0 -1
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js.map +0 -1
- package/dist/middleware.d.ts +0 -47
- package/dist/middleware.d.ts.map +0 -1
- package/dist/middleware.js +0 -147
- package/dist/middleware.js.map +0 -1
- package/dist/response.d.ts.map +0 -1
- package/dist/response.js.map +0 -1
- /package/dist/{adapter.d.ts → handler/adapter.d.ts} +0 -0
- /package/dist/{errors.d.ts → handler/errors.d.ts} +0 -0
- /package/dist/{response.d.ts → handler/response.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idempotency.js","sourceRoot":"","sources":["../../src/patterns/idempotency.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* VentureKit Lambda-to-Lambda Invocation
|
|
3
|
+
*
|
|
4
|
+
* Type-safe invocation of other VentureKit Lambda functions.
|
|
5
|
+
* Supports sync (RequestResponse) and async (Event) invocation.
|
|
6
|
+
* Automatically propagates trace context, tenant, and user info.
|
|
7
|
+
*
|
|
8
|
+
* ## Quick Start
|
|
9
|
+
*
|
|
10
|
+
* ```typescript
|
|
11
|
+
* import { invoke, invokeDirect } from '@venturekit/runtime';
|
|
12
|
+
*
|
|
13
|
+
* // Invoke another VentureKit route handler (builds API Gateway event)
|
|
14
|
+
* const result = await invoke('users/{id}', {
|
|
15
|
+
* method: 'GET',
|
|
16
|
+
* pathParams: { id: '42' },
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* // Invoke any Lambda function directly with a custom payload
|
|
20
|
+
* const result = await invokeDirect('my-worker-function', {
|
|
21
|
+
* task: 'processImage',
|
|
22
|
+
* imageUrl: 'https://...',
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
import type { TraceContext } from '../logging/tracing.js';
|
|
27
|
+
import type { CircuitBreakerOptions } from './circuit-breaker.js';
|
|
28
|
+
/**
|
|
29
|
+
* Invocation mode
|
|
30
|
+
*/
|
|
31
|
+
export type InvokeMode = 'sync' | 'async';
|
|
32
|
+
/**
|
|
33
|
+
* Invoke options
|
|
34
|
+
*/
|
|
35
|
+
export interface InvokeOptions {
|
|
36
|
+
/** HTTP method (default: POST) */
|
|
37
|
+
method?: string;
|
|
38
|
+
/** Request body */
|
|
39
|
+
body?: unknown;
|
|
40
|
+
/** Path parameters */
|
|
41
|
+
pathParams?: Record<string, string>;
|
|
42
|
+
/** Query parameters */
|
|
43
|
+
queryParams?: Record<string, string>;
|
|
44
|
+
/** Additional headers */
|
|
45
|
+
headers?: Record<string, string>;
|
|
46
|
+
/** Invocation mode: 'sync' (default) or 'async' (fire-and-forget) */
|
|
47
|
+
mode?: InvokeMode;
|
|
48
|
+
/** Trace context to propagate */
|
|
49
|
+
trace?: TraceContext;
|
|
50
|
+
/** Tenant ID to propagate */
|
|
51
|
+
tenantId?: string;
|
|
52
|
+
/** User ID to propagate */
|
|
53
|
+
userId?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Fallback result returned when the circuit breaker is open or the
|
|
56
|
+
* failure threshold is reached. When provided, the built-in circuit
|
|
57
|
+
* breaker is automatically enabled for this call.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* const users = await invoke<User[]>('users/list', {
|
|
62
|
+
* method: 'GET',
|
|
63
|
+
* fallback: { statusCode: 503, data: [], headers: {} },
|
|
64
|
+
* });
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
fallback?: InvokeResult<any>;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Invoke result
|
|
71
|
+
*/
|
|
72
|
+
export interface InvokeResult<T = unknown> {
|
|
73
|
+
statusCode: number;
|
|
74
|
+
data: T;
|
|
75
|
+
headers: Record<string, string>;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Lambda invoker function type.
|
|
79
|
+
* This is the low-level function that actually calls AWS Lambda.
|
|
80
|
+
* Users provide this so the runtime doesn't hard-depend on AWS SDK.
|
|
81
|
+
*/
|
|
82
|
+
export interface LambdaInvoker {
|
|
83
|
+
(params: {
|
|
84
|
+
functionName: string;
|
|
85
|
+
payload: string;
|
|
86
|
+
invocationType: 'RequestResponse' | 'Event';
|
|
87
|
+
}): Promise<{
|
|
88
|
+
statusCode?: number;
|
|
89
|
+
payload?: string;
|
|
90
|
+
}>;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Route-to-function-name resolver.
|
|
94
|
+
* Converts a VentureKit route path to an AWS Lambda function name.
|
|
95
|
+
*/
|
|
96
|
+
export type FunctionNameResolver = (route: string) => string;
|
|
97
|
+
/**
|
|
98
|
+
* Default function name resolver.
|
|
99
|
+
* Converts 'users/get' → '{prefix}-users-get'
|
|
100
|
+
*/
|
|
101
|
+
export declare function defaultFunctionNameResolver(prefix: string): FunctionNameResolver;
|
|
102
|
+
/**
|
|
103
|
+
* Create a VentureKit service invoker
|
|
104
|
+
*/
|
|
105
|
+
export declare function createInvoker(options: {
|
|
106
|
+
/** Low-level Lambda invoker function */
|
|
107
|
+
invoker: LambdaInvoker;
|
|
108
|
+
/** Function name resolver (route → Lambda function name) */
|
|
109
|
+
resolver: FunctionNameResolver;
|
|
110
|
+
}): <T = unknown>(route: string, invokeOptions?: InvokeOptions) => Promise<InvokeResult<T>>;
|
|
111
|
+
/**
|
|
112
|
+
* Configure the shared circuit breaker used by `invoke()`.
|
|
113
|
+
* Call this at startup if you need custom thresholds.
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```typescript
|
|
117
|
+
* configureCircuitBreaker({ failureThreshold: 3, resetTimeoutMs: 60_000 });
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
export declare function configureCircuitBreaker(options: CircuitBreakerOptions): void;
|
|
121
|
+
/**
|
|
122
|
+
* Create a LambdaInvoker backed by the AWS SDK v3.
|
|
123
|
+
* Lazily loads `@aws-sdk/client-lambda` to avoid hard dependency.
|
|
124
|
+
*/
|
|
125
|
+
export declare function createLambdaInvoker(options?: {
|
|
126
|
+
/** AWS region (default: process.env.AWS_REGION || 'us-east-1') */
|
|
127
|
+
region?: string;
|
|
128
|
+
}): Promise<LambdaInvoker>;
|
|
129
|
+
/**
|
|
130
|
+
* Create a LambdaInvoker that routes calls to the local dev server via HTTP.
|
|
131
|
+
* Used automatically when VENTURE_LOCAL=true.
|
|
132
|
+
*
|
|
133
|
+
* Route invocations are forwarded as real HTTP requests to localhost.
|
|
134
|
+
* Function invocations are forwarded to /_dev/invoke/{name}.
|
|
135
|
+
*
|
|
136
|
+
* ### Cross-project calls
|
|
137
|
+
*
|
|
138
|
+
* By default all calls go to the current project's dev server. To call
|
|
139
|
+
* functions in another local project, set `VENTURE_LOCAL_URLS`:
|
|
140
|
+
*
|
|
141
|
+
* ```bash
|
|
142
|
+
* VENTURE_LOCAL_URLS="app=http://localhost:3000,billing=http://localhost:3001"
|
|
143
|
+
* ```
|
|
144
|
+
*
|
|
145
|
+
* The invoker matches the function name prefix against the registry
|
|
146
|
+
* and routes accordingly.
|
|
147
|
+
*/
|
|
148
|
+
export declare function createLocalInvoker(): LambdaInvoker;
|
|
149
|
+
/**
|
|
150
|
+
* Target for direct function invocation.
|
|
151
|
+
*
|
|
152
|
+
* Use this object form when calling standalone Lambda functions
|
|
153
|
+
* (not API Gateway routes) like saga workers, processors, etc.
|
|
154
|
+
*/
|
|
155
|
+
export interface FunctionInvokeTarget {
|
|
156
|
+
/**
|
|
157
|
+
* Function name as defined in your project.
|
|
158
|
+
* This is the short name (e.g. 'process-orders'), NOT the full AWS name.
|
|
159
|
+
* VentureKit resolves it to `{project}-{stage}-fn-{name}` automatically.
|
|
160
|
+
*
|
|
161
|
+
* For functions in subdirectories under src/functions/:
|
|
162
|
+
* - `src/functions/process-orders.ts` → `'process-orders'`
|
|
163
|
+
* - `src/functions/order/create-order.ts` → `'order-create-order'`
|
|
164
|
+
*/
|
|
165
|
+
function: string;
|
|
166
|
+
/**
|
|
167
|
+
* Target project name. Omit to invoke a function in the current project.
|
|
168
|
+
* Set this when calling a function in a different microservice / project.
|
|
169
|
+
*
|
|
170
|
+
* The resolved name becomes `{project}-{stage}-fn-{name}`.
|
|
171
|
+
*
|
|
172
|
+
* In local dev, the request is routed to the project's dev server
|
|
173
|
+
* as configured in `VENTURE_LOCAL_URLS`.
|
|
174
|
+
*
|
|
175
|
+
* @example
|
|
176
|
+
* ```typescript
|
|
177
|
+
* // Call 'send-invoice' in the 'billing' project
|
|
178
|
+
* await invoke({ function: 'send-invoice', project: 'billing' }, {
|
|
179
|
+
* payload: { orderId: '123' },
|
|
180
|
+
* });
|
|
181
|
+
* ```
|
|
182
|
+
*/
|
|
183
|
+
project?: string;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Options for direct function invocation (via object form).
|
|
187
|
+
*/
|
|
188
|
+
export interface FunctionInvokeOptions {
|
|
189
|
+
/** Payload to send to the function */
|
|
190
|
+
payload?: unknown;
|
|
191
|
+
/** Invocation mode: 'sync' (default) or 'async' (fire-and-forget) */
|
|
192
|
+
mode?: InvokeMode;
|
|
193
|
+
/**
|
|
194
|
+
* Fallback result returned when the circuit breaker is open.
|
|
195
|
+
* See `InvokeOptions.fallback` for details.
|
|
196
|
+
*/
|
|
197
|
+
fallback?: InvokeResult<any>;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Resolve a standalone function name to its full AWS Lambda name.
|
|
201
|
+
* Convention: `{project}-{stage}-fn-{name}`
|
|
202
|
+
*
|
|
203
|
+
* @param name - Short function name (e.g. 'process-orders')
|
|
204
|
+
* @param project - Target project name. Defaults to the current project.
|
|
205
|
+
*/
|
|
206
|
+
export declare function resolveFunctionName(name: string, project?: string): string;
|
|
207
|
+
/**
|
|
208
|
+
* Invoke another VentureKit Lambda function.
|
|
209
|
+
*
|
|
210
|
+
* **Unified API** — supports both route handlers and standalone functions:
|
|
211
|
+
*
|
|
212
|
+
* ### Route invocation (string first param)
|
|
213
|
+
* Calls another VentureKit route handler. Builds an API Gateway V2 event,
|
|
214
|
+
* calls Lambda directly (skips API Gateway), and parses the response.
|
|
215
|
+
*
|
|
216
|
+
* ### Function invocation (object first param)
|
|
217
|
+
* Calls a standalone function (saga worker, processor, etc.) with a raw payload.
|
|
218
|
+
* Auto-resolves the full Lambda name from your short function name.
|
|
219
|
+
*
|
|
220
|
+
* @example Route invocation
|
|
221
|
+
* ```typescript
|
|
222
|
+
* import { invoke } from '@venturekit/runtime';
|
|
223
|
+
*
|
|
224
|
+
* // Call a route handler
|
|
225
|
+
* const users = await invoke<User[]>('users/list', { method: 'GET' });
|
|
226
|
+
*
|
|
227
|
+
* // POST with body
|
|
228
|
+
* const created = await invoke<User>('users/create', {
|
|
229
|
+
* body: { name: 'Alice' },
|
|
230
|
+
* });
|
|
231
|
+
*
|
|
232
|
+
* // Fire-and-forget
|
|
233
|
+
* await invoke('notifications/send', { mode: 'async', body: { userId: '42' } });
|
|
234
|
+
* ```
|
|
235
|
+
*
|
|
236
|
+
* @example Function invocation
|
|
237
|
+
* ```typescript
|
|
238
|
+
* import { invoke } from '@venturekit/runtime';
|
|
239
|
+
*
|
|
240
|
+
* // Call a standalone function (src/functions/process-orders.ts)
|
|
241
|
+
* const result = await invoke<{ jobId: string }>(
|
|
242
|
+
* { function: 'process-orders' },
|
|
243
|
+
* { payload: { orderId: 'abc', items: [...] } },
|
|
244
|
+
* );
|
|
245
|
+
*
|
|
246
|
+
* // Fire-and-forget
|
|
247
|
+
* await invoke(
|
|
248
|
+
* { function: 'send-email' },
|
|
249
|
+
* { payload: { to: 'user@example.com' }, mode: 'async' },
|
|
250
|
+
* );
|
|
251
|
+
* ```
|
|
252
|
+
*/
|
|
253
|
+
export declare function invoke<T = unknown>(target: string | FunctionInvokeTarget, options?: InvokeOptions | FunctionInvokeOptions): Promise<InvokeResult<T>>;
|
|
254
|
+
/**
|
|
255
|
+
* Options for direct Lambda invocation (non-API-gateway functions).
|
|
256
|
+
* @deprecated Use `invoke({ function: 'name' }, { payload, mode })` instead.
|
|
257
|
+
*/
|
|
258
|
+
export interface DirectInvokeOptions {
|
|
259
|
+
/** Invocation mode: 'sync' (default) or 'async' (fire-and-forget) */
|
|
260
|
+
mode?: InvokeMode;
|
|
261
|
+
/** AWS region override */
|
|
262
|
+
region?: string;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Invoke result for direct invocations.
|
|
266
|
+
* @deprecated Use `invoke({ function: 'name' })` instead — returns InvokeResult.
|
|
267
|
+
*/
|
|
268
|
+
export interface DirectInvokeResult<T = unknown> {
|
|
269
|
+
statusCode: number;
|
|
270
|
+
data: T;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Invoke any Lambda function directly with a custom payload.
|
|
274
|
+
*
|
|
275
|
+
* @deprecated Use the unified `invoke({ function: 'name' }, { payload })` API instead.
|
|
276
|
+
* This function requires the full AWS Lambda name; the new API auto-resolves it.
|
|
277
|
+
*/
|
|
278
|
+
export declare function invokeDirect<T = unknown>(functionName: string, payload?: unknown, options?: DirectInvokeOptions): Promise<DirectInvokeResult<T>>;
|
|
279
|
+
//# sourceMappingURL=invoke.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../src/patterns/invoke.ts"],"names":[],"mappings":"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"}
|