@vercel/fun 1.2.1 → 1.3.1
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/src/deferred.js +1 -2
- package/dist/src/deferred.js.map +1 -1
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.js +88 -96
- package/dist/src/index.js.map +1 -1
- package/dist/src/install-node.d.ts +0 -1
- package/dist/src/install-node.js +32 -44
- package/dist/src/install-node.js.map +1 -1
- package/dist/src/install-python.d.ts +0 -1
- package/dist/src/install-python.js +16 -33
- package/dist/src/install-python.js.map +1 -1
- package/dist/src/providers/docker/index.js +1 -1
- package/dist/src/providers/docker/index.js.map +1 -1
- package/dist/src/providers/native/index.d.ts +0 -1
- package/dist/src/providers/native/index.js +133 -128
- package/dist/src/providers/native/index.js.map +1 -1
- package/dist/src/runtime-server.d.ts +0 -1
- package/dist/src/runtime-server.js +115 -129
- package/dist/src/runtime-server.js.map +1 -1
- package/dist/src/runtimes/go1.x/filename.js +1 -2
- package/dist/src/runtimes/go1.x/filename.js.map +1 -1
- package/dist/src/runtimes/go1.x/index.js +27 -39
- package/dist/src/runtimes/go1.x/index.js.map +1 -1
- package/dist/src/runtimes/nodejs/bootstrap.js +99 -124
- package/dist/src/runtimes/nodejs/bootstrap.js.map +1 -1
- package/dist/src/runtimes/nodejs10.x/index.js +6 -18
- package/dist/src/runtimes/nodejs10.x/index.js.map +1 -1
- package/dist/src/runtimes/nodejs12.x/index.js +6 -18
- package/dist/src/runtimes/nodejs12.x/index.js.map +1 -1
- package/dist/src/runtimes/nodejs14.x/index.js +6 -18
- package/dist/src/runtimes/nodejs14.x/index.js.map +1 -1
- package/dist/src/runtimes/nodejs6.10/index.js +6 -18
- package/dist/src/runtimes/nodejs6.10/index.js.map +1 -1
- package/dist/src/runtimes/nodejs8.10/index.js +6 -18
- package/dist/src/runtimes/nodejs8.10/index.js.map +1 -1
- package/dist/src/runtimes/python/bootstrap.js.map +1 -1
- package/dist/src/runtimes/python2.7/index.js +6 -18
- package/dist/src/runtimes/python2.7/index.js.map +1 -1
- package/dist/src/runtimes/python3/bootstrap.js.map +1 -1
- package/dist/src/runtimes/python3/index.js +3 -15
- package/dist/src/runtimes/python3/index.js.map +1 -1
- package/dist/src/runtimes/python3.6/index.js +6 -18
- package/dist/src/runtimes/python3.6/index.js.map +1 -1
- package/dist/src/runtimes/python3.7/index.js +6 -18
- package/dist/src/runtimes/python3.7/index.js.map +1 -1
- package/dist/src/runtimes.js +129 -136
- package/dist/src/runtimes.js.map +1 -1
- package/dist/src/types.d.ts +0 -2
- package/dist/src/unzip.d.ts +0 -2
- package/dist/src/unzip.js +65 -78
- package/dist/src/unzip.js.map +1 -1
- package/package.json +5 -7
package/dist/src/deferred.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createDeferred =
|
|
3
|
+
exports.createDeferred = createDeferred;
|
|
4
4
|
function createDeferred() {
|
|
5
5
|
let r;
|
|
6
6
|
let j;
|
|
@@ -10,5 +10,4 @@ function createDeferred() {
|
|
|
10
10
|
});
|
|
11
11
|
return { promise, resolve: r, reject: j };
|
|
12
12
|
}
|
|
13
|
-
exports.createDeferred = createDeferred;
|
|
14
13
|
//# sourceMappingURL=deferred.js.map
|
package/dist/src/deferred.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deferred.js","sourceRoot":"","sources":["../../src/deferred.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deferred.js","sourceRoot":"","sources":["../../src/deferred.ts"],"names":[],"mappings":";;AAMA,wCAaC;AAbD,SAAgB,cAAc;IAC7B,IAAI,CAAC,CAAC;IACN,IAAI,CAAC,CAAC;IACN,MAAM,OAAO,GAAG,IAAI,OAAO,CAC1B,CACC,OAA6C,EAC7C,MAA8B,EACvB,EAAE;QACT,CAAC,GAAG,OAAO,CAAC;QACZ,CAAC,GAAG,MAAM,CAAC;IACZ,CAAC,CACD,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAC3C,CAAC"}
|
package/dist/src/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAQH,MAAa,WAAY,SAAQ,KAAK;IACrC,YAAY,OAA2B,EAAE;QACxC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,0CAA0C,CAAC,CAAC;QACvE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAEnD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;YACnC,KAAK,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI;SAC9C,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAQH,MAAa,WAAY,SAAQ,KAAK;IACrC,YAAY,OAA2B,EAAE;QACxC,KAAK,CAAC,IAAI,CAAC,YAAY,IAAI,0CAA0C,CAAC,CAAC;QACvE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAEnD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE;YACnC,KAAK,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI;SAC9C,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,GAAG;gBACZ,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE;gBAC/B,GAAG,IAAI,CAAC,UAAU;aAClB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,CAAC;aAAM,IAAI,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC;QAC9B,CAAC;IACF,CAAC;CACD;AAlBD,kCAkBC"}
|
package/dist/src/index.js
CHANGED
|
@@ -15,27 +15,32 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
34
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
37
|
};
|
|
37
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.
|
|
39
|
+
exports.ValidationError = exports.initializeRuntime = exports.funCacheDir = exports.providers = exports.runtimes = void 0;
|
|
40
|
+
exports.createFunction = createFunction;
|
|
41
|
+
exports.invoke = invoke;
|
|
42
|
+
exports.destroy = destroy;
|
|
43
|
+
exports.cleanCacheDir = cleanCacheDir;
|
|
39
44
|
const debug_1 = __importDefault(require("debug"));
|
|
40
45
|
const promises_1 = require("node:fs/promises");
|
|
41
46
|
const unzip_1 = require("./unzip");
|
|
@@ -69,6 +74,7 @@ const reservedEnvVars = new Set([
|
|
|
69
74
|
'TZ'
|
|
70
75
|
]);
|
|
71
76
|
class ValidationError extends Error {
|
|
77
|
+
reserved;
|
|
72
78
|
constructor(message) {
|
|
73
79
|
super(message);
|
|
74
80
|
// Restore prototype chain (see https://stackoverflow.com/a/41102306/376773)
|
|
@@ -78,90 +84,76 @@ class ValidationError extends Error {
|
|
|
78
84
|
}
|
|
79
85
|
}
|
|
80
86
|
exports.ValidationError = ValidationError;
|
|
81
|
-
function createFunction(params) {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
87
|
+
async function createFunction(params) {
|
|
88
|
+
const Provider = providers[params.Provider || 'native'];
|
|
89
|
+
if (!Provider) {
|
|
90
|
+
throw new TypeError(`Provider "${params.Provider}" is not implemented`);
|
|
91
|
+
}
|
|
92
|
+
const runtime = runtimes_1.runtimes[params.Runtime];
|
|
93
|
+
if (!runtime) {
|
|
94
|
+
throw new TypeError(`Runtime "${params.Runtime}" is not implemented`);
|
|
95
|
+
}
|
|
96
|
+
await (0, runtimes_1.initializeRuntime)(runtime);
|
|
97
|
+
const envVars = (params.Environment && params.Environment.Variables) || {};
|
|
98
|
+
const reserved = Object.keys(envVars).filter(name => {
|
|
99
|
+
return reservedEnvVars.has(name.toUpperCase());
|
|
100
|
+
});
|
|
101
|
+
if (reserved.length > 0) {
|
|
102
|
+
const err = new ValidationError(`The following environment variables can not be configured: ${reserved.join(', ')}`);
|
|
103
|
+
err.reserved = reserved;
|
|
104
|
+
throw err;
|
|
105
|
+
}
|
|
106
|
+
const fn = async function (payload) {
|
|
107
|
+
const result = await fn.invoke({
|
|
108
|
+
InvocationType: 'RequestResponse',
|
|
109
|
+
Payload: JSON.stringify(payload)
|
|
95
110
|
});
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
111
|
+
let resultPayload = result.Payload;
|
|
112
|
+
if (typeof resultPayload !== 'string') {
|
|
113
|
+
// For Buffer / Blob
|
|
114
|
+
resultPayload = String(resultPayload);
|
|
100
115
|
}
|
|
101
|
-
const
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
InvocationType: 'RequestResponse',
|
|
105
|
-
Payload: JSON.stringify(payload)
|
|
106
|
-
});
|
|
107
|
-
let resultPayload = result.Payload;
|
|
108
|
-
if (typeof resultPayload !== 'string') {
|
|
109
|
-
// For Buffer / Blob
|
|
110
|
-
resultPayload = String(resultPayload);
|
|
111
|
-
}
|
|
112
|
-
const parsedPayload = JSON.parse(resultPayload);
|
|
113
|
-
if (result.FunctionError) {
|
|
114
|
-
throw new errors_1.LambdaError(parsedPayload);
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
return parsedPayload;
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
};
|
|
121
|
-
fn.params = params;
|
|
122
|
-
fn.runtime = runtime;
|
|
123
|
-
fn.destroy = destroy.bind(null, fn);
|
|
124
|
-
fn.invoke = invoke.bind(null, fn);
|
|
125
|
-
fn.functionName = params.FunctionName;
|
|
126
|
-
fn.region = params.Region || 'us-west-1';
|
|
127
|
-
fn.version = '$LATEST';
|
|
128
|
-
fn.arn = '';
|
|
129
|
-
fn.timeout = typeof params.Timeout === 'number' ? params.Timeout : 3;
|
|
130
|
-
fn.memorySize =
|
|
131
|
-
typeof params.MemorySize === 'number' ? params.MemorySize : 128;
|
|
132
|
-
debug('Creating provider %o', Provider.name);
|
|
133
|
-
fn.provider = new Provider(fn);
|
|
134
|
-
if (params.Code.ZipFile) {
|
|
135
|
-
fn.extractedDir = yield (0, unzip_1.unzipToTemp)(params.Code.ZipFile);
|
|
116
|
+
const parsedPayload = JSON.parse(resultPayload);
|
|
117
|
+
if (result.FunctionError) {
|
|
118
|
+
throw new errors_1.LambdaError(parsedPayload);
|
|
136
119
|
}
|
|
137
|
-
|
|
138
|
-
|
|
120
|
+
else {
|
|
121
|
+
return parsedPayload;
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
fn.params = params;
|
|
125
|
+
fn.runtime = runtime;
|
|
126
|
+
fn.destroy = destroy.bind(null, fn);
|
|
127
|
+
fn.invoke = invoke.bind(null, fn);
|
|
128
|
+
fn.functionName = params.FunctionName;
|
|
129
|
+
fn.region = params.Region || 'us-west-1';
|
|
130
|
+
fn.version = '$LATEST';
|
|
131
|
+
fn.arn = '';
|
|
132
|
+
fn.timeout = typeof params.Timeout === 'number' ? params.Timeout : 3;
|
|
133
|
+
fn.memorySize =
|
|
134
|
+
typeof params.MemorySize === 'number' ? params.MemorySize : 128;
|
|
135
|
+
debug('Creating provider %o', Provider.name);
|
|
136
|
+
fn.provider = new Provider(fn);
|
|
137
|
+
if (params.Code.ZipFile) {
|
|
138
|
+
fn.extractedDir = await (0, unzip_1.unzipToTemp)(params.Code.ZipFile);
|
|
139
|
+
}
|
|
140
|
+
return fn;
|
|
139
141
|
}
|
|
140
|
-
|
|
141
|
-
function
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
const result = yield fn.provider.invoke(params);
|
|
145
|
-
return result;
|
|
146
|
-
});
|
|
142
|
+
async function invoke(fn, params) {
|
|
143
|
+
debug('Invoking function %o', fn.functionName);
|
|
144
|
+
const result = await fn.provider.invoke(params);
|
|
145
|
+
return result;
|
|
147
146
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
156
|
-
yield Promise.all(ops);
|
|
157
|
-
});
|
|
147
|
+
async function destroy(fn) {
|
|
148
|
+
const ops = [fn.provider.destroy()];
|
|
149
|
+
if (fn.extractedDir) {
|
|
150
|
+
debug('Deleting directory %o for function %o', fn.extractedDir, fn.functionName);
|
|
151
|
+
ops.push((0, promises_1.rm)(fn.extractedDir, { recursive: true }));
|
|
152
|
+
}
|
|
153
|
+
await Promise.all(ops);
|
|
158
154
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
debug('Deleting fun cache directory %o', runtimes_1.funCacheDir);
|
|
163
|
-
yield (0, promises_1.rm)(runtimes_1.funCacheDir, { recursive: true });
|
|
164
|
-
});
|
|
155
|
+
async function cleanCacheDir() {
|
|
156
|
+
debug('Deleting fun cache directory %o', runtimes_1.funCacheDir);
|
|
157
|
+
await (0, promises_1.rm)(runtimes_1.funCacheDir, { recursive: true });
|
|
165
158
|
}
|
|
166
|
-
exports.cleanCacheDir = cleanCacheDir;
|
|
167
159
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
export declare function generateNodeTarballUrl(version: string, platform?: NodeJS.Platform, arch?: string): string;
|
|
3
2
|
export declare function installNode(dest: string, version: string, platform?: NodeJS.Platform, arch?: string): Promise<void>;
|
package/dist/src/install-node.js
CHANGED
|
@@ -1,23 +1,15 @@
|
|
|
1
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
14
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
6
|
+
exports.generateNodeTarballUrl = generateNodeTarballUrl;
|
|
7
|
+
exports.installNode = installNode;
|
|
16
8
|
const tar_1 = require("tar");
|
|
17
|
-
const promisepipe_1 = __importDefault(require("promisepipe"));
|
|
18
9
|
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
19
10
|
const debug_1 = __importDefault(require("debug"));
|
|
20
11
|
const node_zlib_1 = require("node:zlib");
|
|
12
|
+
const promises_1 = require("node:stream/promises");
|
|
21
13
|
const node_path_1 = require("node:path");
|
|
22
14
|
const node_fs_1 = require("node:fs");
|
|
23
15
|
const semver_1 = require("semver");
|
|
@@ -38,38 +30,34 @@ function generateNodeTarballUrl(version, platform = process.platform, arch = pro
|
|
|
38
30
|
}
|
|
39
31
|
return `https://nodejs.org/dist/${version}/node-${version}-${plat}-${arch}.${ext}`;
|
|
40
32
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
yield (0, promisepipe_1.default)(res.body, (0, node_zlib_1.createGunzip)(), (0, tar_1.extract)({ strip: 1, C: dest }));
|
|
71
|
-
}
|
|
72
|
-
});
|
|
33
|
+
async function installNode(dest, version, platform = process.platform, arch = process.arch) {
|
|
34
|
+
// For Apple M1, use the x64 binaries for v14 or less,
|
|
35
|
+
// since there are no arm64 binaries for these versions
|
|
36
|
+
if (platform === 'darwin' &&
|
|
37
|
+
arch === 'arm64' &&
|
|
38
|
+
(0, semver_1.satisfies)(version, '<= 14')) {
|
|
39
|
+
arch = 'x64';
|
|
40
|
+
}
|
|
41
|
+
const tarballUrl = generateNodeTarballUrl(version, platform, arch);
|
|
42
|
+
debug('Downloading Node.js %s tarball %o', version, tarballUrl);
|
|
43
|
+
const res = await (0, node_fetch_1.default)(tarballUrl);
|
|
44
|
+
if (!res.ok) {
|
|
45
|
+
throw new Error(`HTTP request failed: ${res.status}`);
|
|
46
|
+
}
|
|
47
|
+
if (platform === 'win32') {
|
|
48
|
+
// Put it in the `bin` dir for consistency with the tarballs
|
|
49
|
+
const finalDest = (0, node_path_1.join)(dest, 'bin');
|
|
50
|
+
const zipName = (0, node_path_1.basename)(tarballUrl);
|
|
51
|
+
const zipPath = (0, node_path_1.join)(dest, zipName);
|
|
52
|
+
debug('Saving Node.js %s zip file to %o', version, zipPath);
|
|
53
|
+
await (0, promises_1.pipeline)(res.body, (0, node_fs_1.createWriteStream)(zipPath));
|
|
54
|
+
debug('Extracting Node.js %s zip file to %o', version, finalDest);
|
|
55
|
+
const zipFile = await (0, unzip_1.zipFromFile)(zipPath);
|
|
56
|
+
await (0, unzip_1.unzip)(zipFile, finalDest, { strip: 1 });
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
debug('Extracting Node.js %s tarball to %o', version, dest);
|
|
60
|
+
await (0, promises_1.pipeline)(res.body, (0, node_zlib_1.createGunzip)(), (0, tar_1.extract)({ strip: 1, C: dest }));
|
|
61
|
+
}
|
|
73
62
|
}
|
|
74
|
-
exports.installNode = installNode;
|
|
75
63
|
//# sourceMappingURL=install-node.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-node.js","sourceRoot":"","sources":["../../src/install-node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install-node.js","sourceRoot":"","sources":["../../src/install-node.ts"],"names":[],"mappings":";;;;;AAYA,wDAiBC;AAED,kCAsCC;AArED,6BAA8B;AAC9B,4DAA+B;AAC/B,kDAAgC;AAChC,yCAAyC;AACzC,mDAAgD;AAChD,yCAA2C;AAC3C,qCAA4C;AAC5C,mCAAmC;AACnC,mCAA6C;AAE7C,MAAM,KAAK,GAAG,IAAA,eAAW,EAAC,0BAA0B,CAAC,CAAC;AAEtD,SAAgB,sBAAsB,CACrC,OAAe,EACf,WAA4B,OAAO,CAAC,QAAQ,EAC5C,OAAe,OAAO,CAAC,IAAI;IAE3B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,GAAW,CAAC;IAChB,IAAI,IAAI,GAAW,QAAQ,CAAC;IAC5B,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1B,GAAG,GAAG,KAAK,CAAC;QACZ,IAAI,GAAG,KAAK,CAAC;IACd,CAAC;SAAM,CAAC;QACP,GAAG,GAAG,QAAQ,CAAC;IAChB,CAAC;IACD,OAAO,2BAA2B,OAAO,SAAS,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;AACpF,CAAC;AAEM,KAAK,UAAU,WAAW,CAChC,IAAY,EACZ,OAAe,EACf,WAA4B,OAAO,CAAC,QAAQ,EAC5C,OAAe,OAAO,CAAC,IAAI;IAE3B,sDAAsD;IACtD,uDAAuD;IACvD,IACC,QAAQ,KAAK,QAAQ;QACrB,IAAI,KAAK,OAAO;QAChB,IAAA,kBAAS,EAAC,OAAO,EAAE,OAAO,CAAC,EAC1B,CAAC;QACF,IAAI,GAAG,KAAK,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACnE,KAAK,CAAC,mCAAmC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAChE,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAK,EAAC,UAAU,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1B,4DAA4D;QAC5D,MAAM,SAAS,GAAG,IAAA,gBAAI,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAA,oBAAQ,EAAC,UAAU,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,IAAA,gBAAI,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAEpC,KAAK,CAAC,kCAAkC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5D,MAAM,IAAA,mBAAQ,EAAC,GAAG,CAAC,IAAI,EAAE,IAAA,2BAAiB,EAAC,OAAO,CAAC,CAAC,CAAC;QAErD,KAAK,CAAC,sCAAsC,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,IAAA,mBAAW,EAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,IAAA,aAAK,EAAC,OAAO,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACP,KAAK,CAAC,qCAAqC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,IAAA,mBAAQ,EAAC,GAAG,CAAC,IAAI,EAAE,IAAA,wBAAY,GAAE,EAAE,IAAA,aAAO,EAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1E,CAAC;AACF,CAAC"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
export declare function generatePythonTarballUrl(version: string, platform?: NodeJS.Platform, arch?: string): string;
|
|
3
2
|
export declare function installPython(dest: string, version: string, platform?: NodeJS.Platform, arch?: string): Promise<void>;
|
|
@@ -1,48 +1,31 @@
|
|
|
1
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
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
4
|
};
|
|
14
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
6
|
+
exports.generatePythonTarballUrl = generatePythonTarballUrl;
|
|
7
|
+
exports.installPython = installPython;
|
|
16
8
|
const tar_1 = require("tar");
|
|
17
9
|
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
18
10
|
const debug_1 = __importDefault(require("debug"));
|
|
19
11
|
const node_zlib_1 = require("node:zlib");
|
|
12
|
+
const promises_1 = require("node:stream/promises");
|
|
20
13
|
const debug = (0, debug_1.default)('@vercel/fun:install-python');
|
|
21
14
|
function generatePythonTarballUrl(version, platform = process.platform, arch = process.arch) {
|
|
22
15
|
return `https://python-binaries.zeit.sh/python-${version}-${platform}-${arch}.tar.gz`;
|
|
23
16
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return new Promise((resolve, reject) => {
|
|
38
|
-
debug('Extracting Python %s tarball to %o', version, dest);
|
|
39
|
-
res.body
|
|
40
|
-
.pipe((0, node_zlib_1.createGunzip)())
|
|
41
|
-
.pipe((0, tar_1.extract)({ strip: 1, C: dest }))
|
|
42
|
-
.on('error', reject)
|
|
43
|
-
.on('end', resolve);
|
|
44
|
-
});
|
|
45
|
-
});
|
|
17
|
+
async function installPython(dest, version, platform = process.platform, arch = process.arch) {
|
|
18
|
+
// For Apple M1 use the x64 binaries
|
|
19
|
+
if (platform === 'darwin' && arch === 'arm64') {
|
|
20
|
+
arch = 'x64';
|
|
21
|
+
}
|
|
22
|
+
const tarballUrl = generatePythonTarballUrl(version, platform, arch);
|
|
23
|
+
debug('Downloading Python %s tarball %o', version, tarballUrl);
|
|
24
|
+
const res = await (0, node_fetch_1.default)(tarballUrl);
|
|
25
|
+
if (!res.ok) {
|
|
26
|
+
throw new Error(`HTTP request ${tarballUrl} failed: ${res.status}`);
|
|
27
|
+
}
|
|
28
|
+
debug('Extracting Python %s tarball to %o', version, dest);
|
|
29
|
+
await (0, promises_1.pipeline)(res.body, (0, node_zlib_1.createGunzip)(), (0, tar_1.extract)({ strip: 1, C: dest }));
|
|
46
30
|
}
|
|
47
|
-
exports.installPython = installPython;
|
|
48
31
|
//# sourceMappingURL=install-python.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-python.js","sourceRoot":"","sources":["../../src/install-python.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install-python.js","sourceRoot":"","sources":["../../src/install-python.ts"],"names":[],"mappings":";;;;;AAQA,4DAMC;AAED,sCAmBC;AAnCD,6BAA8B;AAC9B,4DAA+B;AAC/B,kDAAgC;AAChC,yCAAyC;AACzC,mDAAgD;AAEhD,MAAM,KAAK,GAAG,IAAA,eAAW,EAAC,4BAA4B,CAAC,CAAC;AAExD,SAAgB,wBAAwB,CACvC,OAAe,EACf,WAA4B,OAAO,CAAC,QAAQ,EAC5C,OAAe,OAAO,CAAC,IAAI;IAE3B,OAAO,0CAA0C,OAAO,IAAI,QAAQ,IAAI,IAAI,SAAS,CAAC;AACvF,CAAC;AAEM,KAAK,UAAU,aAAa,CAClC,IAAY,EACZ,OAAe,EACf,WAA4B,OAAO,CAAC,QAAQ,EAC5C,OAAe,OAAO,CAAC,IAAI;IAE3B,oCAAoC;IACpC,IAAI,QAAQ,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QAC/C,IAAI,GAAG,KAAK,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,wBAAwB,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrE,KAAK,CAAC,kCAAkC,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,MAAM,IAAA,oBAAK,EAAC,UAAU,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,UAAU,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,KAAK,CAAC,oCAAoC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,IAAA,mBAAQ,EAAC,GAAG,CAAC,IAAI,EAAE,IAAA,wBAAY,GAAE,EAAE,IAAA,aAAO,EAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/docker/index.ts"],"names":[],"mappings":";;AAAA,SAAwB,cAAc,KAAI,CAAC
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/docker/index.ts"],"names":[],"mappings":";;AAAA,iCAA2C;AAA3C,SAAwB,cAAc,KAAI,CAAC"}
|