vercel-cli 41.1.0__py3-none-any.whl

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.

Potentially problematic release.


This version of vercel-cli might be problematic. Click here for more details.

Files changed (99) hide show
  1. vercel_cli/vendor/LICENSE +202 -0
  2. vercel_cli/vendor/README.md +63 -0
  3. vercel_cli/vendor/dist/VERCEL_DIR_README.txt +11 -0
  4. vercel_cli/vendor/dist/builder-worker.js +62 -0
  5. vercel_cli/vendor/dist/get-latest-worker.js +272 -0
  6. vercel_cli/vendor/dist/index.js +172693 -0
  7. vercel_cli/vendor/dist/vc.js +11 -0
  8. vercel_cli/vendor/node_modules/.package-lock.json +18 -0
  9. vercel_cli/vendor/node_modules/@vercel/build-utils/CHANGELOG.md +488 -0
  10. vercel_cli/vendor/node_modules/@vercel/build-utils/LICENSE +202 -0
  11. vercel_cli/vendor/node_modules/@vercel/build-utils/build.mjs +3 -0
  12. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/clone-env.d.ts +10 -0
  13. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/clone-env.js +43 -0
  14. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/debug.d.ts +1 -0
  15. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/debug.js +31 -0
  16. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/default-cache-path-glob.d.ts +1 -0
  17. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/default-cache-path-glob.js +28 -0
  18. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/edge-function.d.ts +41 -0
  19. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/edge-function.js +40 -0
  20. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/errors.d.ts +39 -0
  21. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/errors.js +95 -0
  22. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-blob.d.ts +23 -0
  23. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-blob.js +67 -0
  24. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-fs-ref.d.ts +27 -0
  25. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-fs-ref.js +113 -0
  26. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-ref.d.ts +38 -0
  27. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-ref.js +147 -0
  28. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/download.d.ts +9 -0
  29. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/download.js +136 -0
  30. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/get-writable-directory.d.ts +1 -0
  31. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/get-writable-directory.js +32 -0
  32. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/glob.d.ts +10 -0
  33. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/glob.js +111 -0
  34. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/node-version.d.ts +9 -0
  35. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/node-version.js +180 -0
  36. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/normalize-path.d.ts +4 -0
  37. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/normalize-path.js +31 -0
  38. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/read-config-file.d.ts +1 -0
  39. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/read-config-file.js +76 -0
  40. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/rename.d.ts +11 -0
  41. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/rename.js +30 -0
  42. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/run-user-scripts.d.ts +206 -0
  43. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/run-user-scripts.js +944 -0
  44. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/stream-to-buffer.d.ts +3 -0
  45. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/stream-to-buffer.js +87 -0
  46. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-ignore-filter.d.ts +1 -0
  47. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-ignore-filter.js +90 -0
  48. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-installed-package-version.d.ts +1 -0
  49. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-installed-package-version.js +53 -0
  50. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-platform-env.d.ts +5 -0
  51. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-platform-env.js +45 -0
  52. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-prefixed-env-vars.d.ts +14 -0
  53. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-prefixed-env-vars.js +51 -0
  54. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/hard-link-dir.d.ts +1 -0
  55. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/hard-link-dir.js +104 -0
  56. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/index.d.ts +33 -0
  57. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/index.js +24390 -0
  58. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/lambda.d.ts +81 -0
  59. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/lambda.js +231 -0
  60. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/nodejs-lambda.d.ts +16 -0
  61. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/nodejs-lambda.js +44 -0
  62. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/os.d.ts +3 -0
  63. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/os.js +62 -0
  64. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/prerender.d.ts +37 -0
  65. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/prerender.js +169 -0
  66. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/schemas.d.ts +60 -0
  67. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/schemas.js +87 -0
  68. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/should-serve.d.ts +2 -0
  69. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/should-serve.js +47 -0
  70. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/constants.d.ts +2 -0
  71. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/constants.js +31 -0
  72. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/index.d.ts +3 -0
  73. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/index.js +33 -0
  74. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/trace.d.ts +37 -0
  75. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/trace.js +92 -0
  76. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/types.d.ts +503 -0
  77. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/types.js +51 -0
  78. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/validate-npmrc.d.ts +12 -0
  79. vercel_cli/vendor/node_modules/@vercel/build-utils/dist/validate-npmrc.js +41 -0
  80. vercel_cli/vendor/node_modules/@vercel/build-utils/file-blob.js +1 -0
  81. vercel_cli/vendor/node_modules/@vercel/build-utils/file-fs-ref.js +1 -0
  82. vercel_cli/vendor/node_modules/@vercel/build-utils/file-ref.js +1 -0
  83. vercel_cli/vendor/node_modules/@vercel/build-utils/fs/download.js +1 -0
  84. vercel_cli/vendor/node_modules/@vercel/build-utils/fs/get-writable-directory.js +1 -0
  85. vercel_cli/vendor/node_modules/@vercel/build-utils/fs/glob.js +1 -0
  86. vercel_cli/vendor/node_modules/@vercel/build-utils/fs/rename.js +1 -0
  87. vercel_cli/vendor/node_modules/@vercel/build-utils/fs/run-user-scripts.js +1 -0
  88. vercel_cli/vendor/node_modules/@vercel/build-utils/fs/stream-to-buffer.js +1 -0
  89. vercel_cli/vendor/node_modules/@vercel/build-utils/lambda.js +1 -0
  90. vercel_cli/vendor/node_modules/@vercel/build-utils/package.json +60 -0
  91. vercel_cli/vendor/node_modules/@vercel/python/LICENSE +202 -0
  92. vercel_cli/vendor/node_modules/@vercel/python/dist/index.js +3132 -0
  93. vercel_cli/vendor/node_modules/@vercel/python/package.json +36 -0
  94. vercel_cli/vendor/node_modules/@vercel/python/vc_init.py +681 -0
  95. vercel_cli/vendor/package.json +40 -0
  96. vercel_cli-41.1.0.dist-info/METADATA +188 -0
  97. vercel_cli-41.1.0.dist-info/RECORD +99 -0
  98. vercel_cli-41.1.0.dist-info/WHEEL +4 -0
  99. vercel_cli-41.1.0.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var file_fs_ref_exports = {};
30
+ __export(file_fs_ref_exports, {
31
+ default: () => file_fs_ref_default
32
+ });
33
+ module.exports = __toCommonJS(file_fs_ref_exports);
34
+ var import_assert = __toESM(require("assert"));
35
+ var import_fs_extra = __toESM(require("fs-extra"));
36
+ var import_multistream = __toESM(require("multistream"));
37
+ var import_path = __toESM(require("path"));
38
+ var import_async_sema = __toESM(require("async-sema"));
39
+ const semaToPreventEMFILE = new import_async_sema.default(20);
40
+ class FileFsRef {
41
+ constructor({
42
+ mode = 33188,
43
+ contentType,
44
+ fsPath,
45
+ size
46
+ }) {
47
+ (0, import_assert.default)(typeof mode === "number");
48
+ (0, import_assert.default)(typeof fsPath === "string");
49
+ this.type = "FileFsRef";
50
+ this.mode = mode;
51
+ this.contentType = contentType;
52
+ this.fsPath = fsPath;
53
+ this.size = size;
54
+ }
55
+ static async fromFsPath({
56
+ mode,
57
+ contentType,
58
+ fsPath,
59
+ size
60
+ }) {
61
+ let m = mode;
62
+ let s = size;
63
+ if (!m || typeof s === "undefined") {
64
+ const stat = await import_fs_extra.default.lstat(fsPath);
65
+ m = stat.mode;
66
+ s = stat.size;
67
+ }
68
+ return new FileFsRef({ mode: m, contentType, fsPath, size: s });
69
+ }
70
+ static async fromStream({
71
+ mode = 33188,
72
+ contentType,
73
+ stream,
74
+ fsPath
75
+ }) {
76
+ (0, import_assert.default)(typeof mode === "number");
77
+ (0, import_assert.default)(typeof stream.pipe === "function");
78
+ (0, import_assert.default)(typeof fsPath === "string");
79
+ await import_fs_extra.default.mkdirp(import_path.default.dirname(fsPath));
80
+ await new Promise((resolve, reject) => {
81
+ const dest = import_fs_extra.default.createWriteStream(fsPath, {
82
+ mode: mode & 511
83
+ });
84
+ stream.pipe(dest);
85
+ stream.on("error", reject);
86
+ dest.on("finish", resolve);
87
+ dest.on("error", reject);
88
+ });
89
+ return FileFsRef.fromFsPath({ mode, contentType, fsPath });
90
+ }
91
+ async toStreamAsync() {
92
+ await semaToPreventEMFILE.acquire();
93
+ const release = () => semaToPreventEMFILE.release();
94
+ const stream = import_fs_extra.default.createReadStream(this.fsPath);
95
+ stream.on("close", release);
96
+ stream.on("error", release);
97
+ return stream;
98
+ }
99
+ toStream() {
100
+ let flag = false;
101
+ return (0, import_multistream.default)((cb) => {
102
+ if (flag)
103
+ return cb(null, null);
104
+ flag = true;
105
+ this.toStreamAsync().then((stream) => {
106
+ cb(null, stream);
107
+ }).catch((error) => {
108
+ cb(error, null);
109
+ });
110
+ });
111
+ }
112
+ }
113
+ var file_fs_ref_default = FileFsRef;
@@ -0,0 +1,38 @@
1
+ /// <reference types="node" />
2
+ import { FileBase } from './types';
3
+ interface FileRefOptions {
4
+ mode?: number;
5
+ digest: string;
6
+ contentType?: string;
7
+ mutable?: boolean;
8
+ }
9
+ export default class FileRef implements FileBase {
10
+ type: 'FileRef';
11
+ mode: number;
12
+ digest: string;
13
+ contentType: string | undefined;
14
+ private mutable;
15
+ constructor({ mode, digest, contentType, mutable, }: FileRefOptions);
16
+ /**
17
+ * Retrieves the URL of the CloudFront distribution for the S3
18
+ * bucket represented by {@link getNowFilesS3Url}.
19
+ *
20
+ * @returns The URL of the CloudFront distribution
21
+ */
22
+ private getNowFilesCloudfrontUrl;
23
+ /**
24
+ * Retrieves the URL of the S3 bucket for storing ephemeral files.
25
+ *
26
+ * @returns The URL of the S3 bucket
27
+ */
28
+ private getNowEphemeralFilesS3Url;
29
+ /**
30
+ * Retrieves the URL of the S3 bucket for storing files.
31
+ *
32
+ * @returns The URL of the S3 bucket
33
+ */
34
+ private getNowFilesS3Url;
35
+ toStreamAsync(): Promise<NodeJS.ReadableStream>;
36
+ toStream(): NodeJS.ReadableStream;
37
+ }
38
+ export {};
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var file_ref_exports = {};
30
+ __export(file_ref_exports, {
31
+ default: () => FileRef
32
+ });
33
+ module.exports = __toCommonJS(file_ref_exports);
34
+ var import_assert = __toESM(require("assert"));
35
+ var import_node_fetch = __toESM(require("node-fetch"));
36
+ var import_multistream = __toESM(require("multistream"));
37
+ var import_async_retry = __toESM(require("async-retry"));
38
+ var import_async_sema = __toESM(require("async-sema"));
39
+ const semaToDownloadFromS3 = new import_async_sema.default(5);
40
+ class BailableError extends Error {
41
+ constructor(...args) {
42
+ super(...args);
43
+ this.bail = false;
44
+ }
45
+ }
46
+ class FileRef {
47
+ constructor({
48
+ mode = 33188,
49
+ digest,
50
+ contentType,
51
+ mutable = false
52
+ }) {
53
+ (0, import_assert.default)(typeof mode === "number");
54
+ (0, import_assert.default)(typeof digest === "string");
55
+ this.type = "FileRef";
56
+ this.mode = mode;
57
+ this.digest = digest;
58
+ this.contentType = contentType;
59
+ this.mutable = mutable;
60
+ }
61
+ /**
62
+ * Retrieves the URL of the CloudFront distribution for the S3
63
+ * bucket represented by {@link getNowFilesS3Url}.
64
+ *
65
+ * @returns The URL of the CloudFront distribution
66
+ */
67
+ getNowFilesCloudfrontUrl() {
68
+ return getEnvAsUrlOrThrow("NOW_FILES_CLOUDFRONT_URL") || "https://dmmcy0pwk6bqi.cloudfront.net";
69
+ }
70
+ /**
71
+ * Retrieves the URL of the S3 bucket for storing ephemeral files.
72
+ *
73
+ * @returns The URL of the S3 bucket
74
+ */
75
+ getNowEphemeralFilesS3Url() {
76
+ return getEnvAsUrlOrThrow("NOW_EPHEMERAL_FILES_S3_URL") || "https://now-ephemeral-files.s3.amazonaws.com";
77
+ }
78
+ /**
79
+ * Retrieves the URL of the S3 bucket for storing files.
80
+ *
81
+ * @returns The URL of the S3 bucket
82
+ */
83
+ getNowFilesS3Url() {
84
+ return getEnvAsUrlOrThrow("NOW_FILES_S3_URL") || "https://now-files.s3.amazonaws.com";
85
+ }
86
+ async toStreamAsync() {
87
+ let url = "";
88
+ const [digestType, digestHash] = this.digest.split(":");
89
+ if (digestType === "sha") {
90
+ url = this.mutable ? `${this.getNowFilesS3Url()}/${digestHash}` : `${this.getNowFilesCloudfrontUrl()}/${digestHash}`;
91
+ } else if (digestType === "sha+ephemeral") {
92
+ url = `${this.getNowEphemeralFilesS3Url()}/${digestHash}`;
93
+ } else {
94
+ throw new Error("Expected digest to be sha");
95
+ }
96
+ await semaToDownloadFromS3.acquire();
97
+ try {
98
+ return await (0, import_async_retry.default)(
99
+ async () => {
100
+ const resp = await (0, import_node_fetch.default)(url);
101
+ if (!resp.ok) {
102
+ const error = new BailableError(
103
+ `download: ${resp.status} ${resp.statusText} for ${url}`
104
+ );
105
+ if (resp.status === 403)
106
+ error.bail = true;
107
+ throw error;
108
+ }
109
+ return resp.body;
110
+ },
111
+ { factor: 1, retries: 3 }
112
+ );
113
+ } finally {
114
+ semaToDownloadFromS3.release();
115
+ }
116
+ }
117
+ toStream() {
118
+ let flag = false;
119
+ return (0, import_multistream.default)((cb) => {
120
+ if (flag)
121
+ return cb(null, null);
122
+ flag = true;
123
+ this.toStreamAsync().then((stream) => {
124
+ cb(null, stream);
125
+ }).catch((error) => {
126
+ cb(error, null);
127
+ });
128
+ });
129
+ }
130
+ }
131
+ function getEnvAsUrlOrThrow(key) {
132
+ const value = process.env[key];
133
+ if (value === void 0)
134
+ return void 0;
135
+ try {
136
+ new URL(value);
137
+ return value;
138
+ } catch (e) {
139
+ if (e instanceof TypeError && "code" in e && e.code === "ERR_INVALID_URL") {
140
+ throw new Error(
141
+ `A non-URL value was supplied to the ${key} environment variable`
142
+ );
143
+ } else {
144
+ throw e;
145
+ }
146
+ }
147
+ }
@@ -0,0 +1,9 @@
1
+ import FileFsRef from '../file-fs-ref';
2
+ import { File, Files, Meta } from '../types';
3
+ export interface DownloadedFiles {
4
+ [filePath: string]: FileFsRef;
5
+ }
6
+ export declare function isDirectory(mode: number): boolean;
7
+ export declare function isSymbolicLink(mode: number): boolean;
8
+ export declare function downloadFile(file: File, fsPath: string): Promise<FileFsRef>;
9
+ export default function download(files: Files, basePath: string, meta?: Meta): Promise<DownloadedFiles>;
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var download_exports = {};
30
+ __export(download_exports, {
31
+ default: () => download,
32
+ downloadFile: () => downloadFile,
33
+ isDirectory: () => isDirectory,
34
+ isSymbolicLink: () => isSymbolicLink
35
+ });
36
+ module.exports = __toCommonJS(download_exports);
37
+ var import_path = __toESM(require("path"));
38
+ var import_debug = __toESM(require("../debug"));
39
+ var import_file_fs_ref = __toESM(require("../file-fs-ref"));
40
+ var import_fs_extra = require("fs-extra");
41
+ var import_stream_to_buffer = __toESM(require("./stream-to-buffer"));
42
+ const S_IFDIR = 16384;
43
+ const S_IFLNK = 40960;
44
+ const S_IFMT = 61440;
45
+ function isDirectory(mode) {
46
+ return (mode & S_IFMT) === S_IFDIR;
47
+ }
48
+ function isSymbolicLink(mode) {
49
+ return (mode & S_IFMT) === S_IFLNK;
50
+ }
51
+ async function prepareSymlinkTarget(file, fsPath) {
52
+ const mkdirPromise = (0, import_fs_extra.mkdirp)(import_path.default.dirname(fsPath));
53
+ if (file.type === "FileFsRef") {
54
+ const [target] = await Promise.all([(0, import_fs_extra.readlink)(file.fsPath), mkdirPromise]);
55
+ return target;
56
+ }
57
+ if (file.type === "FileRef" || file.type === "FileBlob") {
58
+ const targetPathBufferPromise = (0, import_stream_to_buffer.default)(await file.toStreamAsync());
59
+ const [targetPathBuffer] = await Promise.all([
60
+ targetPathBufferPromise,
61
+ mkdirPromise
62
+ ]);
63
+ return targetPathBuffer.toString("utf8");
64
+ }
65
+ throw new Error(
66
+ `file.type "${file.type}" not supported for symlink`
67
+ );
68
+ }
69
+ async function downloadFile(file, fsPath) {
70
+ const { mode } = file;
71
+ if (isDirectory(mode)) {
72
+ await (0, import_fs_extra.mkdirp)(fsPath);
73
+ await (0, import_fs_extra.chmod)(fsPath, mode);
74
+ return import_file_fs_ref.default.fromFsPath({ mode, fsPath });
75
+ }
76
+ if (isSymbolicLink(mode)) {
77
+ const target = await prepareSymlinkTarget(file, fsPath);
78
+ await (0, import_fs_extra.symlink)(target, fsPath);
79
+ return import_file_fs_ref.default.fromFsPath({ mode, fsPath });
80
+ }
81
+ const stream = file.toStream();
82
+ return import_file_fs_ref.default.fromStream({ mode, stream, fsPath });
83
+ }
84
+ async function removeFile(basePath, fileMatched) {
85
+ const file = import_path.default.join(basePath, fileMatched);
86
+ await (0, import_fs_extra.remove)(file);
87
+ }
88
+ async function download(files, basePath, meta) {
89
+ const {
90
+ isDev = false,
91
+ skipDownload = false,
92
+ filesChanged = null,
93
+ filesRemoved = null
94
+ } = meta || {};
95
+ if (isDev || skipDownload) {
96
+ return files;
97
+ }
98
+ (0, import_debug.default)("Downloading deployment source files...");
99
+ const start = Date.now();
100
+ const files2 = {};
101
+ const filenames = Object.keys(files);
102
+ await Promise.all(
103
+ filenames.map(async (name) => {
104
+ if (Array.isArray(filesRemoved) && filesRemoved.includes(name)) {
105
+ await removeFile(basePath, name);
106
+ return;
107
+ }
108
+ if (Array.isArray(filesChanged) && !filesChanged.includes(name)) {
109
+ return;
110
+ }
111
+ const parts = name.split("/");
112
+ for (let i = 1; i < parts.length; i++) {
113
+ const dir = parts.slice(0, i).join("/");
114
+ const parent = files[dir];
115
+ if (parent && isSymbolicLink(parent.mode)) {
116
+ console.warn(
117
+ `Warning: file "${name}" is within a symlinked directory "${dir}" and will be ignored`
118
+ );
119
+ return;
120
+ }
121
+ }
122
+ const file = files[name];
123
+ const fsPath = import_path.default.join(basePath, name);
124
+ files2[name] = await downloadFile(file, fsPath);
125
+ })
126
+ );
127
+ const duration = Date.now() - start;
128
+ (0, import_debug.default)(`Downloaded ${filenames.length} source files: ${duration}ms`);
129
+ return files2;
130
+ }
131
+ // Annotate the CommonJS export names for ESM import in node:
132
+ 0 && (module.exports = {
133
+ downloadFile,
134
+ isDirectory,
135
+ isSymbolicLink
136
+ });
@@ -0,0 +1 @@
1
+ export default function getWritableDirectory(): Promise<string>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var get_writable_directory_exports = {};
20
+ __export(get_writable_directory_exports, {
21
+ default: () => getWritableDirectory
22
+ });
23
+ module.exports = __toCommonJS(get_writable_directory_exports);
24
+ var import_path = require("path");
25
+ var import_os = require("os");
26
+ var import_fs_extra = require("fs-extra");
27
+ async function getWritableDirectory() {
28
+ const name = Math.floor(Math.random() * 2147483647).toString(16);
29
+ const directory = (0, import_path.join)((0, import_os.tmpdir)(), name);
30
+ await (0, import_fs_extra.mkdirp)(directory);
31
+ return directory;
32
+ }
@@ -0,0 +1,10 @@
1
+ import FileFsRef from '../file-fs-ref';
2
+ export interface GlobOptions {
3
+ cwd?: string;
4
+ dot?: boolean;
5
+ follow?: boolean;
6
+ ignore?: string | ReadonlyArray<string>;
7
+ includeDirectories?: boolean;
8
+ nodir?: boolean;
9
+ }
10
+ export default function glob(pattern: string, opts: GlobOptions | string, mountpoint?: string): Promise<Record<string, FileFsRef>>;
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var glob_exports = {};
30
+ __export(glob_exports, {
31
+ default: () => glob
32
+ });
33
+ module.exports = __toCommonJS(glob_exports);
34
+ var import_path = __toESM(require("path"));
35
+ var import_assert = __toESM(require("assert"));
36
+ var import_glob = __toESM(require("glob"));
37
+ var import_util = require("util");
38
+ var import_fs_extra = require("fs-extra");
39
+ var import_normalize_path = require("./normalize-path");
40
+ var import_file_fs_ref = __toESM(require("../file-fs-ref"));
41
+ const vanillaGlob = (0, import_util.promisify)(import_glob.default);
42
+ async function glob(pattern, opts, mountpoint) {
43
+ const options = typeof opts === "string" ? { cwd: opts } : opts;
44
+ if (!options.cwd) {
45
+ throw new Error(
46
+ "Second argument (basePath) must be specified for names of resulting files"
47
+ );
48
+ }
49
+ if (!import_path.default.isAbsolute(options.cwd)) {
50
+ throw new Error(`basePath/cwd must be an absolute path (${options.cwd})`);
51
+ }
52
+ const results = {};
53
+ const statCache = {};
54
+ const symlinks = {};
55
+ const files = await vanillaGlob(pattern, {
56
+ ...options,
57
+ symlinks,
58
+ statCache,
59
+ stat: true,
60
+ dot: true
61
+ });
62
+ const dirs = /* @__PURE__ */ new Set();
63
+ const dirsWithEntries = /* @__PURE__ */ new Set();
64
+ for (const relativePath of files) {
65
+ const absPath = import_path.default.join(options.cwd, relativePath);
66
+ const fsPath = (0, import_normalize_path.normalizePath)(absPath);
67
+ let stat = statCache[fsPath];
68
+ (0, import_assert.default)(
69
+ stat,
70
+ `statCache does not contain value for ${relativePath} (resolved to ${fsPath})`
71
+ );
72
+ const isSymlink = symlinks[fsPath];
73
+ if (options.follow && (isSymlink || (await (0, import_fs_extra.lstat)(fsPath)).isSymbolicLink())) {
74
+ const target = await (0, import_fs_extra.readlink)(absPath);
75
+ const absTarget = import_path.default.resolve(import_path.default.dirname(absPath), target);
76
+ if (import_path.default.relative(options.cwd, absTarget).startsWith(`..${import_path.default.sep}`)) {
77
+ continue;
78
+ }
79
+ }
80
+ if (isSymlink || stat.isFile() || stat.isDirectory()) {
81
+ if (isSymlink) {
82
+ stat = await (0, import_fs_extra.lstat)(absPath);
83
+ }
84
+ const dirname = import_path.default.dirname(relativePath);
85
+ dirsWithEntries.add(dirname);
86
+ if (stat.isDirectory()) {
87
+ dirs.add(relativePath);
88
+ continue;
89
+ }
90
+ let finalPath = relativePath;
91
+ if (mountpoint) {
92
+ finalPath = import_path.default.join(mountpoint, finalPath);
93
+ }
94
+ results[finalPath] = new import_file_fs_ref.default({ mode: stat.mode, fsPath });
95
+ }
96
+ }
97
+ if (options.includeDirectories) {
98
+ for (const relativePath of dirs) {
99
+ if (dirsWithEntries.has(relativePath))
100
+ continue;
101
+ let finalPath = relativePath;
102
+ if (mountpoint) {
103
+ finalPath = import_path.default.join(mountpoint, finalPath);
104
+ }
105
+ const fsPath = (0, import_normalize_path.normalizePath)(import_path.default.join(options.cwd, relativePath));
106
+ const stat = statCache[fsPath];
107
+ results[finalPath] = new import_file_fs_ref.default({ mode: stat.mode, fsPath });
108
+ }
109
+ }
110
+ return results;
111
+ }
@@ -0,0 +1,9 @@
1
+ import { NodeVersion } from '../types';
2
+ export type NodeVersionMajor = ReturnType<typeof getOptions>[number]['major'];
3
+ export declare const NODE_VERSIONS: NodeVersion[];
4
+ declare function getOptions(): NodeVersion[];
5
+ export declare function getAvailableNodeVersions(): NodeVersionMajor[];
6
+ export declare function getLatestNodeVersion(availableVersions?: NodeVersionMajor[]): NodeVersion;
7
+ export declare function getDiscontinuedNodeVersions(): NodeVersion[];
8
+ export declare function getSupportedNodeVersion(engineRange: string | undefined, isAuto?: boolean, availableVersions?: NodeVersionMajor[]): Promise<NodeVersion>;
9
+ export {};