coc-tabnine
Version:
tabnine extension for coc.nvim
1,615 lines (1,594 loc) • 129 kB
JavaScript
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
var __commonJS = (callback, module2) => () => {
if (!module2) {
module2 = {exports: {}};
callback(module2.exports, module2);
}
return module2.exports;
};
var __export = (target, all) => {
__markAsModule(target);
for (var name in all)
__defProp(target, name, {get: all[name], enumerable: true});
};
var __exportStar = (target, module2, desc) => {
__markAsModule(target);
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
for (let key of __getOwnPropNames(module2))
if (!__hasOwnProp.call(target, key) && key !== "default")
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
}
return target;
};
var __toModule = (module2) => {
if (module2 && module2.__esModule)
return module2;
return __exportStar(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", {value: module2, enumerable: true}), module2);
};
// node_modules/await-semaphore/index.js
var require_await_semaphore = __commonJS((exports2) => {
"use strict";
var Semaphore = class {
constructor(count) {
this.tasks = [];
this.count = count;
}
sched() {
if (this.count > 0 && this.tasks.length > 0) {
this.count--;
let next = this.tasks.shift();
if (next === void 0) {
throw "Unexpected undefined value in tasks list";
}
next();
}
}
acquire() {
return new Promise((res, rej) => {
var task = () => {
var released = false;
res(() => {
if (!released) {
released = true;
this.count++;
this.sched();
}
});
};
this.tasks.push(task);
if (process && process.nextTick) {
process.nextTick(this.sched.bind(this));
} else {
setImmediate(this.sched.bind(this));
}
});
}
use(f) {
return this.acquire().then((release) => {
return f().then((res) => {
release();
return res;
}).catch((err) => {
release();
throw err;
});
});
}
};
exports2.Semaphore = Semaphore;
var Mutex2 = class extends Semaphore {
constructor() {
super(1);
}
};
exports2.Mutex = Mutex2;
});
// node_modules/universalify/index.js
var require_universalify = __commonJS((exports2) => {
"use strict";
exports2.fromCallback = function(fn) {
return Object.defineProperty(function(...args) {
if (typeof args[args.length - 1] === "function")
fn.apply(this, args);
else {
return new Promise((resolve, reject) => {
fn.apply(this, args.concat([(err, res) => err ? reject(err) : resolve(res)]));
});
}
}, "name", {value: fn.name});
};
exports2.fromPromise = function(fn) {
return Object.defineProperty(function(...args) {
const cb = args[args.length - 1];
if (typeof cb !== "function")
return fn.apply(this, args);
else
fn.apply(this, args.slice(0, -1)).then((r) => cb(null, r), cb);
}, "name", {value: fn.name});
};
});
// node_modules/graceful-fs/polyfills.js
var require_polyfills = __commonJS((exports2, module2) => {
var constants = require("constants");
var origCwd = process.cwd;
var cwd = null;
var platform = process.env.GRACEFUL_FS_PLATFORM || process.platform;
process.cwd = function() {
if (!cwd)
cwd = origCwd.call(process);
return cwd;
};
try {
process.cwd();
} catch (er) {
}
var chdir = process.chdir;
process.chdir = function(d) {
cwd = null;
chdir.call(process, d);
};
module2.exports = patch;
function patch(fs4) {
if (constants.hasOwnProperty("O_SYMLINK") && process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) {
patchLchmod(fs4);
}
if (!fs4.lutimes) {
patchLutimes(fs4);
}
fs4.chown = chownFix(fs4.chown);
fs4.fchown = chownFix(fs4.fchown);
fs4.lchown = chownFix(fs4.lchown);
fs4.chmod = chmodFix(fs4.chmod);
fs4.fchmod = chmodFix(fs4.fchmod);
fs4.lchmod = chmodFix(fs4.lchmod);
fs4.chownSync = chownFixSync(fs4.chownSync);
fs4.fchownSync = chownFixSync(fs4.fchownSync);
fs4.lchownSync = chownFixSync(fs4.lchownSync);
fs4.chmodSync = chmodFixSync(fs4.chmodSync);
fs4.fchmodSync = chmodFixSync(fs4.fchmodSync);
fs4.lchmodSync = chmodFixSync(fs4.lchmodSync);
fs4.stat = statFix(fs4.stat);
fs4.fstat = statFix(fs4.fstat);
fs4.lstat = statFix(fs4.lstat);
fs4.statSync = statFixSync(fs4.statSync);
fs4.fstatSync = statFixSync(fs4.fstatSync);
fs4.lstatSync = statFixSync(fs4.lstatSync);
if (!fs4.lchmod) {
fs4.lchmod = function(path4, mode, cb) {
if (cb)
process.nextTick(cb);
};
fs4.lchmodSync = function() {
};
}
if (!fs4.lchown) {
fs4.lchown = function(path4, uid, gid, cb) {
if (cb)
process.nextTick(cb);
};
fs4.lchownSync = function() {
};
}
if (platform === "win32") {
fs4.rename = function(fs$rename) {
return function(from, to, cb) {
var start = Date.now();
var backoff = 0;
fs$rename(from, to, function CB(er) {
if (er && (er.code === "EACCES" || er.code === "EPERM") && Date.now() - start < 6e4) {
setTimeout(function() {
fs4.stat(to, function(stater, st) {
if (stater && stater.code === "ENOENT")
fs$rename(from, to, CB);
else
cb(er);
});
}, backoff);
if (backoff < 100)
backoff += 10;
return;
}
if (cb)
cb(er);
});
};
}(fs4.rename);
}
fs4.read = function(fs$read) {
function read(fd, buffer, offset, length, position, callback_) {
var callback;
if (callback_ && typeof callback_ === "function") {
var eagCounter = 0;
callback = function(er, _, __) {
if (er && er.code === "EAGAIN" && eagCounter < 10) {
eagCounter++;
return fs$read.call(fs4, fd, buffer, offset, length, position, callback);
}
callback_.apply(this, arguments);
};
}
return fs$read.call(fs4, fd, buffer, offset, length, position, callback);
}
read.__proto__ = fs$read;
return read;
}(fs4.read);
fs4.readSync = function(fs$readSync) {
return function(fd, buffer, offset, length, position) {
var eagCounter = 0;
while (true) {
try {
return fs$readSync.call(fs4, fd, buffer, offset, length, position);
} catch (er) {
if (er.code === "EAGAIN" && eagCounter < 10) {
eagCounter++;
continue;
}
throw er;
}
}
};
}(fs4.readSync);
function patchLchmod(fs5) {
fs5.lchmod = function(path4, mode, callback) {
fs5.open(path4, constants.O_WRONLY | constants.O_SYMLINK, mode, function(err, fd) {
if (err) {
if (callback)
callback(err);
return;
}
fs5.fchmod(fd, mode, function(err2) {
fs5.close(fd, function(err22) {
if (callback)
callback(err2 || err22);
});
});
});
};
fs5.lchmodSync = function(path4, mode) {
var fd = fs5.openSync(path4, constants.O_WRONLY | constants.O_SYMLINK, mode);
var threw = true;
var ret;
try {
ret = fs5.fchmodSync(fd, mode);
threw = false;
} finally {
if (threw) {
try {
fs5.closeSync(fd);
} catch (er) {
}
} else {
fs5.closeSync(fd);
}
}
return ret;
};
}
function patchLutimes(fs5) {
if (constants.hasOwnProperty("O_SYMLINK")) {
fs5.lutimes = function(path4, at, mt, cb) {
fs5.open(path4, constants.O_SYMLINK, function(er, fd) {
if (er) {
if (cb)
cb(er);
return;
}
fs5.futimes(fd, at, mt, function(er2) {
fs5.close(fd, function(er22) {
if (cb)
cb(er2 || er22);
});
});
});
};
fs5.lutimesSync = function(path4, at, mt) {
var fd = fs5.openSync(path4, constants.O_SYMLINK);
var ret;
var threw = true;
try {
ret = fs5.futimesSync(fd, at, mt);
threw = false;
} finally {
if (threw) {
try {
fs5.closeSync(fd);
} catch (er) {
}
} else {
fs5.closeSync(fd);
}
}
return ret;
};
} else {
fs5.lutimes = function(_a, _b, _c, cb) {
if (cb)
process.nextTick(cb);
};
fs5.lutimesSync = function() {
};
}
}
function chmodFix(orig) {
if (!orig)
return orig;
return function(target, mode, cb) {
return orig.call(fs4, target, mode, function(er) {
if (chownErOk(er))
er = null;
if (cb)
cb.apply(this, arguments);
});
};
}
function chmodFixSync(orig) {
if (!orig)
return orig;
return function(target, mode) {
try {
return orig.call(fs4, target, mode);
} catch (er) {
if (!chownErOk(er))
throw er;
}
};
}
function chownFix(orig) {
if (!orig)
return orig;
return function(target, uid, gid, cb) {
return orig.call(fs4, target, uid, gid, function(er) {
if (chownErOk(er))
er = null;
if (cb)
cb.apply(this, arguments);
});
};
}
function chownFixSync(orig) {
if (!orig)
return orig;
return function(target, uid, gid) {
try {
return orig.call(fs4, target, uid, gid);
} catch (er) {
if (!chownErOk(er))
throw er;
}
};
}
function statFix(orig) {
if (!orig)
return orig;
return function(target, options, cb) {
if (typeof options === "function") {
cb = options;
options = null;
}
function callback(er, stats) {
if (stats) {
if (stats.uid < 0)
stats.uid += 4294967296;
if (stats.gid < 0)
stats.gid += 4294967296;
}
if (cb)
cb.apply(this, arguments);
}
return options ? orig.call(fs4, target, options, callback) : orig.call(fs4, target, callback);
};
}
function statFixSync(orig) {
if (!orig)
return orig;
return function(target, options) {
var stats = options ? orig.call(fs4, target, options) : orig.call(fs4, target);
if (stats.uid < 0)
stats.uid += 4294967296;
if (stats.gid < 0)
stats.gid += 4294967296;
return stats;
};
}
function chownErOk(er) {
if (!er)
return true;
if (er.code === "ENOSYS")
return true;
var nonroot = !process.getuid || process.getuid() !== 0;
if (nonroot) {
if (er.code === "EINVAL" || er.code === "EPERM")
return true;
}
return false;
}
}
});
// node_modules/graceful-fs/legacy-streams.js
var require_legacy_streams = __commonJS((exports2, module2) => {
var Stream = require("stream").Stream;
module2.exports = legacy;
function legacy(fs4) {
return {
ReadStream,
WriteStream
};
function ReadStream(path4, options) {
if (!(this instanceof ReadStream))
return new ReadStream(path4, options);
Stream.call(this);
var self = this;
this.path = path4;
this.fd = null;
this.readable = true;
this.paused = false;
this.flags = "r";
this.mode = 438;
this.bufferSize = 64 * 1024;
options = options || {};
var keys = Object.keys(options);
for (var index = 0, length = keys.length; index < length; index++) {
var key = keys[index];
this[key] = options[key];
}
if (this.encoding)
this.setEncoding(this.encoding);
if (this.start !== void 0) {
if (typeof this.start !== "number") {
throw TypeError("start must be a Number");
}
if (this.end === void 0) {
this.end = Infinity;
} else if (typeof this.end !== "number") {
throw TypeError("end must be a Number");
}
if (this.start > this.end) {
throw new Error("start must be <= end");
}
this.pos = this.start;
}
if (this.fd !== null) {
process.nextTick(function() {
self._read();
});
return;
}
fs4.open(this.path, this.flags, this.mode, function(err, fd) {
if (err) {
self.emit("error", err);
self.readable = false;
return;
}
self.fd = fd;
self.emit("open", fd);
self._read();
});
}
function WriteStream(path4, options) {
if (!(this instanceof WriteStream))
return new WriteStream(path4, options);
Stream.call(this);
this.path = path4;
this.fd = null;
this.writable = true;
this.flags = "w";
this.encoding = "binary";
this.mode = 438;
this.bytesWritten = 0;
options = options || {};
var keys = Object.keys(options);
for (var index = 0, length = keys.length; index < length; index++) {
var key = keys[index];
this[key] = options[key];
}
if (this.start !== void 0) {
if (typeof this.start !== "number") {
throw TypeError("start must be a Number");
}
if (this.start < 0) {
throw new Error("start must be >= zero");
}
this.pos = this.start;
}
this.busy = false;
this._queue = [];
if (this.fd === null) {
this._open = fs4.open;
this._queue.push([this._open, this.path, this.flags, this.mode, void 0]);
this.flush();
}
}
}
});
// node_modules/graceful-fs/clone.js
var require_clone = __commonJS((exports2, module2) => {
"use strict";
module2.exports = clone;
function clone(obj) {
if (obj === null || typeof obj !== "object")
return obj;
if (obj instanceof Object)
var copy = {__proto__: obj.__proto__};
else
var copy = Object.create(null);
Object.getOwnPropertyNames(obj).forEach(function(key) {
Object.defineProperty(copy, key, Object.getOwnPropertyDescriptor(obj, key));
});
return copy;
}
});
// node_modules/graceful-fs/graceful-fs.js
var require_graceful_fs = __commonJS((exports2, module2) => {
var fs4 = require("fs");
var polyfills = require_polyfills();
var legacy = require_legacy_streams();
var clone = require_clone();
var util = require("util");
var gracefulQueue;
var previousSymbol;
if (typeof Symbol === "function" && typeof Symbol.for === "function") {
gracefulQueue = Symbol.for("graceful-fs.queue");
previousSymbol = Symbol.for("graceful-fs.previous");
} else {
gracefulQueue = "___graceful-fs.queue";
previousSymbol = "___graceful-fs.previous";
}
function noop() {
}
function publishQueue(context, queue2) {
Object.defineProperty(context, gracefulQueue, {
get: function() {
return queue2;
}
});
}
var debug = noop;
if (util.debuglog)
debug = util.debuglog("gfs4");
else if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || ""))
debug = function() {
var m = util.format.apply(util, arguments);
m = "GFS4: " + m.split(/\n/).join("\nGFS4: ");
console.error(m);
};
if (!fs4[gracefulQueue]) {
queue = global[gracefulQueue] || [];
publishQueue(fs4, queue);
fs4.close = function(fs$close) {
function close(fd, cb) {
return fs$close.call(fs4, fd, function(err) {
if (!err) {
retry();
}
if (typeof cb === "function")
cb.apply(this, arguments);
});
}
Object.defineProperty(close, previousSymbol, {
value: fs$close
});
return close;
}(fs4.close);
fs4.closeSync = function(fs$closeSync) {
function closeSync(fd) {
fs$closeSync.apply(fs4, arguments);
retry();
}
Object.defineProperty(closeSync, previousSymbol, {
value: fs$closeSync
});
return closeSync;
}(fs4.closeSync);
if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || "")) {
process.on("exit", function() {
debug(fs4[gracefulQueue]);
require("assert").equal(fs4[gracefulQueue].length, 0);
});
}
}
var queue;
if (!global[gracefulQueue]) {
publishQueue(global, fs4[gracefulQueue]);
}
module2.exports = patch(clone(fs4));
if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs4.__patched) {
module2.exports = patch(fs4);
fs4.__patched = true;
}
function patch(fs5) {
polyfills(fs5);
fs5.gracefulify = patch;
fs5.createReadStream = createReadStream;
fs5.createWriteStream = createWriteStream;
var fs$readFile = fs5.readFile;
fs5.readFile = readFile;
function readFile(path4, options, cb) {
if (typeof options === "function")
cb = options, options = null;
return go$readFile(path4, options, cb);
function go$readFile(path5, options2, cb2) {
return fs$readFile(path5, options2, function(err) {
if (err && (err.code === "EMFILE" || err.code === "ENFILE"))
enqueue([go$readFile, [path5, options2, cb2]]);
else {
if (typeof cb2 === "function")
cb2.apply(this, arguments);
retry();
}
});
}
}
var fs$writeFile = fs5.writeFile;
fs5.writeFile = writeFile;
function writeFile(path4, data, options, cb) {
if (typeof options === "function")
cb = options, options = null;
return go$writeFile(path4, data, options, cb);
function go$writeFile(path5, data2, options2, cb2) {
return fs$writeFile(path5, data2, options2, function(err) {
if (err && (err.code === "EMFILE" || err.code === "ENFILE"))
enqueue([go$writeFile, [path5, data2, options2, cb2]]);
else {
if (typeof cb2 === "function")
cb2.apply(this, arguments);
retry();
}
});
}
}
var fs$appendFile = fs5.appendFile;
if (fs$appendFile)
fs5.appendFile = appendFile;
function appendFile(path4, data, options, cb) {
if (typeof options === "function")
cb = options, options = null;
return go$appendFile(path4, data, options, cb);
function go$appendFile(path5, data2, options2, cb2) {
return fs$appendFile(path5, data2, options2, function(err) {
if (err && (err.code === "EMFILE" || err.code === "ENFILE"))
enqueue([go$appendFile, [path5, data2, options2, cb2]]);
else {
if (typeof cb2 === "function")
cb2.apply(this, arguments);
retry();
}
});
}
}
var fs$readdir = fs5.readdir;
fs5.readdir = readdir;
function readdir(path4, options, cb) {
var args = [path4];
if (typeof options !== "function") {
args.push(options);
} else {
cb = options;
}
args.push(go$readdir$cb);
return go$readdir(args);
function go$readdir$cb(err, files) {
if (files && files.sort)
files.sort();
if (err && (err.code === "EMFILE" || err.code === "ENFILE"))
enqueue([go$readdir, [args]]);
else {
if (typeof cb === "function")
cb.apply(this, arguments);
retry();
}
}
}
function go$readdir(args) {
return fs$readdir.apply(fs5, args);
}
if (process.version.substr(0, 4) === "v0.8") {
var legStreams = legacy(fs5);
ReadStream = legStreams.ReadStream;
WriteStream = legStreams.WriteStream;
}
var fs$ReadStream = fs5.ReadStream;
if (fs$ReadStream) {
ReadStream.prototype = Object.create(fs$ReadStream.prototype);
ReadStream.prototype.open = ReadStream$open;
}
var fs$WriteStream = fs5.WriteStream;
if (fs$WriteStream) {
WriteStream.prototype = Object.create(fs$WriteStream.prototype);
WriteStream.prototype.open = WriteStream$open;
}
Object.defineProperty(fs5, "ReadStream", {
get: function() {
return ReadStream;
},
set: function(val) {
ReadStream = val;
},
enumerable: true,
configurable: true
});
Object.defineProperty(fs5, "WriteStream", {
get: function() {
return WriteStream;
},
set: function(val) {
WriteStream = val;
},
enumerable: true,
configurable: true
});
var FileReadStream = ReadStream;
Object.defineProperty(fs5, "FileReadStream", {
get: function() {
return FileReadStream;
},
set: function(val) {
FileReadStream = val;
},
enumerable: true,
configurable: true
});
var FileWriteStream = WriteStream;
Object.defineProperty(fs5, "FileWriteStream", {
get: function() {
return FileWriteStream;
},
set: function(val) {
FileWriteStream = val;
},
enumerable: true,
configurable: true
});
function ReadStream(path4, options) {
if (this instanceof ReadStream)
return fs$ReadStream.apply(this, arguments), this;
else
return ReadStream.apply(Object.create(ReadStream.prototype), arguments);
}
function ReadStream$open() {
var that = this;
open(that.path, that.flags, that.mode, function(err, fd) {
if (err) {
if (that.autoClose)
that.destroy();
that.emit("error", err);
} else {
that.fd = fd;
that.emit("open", fd);
that.read();
}
});
}
function WriteStream(path4, options) {
if (this instanceof WriteStream)
return fs$WriteStream.apply(this, arguments), this;
else
return WriteStream.apply(Object.create(WriteStream.prototype), arguments);
}
function WriteStream$open() {
var that = this;
open(that.path, that.flags, that.mode, function(err, fd) {
if (err) {
that.destroy();
that.emit("error", err);
} else {
that.fd = fd;
that.emit("open", fd);
}
});
}
function createReadStream(path4, options) {
return new fs5.ReadStream(path4, options);
}
function createWriteStream(path4, options) {
return new fs5.WriteStream(path4, options);
}
var fs$open = fs5.open;
fs5.open = open;
function open(path4, flags, mode, cb) {
if (typeof mode === "function")
cb = mode, mode = null;
return go$open(path4, flags, mode, cb);
function go$open(path5, flags2, mode2, cb2) {
return fs$open(path5, flags2, mode2, function(err, fd) {
if (err && (err.code === "EMFILE" || err.code === "ENFILE"))
enqueue([go$open, [path5, flags2, mode2, cb2]]);
else {
if (typeof cb2 === "function")
cb2.apply(this, arguments);
retry();
}
});
}
}
return fs5;
}
function enqueue(elem) {
debug("ENQUEUE", elem[0].name, elem[1]);
fs4[gracefulQueue].push(elem);
}
function retry() {
var elem = fs4[gracefulQueue].shift();
if (elem) {
debug("RETRY", elem[0].name, elem[1]);
elem[0].apply(null, elem[1]);
}
}
});
// node_modules/fs-extra/lib/fs/index.js
var require_fs = __commonJS((exports2) => {
"use strict";
var u = require_universalify().fromCallback;
var fs4 = require_graceful_fs();
var api = [
"access",
"appendFile",
"chmod",
"chown",
"close",
"copyFile",
"fchmod",
"fchown",
"fdatasync",
"fstat",
"fsync",
"ftruncate",
"futimes",
"lchmod",
"lchown",
"link",
"lstat",
"mkdir",
"mkdtemp",
"open",
"opendir",
"readdir",
"readFile",
"readlink",
"realpath",
"rename",
"rmdir",
"stat",
"symlink",
"truncate",
"unlink",
"utimes",
"writeFile"
].filter((key) => {
return typeof fs4[key] === "function";
});
Object.keys(fs4).forEach((key) => {
if (key === "promises") {
return;
}
exports2[key] = fs4[key];
});
api.forEach((method) => {
exports2[method] = u(fs4[method]);
});
exports2.exists = function(filename, callback) {
if (typeof callback === "function") {
return fs4.exists(filename, callback);
}
return new Promise((resolve) => {
return fs4.exists(filename, resolve);
});
};
exports2.read = function(fd, buffer, offset, length, position, callback) {
if (typeof callback === "function") {
return fs4.read(fd, buffer, offset, length, position, callback);
}
return new Promise((resolve, reject) => {
fs4.read(fd, buffer, offset, length, position, (err, bytesRead, buffer2) => {
if (err)
return reject(err);
resolve({bytesRead, buffer: buffer2});
});
});
};
exports2.write = function(fd, buffer, ...args) {
if (typeof args[args.length - 1] === "function") {
return fs4.write(fd, buffer, ...args);
}
return new Promise((resolve, reject) => {
fs4.write(fd, buffer, ...args, (err, bytesWritten, buffer2) => {
if (err)
return reject(err);
resolve({bytesWritten, buffer: buffer2});
});
});
};
if (typeof fs4.writev === "function") {
exports2.writev = function(fd, buffers, ...args) {
if (typeof args[args.length - 1] === "function") {
return fs4.writev(fd, buffers, ...args);
}
return new Promise((resolve, reject) => {
fs4.writev(fd, buffers, ...args, (err, bytesWritten, buffers2) => {
if (err)
return reject(err);
resolve({bytesWritten, buffers: buffers2});
});
});
};
}
if (typeof fs4.realpath.native === "function") {
exports2.realpath.native = u(fs4.realpath.native);
}
});
// node_modules/at-least-node/index.js
var require_at_least_node = __commonJS((exports2, module2) => {
module2.exports = (r) => {
const n = process.versions.node.split(".").map((x) => parseInt(x, 10));
r = r.split(".").map((x) => parseInt(x, 10));
return n[0] > r[0] || n[0] === r[0] && (n[1] > r[1] || n[1] === r[1] && n[2] >= r[2]);
};
});
// node_modules/fs-extra/lib/mkdirs/make-dir.js
var require_make_dir = __commonJS((exports2, module2) => {
"use strict";
var fs4 = require_fs();
var path4 = require("path");
var atLeastNode = require_at_least_node();
var useNativeRecursiveOption = atLeastNode("10.12.0");
var checkPath = (pth) => {
if (process.platform === "win32") {
const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path4.parse(pth).root, ""));
if (pathHasInvalidWinCharacters) {
const error = new Error(`Path contains invalid characters: ${pth}`);
error.code = "EINVAL";
throw error;
}
}
};
var processOptions = (options) => {
const defaults = {mode: 511};
if (typeof options === "number")
options = {mode: options};
return {...defaults, ...options};
};
var permissionError = (pth) => {
const error = new Error(`operation not permitted, mkdir '${pth}'`);
error.code = "EPERM";
error.errno = -4048;
error.path = pth;
error.syscall = "mkdir";
return error;
};
module2.exports.makeDir = async (input, options) => {
checkPath(input);
options = processOptions(options);
if (useNativeRecursiveOption) {
const pth = path4.resolve(input);
return fs4.mkdir(pth, {
mode: options.mode,
recursive: true
});
}
const make = async (pth) => {
try {
await fs4.mkdir(pth, options.mode);
} catch (error) {
if (error.code === "EPERM") {
throw error;
}
if (error.code === "ENOENT") {
if (path4.dirname(pth) === pth) {
throw permissionError(pth);
}
if (error.message.includes("null bytes")) {
throw error;
}
await make(path4.dirname(pth));
return make(pth);
}
try {
const stats = await fs4.stat(pth);
if (!stats.isDirectory()) {
throw new Error("The path is not a directory");
}
} catch {
throw error;
}
}
};
return make(path4.resolve(input));
};
module2.exports.makeDirSync = (input, options) => {
checkPath(input);
options = processOptions(options);
if (useNativeRecursiveOption) {
const pth = path4.resolve(input);
return fs4.mkdirSync(pth, {
mode: options.mode,
recursive: true
});
}
const make = (pth) => {
try {
fs4.mkdirSync(pth, options.mode);
} catch (error) {
if (error.code === "EPERM") {
throw error;
}
if (error.code === "ENOENT") {
if (path4.dirname(pth) === pth) {
throw permissionError(pth);
}
if (error.message.includes("null bytes")) {
throw error;
}
make(path4.dirname(pth));
return make(pth);
}
try {
if (!fs4.statSync(pth).isDirectory()) {
throw new Error("The path is not a directory");
}
} catch {
throw error;
}
}
};
return make(path4.resolve(input));
};
});
// node_modules/fs-extra/lib/mkdirs/index.js
var require_mkdirs = __commonJS((exports2, module2) => {
"use strict";
var u = require_universalify().fromPromise;
var {makeDir: _makeDir, makeDirSync} = require_make_dir();
var makeDir = u(_makeDir);
module2.exports = {
mkdirs: makeDir,
mkdirsSync: makeDirSync,
mkdirp: makeDir,
mkdirpSync: makeDirSync,
ensureDir: makeDir,
ensureDirSync: makeDirSync
};
});
// node_modules/fs-extra/lib/util/utimes.js
var require_utimes = __commonJS((exports2, module2) => {
"use strict";
var fs4 = require_graceful_fs();
function utimesMillis(path4, atime, mtime, callback) {
fs4.open(path4, "r+", (err, fd) => {
if (err)
return callback(err);
fs4.futimes(fd, atime, mtime, (futimesErr) => {
fs4.close(fd, (closeErr) => {
if (callback)
callback(futimesErr || closeErr);
});
});
});
}
function utimesMillisSync(path4, atime, mtime) {
const fd = fs4.openSync(path4, "r+");
fs4.futimesSync(fd, atime, mtime);
return fs4.closeSync(fd);
}
module2.exports = {
utimesMillis,
utimesMillisSync
};
});
// node_modules/fs-extra/lib/util/stat.js
var require_stat = __commonJS((exports2, module2) => {
"use strict";
var fs4 = require_fs();
var path4 = require("path");
var util = require("util");
var atLeastNode = require_at_least_node();
var nodeSupportsBigInt = atLeastNode("10.5.0");
var stat = (file) => nodeSupportsBigInt ? fs4.stat(file, {bigint: true}) : fs4.stat(file);
var statSync = (file) => nodeSupportsBigInt ? fs4.statSync(file, {bigint: true}) : fs4.statSync(file);
function getStats(src, dest) {
return Promise.all([
stat(src),
stat(dest).catch((err) => {
if (err.code === "ENOENT")
return null;
throw err;
})
]).then(([srcStat, destStat]) => ({srcStat, destStat}));
}
function getStatsSync(src, dest) {
let destStat;
const srcStat = statSync(src);
try {
destStat = statSync(dest);
} catch (err) {
if (err.code === "ENOENT")
return {srcStat, destStat: null};
throw err;
}
return {srcStat, destStat};
}
function checkPaths(src, dest, funcName, cb) {
util.callbackify(getStats)(src, dest, (err, stats) => {
if (err)
return cb(err);
const {srcStat, destStat} = stats;
if (destStat && areIdentical(srcStat, destStat)) {
return cb(new Error("Source and destination must not be the same."));
}
if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
return cb(new Error(errMsg(src, dest, funcName)));
}
return cb(null, {srcStat, destStat});
});
}
function checkPathsSync(src, dest, funcName) {
const {srcStat, destStat} = getStatsSync(src, dest);
if (destStat && areIdentical(srcStat, destStat)) {
throw new Error("Source and destination must not be the same.");
}
if (srcStat.isDirectory() && isSrcSubdir(src, dest)) {
throw new Error(errMsg(src, dest, funcName));
}
return {srcStat, destStat};
}
function checkParentPaths(src, srcStat, dest, funcName, cb) {
const srcParent = path4.resolve(path4.dirname(src));
const destParent = path4.resolve(path4.dirname(dest));
if (destParent === srcParent || destParent === path4.parse(destParent).root)
return cb();
const callback = (err, destStat) => {
if (err) {
if (err.code === "ENOENT")
return cb();
return cb(err);
}
if (areIdentical(srcStat, destStat)) {
return cb(new Error(errMsg(src, dest, funcName)));
}
return checkParentPaths(src, srcStat, destParent, funcName, cb);
};
if (nodeSupportsBigInt)
fs4.stat(destParent, {bigint: true}, callback);
else
fs4.stat(destParent, callback);
}
function checkParentPathsSync(src, srcStat, dest, funcName) {
const srcParent = path4.resolve(path4.dirname(src));
const destParent = path4.resolve(path4.dirname(dest));
if (destParent === srcParent || destParent === path4.parse(destParent).root)
return;
let destStat;
try {
destStat = statSync(destParent);
} catch (err) {
if (err.code === "ENOENT")
return;
throw err;
}
if (areIdentical(srcStat, destStat)) {
throw new Error(errMsg(src, dest, funcName));
}
return checkParentPathsSync(src, srcStat, destParent, funcName);
}
function areIdentical(srcStat, destStat) {
if (destStat.ino && destStat.dev && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev) {
if (nodeSupportsBigInt || destStat.ino < Number.MAX_SAFE_INTEGER) {
return true;
}
if (destStat.size === srcStat.size && destStat.mode === srcStat.mode && destStat.nlink === srcStat.nlink && destStat.atimeMs === srcStat.atimeMs && destStat.mtimeMs === srcStat.mtimeMs && destStat.ctimeMs === srcStat.ctimeMs && destStat.birthtimeMs === srcStat.birthtimeMs) {
return true;
}
}
return false;
}
function isSrcSubdir(src, dest) {
const srcArr = path4.resolve(src).split(path4.sep).filter((i) => i);
const destArr = path4.resolve(dest).split(path4.sep).filter((i) => i);
return srcArr.reduce((acc, cur, i) => acc && destArr[i] === cur, true);
}
function errMsg(src, dest, funcName) {
return `Cannot ${funcName} '${src}' to a subdirectory of itself, '${dest}'.`;
}
module2.exports = {
checkPaths,
checkPathsSync,
checkParentPaths,
checkParentPathsSync,
isSrcSubdir
};
});
// node_modules/fs-extra/lib/copy-sync/copy-sync.js
var require_copy_sync = __commonJS((exports2, module2) => {
"use strict";
var fs4 = require_graceful_fs();
var path4 = require("path");
var mkdirsSync = require_mkdirs().mkdirsSync;
var utimesMillisSync = require_utimes().utimesMillisSync;
var stat = require_stat();
function copySync(src, dest, opts) {
if (typeof opts === "function") {
opts = {filter: opts};
}
opts = opts || {};
opts.clobber = "clobber" in opts ? !!opts.clobber : true;
opts.overwrite = "overwrite" in opts ? !!opts.overwrite : opts.clobber;
if (opts.preserveTimestamps && process.arch === "ia32") {
console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;
see https://github.com/jprichardson/node-fs-extra/issues/269`);
}
const {srcStat, destStat} = stat.checkPathsSync(src, dest, "copy");
stat.checkParentPathsSync(src, srcStat, dest, "copy");
return handleFilterAndCopy(destStat, src, dest, opts);
}
function handleFilterAndCopy(destStat, src, dest, opts) {
if (opts.filter && !opts.filter(src, dest))
return;
const destParent = path4.dirname(dest);
if (!fs4.existsSync(destParent))
mkdirsSync(destParent);
return startCopy(destStat, src, dest, opts);
}
function startCopy(destStat, src, dest, opts) {
if (opts.filter && !opts.filter(src, dest))
return;
return getStats(destStat, src, dest, opts);
}
function getStats(destStat, src, dest, opts) {
const statSync = opts.dereference ? fs4.statSync : fs4.lstatSync;
const srcStat = statSync(src);
if (srcStat.isDirectory())
return onDir(srcStat, destStat, src, dest, opts);
else if (srcStat.isFile() || srcStat.isCharacterDevice() || srcStat.isBlockDevice())
return onFile(srcStat, destStat, src, dest, opts);
else if (srcStat.isSymbolicLink())
return onLink(destStat, src, dest, opts);
}
function onFile(srcStat, destStat, src, dest, opts) {
if (!destStat)
return copyFile(srcStat, src, dest, opts);
return mayCopyFile(srcStat, src, dest, opts);
}
function mayCopyFile(srcStat, src, dest, opts) {
if (opts.overwrite) {
fs4.unlinkSync(dest);
return copyFile(srcStat, src, dest, opts);
} else if (opts.errorOnExist) {
throw new Error(`'${dest}' already exists`);
}
}
function copyFile(srcStat, src, dest, opts) {
fs4.copyFileSync(src, dest);
if (opts.preserveTimestamps)
handleTimestamps(srcStat.mode, src, dest);
return setDestMode(dest, srcStat.mode);
}
function handleTimestamps(srcMode, src, dest) {
if (fileIsNotWritable(srcMode))
makeFileWritable(dest, srcMode);
return setDestTimestamps(src, dest);
}
function fileIsNotWritable(srcMode) {
return (srcMode & 128) === 0;
}
function makeFileWritable(dest, srcMode) {
return setDestMode(dest, srcMode | 128);
}
function setDestMode(dest, srcMode) {
return fs4.chmodSync(dest, srcMode);
}
function setDestTimestamps(src, dest) {
const updatedSrcStat = fs4.statSync(src);
return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime);
}
function onDir(srcStat, destStat, src, dest, opts) {
if (!destStat)
return mkDirAndCopy(srcStat.mode, src, dest, opts);
if (destStat && !destStat.isDirectory()) {
throw new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`);
}
return copyDir(src, dest, opts);
}
function mkDirAndCopy(srcMode, src, dest, opts) {
fs4.mkdirSync(dest);
copyDir(src, dest, opts);
return setDestMode(dest, srcMode);
}
function copyDir(src, dest, opts) {
fs4.readdirSync(src).forEach((item) => copyDirItem(item, src, dest, opts));
}
function copyDirItem(item, src, dest, opts) {
const srcItem = path4.join(src, item);
const destItem = path4.join(dest, item);
const {destStat} = stat.checkPathsSync(srcItem, destItem, "copy");
return startCopy(destStat, srcItem, destItem, opts);
}
function onLink(destStat, src, dest, opts) {
let resolvedSrc = fs4.readlinkSync(src);
if (opts.dereference) {
resolvedSrc = path4.resolve(process.cwd(), resolvedSrc);
}
if (!destStat) {
return fs4.symlinkSync(resolvedSrc, dest);
} else {
let resolvedDest;
try {
resolvedDest = fs4.readlinkSync(dest);
} catch (err) {
if (err.code === "EINVAL" || err.code === "UNKNOWN")
return fs4.symlinkSync(resolvedSrc, dest);
throw err;
}
if (opts.dereference) {
resolvedDest = path4.resolve(process.cwd(), resolvedDest);
}
if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {
throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`);
}
if (fs4.statSync(dest).isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) {
throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`);
}
return copyLink(resolvedSrc, dest);
}
}
function copyLink(resolvedSrc, dest) {
fs4.unlinkSync(dest);
return fs4.symlinkSync(resolvedSrc, dest);
}
module2.exports = copySync;
});
// node_modules/fs-extra/lib/copy-sync/index.js
var require_copy_sync2 = __commonJS((exports2, module2) => {
"use strict";
module2.exports = {
copySync: require_copy_sync()
};
});
// node_modules/fs-extra/lib/path-exists/index.js
var require_path_exists = __commonJS((exports2, module2) => {
"use strict";
var u = require_universalify().fromPromise;
var fs4 = require_fs();
function pathExists(path4) {
return fs4.access(path4).then(() => true).catch(() => false);
}
module2.exports = {
pathExists: u(pathExists),
pathExistsSync: fs4.existsSync
};
});
// node_modules/fs-extra/lib/copy/copy.js
var require_copy = __commonJS((exports2, module2) => {
"use strict";
var fs4 = require_graceful_fs();
var path4 = require("path");
var mkdirs = require_mkdirs().mkdirs;
var pathExists = require_path_exists().pathExists;
var utimesMillis = require_utimes().utimesMillis;
var stat = require_stat();
function copy(src, dest, opts, cb) {
if (typeof opts === "function" && !cb) {
cb = opts;
opts = {};
} else if (typeof opts === "function") {
opts = {filter: opts};
}
cb = cb || function() {
};
opts = opts || {};
opts.clobber = "clobber" in opts ? !!opts.clobber : true;
opts.overwrite = "overwrite" in opts ? !!opts.overwrite : opts.clobber;
if (opts.preserveTimestamps && process.arch === "ia32") {
console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;
see https://github.com/jprichardson/node-fs-extra/issues/269`);
}
stat.checkPaths(src, dest, "copy", (err, stats) => {
if (err)
return cb(err);
const {srcStat, destStat} = stats;
stat.checkParentPaths(src, srcStat, dest, "copy", (err2) => {
if (err2)
return cb(err2);
if (opts.filter)
return handleFilter(checkParentDir, destStat, src, dest, opts, cb);
return checkParentDir(destStat, src, dest, opts, cb);
});
});
}
function checkParentDir(destStat, src, dest, opts, cb) {
const destParent = path4.dirname(dest);
pathExists(destParent, (err, dirExists) => {
if (err)
return cb(err);
if (dirExists)
return startCopy(destStat, src, dest, opts, cb);
mkdirs(destParent, (err2) => {
if (err2)
return cb(err2);
return startCopy(destStat, src, dest, opts, cb);
});
});
}
function handleFilter(onInclude, destStat, src, dest, opts, cb) {
Promise.resolve(opts.filter(src, dest)).then((include) => {
if (include)
return onInclude(destStat, src, dest, opts, cb);
return cb();
}, (error) => cb(error));
}
function startCopy(destStat, src, dest, opts, cb) {
if (opts.filter)
return handleFilter(getStats, destStat, src, dest, opts, cb);
return getStats(destStat, src, dest, opts, cb);
}
function getStats(destStat, src, dest, opts, cb) {
const stat2 = opts.dereference ? fs4.stat : fs4.lstat;
stat2(src, (err, srcStat) => {
if (err)
return cb(err);
if (srcStat.isDirectory())
return onDir(srcStat, destStat, src, dest, opts, cb);
else if (srcStat.isFile() || srcStat.isCharacterDevice() || srcStat.isBlockDevice())
return onFile(srcStat, destStat, src, dest, opts, cb);
else if (srcStat.isSymbolicLink())
return onLink(destStat, src, dest, opts, cb);
});
}
function onFile(srcStat, destStat, src, dest, opts, cb) {
if (!destStat)
return copyFile(srcStat, src, dest, opts, cb);
return mayCopyFile(srcStat, src, dest, opts, cb);
}
function mayCopyFile(srcStat, src, dest, opts, cb) {
if (opts.overwrite) {
fs4.unlink(dest, (err) => {
if (err)
return cb(err);
return copyFile(srcStat, src, dest, opts, cb);
});
} else if (opts.errorOnExist) {
return cb(new Error(`'${dest}' already exists`));
} else
return cb();
}
function copyFile(srcStat, src, dest, opts, cb) {
fs4.copyFile(src, dest, (err) => {
if (err)
return cb(err);
if (opts.preserveTimestamps)
return handleTimestampsAndMode(srcStat.mode, src, dest, cb);
return setDestMode(dest, srcStat.mode, cb);
});
}
function handleTimestampsAndMode(srcMode, src, dest, cb) {
if (fileIsNotWritable(srcMode)) {
return makeFileWritable(dest, srcMode, (err) => {
if (err)
return cb(err);
return setDestTimestampsAndMode(srcMode, src, dest, cb);
});
}
return setDestTimestampsAndMode(srcMode, src, dest, cb);
}
function fileIsNotWritable(srcMode) {
return (srcMode & 128) === 0;
}
function makeFileWritable(dest, srcMode, cb) {
return setDestMode(dest, srcMode | 128, cb);
}
function setDestTimestampsAndMode(srcMode, src, dest, cb) {
setDestTimestamps(src, dest, (err) => {
if (err)
return cb(err);
return setDestMode(dest, srcMode, cb);
});
}
function setDestMode(dest, srcMode, cb) {
return fs4.chmod(dest, srcMode, cb);
}
function setDestTimestamps(src, dest, cb) {
fs4.stat(src, (err, updatedSrcStat) => {
if (err)
return cb(err);
return utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime, cb);
});
}
function onDir(srcStat, destStat, src, dest, opts, cb) {
if (!destStat)
return mkDirAndCopy(srcStat.mode, src, dest, opts, cb);
if (destStat && !destStat.isDirectory()) {
return cb(new Error(`Cannot overwrite non-directory '${dest}' with directory '${src}'.`));
}
return copyDir(src, dest, opts, cb);
}
function mkDirAndCopy(srcMode, src, dest, opts, cb) {
fs4.mkdir(dest, (err) => {
if (err)
return cb(err);
copyDir(src, dest, opts, (err2) => {
if (err2)
return cb(err2);
return setDestMode(dest, srcMode, cb);
});
});
}
function copyDir(src, dest, opts, cb) {
fs4.readdir(src, (err, items) => {
if (err)
return cb(err);
return copyDirItems(items, src, dest, opts, cb);
});
}
function copyDirItems(items, src, dest, opts, cb) {
const item = items.pop();
if (!item)
return cb();
return copyDirItem(items, item, src, dest, opts, cb);
}
function copyDirItem(items, item, src, dest, opts, cb) {
const srcItem = path4.join(src, item);
const destItem = path4.join(dest, item);
stat.checkPaths(srcItem, destItem, "copy", (err, stats) => {
if (err)
return cb(err);
const {destStat} = stats;
startCopy(destStat, srcItem, destItem, opts, (err2) => {
if (err2)
return cb(err2);
return copyDirItems(items, src, dest, opts, cb);
});
});
}
function onLink(destStat, src, dest, opts, cb) {
fs4.readlink(src, (err, resolvedSrc) => {
if (err)
return cb(err);
if (opts.dereference) {
resolvedSrc = path4.resolve(process.cwd(), resolvedSrc);
}
if (!destStat) {
return fs4.symlink(resolvedSrc, dest, cb);
} else {
fs4.readlink(dest, (err2, resolvedDest) => {
if (err2) {
if (err2.code === "EINVAL" || err2.code === "UNKNOWN")
return fs4.symlink(resolvedSrc, dest, cb);
return cb(err2);
}
if (opts.dereference) {
resolvedDest = path4.resolve(process.cwd(), resolvedDest);
}
if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {
return cb(new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`));
}
if (destStat.isDirectory() && stat.isSrcSubdir(resolvedDest, resolvedSrc)) {
return cb(new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`));
}
return copyLink(resolvedSrc, dest, cb);
});
}
});
}
function copyLink(resolvedSrc, dest, cb) {
fs4.unlink(dest, (err) => {
if (err)
return cb(err);
return fs4.symlink(resolvedSrc, dest, cb);
});
}
module2.exports = copy;
});
// node_modules/fs-extra/lib/copy/index.js
var require_copy2 = __commonJS((exports2, module2) => {
"use strict";
var u = require_universalify().fromCallback;
module2.exports = {
copy: u(require_copy())
};
});
// node_modules/fs-extra/lib/remove/rimraf.js
var require_rimraf = __commonJS((exports2, module2) => {
"use strict";