cdk-local-lambda 0.0.2
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/LICENSE +202 -0
- package/README.md +94 -0
- package/lib/aspect/docker-function-hook.d.ts +18 -0
- package/lib/aspect/docker-function-hook.js +31 -0
- package/lib/aspect/live-lambda-aspect.d.ts +85 -0
- package/lib/aspect/live-lambda-aspect.js +277 -0
- package/lib/aspect/live-lambda-bootstrap.d.ts +17 -0
- package/lib/aspect/live-lambda-bootstrap.js +260 -0
- package/lib/aspect/nodejs-function-hook.d.ts +20 -0
- package/lib/aspect/nodejs-function-hook.js +27 -0
- package/lib/bootstrap-stack/bootstrap-stack.d.ts +60 -0
- package/lib/bootstrap-stack/bootstrap-stack.js +338 -0
- package/lib/cli/appsync/client.d.ts +30 -0
- package/lib/cli/appsync/client.js +227 -0
- package/lib/cli/cdk-app.d.ts +7 -0
- package/lib/cli/cdk-app.js +25 -0
- package/lib/cli/commands/bootstrap.d.ts +9 -0
- package/lib/cli/commands/bootstrap.js +50 -0
- package/lib/cli/commands/local.d.ts +40 -0
- package/lib/cli/commands/local.js +1172 -0
- package/lib/cli/daemon.d.ts +22 -0
- package/lib/cli/daemon.js +18 -0
- package/lib/cli/docker/container.d.ts +116 -0
- package/lib/cli/docker/container.js +414 -0
- package/lib/cli/docker/types.d.ts +71 -0
- package/lib/cli/docker/types.js +5 -0
- package/lib/cli/docker/watcher.d.ts +44 -0
- package/lib/cli/docker/watcher.js +115 -0
- package/lib/cli/index.d.ts +9 -0
- package/lib/cli/index.js +26 -0
- package/lib/cli/runtime-api/server.d.ts +102 -0
- package/lib/cli/runtime-api/server.js +396 -0
- package/lib/cli/runtime-api/types.d.ts +149 -0
- package/lib/cli/runtime-api/types.js +10 -0
- package/lib/cli/runtime-wrapper/nodejs-runtime.d.ts +16 -0
- package/lib/cli/runtime-wrapper/nodejs-runtime.js +248 -0
- package/lib/cli/watcher/file-watcher.d.ts +32 -0
- package/lib/cli/watcher/file-watcher.js +57 -0
- package/lib/functions/bridge/appsync-client.d.ts +73 -0
- package/lib/functions/bridge/appsync-client.js +345 -0
- package/lib/functions/bridge/handler.d.ts +17 -0
- package/lib/functions/bridge/handler.js +79 -0
- package/lib/functions/bridge/ssm-config.d.ts +19 -0
- package/lib/functions/bridge/ssm-config.js +45 -0
- package/lib/functions/bridge-builder/handler.d.ts +12 -0
- package/lib/functions/bridge-builder/handler.js +181 -0
- package/lib/functions/bridge-docker/runtime.d.ts +9 -0
- package/lib/functions/bridge-docker/runtime.js +127 -0
- package/lib/index.d.ts +24 -0
- package/lib/index.js +28 -0
- package/lib/shared/types.d.ts +102 -0
- package/lib/shared/types.js +125 -0
- package/package.json +111 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared constants and types used by bootstrap stack, aspect, and CLI.
|
|
3
|
+
*/
|
|
4
|
+
import { createHash } from "node:crypto";
|
|
5
|
+
/**
|
|
6
|
+
* SSM parameter paths for Live Lambda infrastructure
|
|
7
|
+
* Base path for all Live Lambda SSM parameters
|
|
8
|
+
*/
|
|
9
|
+
export const SSM_BASE_PATH = "/cdk-local-lambda";
|
|
10
|
+
/**
|
|
11
|
+
* Tag key used to store the local handler path on Lambda functions
|
|
12
|
+
*/
|
|
13
|
+
export const LIVE_LAMBDA_TAG = "live-lambda:handler";
|
|
14
|
+
/**
|
|
15
|
+
* Tag key used to store the local Docker context path on DockerImageFunction.
|
|
16
|
+
* The daemon uses this to build and run the container locally.
|
|
17
|
+
*/
|
|
18
|
+
export const LIVE_LAMBDA_DOCKER_TAG = "live-lambda:docker-context";
|
|
19
|
+
/**
|
|
20
|
+
* Name of the CDK bootstrap stack
|
|
21
|
+
*/
|
|
22
|
+
export const BOOTSTRAP_STACK_NAME = "CdkLocalLambdaBootstrapStack";
|
|
23
|
+
/**
|
|
24
|
+
* Current version of the bootstrap stack.
|
|
25
|
+
* Increment this when making breaking changes to the bootstrap infrastructure.
|
|
26
|
+
*/
|
|
27
|
+
export const BOOTSTRAP_VERSION = "1";
|
|
28
|
+
/**
|
|
29
|
+
* Environment variable names used by the bridge handler
|
|
30
|
+
*/
|
|
31
|
+
export const ENV_VARS = {
|
|
32
|
+
HTTP_ENDPOINT: "APPSYNC_HTTP_ENDPOINT",
|
|
33
|
+
REALTIME_ENDPOINT: "APPSYNC_REALTIME_ENDPOINT",
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Environment variables that are set locally by the daemon.
|
|
37
|
+
* These override any values from the bridge Lambda and are excluded from forwarding.
|
|
38
|
+
* Note: AWS_LAMBDA_FUNCTION_MEMORY_SIZE is also set locally but isn't in EXCLUDED_ENV_VARS
|
|
39
|
+
* because it doesn't come from the bridge Lambda's process.env (it's in the context).
|
|
40
|
+
*/
|
|
41
|
+
export const LOCAL_OVERRIDE_ENV_VARS = new Set([
|
|
42
|
+
// Set by daemon to point to local Runtime API server
|
|
43
|
+
"AWS_LAMBDA_RUNTIME_API",
|
|
44
|
+
// Local handler path (different from deployed handler)
|
|
45
|
+
"_HANDLER",
|
|
46
|
+
// Local project root
|
|
47
|
+
"LAMBDA_TASK_ROOT",
|
|
48
|
+
]);
|
|
49
|
+
/**
|
|
50
|
+
* Environment variables to exclude when forwarding from Lambda.
|
|
51
|
+
* These are either Lambda internals or should use local values instead.
|
|
52
|
+
*/
|
|
53
|
+
export const EXCLUDED_ENV_VARS = new Set([
|
|
54
|
+
// Set locally by the daemon
|
|
55
|
+
"_HANDLER",
|
|
56
|
+
"LAMBDA_TASK_ROOT",
|
|
57
|
+
// Lambda runtime internals
|
|
58
|
+
"AWS_LAMBDA_RUNTIME_API",
|
|
59
|
+
"AWS_LAMBDA_INITIALIZATION_TYPE",
|
|
60
|
+
"AWS_EXECUTION_ENV",
|
|
61
|
+
"LAMBDA_RUNTIME_DIR",
|
|
62
|
+
// Internal sockets
|
|
63
|
+
"_LAMBDA_CONSOLE_SOCKET",
|
|
64
|
+
"_LAMBDA_CONTROL_SOCKET",
|
|
65
|
+
"_LAMBDA_LOG_FD",
|
|
66
|
+
"_LAMBDA_SHARED_MEM_FD",
|
|
67
|
+
"_LAMBDA_RUNTIME_LOAD_TIME",
|
|
68
|
+
"_LAMBDA_SB_ID",
|
|
69
|
+
"_LAMBDA_SERVER_PORT",
|
|
70
|
+
// X-Ray not available locally
|
|
71
|
+
"AWS_XRAY_DAEMON_ADDRESS",
|
|
72
|
+
"AWS_XRAY_CONTEXT_MISSING",
|
|
73
|
+
"_X_AMZN_TRACE_ID",
|
|
74
|
+
// System vars - use local values
|
|
75
|
+
"PATH",
|
|
76
|
+
"PWD",
|
|
77
|
+
"HOME",
|
|
78
|
+
"USER",
|
|
79
|
+
"SHELL",
|
|
80
|
+
"SHLVL",
|
|
81
|
+
"TERM",
|
|
82
|
+
"LANG",
|
|
83
|
+
"LC_ALL",
|
|
84
|
+
"LD_LIBRARY_PATH",
|
|
85
|
+
"TZ",
|
|
86
|
+
]);
|
|
87
|
+
/**
|
|
88
|
+
* Filter environment variables for forwarding to local execution.
|
|
89
|
+
* Removes Lambda internals and system variables that should use local values.
|
|
90
|
+
*/
|
|
91
|
+
export function filterEnvVars(env) {
|
|
92
|
+
const result = {};
|
|
93
|
+
for (const [key, value] of Object.entries(env)) {
|
|
94
|
+
if (value !== undefined && !EXCLUDED_ENV_VARS.has(key)) {
|
|
95
|
+
result[key] = value;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Hash a function name for use in channel paths.
|
|
102
|
+
* Uses first 16 hex chars of SHA256 to stay within AppSync limits.
|
|
103
|
+
*/
|
|
104
|
+
export function hashFunctionName(functionName) {
|
|
105
|
+
return createHash("sha256")
|
|
106
|
+
.update(functionName)
|
|
107
|
+
.digest("hex")
|
|
108
|
+
.substring(0, 16);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Channel name builders for AppSync Events
|
|
112
|
+
*/
|
|
113
|
+
export const buildChannelName = {
|
|
114
|
+
/**
|
|
115
|
+
* Channel for sending invocations to the daemon
|
|
116
|
+
* Bridge -> Daemon
|
|
117
|
+
*/
|
|
118
|
+
invocation: (functionName) => `/live/${hashFunctionName(functionName)}/in`,
|
|
119
|
+
/**
|
|
120
|
+
* Channel for receiving responses from the daemon
|
|
121
|
+
* Daemon -> Bridge
|
|
122
|
+
*/
|
|
123
|
+
response: (functionName) => `/live/${hashFunctionName(functionName)}/out`,
|
|
124
|
+
};
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2hhcmVkL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUV4Qzs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsbUJBQW1CLENBQUE7QUFFaEQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcscUJBQXFCLENBQUE7QUFFcEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsNEJBQTRCLENBQUE7QUFFbEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyw4QkFBOEIsQ0FBQTtBQUVsRTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUE7QUFFcEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUc7SUFDdEIsYUFBYSxFQUFFLHVCQUF1QjtJQUN0QyxpQkFBaUIsRUFBRSwyQkFBMkI7Q0FDdEMsQ0FBQTtBQWNWOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDN0MscURBQXFEO0lBQ3JELHdCQUF3QjtJQUN4Qix1REFBdUQ7SUFDdkQsVUFBVTtJQUNWLHFCQUFxQjtJQUNyQixrQkFBa0I7Q0FDbkIsQ0FBQyxDQUFBO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDdkMsNEJBQTRCO0lBQzVCLFVBQVU7SUFDVixrQkFBa0I7SUFDbEIsMkJBQTJCO0lBQzNCLHdCQUF3QjtJQUN4QixnQ0FBZ0M7SUFDaEMsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFDbkIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4QixnQkFBZ0I7SUFDaEIsdUJBQXVCO0lBQ3ZCLDJCQUEyQjtJQUMzQixlQUFlO0lBQ2YscUJBQXFCO0lBQ3JCLDhCQUE4QjtJQUM5Qix5QkFBeUI7SUFDekIsMEJBQTBCO0lBQzFCLGtCQUFrQjtJQUNsQixpQ0FBaUM7SUFDakMsTUFBTTtJQUNOLEtBQUs7SUFDTCxNQUFNO0lBQ04sTUFBTTtJQUNOLE9BQU87SUFDUCxPQUFPO0lBQ1AsTUFBTTtJQUNOLE1BQU07SUFDTixRQUFRO0lBQ1IsaUJBQWlCO0lBQ2pCLElBQUk7Q0FDTCxDQUFDLENBQUE7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQXNCO0lBQ2xELE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUE7SUFDekMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMvQyxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2RCxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFBO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDO0FBMEJEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxZQUFvQjtJQUNuRCxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDeEIsTUFBTSxDQUFDLFlBQVksQ0FBQztTQUNwQixNQUFNLENBQUMsS0FBSyxDQUFDO1NBQ2IsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUNyQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5Qjs7O09BR0c7SUFDSCxVQUFVLEVBQUUsQ0FBQyxZQUFvQixFQUFFLEVBQUUsQ0FDbkMsU0FBUyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsS0FBSztJQUU5Qzs7O09BR0c7SUFDSCxRQUFRLEVBQUUsQ0FBQyxZQUFvQixFQUFFLEVBQUUsQ0FDakMsU0FBUyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsTUFBTTtDQUN2QyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTaGFyZWQgY29uc3RhbnRzIGFuZCB0eXBlcyB1c2VkIGJ5IGJvb3RzdHJhcCBzdGFjaywgYXNwZWN0LCBhbmQgQ0xJLlxuICovXG5cbmltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tIFwibm9kZTpjcnlwdG9cIlxuXG4vKipcbiAqIFNTTSBwYXJhbWV0ZXIgcGF0aHMgZm9yIExpdmUgTGFtYmRhIGluZnJhc3RydWN0dXJlXG4gKiBCYXNlIHBhdGggZm9yIGFsbCBMaXZlIExhbWJkYSBTU00gcGFyYW1ldGVyc1xuICovXG5leHBvcnQgY29uc3QgU1NNX0JBU0VfUEFUSCA9IFwiL2Nkay1sb2NhbC1sYW1iZGFcIlxuXG4vKipcbiAqIFRhZyBrZXkgdXNlZCB0byBzdG9yZSB0aGUgbG9jYWwgaGFuZGxlciBwYXRoIG9uIExhbWJkYSBmdW5jdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IExJVkVfTEFNQkRBX1RBRyA9IFwibGl2ZS1sYW1iZGE6aGFuZGxlclwiXG5cbi8qKlxuICogVGFnIGtleSB1c2VkIHRvIHN0b3JlIHRoZSBsb2NhbCBEb2NrZXIgY29udGV4dCBwYXRoIG9uIERvY2tlckltYWdlRnVuY3Rpb24uXG4gKiBUaGUgZGFlbW9uIHVzZXMgdGhpcyB0byBidWlsZCBhbmQgcnVuIHRoZSBjb250YWluZXIgbG9jYWxseS5cbiAqL1xuZXhwb3J0IGNvbnN0IExJVkVfTEFNQkRBX0RPQ0tFUl9UQUcgPSBcImxpdmUtbGFtYmRhOmRvY2tlci1jb250ZXh0XCJcblxuLyoqXG4gKiBOYW1lIG9mIHRoZSBDREsgYm9vdHN0cmFwIHN0YWNrXG4gKi9cbmV4cG9ydCBjb25zdCBCT09UU1RSQVBfU1RBQ0tfTkFNRSA9IFwiQ2RrTG9jYWxMYW1iZGFCb290c3RyYXBTdGFja1wiXG5cbi8qKlxuICogQ3VycmVudCB2ZXJzaW9uIG9mIHRoZSBib290c3RyYXAgc3RhY2suXG4gKiBJbmNyZW1lbnQgdGhpcyB3aGVuIG1ha2luZyBicmVha2luZyBjaGFuZ2VzIHRvIHRoZSBib290c3RyYXAgaW5mcmFzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBCT09UU1RSQVBfVkVSU0lPTiA9IFwiMVwiXG5cbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGUgbmFtZXMgdXNlZCBieSB0aGUgYnJpZGdlIGhhbmRsZXJcbiAqL1xuZXhwb3J0IGNvbnN0IEVOVl9WQVJTID0ge1xuICBIVFRQX0VORFBPSU5UOiBcIkFQUFNZTkNfSFRUUF9FTkRQT0lOVFwiLFxuICBSRUFMVElNRV9FTkRQT0lOVDogXCJBUFBTWU5DX1JFQUxUSU1FX0VORFBPSU5UXCIsXG59IGFzIGNvbnN0XG5cbi8qKlxuICogTWVzc2FnZSB0eXBlcyBmb3IgQXBwU3luYyBFdmVudHMgY29tbXVuaWNhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludm9jYXRpb25NZXNzYWdlIHtcbiAgdHlwZTogXCJpbnZvY2F0aW9uXCJcbiAgcmVxdWVzdElkOiBzdHJpbmdcbiAgZXZlbnQ6IHVua25vd25cbiAgY29udGV4dDogTGFtYmRhQ29udGV4dFxuICAvKiogTGFtYmRhIGVudmlyb25tZW50IHZhcmlhYmxlcyAoZm9yd2FyZGVkIGZyb20gYnJpZGdlIG9uIGZpcnN0IGludm9jYXRpb24pICovXG4gIGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbn1cblxuLyoqXG4gKiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBhcmUgc2V0IGxvY2FsbHkgYnkgdGhlIGRhZW1vbi5cbiAqIFRoZXNlIG92ZXJyaWRlIGFueSB2YWx1ZXMgZnJvbSB0aGUgYnJpZGdlIExhbWJkYSBhbmQgYXJlIGV4Y2x1ZGVkIGZyb20gZm9yd2FyZGluZy5cbiAqIE5vdGU6IEFXU19MQU1CREFfRlVOQ1RJT05fTUVNT1JZX1NJWkUgaXMgYWxzbyBzZXQgbG9jYWxseSBidXQgaXNuJ3QgaW4gRVhDTFVERURfRU5WX1ZBUlNcbiAqIGJlY2F1c2UgaXQgZG9lc24ndCBjb21lIGZyb20gdGhlIGJyaWRnZSBMYW1iZGEncyBwcm9jZXNzLmVudiAoaXQncyBpbiB0aGUgY29udGV4dCkuXG4gKi9cbmV4cG9ydCBjb25zdCBMT0NBTF9PVkVSUklERV9FTlZfVkFSUyA9IG5ldyBTZXQoW1xuICAvLyBTZXQgYnkgZGFlbW9uIHRvIHBvaW50IHRvIGxvY2FsIFJ1bnRpbWUgQVBJIHNlcnZlclxuICBcIkFXU19MQU1CREFfUlVOVElNRV9BUElcIixcbiAgLy8gTG9jYWwgaGFuZGxlciBwYXRoIChkaWZmZXJlbnQgZnJvbSBkZXBsb3llZCBoYW5kbGVyKVxuICBcIl9IQU5ETEVSXCIsXG4gIC8vIExvY2FsIHByb2plY3Qgcm9vdFxuICBcIkxBTUJEQV9UQVNLX1JPT1RcIixcbl0pXG5cbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGV4Y2x1ZGUgd2hlbiBmb3J3YXJkaW5nIGZyb20gTGFtYmRhLlxuICogVGhlc2UgYXJlIGVpdGhlciBMYW1iZGEgaW50ZXJuYWxzIG9yIHNob3VsZCB1c2UgbG9jYWwgdmFsdWVzIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBjb25zdCBFWENMVURFRF9FTlZfVkFSUyA9IG5ldyBTZXQoW1xuICAvLyBTZXQgbG9jYWxseSBieSB0aGUgZGFlbW9uXG4gIFwiX0hBTkRMRVJcIixcbiAgXCJMQU1CREFfVEFTS19ST09UXCIsXG4gIC8vIExhbWJkYSBydW50aW1lIGludGVybmFsc1xuICBcIkFXU19MQU1CREFfUlVOVElNRV9BUElcIixcbiAgXCJBV1NfTEFNQkRBX0lOSVRJQUxJWkFUSU9OX1RZUEVcIixcbiAgXCJBV1NfRVhFQ1VUSU9OX0VOVlwiLFxuICBcIkxBTUJEQV9SVU5USU1FX0RJUlwiLFxuICAvLyBJbnRlcm5hbCBzb2NrZXRzXG4gIFwiX0xBTUJEQV9DT05TT0xFX1NPQ0tFVFwiLFxuICBcIl9MQU1CREFfQ09OVFJPTF9TT0NLRVRcIixcbiAgXCJfTEFNQkRBX0xPR19GRFwiLFxuICBcIl9MQU1CREFfU0hBUkVEX01FTV9GRFwiLFxuICBcIl9MQU1CREFfUlVOVElNRV9MT0FEX1RJTUVcIixcbiAgXCJfTEFNQkRBX1NCX0lEXCIsXG4gIFwiX0xBTUJEQV9TRVJWRVJfUE9SVFwiLFxuICAvLyBYLVJheSBub3QgYXZhaWxhYmxlIGxvY2FsbHlcbiAgXCJBV1NfWFJBWV9EQUVNT05fQUREUkVTU1wiLFxuICBcIkFXU19YUkFZX0NPTlRFWFRfTUlTU0lOR1wiLFxuICBcIl9YX0FNWk5fVFJBQ0VfSURcIixcbiAgLy8gU3lzdGVtIHZhcnMgLSB1c2UgbG9jYWwgdmFsdWVzXG4gIFwiUEFUSFwiLFxuICBcIlBXRFwiLFxuICBcIkhPTUVcIixcbiAgXCJVU0VSXCIsXG4gIFwiU0hFTExcIixcbiAgXCJTSExWTFwiLFxuICBcIlRFUk1cIixcbiAgXCJMQU5HXCIsXG4gIFwiTENfQUxMXCIsXG4gIFwiTERfTElCUkFSWV9QQVRIXCIsXG4gIFwiVFpcIixcbl0pXG5cbi8qKlxuICogRmlsdGVyIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3IgZm9yd2FyZGluZyB0byBsb2NhbCBleGVjdXRpb24uXG4gKiBSZW1vdmVzIExhbWJkYSBpbnRlcm5hbHMgYW5kIHN5c3RlbSB2YXJpYWJsZXMgdGhhdCBzaG91bGQgdXNlIGxvY2FsIHZhbHVlcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckVudlZhcnMoZW52OiBOb2RlSlMuUHJvY2Vzc0Vudik6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fVxuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhlbnYpKSB7XG4gICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgIUVYQ0xVREVEX0VOVl9WQVJTLmhhcyhrZXkpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IHZhbHVlXG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNwb25zZU1lc3NhZ2Uge1xuICB0eXBlOiBcInJlc3BvbnNlXCJcbiAgcmVxdWVzdElkOiBzdHJpbmdcbiAgcmVzdWx0PzogdW5rbm93blxuICBlcnJvcj86IEVycm9yUGF5bG9hZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVycm9yUGF5bG9hZCB7XG4gIGVycm9yVHlwZTogc3RyaW5nXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nXG4gIHN0YWNrVHJhY2U/OiBzdHJpbmdbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUNvbnRleHQge1xuICBmdW5jdGlvbk5hbWU6IHN0cmluZ1xuICBmdW5jdGlvblZlcnNpb246IHN0cmluZ1xuICBpbnZva2VkRnVuY3Rpb25Bcm46IHN0cmluZ1xuICBtZW1vcnlMaW1pdEluTUI6IHN0cmluZ1xuICBhd3NSZXF1ZXN0SWQ6IHN0cmluZ1xuICBsb2dHcm91cE5hbWU6IHN0cmluZ1xuICBsb2dTdHJlYW1OYW1lOiBzdHJpbmdcbiAgZ2V0UmVtYWluaW5nVGltZUluTWlsbGlzOiBudW1iZXJcbn1cblxuLyoqXG4gKiBIYXNoIGEgZnVuY3Rpb24gbmFtZSBmb3IgdXNlIGluIGNoYW5uZWwgcGF0aHMuXG4gKiBVc2VzIGZpcnN0IDE2IGhleCBjaGFycyBvZiBTSEEyNTYgdG8gc3RheSB3aXRoaW4gQXBwU3luYyBsaW1pdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNoRnVuY3Rpb25OYW1lKGZ1bmN0aW9uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNyZWF0ZUhhc2goXCJzaGEyNTZcIilcbiAgICAudXBkYXRlKGZ1bmN0aW9uTmFtZSlcbiAgICAuZGlnZXN0KFwiaGV4XCIpXG4gICAgLnN1YnN0cmluZygwLCAxNilcbn1cblxuLyoqXG4gKiBDaGFubmVsIG5hbWUgYnVpbGRlcnMgZm9yIEFwcFN5bmMgRXZlbnRzXG4gKi9cbmV4cG9ydCBjb25zdCBidWlsZENoYW5uZWxOYW1lID0ge1xuICAvKipcbiAgICogQ2hhbm5lbCBmb3Igc2VuZGluZyBpbnZvY2F0aW9ucyB0byB0aGUgZGFlbW9uXG4gICAqIEJyaWRnZSAtPiBEYWVtb25cbiAgICovXG4gIGludm9jYXRpb246IChmdW5jdGlvbk5hbWU6IHN0cmluZykgPT5cbiAgICBgL2xpdmUvJHtoYXNoRnVuY3Rpb25OYW1lKGZ1bmN0aW9uTmFtZSl9L2luYCxcblxuICAvKipcbiAgICogQ2hhbm5lbCBmb3IgcmVjZWl2aW5nIHJlc3BvbnNlcyBmcm9tIHRoZSBkYWVtb25cbiAgICogRGFlbW9uIC0+IEJyaWRnZVxuICAgKi9cbiAgcmVzcG9uc2U6IChmdW5jdGlvbk5hbWU6IHN0cmluZykgPT5cbiAgICBgL2xpdmUvJHtoYXNoRnVuY3Rpb25OYW1lKGZ1bmN0aW9uTmFtZSl9L291dGAsXG59IGFzIGNvbnN0XG4iXX0=
|
package/package.json
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "cdk-local-lambda",
|
|
3
|
+
"description": "Run lambdas in CDK stack locally to speed up debugging and improve your DX",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/processfocus/cdk-local-lambda.git"
|
|
7
|
+
},
|
|
8
|
+
"bin": {
|
|
9
|
+
"cdk-local-lambda": "lib/cli/index.js"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "npx projen build",
|
|
13
|
+
"bump": "npx projen bump",
|
|
14
|
+
"clobber": "npx projen clobber",
|
|
15
|
+
"compile": "npx projen compile",
|
|
16
|
+
"default": "npx projen default",
|
|
17
|
+
"eject": "npx projen eject",
|
|
18
|
+
"format": "npx projen format",
|
|
19
|
+
"lint": "npx projen lint",
|
|
20
|
+
"lint:fix": "npx projen lint:fix",
|
|
21
|
+
"package": "npx projen package",
|
|
22
|
+
"post-compile": "npx projen post-compile",
|
|
23
|
+
"post-upgrade": "npx projen post-upgrade",
|
|
24
|
+
"pre-compile": "npx projen pre-compile",
|
|
25
|
+
"release:trunk": "npx projen release:trunk",
|
|
26
|
+
"test": "npx projen test",
|
|
27
|
+
"test:integration": "npx projen test:integration",
|
|
28
|
+
"test:watch": "npx projen test:watch",
|
|
29
|
+
"unbump": "npx projen unbump",
|
|
30
|
+
"upgrade": "npx projen upgrade",
|
|
31
|
+
"watch": "npx projen watch",
|
|
32
|
+
"projen": "npx projen",
|
|
33
|
+
"prepare": "husky"
|
|
34
|
+
},
|
|
35
|
+
"author": {
|
|
36
|
+
"name": "Berend de Boer",
|
|
37
|
+
"organization": false
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@biomejs/biome": "^2.3.13",
|
|
41
|
+
"@effect/language-service": "^0.72.0",
|
|
42
|
+
"@types/aws-lambda": "^8.10.160",
|
|
43
|
+
"@types/bun": "^1.3.8",
|
|
44
|
+
"@types/node": "24",
|
|
45
|
+
"@types/ws": "^8.18.1",
|
|
46
|
+
"aws-cdk": "^2.1104.0",
|
|
47
|
+
"commit-and-tag-version": "^12",
|
|
48
|
+
"constructs": "^10.0.0",
|
|
49
|
+
"husky": "^9.1.7",
|
|
50
|
+
"projen": "^0.99.9",
|
|
51
|
+
"ts-node": "^10.9.2",
|
|
52
|
+
"tsx": "^4.21.0",
|
|
53
|
+
"typescript": "^5.9.3"
|
|
54
|
+
},
|
|
55
|
+
"dependencies": {
|
|
56
|
+
"@aws-crypto/sha256-js": "^5.2.0",
|
|
57
|
+
"@aws-sdk/client-lambda": "^3.978.0",
|
|
58
|
+
"@aws-sdk/client-s3": "^3.978.0",
|
|
59
|
+
"@aws-sdk/client-ssm": "^3.978.0",
|
|
60
|
+
"@aws-sdk/credential-provider-node": "^3.972.3",
|
|
61
|
+
"@aws-sdk/protocol-http": "^3.374.0",
|
|
62
|
+
"@aws-sdk/signature-v4": "^3.374.0",
|
|
63
|
+
"@effect/cli": "^0.73.1",
|
|
64
|
+
"@effect/platform": "^0.94.2",
|
|
65
|
+
"@effect/platform-bun": "^0.87.1",
|
|
66
|
+
"aws-cdk-lib": "^2.236.0",
|
|
67
|
+
"chokidar": "^5.0.0",
|
|
68
|
+
"effect": "^3.19.15",
|
|
69
|
+
"ws": "^8.19.0"
|
|
70
|
+
},
|
|
71
|
+
"keywords": [
|
|
72
|
+
"appsync",
|
|
73
|
+
"aws",
|
|
74
|
+
"aws-cdk",
|
|
75
|
+
"cdk",
|
|
76
|
+
"docker",
|
|
77
|
+
"lambda",
|
|
78
|
+
"local-development",
|
|
79
|
+
"serverless",
|
|
80
|
+
"typescript"
|
|
81
|
+
],
|
|
82
|
+
"main": "lib/index.js",
|
|
83
|
+
"license": "Apache-2.0",
|
|
84
|
+
"homepage": "https://github.com/processfocus/cdk-local-lambda#readme",
|
|
85
|
+
"publishConfig": {
|
|
86
|
+
"access": "public"
|
|
87
|
+
},
|
|
88
|
+
"version": "0.0.2",
|
|
89
|
+
"bugs": {
|
|
90
|
+
"url": "https://github.com/processfocus/cdk-local-lambda/issues"
|
|
91
|
+
},
|
|
92
|
+
"types": "lib/index.d.ts",
|
|
93
|
+
"type": "module",
|
|
94
|
+
"files": [
|
|
95
|
+
"lib",
|
|
96
|
+
"LICENSE",
|
|
97
|
+
"README.md"
|
|
98
|
+
],
|
|
99
|
+
"exports": {
|
|
100
|
+
".": {
|
|
101
|
+
"types": "./lib/index.d.ts",
|
|
102
|
+
"import": "./lib/index.js"
|
|
103
|
+
},
|
|
104
|
+
"./bootstrap": {
|
|
105
|
+
"types": "./lib/aspect/live-lambda-bootstrap.d.ts",
|
|
106
|
+
"import": "./lib/aspect/live-lambda-bootstrap.js"
|
|
107
|
+
},
|
|
108
|
+
"./package.json": "./package.json"
|
|
109
|
+
},
|
|
110
|
+
"//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
|
|
111
|
+
}
|