vercel 23.1.3-canary.3 → 23.1.3-canary.33

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 (90) hide show
  1. package/dist/VERCEL_DIR_README.txt +11 -0
  2. package/dist/builder-worker.js +48 -0
  3. package/dist/clipboard_i686.exe +0 -0
  4. package/dist/clipboard_x86_64.exe +0 -0
  5. package/dist/index.js +270627 -0
  6. package/dist/runtimes/go1.x/bootstrap.d.ts +1 -0
  7. package/dist/runtimes/go1.x/bootstrap.go +273 -0
  8. package/dist/runtimes/go1.x/bootstrap.js +9 -0
  9. package/dist/runtimes/go1.x/bootstrap.js.map +1 -0
  10. package/dist/runtimes/go1.x/filename.d.ts +1 -0
  11. package/dist/runtimes/go1.x/filename.js +8 -0
  12. package/dist/runtimes/go1.x/filename.js.map +1 -0
  13. package/dist/runtimes/go1.x/index.d.ts +2 -0
  14. package/dist/runtimes/go1.x/index.js +56 -0
  15. package/dist/runtimes/go1.x/index.js.map +1 -0
  16. package/dist/runtimes/nodejs/bootstrap +16 -0
  17. package/dist/runtimes/nodejs/bootstrap.d.ts +1 -0
  18. package/dist/runtimes/nodejs/bootstrap.js +199 -0
  19. package/dist/runtimes/nodejs/bootstrap.js.map +1 -0
  20. package/dist/runtimes/nodejs10.x/bootstrap +9 -0
  21. package/dist/runtimes/nodejs10.x/bootstrap.d.ts +1 -0
  22. package/dist/runtimes/nodejs10.x/bootstrap.js +8 -0
  23. package/dist/runtimes/nodejs10.x/bootstrap.js.map +1 -0
  24. package/dist/runtimes/nodejs10.x/index.d.ts +2 -0
  25. package/dist/runtimes/nodejs10.x/index.js +23 -0
  26. package/dist/runtimes/nodejs10.x/index.js.map +1 -0
  27. package/dist/runtimes/nodejs12.x/bootstrap +9 -0
  28. package/dist/runtimes/nodejs12.x/bootstrap.d.ts +1 -0
  29. package/dist/runtimes/nodejs12.x/bootstrap.js +8 -0
  30. package/dist/runtimes/nodejs12.x/bootstrap.js.map +1 -0
  31. package/dist/runtimes/nodejs12.x/index.d.ts +2 -0
  32. package/dist/runtimes/nodejs12.x/index.js +23 -0
  33. package/dist/runtimes/nodejs12.x/index.js.map +1 -0
  34. package/dist/runtimes/nodejs6.10/bootstrap +9 -0
  35. package/dist/runtimes/nodejs6.10/bootstrap.d.ts +1 -0
  36. package/dist/runtimes/nodejs6.10/bootstrap.js +8 -0
  37. package/dist/runtimes/nodejs6.10/bootstrap.js.map +1 -0
  38. package/dist/runtimes/nodejs6.10/index.d.ts +2 -0
  39. package/dist/runtimes/nodejs6.10/index.js +23 -0
  40. package/dist/runtimes/nodejs6.10/index.js.map +1 -0
  41. package/dist/runtimes/nodejs8.10/bootstrap +9 -0
  42. package/dist/runtimes/nodejs8.10/bootstrap.d.ts +1 -0
  43. package/dist/runtimes/nodejs8.10/bootstrap.js +8 -0
  44. package/dist/runtimes/nodejs8.10/bootstrap.js.map +1 -0
  45. package/dist/runtimes/nodejs8.10/index.d.ts +2 -0
  46. package/dist/runtimes/nodejs8.10/index.js +23 -0
  47. package/dist/runtimes/nodejs8.10/index.js.map +1 -0
  48. package/dist/runtimes/provided/bootstrap +3 -0
  49. package/dist/runtimes/provided/bootstrap.d.ts +1 -0
  50. package/dist/runtimes/provided/bootstrap.js +8 -0
  51. package/dist/runtimes/provided/bootstrap.js.map +1 -0
  52. package/dist/runtimes/python/bootstrap +10 -0
  53. package/dist/runtimes/python/bootstrap.d.ts +1 -0
  54. package/dist/runtimes/python/bootstrap.js +12 -0
  55. package/dist/runtimes/python/bootstrap.js.map +1 -0
  56. package/dist/runtimes/python/bootstrap.py +147 -0
  57. package/dist/runtimes/python2.7/bootstrap +9 -0
  58. package/dist/runtimes/python2.7/bootstrap.d.ts +1 -0
  59. package/dist/runtimes/python2.7/bootstrap.js +8 -0
  60. package/dist/runtimes/python2.7/bootstrap.js.map +1 -0
  61. package/dist/runtimes/python2.7/index.d.ts +2 -0
  62. package/dist/runtimes/python2.7/index.js +23 -0
  63. package/dist/runtimes/python2.7/index.js.map +1 -0
  64. package/dist/runtimes/python3/bootstrap +20 -0
  65. package/dist/runtimes/python3/bootstrap.d.ts +1 -0
  66. package/dist/runtimes/python3/bootstrap.js +26 -0
  67. package/dist/runtimes/python3/bootstrap.js.map +1 -0
  68. package/dist/runtimes/python3/index.d.ts +2 -0
  69. package/dist/runtimes/python3/index.js +19 -0
  70. package/dist/runtimes/python3/index.js.map +1 -0
  71. package/dist/runtimes/python3.6/bootstrap +9 -0
  72. package/dist/runtimes/python3.6/bootstrap.d.ts +1 -0
  73. package/dist/runtimes/python3.6/bootstrap.js +8 -0
  74. package/dist/runtimes/python3.6/bootstrap.js.map +1 -0
  75. package/dist/runtimes/python3.6/index.d.ts +2 -0
  76. package/dist/runtimes/python3.6/index.js +23 -0
  77. package/dist/runtimes/python3.6/index.js.map +1 -0
  78. package/dist/runtimes/python3.7/bootstrap +9 -0
  79. package/dist/runtimes/python3.7/bootstrap.d.ts +1 -0
  80. package/dist/runtimes/python3.7/bootstrap.js +8 -0
  81. package/dist/runtimes/python3.7/bootstrap.js.map +1 -0
  82. package/dist/runtimes/python3.7/index.d.ts +2 -0
  83. package/dist/runtimes/python3.7/index.js +23 -0
  84. package/dist/runtimes/python3.7/index.js.map +1 -0
  85. package/dist/term-size +0 -0
  86. package/dist/term-size.exe +0 -0
  87. package/dist/xdg-open +1066 -0
  88. package/dist/xsel +0 -0
  89. package/package.json +16 -12
  90. package/dist/package.json +0 -184
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,273 @@
1
+ // Credits:
2
+ // https://git.io/fh2AB
3
+ // https://binx.io/blog/2018/12/03/aws-lambda-custom-bootstrap-in-go
4
+
5
+ package main
6
+
7
+ import (
8
+ "bytes"
9
+ "encoding/hex"
10
+ "fmt"
11
+ "github.com/aws/aws-lambda-go/lambda/messages"
12
+ "github.com/phayes/freeport"
13
+ "io/ioutil"
14
+ "log"
15
+ "math/rand"
16
+ "net"
17
+ "net/http"
18
+ "net/rpc"
19
+ "os"
20
+ "os/exec"
21
+ "os/signal"
22
+ "path"
23
+ "reflect"
24
+ "strconv"
25
+ "syscall"
26
+ "time"
27
+ )
28
+
29
+ func main() {
30
+ rand.Seed(time.Now().UTC().UnixNano())
31
+
32
+ mockContext := &MockLambdaContext{
33
+ FnName: getEnv("AWS_LAMBDA_FUNCTION_NAME", "test"),
34
+ Handler: getEnv("AWS_LAMBDA_FUNCTION_HANDLER", getEnv("_HANDLER", "handler")),
35
+ Version: getEnv("AWS_LAMBDA_FUNCTION_VERSION", "$LATEST"),
36
+ MemSize: getEnv("AWS_LAMBDA_FUNCTION_MEMORY_SIZE", "1536"),
37
+ Timeout: getEnv("AWS_LAMBDA_FUNCTION_TIMEOUT", "300"),
38
+ Region: getEnv("AWS_REGION", getEnv("AWS_DEFAULT_REGION", "us-east-1")),
39
+ AccountId: getEnv("AWS_ACCOUNT_ID", strconv.FormatInt(int64(rand.Int31()), 10)),
40
+ Start: time.Now(),
41
+ Pid: 1,
42
+ }
43
+ mockContext.ParseTimeout()
44
+
45
+ awsAccessKey := getEnv("AWS_ACCESS_KEY", getEnv("AWS_ACCESS_KEY_ID", "SOME_ACCESS_KEY_ID"))
46
+ awsSecretKey := getEnv("AWS_SECRET_KEY", getEnv("AWS_SECRET_ACCESS_KEY", "SOME_SECRET_ACCESS_KEY"))
47
+ awsSessionToken := getEnv("AWS_SESSION_TOKEN", os.Getenv("AWS_SECURITY_TOKEN"))
48
+ taskRoot := getEnv("LAMBDA_TASK_ROOT", "/var/task")
49
+
50
+ handlerPath := path.Join(taskRoot, mockContext.Handler)
51
+
52
+ os.Setenv("AWS_LAMBDA_FUNCTION_NAME", mockContext.FnName)
53
+ os.Setenv("AWS_LAMBDA_FUNCTION_VERSION", mockContext.Version)
54
+ os.Setenv("AWS_LAMBDA_FUNCTION_MEMORY_SIZE", mockContext.MemSize)
55
+ os.Setenv("AWS_LAMBDA_LOG_GROUP_NAME", "/aws/lambda/"+mockContext.FnName)
56
+ os.Setenv("AWS_LAMBDA_LOG_STREAM_NAME", logStreamName(mockContext.Version))
57
+ os.Setenv("AWS_REGION", mockContext.Region)
58
+ os.Setenv("AWS_DEFAULT_REGION", mockContext.Region)
59
+ os.Setenv("_HANDLER", mockContext.Handler)
60
+
61
+ port, err := freeport.GetFreePort()
62
+ if err != nil {
63
+ log.Fatal(fmt.Errorf("Freeport Error %s", err))
64
+ }
65
+ portStr := strconv.Itoa(port)
66
+
67
+ var cmd *exec.Cmd
68
+ cmd = exec.Command(handlerPath)
69
+
70
+ cmd.Env = append(os.Environ(),
71
+ "_LAMBDA_SERVER_PORT="+portStr,
72
+ "AWS_ACCESS_KEY="+awsAccessKey,
73
+ "AWS_ACCESS_KEY_ID="+awsAccessKey,
74
+ "AWS_SECRET_KEY="+awsSecretKey,
75
+ "AWS_SECRET_ACCESS_KEY="+awsSecretKey,
76
+ )
77
+
78
+ if len(awsSessionToken) > 0 {
79
+ cmd.Env = append(cmd.Env,
80
+ "AWS_SESSION_TOKEN="+awsSessionToken,
81
+ "AWS_SECURITY_TOKEN="+awsSessionToken,
82
+ )
83
+ }
84
+ cmd.Stdout = os.Stdout
85
+ cmd.Stderr = os.Stderr
86
+ cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
87
+
88
+ if err = cmd.Start(); err != nil {
89
+ defer abortRequest(mockContext, err)
90
+ return
91
+ }
92
+
93
+ mockContext.Pid = cmd.Process.Pid
94
+ p, _ := os.FindProcess(-mockContext.Pid)
95
+ defer p.Signal(syscall.SIGKILL)
96
+
97
+ // Terminate the child process upon SIGINT / SIGTERM
98
+ c := make(chan os.Signal, 1)
99
+ signal.Notify(c, os.Interrupt, syscall.SIGTERM)
100
+ go func() {
101
+ <-c
102
+ p, _ := os.FindProcess(-mockContext.Pid)
103
+ p.Signal(syscall.SIGKILL)
104
+
105
+ os.Exit(0)
106
+ }()
107
+
108
+ var conn net.Conn
109
+ for {
110
+ conn, err = net.Dial("tcp", ":"+portStr)
111
+ if mockContext.HasExpired() {
112
+ defer abortRequest(mockContext, mockContext.TimeoutErr())
113
+ return
114
+ }
115
+ if err == nil {
116
+ break
117
+ }
118
+ if oerr, ok := err.(*net.OpError); ok {
119
+ // Connection refused, try again
120
+ if oerr.Op == "dial" && oerr.Net == "tcp" {
121
+ time.Sleep(5 * time.Millisecond)
122
+ continue
123
+ }
124
+ }
125
+ defer abortRequest(mockContext, err)
126
+ return
127
+ }
128
+
129
+ mockContext.Rpc = rpc.NewClient(conn)
130
+
131
+ for {
132
+ err = mockContext.Rpc.Call("Function.Ping", messages.PingRequest{}, &messages.PingResponse{})
133
+ if mockContext.HasExpired() {
134
+ defer abortRequest(mockContext, mockContext.TimeoutErr())
135
+ return
136
+ }
137
+ if err == nil {
138
+ break
139
+ }
140
+ time.Sleep(5 * time.Millisecond)
141
+ }
142
+
143
+ // XXX: The Go runtime seems to amortize the startup time, reset it here
144
+ mockContext.Start = time.Now()
145
+
146
+ // If we got to here then the handler process has initialized successfully
147
+ mockContext.ProcessEvents()
148
+ }
149
+
150
+ func abortRequest(mockContext *MockLambdaContext, err error) {
151
+ log.Fatal(err)
152
+ }
153
+
154
+ func getEnv(key, fallback string) string {
155
+ value := os.Getenv(key)
156
+ if value != "" {
157
+ return value
158
+ }
159
+ return fallback
160
+ }
161
+
162
+ func logStreamName(version string) string {
163
+ randBuf := make([]byte, 16)
164
+ rand.Read(randBuf)
165
+
166
+ hexBuf := make([]byte, hex.EncodedLen(len(randBuf)))
167
+ hex.Encode(hexBuf, randBuf)
168
+
169
+ return time.Now().Format("2006/01/02") + "/[" + version + "]" + string(hexBuf)
170
+ }
171
+
172
+ func getErrorType(err interface{}) string {
173
+ if errorType := reflect.TypeOf(err); errorType.Kind() == reflect.Ptr {
174
+ return errorType.Elem().Name()
175
+ } else {
176
+ return errorType.Name()
177
+ }
178
+ }
179
+
180
+ type LambdaError struct {
181
+ Message string `json:"errorMessage"`
182
+ Type string `json:"errorType,omitempty"`
183
+ StackTrace []*messages.InvokeResponse_Error_StackFrame `json:"stackTrace,omitempty"`
184
+ }
185
+
186
+ type MockLambdaContext struct {
187
+ Pid int
188
+ FnName string
189
+ Handler string
190
+ Version string
191
+ MemSize string
192
+ Timeout string
193
+ Region string
194
+ AccountId string
195
+ Start time.Time
196
+ TimeoutDuration time.Duration
197
+ Reply *messages.InvokeResponse
198
+ Rpc *rpc.Client
199
+ }
200
+
201
+ func (mc *MockLambdaContext) ProcessEvents() {
202
+ awsLambdaRuntimeApi := os.Getenv("AWS_LAMBDA_RUNTIME_API")
203
+ if awsLambdaRuntimeApi == "" {
204
+ panic("Missing: 'AWS_LAMBDA_RUNTIME_API'")
205
+ }
206
+ for {
207
+ // get the next event
208
+ requestUrl := fmt.Sprintf("http://%s/2018-06-01/runtime/invocation/next", awsLambdaRuntimeApi)
209
+ resp, err := http.Get(requestUrl)
210
+ if err != nil {
211
+ log.Fatal(fmt.Errorf("Error getting next invocation: %v", err))
212
+ }
213
+
214
+ requestId := resp.Header.Get("Lambda-Runtime-Aws-Request-Id")
215
+ eventData, err := ioutil.ReadAll(resp.Body)
216
+ if err != nil {
217
+ log.Fatal(fmt.Errorf("Error reading body: %s", err))
218
+ }
219
+
220
+ err = mc.Rpc.Call("Function.Invoke", mc.Request(requestId, eventData), &mc.Reply)
221
+ if err != nil {
222
+ log.Fatal(fmt.Errorf("Error invoking RPC call: %s", err))
223
+ }
224
+
225
+ responseUrl := fmt.Sprintf("http://%s/2018-06-01/runtime/invocation/%s/response", awsLambdaRuntimeApi, requestId)
226
+ req, err := http.NewRequest("POST", responseUrl, bytes.NewBuffer(mc.Reply.Payload))
227
+ if err != nil {
228
+ log.Fatal(fmt.Errorf("Error creating response HTTP request: %s", err))
229
+ }
230
+ req.Header.Set("Content-Type", "application/json")
231
+
232
+ client := &http.Client{}
233
+ client.Timeout = 0
234
+ _, err = client.Do(req)
235
+ if err != nil {
236
+ log.Fatal(fmt.Errorf("Error sending response: %s", err))
237
+ }
238
+ }
239
+ }
240
+
241
+ func (mc *MockLambdaContext) ParseTimeout() {
242
+ timeoutDuration, err := time.ParseDuration(mc.Timeout + "s")
243
+ if err != nil {
244
+ panic(err)
245
+ }
246
+ mc.TimeoutDuration = timeoutDuration
247
+ }
248
+
249
+ func (mc *MockLambdaContext) Deadline() time.Time {
250
+ return mc.Start.Add(mc.TimeoutDuration)
251
+ }
252
+
253
+ func (mc *MockLambdaContext) HasExpired() bool {
254
+ return time.Now().After(mc.Deadline())
255
+ }
256
+
257
+ func (mc *MockLambdaContext) Request(requestId string, payload []byte) *messages.InvokeRequest {
258
+ return &messages.InvokeRequest{
259
+ Payload: payload,
260
+ RequestId: requestId,
261
+ XAmznTraceId: getEnv("_X_AMZN_TRACE_ID", ""),
262
+ InvokedFunctionArn: getEnv("AWS_LAMBDA_FUNCTION_INVOKED_ARN", ""),
263
+ Deadline: messages.InvokeRequest_Timestamp{
264
+ Seconds: mc.Deadline().Unix(),
265
+ Nanos: int64(mc.Deadline().Nanosecond()),
266
+ },
267
+ }
268
+ }
269
+
270
+ func (mc *MockLambdaContext) TimeoutErr() error {
271
+ return fmt.Errorf("%s %s Task timed out after %s.00 seconds", time.Now().Format("2006-01-02T15:04:05.999Z"),
272
+ "1234", mc.Timeout)
273
+ }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const path_1 = require("path");
4
+ const child_process_1 = require("child_process");
5
+ const filename_1 = require("./filename");
6
+ const out = filename_1.getOutputFile();
7
+ const bootstrap = path_1.join(__dirname, out);
8
+ child_process_1.spawn(bootstrap, [], { stdio: 'inherit' });
9
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../../src/runtimes/go1.x/bootstrap.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,iDAAsC;AACtC,yCAA2C;AAE3C,MAAM,GAAG,GAAG,wBAAa,EAAE,CAAC;AAC5B,MAAM,SAAS,GAAG,WAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACvC,qBAAK,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function getOutputFile(): string;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function getOutputFile() {
4
+ const ext = process.platform === 'win32' ? '.exe' : '';
5
+ return `bootstrap${ext}`;
6
+ }
7
+ exports.getOutputFile = getOutputFile;
8
+ //# sourceMappingURL=filename.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filename.js","sourceRoot":"","sources":["../../../../src/runtimes/go1.x/filename.ts"],"names":[],"mappings":";;AAAA,SAAgB,aAAa;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,OAAO,YAAY,GAAG,EAAE,CAAC;AAC1B,CAAC;AAHD,sCAGC"}
@@ -0,0 +1,2 @@
1
+ import { Runtime } from '../../types';
2
+ export declare function init({ cacheDir }: Runtime): Promise<void>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const path_1 = require("path");
16
+ const execa_1 = __importDefault(require("execa"));
17
+ const debug_1 = __importDefault(require("debug"));
18
+ const fs_extra_1 = require("fs-extra");
19
+ const filename_1 = require("./filename");
20
+ const debug = debug_1.default('@zeit/fun:runtimes/go1.x');
21
+ function _go(opts) {
22
+ return function go(...args) {
23
+ debug('Exec %o', `go ${args.join(' ')}`);
24
+ return execa_1.default('go', args, Object.assign({ stdio: 'inherit' }, opts));
25
+ };
26
+ }
27
+ function init({ cacheDir }) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ const source = path_1.join(cacheDir, 'bootstrap.go');
30
+ const out = filename_1.getOutputFile();
31
+ let data = yield fs_extra_1.readFile(source, 'utf8');
32
+ // Fix windows
33
+ if (process.platform === 'win32') {
34
+ debug('detected windows, so stripping Setpgid');
35
+ data = data
36
+ .split('\n')
37
+ .filter(line => !line.includes('Setpgid'))
38
+ .join('\n');
39
+ }
40
+ // Prepare a temporary `$GOPATH`
41
+ const GOPATH = path_1.join(cacheDir, 'go');
42
+ // The source code must reside in `$GOPATH/src` for `go get` to work
43
+ const bootstrapDir = path_1.join(GOPATH, 'src', out);
44
+ yield fs_extra_1.mkdirp(bootstrapDir);
45
+ yield fs_extra_1.writeFile(path_1.join(bootstrapDir, 'bootstrap.go'), data);
46
+ const go = _go({ cwd: bootstrapDir, env: Object.assign(Object.assign({}, process.env), { GOPATH }) });
47
+ const bootstrap = path_1.join(cacheDir, out);
48
+ debug('Compiling Go runtime binary %o -> %o', source, bootstrap);
49
+ yield go('get');
50
+ yield go('build', '-o', bootstrap, 'bootstrap.go');
51
+ // Clean up `$GOPATH` from the cacheDir
52
+ yield fs_extra_1.remove(GOPATH);
53
+ });
54
+ }
55
+ exports.init = init;
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtimes/go1.x/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+BAA4B;AAC5B,kDAA0B;AAC1B,kDAAgC;AAEhC,uCAA+D;AAC/D,yCAA2C;AAE3C,MAAM,KAAK,GAAG,eAAW,CAAC,0BAA0B,CAAC,CAAC;AAEtD,SAAS,GAAG,CAAC,IAAI;IAChB,OAAO,SAAS,EAAE,CAAC,GAAG,IAAI;QACzB,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzC,OAAO,eAAK,CAAC,IAAI,EAAE,IAAI,kBAAI,KAAK,EAAE,SAAS,IAAK,IAAI,EAAG,CAAC;IACzD,CAAC,CAAC;AACH,CAAC;AAED,SAAsB,IAAI,CAAC,EAAE,QAAQ,EAAW;;QAC/C,MAAM,MAAM,GAAG,WAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAC9C,MAAM,GAAG,GAAG,wBAAa,EAAE,CAAC;QAC5B,IAAI,IAAI,GAAG,MAAM,mBAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE1C,cAAc;QACd,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;YACjC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAChD,IAAI,GAAG,IAAI;iBACT,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;iBACzC,IAAI,CAAC,IAAI,CAAC,CAAC;SACb;QAED,gCAAgC;QAChC,MAAM,MAAM,GAAG,WAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAEpC,oEAAoE;QACpE,MAAM,YAAY,GAAG,WAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC9C,MAAM,iBAAM,CAAC,YAAY,CAAC,CAAC;QAC3B,MAAM,oBAAS,CAAC,WAAI,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC;QAE1D,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,kCAAO,OAAO,CAAC,GAAG,KAAE,MAAM,GAAE,EAAE,CAAC,CAAC;QACvE,MAAM,SAAS,GAAG,WAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtC,KAAK,CAAC,sCAAsC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QAChB,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAEnD,uCAAuC;QACvC,MAAM,iBAAM,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;CAAA;AA9BD,oBA8BC"}
@@ -0,0 +1,16 @@
1
+ #!/bin/sh
2
+ set -eu
3
+
4
+ # Credit: https://github.com/lambci/node-custom-lambda/blob/master/v10.x/bootstrap
5
+
6
+ # `NODE_PATH` is *not* a restricted env var, so only set the
7
+ # default one if the user did not provide one of their own
8
+ if [ -z "${NODE_PATH-}" ]; then
9
+ export NODE_PATH="/opt/nodejs/node8/node_modules:/opt/nodejs/node_modules:${LAMBDA_RUNTIME_DIR}/node_modules:${LAMBDA_RUNTIME_DIR}:${LAMBDA_TASK_ROOT}"
10
+ fi
11
+
12
+ exec node \
13
+ --expose-gc \
14
+ --max-semi-space-size=$((AWS_LAMBDA_FUNCTION_MEMORY_SIZE * 5 / 100)) \
15
+ --max-old-space-size=$((AWS_LAMBDA_FUNCTION_MEMORY_SIZE * 90 / 100)) \
16
+ "$LAMBDA_RUNTIME_DIR/bootstrap.js"
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ /**
16
+ * Credit: https://github.com/lambci/node-custom-lambda/blob/master/v10.x/bootstrap.js
17
+ */
18
+ const http_1 = __importDefault(require("http"));
19
+ const RUNTIME_PATH = '/2018-06-01/runtime';
20
+ const { AWS_LAMBDA_FUNCTION_NAME, AWS_LAMBDA_FUNCTION_VERSION, AWS_LAMBDA_FUNCTION_MEMORY_SIZE, AWS_LAMBDA_LOG_GROUP_NAME, AWS_LAMBDA_LOG_STREAM_NAME, LAMBDA_TASK_ROOT, _HANDLER, AWS_LAMBDA_RUNTIME_API } = process.env;
21
+ delete process.env.SHLVL;
22
+ const [HOST, PORT] = AWS_LAMBDA_RUNTIME_API.split(':');
23
+ start();
24
+ // Simple `util.promisify()` polyfill for Node 6.x
25
+ function promisify(fn) {
26
+ return function (...args) {
27
+ return new Promise((resolve, reject) => {
28
+ args.push((err, result) => {
29
+ if (err)
30
+ return reject(err);
31
+ resolve(result);
32
+ });
33
+ fn.apply(this, args);
34
+ });
35
+ };
36
+ }
37
+ function start() {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ let handler;
40
+ try {
41
+ handler = getHandler();
42
+ }
43
+ catch (e) {
44
+ yield initError(e);
45
+ return process.exit(1);
46
+ }
47
+ try {
48
+ yield processEvents(handler);
49
+ }
50
+ catch (e) {
51
+ console.error(e);
52
+ return process.exit(1);
53
+ }
54
+ });
55
+ }
56
+ function processEvents(handler) {
57
+ return __awaiter(this, void 0, void 0, function* () {
58
+ while (true) {
59
+ const { event, context } = yield nextInvocation();
60
+ let result;
61
+ try {
62
+ result = yield handler(event, context);
63
+ }
64
+ catch (e) {
65
+ yield invokeError(e, context);
66
+ continue;
67
+ }
68
+ yield invokeResponse(result, context);
69
+ }
70
+ });
71
+ }
72
+ function initError(err) {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ return postError(`${RUNTIME_PATH}/init/error`, err);
75
+ });
76
+ }
77
+ function nextInvocation() {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ const res = yield request({ path: `${RUNTIME_PATH}/invocation/next` });
80
+ if (res.statusCode !== 200) {
81
+ throw new Error(`Unexpected /invocation/next response: ${JSON.stringify(res)}`);
82
+ }
83
+ if (res.headers['lambda-runtime-trace-id']) {
84
+ process.env._X_AMZN_TRACE_ID = res.headers['lambda-runtime-trace-id'];
85
+ }
86
+ else {
87
+ delete process.env._X_AMZN_TRACE_ID;
88
+ }
89
+ const deadlineMs = Number(res.headers['lambda-runtime-deadline-ms']);
90
+ const awsRequestId = res.headers['lambda-runtime-aws-request-id'];
91
+ const context = {
92
+ callbackWaitsForEmptyEventLoop: false,
93
+ logGroupName: AWS_LAMBDA_LOG_GROUP_NAME,
94
+ logStreamName: AWS_LAMBDA_LOG_STREAM_NAME,
95
+ functionName: AWS_LAMBDA_FUNCTION_NAME,
96
+ memoryLimitInMB: AWS_LAMBDA_FUNCTION_MEMORY_SIZE,
97
+ functionVersion: AWS_LAMBDA_FUNCTION_VERSION,
98
+ invokeid: awsRequestId,
99
+ awsRequestId,
100
+ invokedFunctionArn: res.headers['lambda-runtime-invoked-function-arn'],
101
+ getRemainingTimeInMillis: () => deadlineMs - Date.now()
102
+ };
103
+ if (res.headers['lambda-runtime-client-context']) {
104
+ context.clientContext = JSON.parse(res.headers['lambda-runtime-client-context']);
105
+ }
106
+ if (res.headers['lambda-runtime-cognito-identity']) {
107
+ context.identity = JSON.parse(res.headers['lambda-runtime-cognito-identity']);
108
+ }
109
+ const event = JSON.parse(res.body);
110
+ return { event, context };
111
+ });
112
+ }
113
+ function invokeResponse(result, context) {
114
+ return __awaiter(this, void 0, void 0, function* () {
115
+ const res = yield request({
116
+ method: 'POST',
117
+ path: `${RUNTIME_PATH}/invocation/${context.awsRequestId}/response`,
118
+ body: JSON.stringify(result)
119
+ });
120
+ if (res.statusCode !== 202) {
121
+ throw new Error(`Unexpected /invocation/response response: ${JSON.stringify(res)}`);
122
+ }
123
+ });
124
+ }
125
+ function invokeError(err, context) {
126
+ return __awaiter(this, void 0, void 0, function* () {
127
+ return postError(`${RUNTIME_PATH}/invocation/${context.awsRequestId}/error`, err);
128
+ });
129
+ }
130
+ function postError(path, err) {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ const lambdaErr = toLambdaErr(err);
133
+ const res = yield request({
134
+ method: 'POST',
135
+ path,
136
+ headers: {
137
+ 'Content-Type': 'application/json',
138
+ 'Lambda-Runtime-Function-Error-Type': lambdaErr.errorType
139
+ },
140
+ body: JSON.stringify(lambdaErr)
141
+ });
142
+ if (res.statusCode !== 202) {
143
+ throw new Error(`Unexpected ${path} response: ${JSON.stringify(res)}`);
144
+ }
145
+ });
146
+ }
147
+ function getHandler() {
148
+ const appParts = _HANDLER.split('.');
149
+ if (appParts.length !== 2) {
150
+ throw new Error(`Bad handler ${_HANDLER}`);
151
+ }
152
+ const [modulePath, handlerName] = appParts;
153
+ let app;
154
+ try {
155
+ app = require(`${LAMBDA_TASK_ROOT}/${modulePath}`);
156
+ }
157
+ catch (e) {
158
+ if (e.code === 'MODULE_NOT_FOUND') {
159
+ throw new Error(`Unable to import module '${modulePath}'`);
160
+ }
161
+ throw e;
162
+ }
163
+ const userHandler = app[handlerName];
164
+ if (userHandler == null) {
165
+ throw new Error(`Handler '${handlerName}' missing on module '${modulePath}'`);
166
+ }
167
+ else if (typeof userHandler !== 'function') {
168
+ throw new Error(`Handler '${handlerName}' from '${modulePath}' is not a function`);
169
+ }
170
+ return userHandler.length >= 3 ? promisify(userHandler) : userHandler;
171
+ }
172
+ function request(options) {
173
+ return __awaiter(this, void 0, void 0, function* () {
174
+ options.host = HOST;
175
+ options.port = PORT;
176
+ return new Promise((resolve, reject) => {
177
+ const req = http_1.default.request(options, res => {
178
+ const bufs = [];
179
+ res.on('data', data => bufs.push(data));
180
+ res.on('end', () => resolve({
181
+ statusCode: res.statusCode,
182
+ headers: res.headers,
183
+ body: Buffer.concat(bufs).toString('utf8')
184
+ }));
185
+ res.on('error', reject);
186
+ });
187
+ req.on('error', reject);
188
+ req.end(options.body);
189
+ });
190
+ });
191
+ }
192
+ function toLambdaErr({ name, message, stack }) {
193
+ return {
194
+ errorType: name,
195
+ errorMessage: message,
196
+ stackTrace: (stack || '').split('\n').slice(1)
197
+ };
198
+ }
199
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../../src/runtimes/nodejs/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ #!/bin/sh
2
+ set -eu
3
+
4
+ # Ensure the downloaded Node.js version is used
5
+ export PATH="$LAMBDA_RUNTIME_DIR/bin:$PATH"
6
+
7
+ # Execute the "nodejs" runtime bootstrap
8
+ export LAMBDA_RUNTIME_DIR="$(dirname "$0")/../nodejs"
9
+ exec "$LAMBDA_RUNTIME_DIR/bootstrap" "$@"
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const path_1 = require("path");
4
+ const child_process_1 = require("child_process");
5
+ const nodeBin = path_1.join(__dirname, 'bin', 'node');
6
+ const bootstrap = path_1.join(__dirname, '..', 'nodejs', 'bootstrap.js');
7
+ child_process_1.spawn(nodeBin, [bootstrap], { stdio: 'inherit' });
8
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../../src/runtimes/nodejs10.x/bootstrap.ts"],"names":[],"mappings":";;AAAA,+BAA4B;AAC5B,iDAAsC;AAEtC,MAAM,OAAO,GAAG,WAAI,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC/C,MAAM,SAAS,GAAG,WAAI,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AAClE,qBAAK,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Runtime } from '../../types';
2
+ export declare function init({ cacheDir }: Runtime): Promise<void>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const install_node_1 = require("../../install-node");
13
+ const runtimes_1 = require("../../runtimes");
14
+ function init({ cacheDir }) {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ yield Promise.all([
17
+ runtimes_1.initializeRuntime(runtimes_1.runtimes.nodejs),
18
+ install_node_1.installNode(cacheDir, '10.15.3')
19
+ ]);
20
+ });
21
+ }
22
+ exports.init = init;
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/runtimes/nodejs10.x/index.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,qDAAiD;AACjD,6CAA6D;AAE7D,SAAsB,IAAI,CAAC,EAAE,QAAQ,EAAW;;QAC/C,MAAM,OAAO,CAAC,GAAG,CAAC;YACjB,4BAAiB,CAAC,mBAAQ,CAAC,MAAM,CAAC;YAClC,0BAAW,CAAC,QAAQ,EAAE,SAAS,CAAC;SAChC,CAAC,CAAC;IACJ,CAAC;CAAA;AALD,oBAKC"}