@venturekit/runtime 0.0.0-dev.20260312005731 → 0.0.0-dev.20260329093916

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.
Files changed (122) hide show
  1. package/README.md +1 -1
  2. package/dist/config/env.d.ts +62 -0
  3. package/dist/config/env.d.ts.map +1 -0
  4. package/dist/config/env.js +98 -0
  5. package/dist/config/env.js.map +1 -0
  6. package/dist/config/secrets.d.ts +67 -0
  7. package/dist/config/secrets.d.ts.map +1 -0
  8. package/dist/config/secrets.js +132 -0
  9. package/dist/config/secrets.js.map +1 -0
  10. package/dist/handler/adapter.d.ts.map +1 -0
  11. package/dist/{adapter.js → handler/adapter.js} +5 -44
  12. package/dist/handler/adapter.js.map +1 -0
  13. package/dist/{context.d.ts → handler/context.d.ts} +44 -3
  14. package/dist/handler/context.d.ts.map +1 -0
  15. package/dist/{context.js → handler/context.js} +9 -9
  16. package/dist/handler/context.js.map +1 -0
  17. package/dist/handler/errors.d.ts.map +1 -0
  18. package/dist/{errors.js → handler/errors.js} +11 -25
  19. package/dist/handler/errors.js.map +1 -0
  20. package/dist/{handler.d.ts → handler/handler.d.ts} +36 -3
  21. package/dist/handler/handler.d.ts.map +1 -0
  22. package/dist/{handler.js → handler/handler.js} +59 -23
  23. package/dist/handler/handler.js.map +1 -0
  24. package/dist/handler/response.d.ts.map +1 -0
  25. package/dist/{response.js → handler/response.js} +9 -17
  26. package/dist/handler/response.js.map +1 -0
  27. package/dist/handler/task-handler.d.ts +192 -0
  28. package/dist/handler/task-handler.d.ts.map +1 -0
  29. package/dist/handler/task-handler.js +262 -0
  30. package/dist/handler/task-handler.js.map +1 -0
  31. package/dist/index.d.ts +33 -14
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +30 -48
  34. package/dist/index.js.map +1 -1
  35. package/dist/{logger.d.ts → logging/logger.d.ts} +1 -1
  36. package/dist/logging/logger.d.ts.map +1 -0
  37. package/dist/{logger.js → logging/logger.js} +8 -16
  38. package/dist/logging/logger.js.map +1 -0
  39. package/dist/logging/tracing.d.ts +51 -0
  40. package/dist/logging/tracing.d.ts.map +1 -0
  41. package/dist/logging/tracing.js +77 -0
  42. package/dist/logging/tracing.js.map +1 -0
  43. package/dist/middleware/middleware.d.ts +120 -0
  44. package/dist/middleware/middleware.d.ts.map +1 -0
  45. package/dist/middleware/middleware.js +270 -0
  46. package/dist/middleware/middleware.js.map +1 -0
  47. package/dist/middleware/rate-limit-store.d.ts +153 -0
  48. package/dist/middleware/rate-limit-store.d.ts.map +1 -0
  49. package/dist/middleware/rate-limit-store.js +182 -0
  50. package/dist/middleware/rate-limit-store.js.map +1 -0
  51. package/dist/openapi/openapi.d.ts +147 -0
  52. package/dist/openapi/openapi.d.ts.map +1 -0
  53. package/dist/openapi/openapi.js +235 -0
  54. package/dist/openapi/openapi.js.map +1 -0
  55. package/dist/openapi.d.ts +10 -0
  56. package/dist/openapi.d.ts.map +1 -0
  57. package/dist/openapi.js +9 -0
  58. package/dist/openapi.js.map +1 -0
  59. package/dist/patterns/circuit-breaker.d.ts +78 -0
  60. package/dist/patterns/circuit-breaker.d.ts.map +1 -0
  61. package/dist/patterns/circuit-breaker.js +113 -0
  62. package/dist/patterns/circuit-breaker.js.map +1 -0
  63. package/dist/patterns/idempotency.d.ts +175 -0
  64. package/dist/patterns/idempotency.d.ts.map +1 -0
  65. package/dist/patterns/idempotency.js +305 -0
  66. package/dist/patterns/idempotency.js.map +1 -0
  67. package/dist/patterns/invoke.d.ts +279 -0
  68. package/dist/patterns/invoke.d.ts.map +1 -0
  69. package/dist/patterns/invoke.js +581 -0
  70. package/dist/patterns/invoke.js.map +1 -0
  71. package/dist/patterns/saga.d.ts +391 -0
  72. package/dist/patterns/saga.d.ts.map +1 -0
  73. package/dist/patterns/saga.js +556 -0
  74. package/dist/patterns/saga.js.map +1 -0
  75. package/dist/patterns.d.ts +17 -0
  76. package/dist/patterns.d.ts.map +1 -0
  77. package/dist/patterns.js +17 -0
  78. package/dist/patterns.js.map +1 -0
  79. package/dist/rate-limit.d.ts +16 -0
  80. package/dist/rate-limit.d.ts.map +1 -0
  81. package/dist/rate-limit.js +15 -0
  82. package/dist/rate-limit.js.map +1 -0
  83. package/dist/secrets.d.ts +11 -0
  84. package/dist/secrets.d.ts.map +1 -0
  85. package/dist/secrets.js +10 -0
  86. package/dist/secrets.js.map +1 -0
  87. package/dist/testing/test-utils.d.ts +99 -0
  88. package/dist/testing/test-utils.d.ts.map +1 -0
  89. package/dist/testing/test-utils.js +153 -0
  90. package/dist/testing/test-utils.js.map +1 -0
  91. package/dist/testing.d.ts +10 -0
  92. package/dist/testing.d.ts.map +1 -0
  93. package/dist/testing.js +9 -0
  94. package/dist/testing.js.map +1 -0
  95. package/dist/ws/ws.d.ts +139 -0
  96. package/dist/ws/ws.d.ts.map +1 -0
  97. package/dist/ws/ws.js +294 -0
  98. package/dist/ws/ws.js.map +1 -0
  99. package/dist/ws.d.ts +5 -133
  100. package/dist/ws.d.ts.map +1 -1
  101. package/dist/ws.js +4 -291
  102. package/dist/ws.js.map +1 -1
  103. package/package.json +47 -5
  104. package/dist/adapter.d.ts.map +0 -1
  105. package/dist/adapter.js.map +0 -1
  106. package/dist/context.d.ts.map +0 -1
  107. package/dist/context.js.map +0 -1
  108. package/dist/errors.d.ts.map +0 -1
  109. package/dist/errors.js.map +0 -1
  110. package/dist/handler.d.ts.map +0 -1
  111. package/dist/handler.js.map +0 -1
  112. package/dist/logger.d.ts.map +0 -1
  113. package/dist/logger.js.map +0 -1
  114. package/dist/middleware.d.ts +0 -47
  115. package/dist/middleware.d.ts.map +0 -1
  116. package/dist/middleware.js +0 -147
  117. package/dist/middleware.js.map +0 -1
  118. package/dist/response.d.ts.map +0 -1
  119. package/dist/response.js.map +0 -1
  120. /package/dist/{adapter.d.ts → handler/adapter.d.ts} +0 -0
  121. /package/dist/{errors.d.ts → handler/errors.d.ts} +0 -0
  122. /package/dist/{response.d.ts → handler/response.d.ts} +0 -0
package/README.md CHANGED
@@ -74,7 +74,7 @@ interface RequestContext {
74
74
  sourceIp: string;
75
75
  userAgent: string;
76
76
  user: UserContext | null; // Populated for authenticated requests
77
- tenant: TenantContext | null; // Populated when @venturekit/tenancy is enabled
77
+ tenant: TenantContext | null; // Populated when @venturekit-pro/tenancy is enabled
78
78
  locale: string;
79
79
  queryParams?: Record<string, string | undefined>;
80
80
  tx?: unknown; // Database transaction (transactional handlers)
@@ -0,0 +1,62 @@
1
+ /**
2
+ * VentureKit Environment Variables
3
+ *
4
+ * Runtime utility for type-safe access to environment variables.
5
+ * Provides get/require with defaults, coercion, and validation.
6
+ */
7
+ /**
8
+ * Options for getting an environment variable
9
+ */
10
+ export interface EnvGetOptions<T = string> {
11
+ /** Default value if not set */
12
+ default?: T;
13
+ /** Coerce to type */
14
+ as?: 'string' | 'number' | 'boolean' | 'json';
15
+ }
16
+ /**
17
+ * Environment variable client
18
+ */
19
+ export interface EnvClient {
20
+ /** Get an env var. Returns undefined if not set (unless default provided). */
21
+ get(name: string): string | undefined;
22
+ get(name: string, defaultValue: string): string;
23
+ /** Get an env var as a number */
24
+ getNumber(name: string, defaultValue?: number): number | undefined;
25
+ /** Get an env var as a boolean (truthy: "true", "1", "yes") */
26
+ getBool(name: string, defaultValue?: boolean): boolean;
27
+ /** Get and parse as JSON */
28
+ getJson<T = unknown>(name: string): T | undefined;
29
+ /** Get env var, throw if missing */
30
+ require(name: string): string;
31
+ /** Get env var as number, throw if missing */
32
+ requireNumber(name: string): number;
33
+ /** Get and parse as JSON, throw if missing */
34
+ requireJson<T = unknown>(name: string): T;
35
+ /** Check if an env var is set */
36
+ has(name: string): boolean;
37
+ /** Get the current stage (from VENTURE_STAGE) */
38
+ stage(): string;
39
+ /** Check if running in production */
40
+ isProd(): boolean;
41
+ /** Check if running in development */
42
+ isDev(): boolean;
43
+ }
44
+ /**
45
+ * Create an environment variable client.
46
+ *
47
+ * @param source — env source (defaults to process.env). Override for testing.
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const env = createEnvClient();
52
+ * const port = env.getNumber('PORT', 3000);
53
+ * const dbUrl = env.require('DATABASE_URL');
54
+ * const debug = env.getBool('DEBUG', false);
55
+ * ```
56
+ */
57
+ export declare function createEnvClient(source?: Record<string, string | undefined>): EnvClient;
58
+ /**
59
+ * Default env client instance (uses process.env)
60
+ */
61
+ export declare const env: EnvClient;
62
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,MAAM;IACvC,+BAA+B;IAC/B,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,qBAAqB;IACrB,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,8EAA8E;IAC9E,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACtC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAChD,iCAAiC;IACjC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACnE,+DAA+D;IAC/D,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACvD,4BAA4B;IAC5B,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IAClD,oCAAoC;IACpC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,8CAA8C;IAC9C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,8CAA8C;IAC9C,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC;IAC1C,iCAAiC;IACjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,iDAAiD;IACjD,KAAK,IAAI,MAAM,CAAC;IAChB,qCAAqC;IACrC,MAAM,IAAI,OAAO,CAAC;IAClB,sCAAsC;IACtC,KAAK,IAAI,OAAO,CAAC;CAClB;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAgFtF;AAED;;GAEG;AACH,eAAO,MAAM,GAAG,WAAoB,CAAC"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * VentureKit Environment Variables
3
+ *
4
+ * Runtime utility for type-safe access to environment variables.
5
+ * Provides get/require with defaults, coercion, and validation.
6
+ */
7
+ const TRUTHY = new Set(['true', '1', 'yes', 'on']);
8
+ /**
9
+ * Create an environment variable client.
10
+ *
11
+ * @param source — env source (defaults to process.env). Override for testing.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * const env = createEnvClient();
16
+ * const port = env.getNumber('PORT', 3000);
17
+ * const dbUrl = env.require('DATABASE_URL');
18
+ * const debug = env.getBool('DEBUG', false);
19
+ * ```
20
+ */
21
+ export function createEnvClient(source) {
22
+ const src = source ?? process.env;
23
+ function get(name, defaultValue) {
24
+ return src[name] ?? defaultValue;
25
+ }
26
+ function getNumber(name, defaultValue) {
27
+ const raw = src[name];
28
+ if (raw === undefined || raw === '')
29
+ return defaultValue;
30
+ const num = Number(raw);
31
+ if (Number.isNaN(num))
32
+ return defaultValue;
33
+ return num;
34
+ }
35
+ function getBool(name, defaultValue = false) {
36
+ const raw = src[name];
37
+ if (raw === undefined || raw === '')
38
+ return defaultValue;
39
+ return TRUTHY.has(raw.toLowerCase());
40
+ }
41
+ function getJson(name) {
42
+ const raw = src[name];
43
+ if (raw === undefined || raw === '')
44
+ return undefined;
45
+ return JSON.parse(raw);
46
+ }
47
+ function require(name) {
48
+ const value = src[name];
49
+ if (value === undefined || value === '') {
50
+ throw new Error(`Required environment variable not set: ${name}`);
51
+ }
52
+ return value;
53
+ }
54
+ function requireNumber(name) {
55
+ const raw = require(name);
56
+ const num = Number(raw);
57
+ if (Number.isNaN(num)) {
58
+ throw new Error(`Environment variable ${name} is not a valid number: ${raw}`);
59
+ }
60
+ return num;
61
+ }
62
+ function requireJson(name) {
63
+ const raw = require(name);
64
+ return JSON.parse(raw);
65
+ }
66
+ function has(name) {
67
+ return src[name] !== undefined && src[name] !== '';
68
+ }
69
+ function stage() {
70
+ return src['VENTURE_STAGE'] || 'dev';
71
+ }
72
+ function isProd() {
73
+ const s = stage();
74
+ return s === 'prod' || s === 'production';
75
+ }
76
+ function isDev() {
77
+ const s = stage();
78
+ return s === 'dev' || s === 'development';
79
+ }
80
+ return {
81
+ get: get,
82
+ getNumber,
83
+ getBool,
84
+ getJson,
85
+ require,
86
+ requireNumber,
87
+ requireJson,
88
+ has,
89
+ stage,
90
+ isProd,
91
+ isDev,
92
+ };
93
+ }
94
+ /**
95
+ * Default env client instance (uses process.env)
96
+ */
97
+ export const env = createEnvClient();
98
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/config/env.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * VentureKit Secrets Manager
3
+ *
4
+ * Runtime utility for accessing secrets from AWS SSM Parameter Store
5
+ * and AWS Secrets Manager. Includes caching to avoid repeated API calls.
6
+ *
7
+ * AWS SDK clients are lazily imported so the module loads without
8
+ * optional peer dependencies installed.
9
+ */
10
+ /**
11
+ * Secret store type
12
+ */
13
+ export type SecretStore = 'ssm' | 'secretsmanager';
14
+ /**
15
+ * Secret provider interface — abstracts the underlying AWS SDK calls.
16
+ * Consumers can provide a custom implementation for testing.
17
+ */
18
+ export interface SecretProvider {
19
+ getSecret(name: string): Promise<string | undefined>;
20
+ }
21
+ /**
22
+ * Options for creating a secrets client
23
+ */
24
+ export interface SecretsClientOptions {
25
+ /** Default store to use when not specified per-secret */
26
+ defaultStore?: SecretStore;
27
+ /** Cache TTL in milliseconds (default: 300_000 = 5 minutes) */
28
+ cacheTtlMs?: number;
29
+ /** Custom provider (overrides AWS SDK calls — useful for testing) */
30
+ provider?: SecretProvider;
31
+ /** AWS region (default: process.env.AWS_REGION) */
32
+ region?: string;
33
+ }
34
+ /**
35
+ * Secrets client for fetching secrets at runtime
36
+ */
37
+ export interface SecretsClient {
38
+ /** Get a secret value by name. Returns undefined if not found. */
39
+ get(name: string): Promise<string | undefined>;
40
+ /** Get a secret value, throw if not found */
41
+ require(name: string): Promise<string>;
42
+ /** Get a secret value parsed as JSON */
43
+ getJson<T = unknown>(name: string): Promise<T | undefined>;
44
+ /** Get a secret value parsed as JSON, throw if not found */
45
+ requireJson<T = unknown>(name: string): Promise<T>;
46
+ /** Clear the cache (or a single entry) */
47
+ invalidate(name?: string): void;
48
+ }
49
+ /**
50
+ * Create an in-memory secret provider (for testing / local dev)
51
+ */
52
+ export declare function createMemorySecretProvider(initial?: Record<string, string>): SecretProvider & {
53
+ set(name: string, value: string): void;
54
+ delete(name: string): void;
55
+ };
56
+ /**
57
+ * Create a secrets client
58
+ *
59
+ * @example
60
+ * ```typescript
61
+ * const secrets = createSecretsClient({ defaultStore: 'ssm' });
62
+ * const dbUrl = await secrets.require('DATABASE_URL');
63
+ * const config = await secrets.requireJson<{ apiKey: string }>('APP_CONFIG');
64
+ * ```
65
+ */
66
+ export declare function createSecretsClient(options?: SecretsClientOptions): SecretsClient;
67
+ //# sourceMappingURL=secrets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/config/secrets.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,gBAAgB,CAAC;AAEnD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAUD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C,6CAA6C;IAC7C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,wCAAwC;IACxC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAC3D,4DAA4D;IAC5D,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACnD,0CAA0C;IAC1C,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AAoDD;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,cAAc,GAAG;IAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAazF;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa,CAyDrF"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * VentureKit Secrets Manager
3
+ *
4
+ * Runtime utility for accessing secrets from AWS SSM Parameter Store
5
+ * and AWS Secrets Manager. Includes caching to avoid repeated API calls.
6
+ *
7
+ * AWS SDK clients are lazily imported so the module loads without
8
+ * optional peer dependencies installed.
9
+ */
10
+ /**
11
+ * Create an SSM Parameter Store provider (lazy AWS SDK import)
12
+ */
13
+ function createSsmProvider(region) {
14
+ let client = null;
15
+ return {
16
+ async getSecret(name) {
17
+ if (!client) {
18
+ const ssm = await import('@aws-sdk/client-ssm');
19
+ client = new ssm.SSMClient({ region: region || process.env.AWS_REGION });
20
+ }
21
+ const { SSMClient: _, GetParameterCommand } = await import('@aws-sdk/client-ssm');
22
+ try {
23
+ const result = await client.send(new GetParameterCommand({ Name: name, WithDecryption: true }));
24
+ return result.Parameter?.Value;
25
+ }
26
+ catch (err) {
27
+ if (err.name === 'ParameterNotFound')
28
+ return undefined;
29
+ throw err;
30
+ }
31
+ },
32
+ };
33
+ }
34
+ /**
35
+ * Create a Secrets Manager provider (lazy AWS SDK import)
36
+ */
37
+ function createSecretsManagerProvider(region) {
38
+ let client = null;
39
+ return {
40
+ async getSecret(name) {
41
+ if (!client) {
42
+ const sm = await import('@aws-sdk/client-secrets-manager');
43
+ client = new sm.SecretsManagerClient({ region: region || process.env.AWS_REGION });
44
+ }
45
+ const { SecretsManagerClient: _, GetSecretValueCommand } = await import('@aws-sdk/client-secrets-manager');
46
+ try {
47
+ const result = await client.send(new GetSecretValueCommand({ SecretId: name }));
48
+ return result.SecretString;
49
+ }
50
+ catch (err) {
51
+ if (err.name === 'ResourceNotFoundException')
52
+ return undefined;
53
+ throw err;
54
+ }
55
+ },
56
+ };
57
+ }
58
+ /**
59
+ * Create an in-memory secret provider (for testing / local dev)
60
+ */
61
+ export function createMemorySecretProvider(initial) {
62
+ const store = new Map(Object.entries(initial || {}));
63
+ return {
64
+ async getSecret(name) {
65
+ return store.get(name);
66
+ },
67
+ set(name, value) {
68
+ store.set(name, value);
69
+ },
70
+ delete(name) {
71
+ store.delete(name);
72
+ },
73
+ };
74
+ }
75
+ /**
76
+ * Create a secrets client
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * const secrets = createSecretsClient({ defaultStore: 'ssm' });
81
+ * const dbUrl = await secrets.require('DATABASE_URL');
82
+ * const config = await secrets.requireJson<{ apiKey: string }>('APP_CONFIG');
83
+ * ```
84
+ */
85
+ export function createSecretsClient(options = {}) {
86
+ const { defaultStore = 'ssm', cacheTtlMs = 300_000, region, } = options;
87
+ const cache = new Map();
88
+ // Use custom provider or create default based on store type
89
+ const provider = options.provider
90
+ ?? (defaultStore === 'secretsmanager'
91
+ ? createSecretsManagerProvider(region)
92
+ : createSsmProvider(region));
93
+ async function get(name) {
94
+ // Check cache
95
+ const cached = cache.get(name);
96
+ if (cached && cached.expiresAt > Date.now()) {
97
+ return cached.value;
98
+ }
99
+ const value = await provider.getSecret(name);
100
+ if (value !== undefined) {
101
+ cache.set(name, { value, expiresAt: Date.now() + cacheTtlMs });
102
+ }
103
+ return value;
104
+ }
105
+ async function require(name) {
106
+ const value = await get(name);
107
+ if (value === undefined) {
108
+ throw new Error(`Secret not found: ${name}`);
109
+ }
110
+ return value;
111
+ }
112
+ async function getJson(name) {
113
+ const raw = await get(name);
114
+ if (raw === undefined)
115
+ return undefined;
116
+ return JSON.parse(raw);
117
+ }
118
+ async function requireJson(name) {
119
+ const raw = await require(name);
120
+ return JSON.parse(raw);
121
+ }
122
+ function invalidate(name) {
123
+ if (name) {
124
+ cache.delete(name);
125
+ }
126
+ else {
127
+ cache.clear();
128
+ }
129
+ }
130
+ return { get, require, getJson, requireJson, invalidate };
131
+ }
132
+ //# sourceMappingURL=secrets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/config/secrets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/handler/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAC5D,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAe3F;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,eAAe,EACpB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,OAAO,CAAC,sBAAsB,CAAC,CAoDjC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAgB5C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,uBAAuB,EAC/B,GAAG,EAAE,cAAc,GAClB,IAAI,CAoCN;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,CAAC,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,uBAAuB,CAAC,GAC/F,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAkBnG"}
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * VentureKit Runtime Adapter
4
3
  *
@@ -9,45 +8,7 @@
9
8
  * - Local dev (Node.js HTTP server via `vk dev`)
10
9
  * - Production (AWS Lambda via API Gateway)
11
10
  */
12
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- var desc = Object.getOwnPropertyDescriptor(m, k);
15
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
- desc = { enumerable: true, get: function() { return m[k]; } };
17
- }
18
- Object.defineProperty(o, k2, desc);
19
- }) : (function(o, m, k, k2) {
20
- if (k2 === undefined) k2 = k;
21
- o[k2] = m[k];
22
- }));
23
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
- Object.defineProperty(o, "default", { enumerable: true, value: v });
25
- }) : function(o, v) {
26
- o["default"] = v;
27
- });
28
- var __importStar = (this && this.__importStar) || (function () {
29
- var ownKeys = function(o) {
30
- ownKeys = Object.getOwnPropertyNames || function (o) {
31
- var ar = [];
32
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
- return ar;
34
- };
35
- return ownKeys(o);
36
- };
37
- return function (mod) {
38
- if (mod && mod.__esModule) return mod;
39
- var result = {};
40
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
- __setModuleDefault(result, mod);
42
- return result;
43
- };
44
- })();
45
- Object.defineProperty(exports, "__esModule", { value: true });
46
- exports.httpToLambdaEvent = httpToLambdaEvent;
47
- exports.createLocalContext = createLocalContext;
48
- exports.lambdaResultToHttp = lambdaResultToHttp;
49
- exports.adaptHandler = adaptHandler;
50
- const crypto = __importStar(require("crypto"));
11
+ import * as crypto from 'crypto';
51
12
  /**
52
13
  * Read the full body from an IncomingMessage as a string.
53
14
  */
@@ -65,7 +26,7 @@ function readBody(req) {
65
26
  * This allows existing VentureKit handler() functions to work locally
66
27
  * without modification.
67
28
  */
68
- async function httpToLambdaEvent(req, pathParams) {
29
+ export async function httpToLambdaEvent(req, pathParams) {
69
30
  const url = new URL(req.url || '/', `http://${req.headers.host || 'localhost'}`);
70
31
  const body = await readBody(req);
71
32
  const method = (req.method || 'GET').toUpperCase();
@@ -119,7 +80,7 @@ async function httpToLambdaEvent(req, pathParams) {
119
80
  /**
120
81
  * Create a minimal Lambda Context for local dev.
121
82
  */
122
- function createLocalContext() {
83
+ export function createLocalContext() {
123
84
  const requestId = crypto.randomUUID();
124
85
  return {
125
86
  callbackWaitsForEmptyEventLoop: true,
@@ -139,7 +100,7 @@ function createLocalContext() {
139
100
  /**
140
101
  * Write an APIGatewayProxyResultV2 to a Node.js ServerResponse.
141
102
  */
142
- function lambdaResultToHttp(result, res) {
103
+ export function lambdaResultToHttp(result, res) {
143
104
  // Handle string result (API Gateway allows plain string responses)
144
105
  if (typeof result === 'string') {
145
106
  res.writeHead(200, { 'Content-Type': 'text/plain' });
@@ -179,7 +140,7 @@ function lambdaResultToHttp(result, res) {
179
140
  * @param handlerFn - A VentureKit handler (event, context) => result
180
141
  * @returns A function that takes (req, res, pathParams?) and serves HTTP
181
142
  */
182
- function adaptHandler(handlerFn) {
143
+ export function adaptHandler(handlerFn) {
183
144
  return async (req, res, pathParams) => {
184
145
  try {
185
146
  const event = await httpToLambdaEvent(req, pathParams);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/handler/adapter.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,19 @@
5
5
  * Extensible for future auth/tenancy modules.
6
6
  */
7
7
  import type { APIGatewayProxyEventV2 } from 'aws-lambda';
8
+ /**
9
+ * Transaction handle for database operations.
10
+ * Mirrors the Transaction interface from @venturekit/data
11
+ * to avoid a hard dependency.
12
+ */
13
+ export interface Transaction {
14
+ /** Execute a query within the transaction */
15
+ query<T = Record<string, unknown>[]>(sql: string, params?: unknown[]): Promise<T>;
16
+ /** Commit the transaction */
17
+ commit(): Promise<void>;
18
+ /** Roll back the transaction */
19
+ rollback(): Promise<void>;
20
+ }
8
21
  /**
9
22
  * User information extracted from JWT claims
10
23
  */
@@ -20,7 +33,7 @@ export interface UserContext {
20
33
  }
21
34
  /**
22
35
  * Tenant context for multi-tenant applications
23
- * (Populated by @venturekit/tenancy when enabled)
36
+ * (Populated by @venturekit-pro/tenancy when enabled)
24
37
  */
25
38
  export interface TenantContext {
26
39
  /** Tenant ID */
@@ -30,10 +43,26 @@ export interface TenantContext {
30
43
  /** Tenant-specific metadata */
31
44
  metadata: Record<string, unknown>;
32
45
  }
46
+ /**
47
+ * Base context shared by all handler types (HTTP routes, tasks, queues, crons).
48
+ * Middleware written against BaseContext works in both `handler()` and `taskHandler()`.
49
+ */
50
+ export interface BaseContext {
51
+ /** Unique request / invocation ID */
52
+ requestId: string;
53
+ /** Invocation timestamp */
54
+ timestamp: Date;
55
+ /** Database transaction (populated when transactional: true) */
56
+ tx?: Transaction;
57
+ /** Infrastructure intent outputs */
58
+ intentOutputs?: Record<string, unknown>;
59
+ /** Trace ID for distributed tracing */
60
+ traceId?: string;
61
+ }
33
62
  /**
34
63
  * Request context passed to all handlers
35
64
  */
36
- export interface RequestContext {
65
+ export interface RequestContext extends BaseContext {
37
66
  /** Unique request ID for tracing */
38
67
  requestId: string;
39
68
  /** Request timestamp */
@@ -61,13 +90,25 @@ export interface RequestContext {
61
90
  * Use tx.query() to run all queries within the same transaction.
62
91
  * The transaction is auto-committed on success, rolled back on error.
63
92
  */
64
- tx?: unknown;
93
+ tx?: Transaction;
65
94
  /**
66
95
  * Infrastructure intent outputs (populated after infra provisioning).
67
96
  * Provides access to provisioned resource endpoints, ARNs, etc.
68
97
  * Hydrated from the VENTURE_INTENT_OUTPUTS environment variable.
69
98
  */
70
99
  intentOutputs?: Record<string, unknown>;
100
+ /**
101
+ * Whether this request was invoked internally by another VentureKit function
102
+ * (via `invoke()`) rather than from an external client through API Gateway.
103
+ *
104
+ * Use this to skip rate limiting, auth, or other external-only logic.
105
+ */
106
+ isInternal: boolean;
107
+ /**
108
+ * The invoke ID if this is an internal invocation.
109
+ * Useful for tracing and debugging function-to-function calls.
110
+ */
111
+ invokeId?: string;
71
112
  }
72
113
  /**
73
114
  * Extract user context from JWT claims in API Gateway event
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/handler/context.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,13 @@
1
- "use strict";
2
1
  /**
3
2
  * VentureKit Request Context
4
3
  *
5
4
  * Provides typed access to request metadata, user info, and tenant context.
6
5
  * Extensible for future auth/tenancy modules.
7
6
  */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.extractUserContext = extractUserContext;
10
- exports.extractLocale = extractLocale;
11
- exports.buildContext = buildContext;
12
7
  /**
13
8
  * Extract user context from JWT claims in API Gateway event
14
9
  */
15
- function extractUserContext(event) {
10
+ export function extractUserContext(event) {
16
11
  const claims = event.requestContext?.authorizer?.jwt?.claims;
17
12
  if (!claims) {
18
13
  return null;
@@ -34,7 +29,7 @@ function extractUserContext(event) {
34
29
  /**
35
30
  * Extract locale from Accept-Language header
36
31
  */
37
- function extractLocale(event, supportedLocales, defaultLocale) {
32
+ export function extractLocale(event, supportedLocales, defaultLocale) {
38
33
  const acceptLanguage = event.headers?.['accept-language'] || '';
39
34
  // Parse Accept-Language header (simplified)
40
35
  const requested = acceptLanguage.split(',')[0]?.split('-')[0]?.toLowerCase();
@@ -46,7 +41,7 @@ function extractLocale(event, supportedLocales, defaultLocale) {
46
41
  /**
47
42
  * Build request context from API Gateway event
48
43
  */
49
- function buildContext(event, options) {
44
+ export function buildContext(event, options) {
50
45
  // Hydrate intent outputs from env var (set by infra layer after provisioning)
51
46
  let intentOutputs;
52
47
  try {
@@ -58,6 +53,9 @@ function buildContext(event, options) {
58
53
  catch {
59
54
  // Ignore parse errors — intentOutputs stays undefined
60
55
  }
56
+ // Detect internal invocation from x-venturekit-source header
57
+ const isInternal = event.headers?.['x-venturekit-source'] === 'internal';
58
+ const invokeId = event.headers?.['x-venturekit-invoke-id'] || undefined;
61
59
  return {
62
60
  requestId: event.requestContext?.requestId || crypto.randomUUID(),
63
61
  timestamp: new Date(),
@@ -66,11 +64,13 @@ function buildContext(event, options) {
66
64
  sourceIp: event.requestContext?.http?.sourceIp || 'unknown',
67
65
  userAgent: event.headers?.['user-agent'] || 'unknown',
68
66
  user: extractUserContext(event),
69
- tenant: null, // Populated by @venturekit/tenancy
67
+ tenant: null, // Populated by @venturekit-pro/tenancy
70
68
  locale: extractLocale(event, options.supportedLocales, options.defaultLocale),
71
69
  rawEvent: event,
72
70
  queryParams: event.queryStringParameters,
73
71
  intentOutputs,
72
+ isInternal,
73
+ invokeId,
74
74
  };
75
75
  }
76
76
  //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/handler/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/handler/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;aAEnB,IAAI,EAAE,MAAM;aAEZ,UAAU,EAAE,MAAM;aAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAHjC,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACC,UAAU,GAAE,MAAY,EACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,YAAA;IAMnD,MAAM;;;;;;;CASP;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAY;gBACnC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,YAAY;gBACrC,OAAO,GAAE,MAAkC;CAIxD;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY;gBAClC,OAAO,GAAE,MAAwB;CAI9C;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;gBACjC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM;CAK1C;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;gBACjC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAI/D;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,YAAY;aAG7B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBADrD,OAAO,EAAE,MAAM,EACC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;CAKxD;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,YAAY;gBAClC,aAAa,CAAC,EAAE,MAAM;CAMnC;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;gBACjC,OAAO,GAAE,MAAgC;CAItD;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,YAAY;gBAC3C,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE"}