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.
- package/dist/VERCEL_DIR_README.txt +11 -0
- package/dist/builder-worker.js +48 -0
- package/dist/clipboard_i686.exe +0 -0
- package/dist/clipboard_x86_64.exe +0 -0
- package/dist/index.js +270627 -0
- package/dist/runtimes/go1.x/bootstrap.d.ts +1 -0
- package/dist/runtimes/go1.x/bootstrap.go +273 -0
- package/dist/runtimes/go1.x/bootstrap.js +9 -0
- package/dist/runtimes/go1.x/bootstrap.js.map +1 -0
- package/dist/runtimes/go1.x/filename.d.ts +1 -0
- package/dist/runtimes/go1.x/filename.js +8 -0
- package/dist/runtimes/go1.x/filename.js.map +1 -0
- package/dist/runtimes/go1.x/index.d.ts +2 -0
- package/dist/runtimes/go1.x/index.js +56 -0
- package/dist/runtimes/go1.x/index.js.map +1 -0
- package/dist/runtimes/nodejs/bootstrap +16 -0
- package/dist/runtimes/nodejs/bootstrap.d.ts +1 -0
- package/dist/runtimes/nodejs/bootstrap.js +199 -0
- package/dist/runtimes/nodejs/bootstrap.js.map +1 -0
- package/dist/runtimes/nodejs10.x/bootstrap +9 -0
- package/dist/runtimes/nodejs10.x/bootstrap.d.ts +1 -0
- package/dist/runtimes/nodejs10.x/bootstrap.js +8 -0
- package/dist/runtimes/nodejs10.x/bootstrap.js.map +1 -0
- package/dist/runtimes/nodejs10.x/index.d.ts +2 -0
- package/dist/runtimes/nodejs10.x/index.js +23 -0
- package/dist/runtimes/nodejs10.x/index.js.map +1 -0
- package/dist/runtimes/nodejs12.x/bootstrap +9 -0
- package/dist/runtimes/nodejs12.x/bootstrap.d.ts +1 -0
- package/dist/runtimes/nodejs12.x/bootstrap.js +8 -0
- package/dist/runtimes/nodejs12.x/bootstrap.js.map +1 -0
- package/dist/runtimes/nodejs12.x/index.d.ts +2 -0
- package/dist/runtimes/nodejs12.x/index.js +23 -0
- package/dist/runtimes/nodejs12.x/index.js.map +1 -0
- package/dist/runtimes/nodejs6.10/bootstrap +9 -0
- package/dist/runtimes/nodejs6.10/bootstrap.d.ts +1 -0
- package/dist/runtimes/nodejs6.10/bootstrap.js +8 -0
- package/dist/runtimes/nodejs6.10/bootstrap.js.map +1 -0
- package/dist/runtimes/nodejs6.10/index.d.ts +2 -0
- package/dist/runtimes/nodejs6.10/index.js +23 -0
- package/dist/runtimes/nodejs6.10/index.js.map +1 -0
- package/dist/runtimes/nodejs8.10/bootstrap +9 -0
- package/dist/runtimes/nodejs8.10/bootstrap.d.ts +1 -0
- package/dist/runtimes/nodejs8.10/bootstrap.js +8 -0
- package/dist/runtimes/nodejs8.10/bootstrap.js.map +1 -0
- package/dist/runtimes/nodejs8.10/index.d.ts +2 -0
- package/dist/runtimes/nodejs8.10/index.js +23 -0
- package/dist/runtimes/nodejs8.10/index.js.map +1 -0
- package/dist/runtimes/provided/bootstrap +3 -0
- package/dist/runtimes/provided/bootstrap.d.ts +1 -0
- package/dist/runtimes/provided/bootstrap.js +8 -0
- package/dist/runtimes/provided/bootstrap.js.map +1 -0
- package/dist/runtimes/python/bootstrap +10 -0
- package/dist/runtimes/python/bootstrap.d.ts +1 -0
- package/dist/runtimes/python/bootstrap.js +12 -0
- package/dist/runtimes/python/bootstrap.js.map +1 -0
- package/dist/runtimes/python/bootstrap.py +147 -0
- package/dist/runtimes/python2.7/bootstrap +9 -0
- package/dist/runtimes/python2.7/bootstrap.d.ts +1 -0
- package/dist/runtimes/python2.7/bootstrap.js +8 -0
- package/dist/runtimes/python2.7/bootstrap.js.map +1 -0
- package/dist/runtimes/python2.7/index.d.ts +2 -0
- package/dist/runtimes/python2.7/index.js +23 -0
- package/dist/runtimes/python2.7/index.js.map +1 -0
- package/dist/runtimes/python3/bootstrap +20 -0
- package/dist/runtimes/python3/bootstrap.d.ts +1 -0
- package/dist/runtimes/python3/bootstrap.js +26 -0
- package/dist/runtimes/python3/bootstrap.js.map +1 -0
- package/dist/runtimes/python3/index.d.ts +2 -0
- package/dist/runtimes/python3/index.js +19 -0
- package/dist/runtimes/python3/index.js.map +1 -0
- package/dist/runtimes/python3.6/bootstrap +9 -0
- package/dist/runtimes/python3.6/bootstrap.d.ts +1 -0
- package/dist/runtimes/python3.6/bootstrap.js +8 -0
- package/dist/runtimes/python3.6/bootstrap.js.map +1 -0
- package/dist/runtimes/python3.6/index.d.ts +2 -0
- package/dist/runtimes/python3.6/index.js +23 -0
- package/dist/runtimes/python3.6/index.js.map +1 -0
- package/dist/runtimes/python3.7/bootstrap +9 -0
- package/dist/runtimes/python3.7/bootstrap.d.ts +1 -0
- package/dist/runtimes/python3.7/bootstrap.js +8 -0
- package/dist/runtimes/python3.7/bootstrap.js.map +1 -0
- package/dist/runtimes/python3.7/index.d.ts +2 -0
- package/dist/runtimes/python3.7/index.js +23 -0
- package/dist/runtimes/python3.7/index.js.map +1 -0
- package/dist/term-size +0 -0
- package/dist/term-size.exe +0 -0
- package/dist/xdg-open +1066 -0
- package/dist/xsel +0 -0
- package/package.json +16 -12
- 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,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 @@
|
|
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,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"}
|