create-nextly-app 0.0.2-alpha.2 → 0.0.2-alpha.20
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/{chunk-AYJ2RKVJ.mjs → chunk-6HFD2Q2U.mjs} +1021 -904
- package/dist/chunk-6HFD2Q2U.mjs.map +1 -0
- package/dist/cli.cjs +1040 -925
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +24 -27
- package/dist/cli.mjs.map +1 -1
- package/dist/index.cjs +1058 -939
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +4 -4
- package/templates/base/next.config.ts +11 -17
- package/templates/base/src/app/admin/[[...params]]/page.tsx +0 -9
- package/dist/chunk-AYJ2RKVJ.mjs.map +0 -1
package/dist/cli.cjs
CHANGED
|
@@ -1254,8 +1254,8 @@ var require_command = __commonJS({
|
|
|
1254
1254
|
"../../node_modules/.pnpm/commander@14.0.2/node_modules/commander/lib/command.js"(exports$1) {
|
|
1255
1255
|
var EventEmitter2 = __require("events").EventEmitter;
|
|
1256
1256
|
var childProcess = __require("child_process");
|
|
1257
|
-
var
|
|
1258
|
-
var
|
|
1257
|
+
var path21 = __require("path");
|
|
1258
|
+
var fs16 = __require("fs");
|
|
1259
1259
|
var process11 = __require("process");
|
|
1260
1260
|
var { Argument: Argument2, humanReadableArgName } = require_argument();
|
|
1261
1261
|
var { CommanderError: CommanderError2 } = require_error();
|
|
@@ -2248,7 +2248,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
2248
2248
|
* @param {string} subcommandName
|
|
2249
2249
|
*/
|
|
2250
2250
|
_checkForMissingExecutable(executableFile, executableDir, subcommandName) {
|
|
2251
|
-
if (
|
|
2251
|
+
if (fs16.existsSync(executableFile)) return;
|
|
2252
2252
|
const executableDirMessage = executableDir ? `searched for local subcommand relative to directory '${executableDir}'` : "no directory for search for local subcommand, use .executableDir() to supply a custom directory";
|
|
2253
2253
|
const executableMissing = `'${executableFile}' does not exist
|
|
2254
2254
|
- if '${subcommandName}' is not meant to be an executable command, remove description parameter from '.command()' and use '.description()' instead
|
|
@@ -2266,11 +2266,11 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
2266
2266
|
let launchWithNode = false;
|
|
2267
2267
|
const sourceExt = [".js", ".ts", ".tsx", ".mjs", ".cjs"];
|
|
2268
2268
|
function findFile(baseDir, baseName) {
|
|
2269
|
-
const localBin =
|
|
2270
|
-
if (
|
|
2271
|
-
if (sourceExt.includes(
|
|
2269
|
+
const localBin = path21.resolve(baseDir, baseName);
|
|
2270
|
+
if (fs16.existsSync(localBin)) return localBin;
|
|
2271
|
+
if (sourceExt.includes(path21.extname(baseName))) return void 0;
|
|
2272
2272
|
const foundExt = sourceExt.find(
|
|
2273
|
-
(ext) =>
|
|
2273
|
+
(ext) => fs16.existsSync(`${localBin}${ext}`)
|
|
2274
2274
|
);
|
|
2275
2275
|
if (foundExt) return `${localBin}${foundExt}`;
|
|
2276
2276
|
return void 0;
|
|
@@ -2282,21 +2282,21 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
2282
2282
|
if (this._scriptPath) {
|
|
2283
2283
|
let resolvedScriptPath;
|
|
2284
2284
|
try {
|
|
2285
|
-
resolvedScriptPath =
|
|
2285
|
+
resolvedScriptPath = fs16.realpathSync(this._scriptPath);
|
|
2286
2286
|
} catch {
|
|
2287
2287
|
resolvedScriptPath = this._scriptPath;
|
|
2288
2288
|
}
|
|
2289
|
-
executableDir =
|
|
2290
|
-
|
|
2289
|
+
executableDir = path21.resolve(
|
|
2290
|
+
path21.dirname(resolvedScriptPath),
|
|
2291
2291
|
executableDir
|
|
2292
2292
|
);
|
|
2293
2293
|
}
|
|
2294
2294
|
if (executableDir) {
|
|
2295
2295
|
let localFile = findFile(executableDir, executableFile);
|
|
2296
2296
|
if (!localFile && !subcommand._executableFile && this._scriptPath) {
|
|
2297
|
-
const legacyName =
|
|
2297
|
+
const legacyName = path21.basename(
|
|
2298
2298
|
this._scriptPath,
|
|
2299
|
-
|
|
2299
|
+
path21.extname(this._scriptPath)
|
|
2300
2300
|
);
|
|
2301
2301
|
if (legacyName !== this._name) {
|
|
2302
2302
|
localFile = findFile(
|
|
@@ -2307,7 +2307,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
2307
2307
|
}
|
|
2308
2308
|
executableFile = localFile || executableFile;
|
|
2309
2309
|
}
|
|
2310
|
-
launchWithNode = sourceExt.includes(
|
|
2310
|
+
launchWithNode = sourceExt.includes(path21.extname(executableFile));
|
|
2311
2311
|
let proc;
|
|
2312
2312
|
if (process11.platform !== "win32") {
|
|
2313
2313
|
if (launchWithNode) {
|
|
@@ -3222,7 +3222,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
3222
3222
|
* @return {Command}
|
|
3223
3223
|
*/
|
|
3224
3224
|
nameFromFilename(filename) {
|
|
3225
|
-
this._name =
|
|
3225
|
+
this._name = path21.basename(filename, path21.extname(filename));
|
|
3226
3226
|
return this;
|
|
3227
3227
|
}
|
|
3228
3228
|
/**
|
|
@@ -3236,9 +3236,9 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
3236
3236
|
* @param {string} [path]
|
|
3237
3237
|
* @return {(string|null|Command)}
|
|
3238
3238
|
*/
|
|
3239
|
-
executableDir(
|
|
3240
|
-
if (
|
|
3241
|
-
this._executableDir =
|
|
3239
|
+
executableDir(path22) {
|
|
3240
|
+
if (path22 === void 0) return this._executableDir;
|
|
3241
|
+
this._executableDir = path22;
|
|
3242
3242
|
return this;
|
|
3243
3243
|
}
|
|
3244
3244
|
/**
|
|
@@ -3624,54 +3624,54 @@ var require_polyfills = __commonJS({
|
|
|
3624
3624
|
}
|
|
3625
3625
|
var chdir;
|
|
3626
3626
|
module.exports = patch;
|
|
3627
|
-
function patch(
|
|
3627
|
+
function patch(fs16) {
|
|
3628
3628
|
if (constants4.hasOwnProperty("O_SYMLINK") && process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)) {
|
|
3629
|
-
patchLchmod(
|
|
3630
|
-
}
|
|
3631
|
-
if (!
|
|
3632
|
-
patchLutimes(
|
|
3633
|
-
}
|
|
3634
|
-
|
|
3635
|
-
|
|
3636
|
-
|
|
3637
|
-
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
|
|
3641
|
-
|
|
3642
|
-
|
|
3643
|
-
|
|
3644
|
-
|
|
3645
|
-
|
|
3646
|
-
|
|
3647
|
-
|
|
3648
|
-
|
|
3649
|
-
|
|
3650
|
-
|
|
3651
|
-
|
|
3652
|
-
if (
|
|
3653
|
-
|
|
3629
|
+
patchLchmod(fs16);
|
|
3630
|
+
}
|
|
3631
|
+
if (!fs16.lutimes) {
|
|
3632
|
+
patchLutimes(fs16);
|
|
3633
|
+
}
|
|
3634
|
+
fs16.chown = chownFix(fs16.chown);
|
|
3635
|
+
fs16.fchown = chownFix(fs16.fchown);
|
|
3636
|
+
fs16.lchown = chownFix(fs16.lchown);
|
|
3637
|
+
fs16.chmod = chmodFix(fs16.chmod);
|
|
3638
|
+
fs16.fchmod = chmodFix(fs16.fchmod);
|
|
3639
|
+
fs16.lchmod = chmodFix(fs16.lchmod);
|
|
3640
|
+
fs16.chownSync = chownFixSync(fs16.chownSync);
|
|
3641
|
+
fs16.fchownSync = chownFixSync(fs16.fchownSync);
|
|
3642
|
+
fs16.lchownSync = chownFixSync(fs16.lchownSync);
|
|
3643
|
+
fs16.chmodSync = chmodFixSync(fs16.chmodSync);
|
|
3644
|
+
fs16.fchmodSync = chmodFixSync(fs16.fchmodSync);
|
|
3645
|
+
fs16.lchmodSync = chmodFixSync(fs16.lchmodSync);
|
|
3646
|
+
fs16.stat = statFix(fs16.stat);
|
|
3647
|
+
fs16.fstat = statFix(fs16.fstat);
|
|
3648
|
+
fs16.lstat = statFix(fs16.lstat);
|
|
3649
|
+
fs16.statSync = statFixSync(fs16.statSync);
|
|
3650
|
+
fs16.fstatSync = statFixSync(fs16.fstatSync);
|
|
3651
|
+
fs16.lstatSync = statFixSync(fs16.lstatSync);
|
|
3652
|
+
if (fs16.chmod && !fs16.lchmod) {
|
|
3653
|
+
fs16.lchmod = function(path21, mode, cb) {
|
|
3654
3654
|
if (cb) process.nextTick(cb);
|
|
3655
3655
|
};
|
|
3656
|
-
|
|
3656
|
+
fs16.lchmodSync = function() {
|
|
3657
3657
|
};
|
|
3658
3658
|
}
|
|
3659
|
-
if (
|
|
3660
|
-
|
|
3659
|
+
if (fs16.chown && !fs16.lchown) {
|
|
3660
|
+
fs16.lchown = function(path21, uid, gid, cb) {
|
|
3661
3661
|
if (cb) process.nextTick(cb);
|
|
3662
3662
|
};
|
|
3663
|
-
|
|
3663
|
+
fs16.lchownSync = function() {
|
|
3664
3664
|
};
|
|
3665
3665
|
}
|
|
3666
3666
|
if (platform3 === "win32") {
|
|
3667
|
-
|
|
3667
|
+
fs16.rename = typeof fs16.rename !== "function" ? fs16.rename : (function(fs$rename) {
|
|
3668
3668
|
function rename(from, to2, cb) {
|
|
3669
3669
|
var start = Date.now();
|
|
3670
3670
|
var backoff = 0;
|
|
3671
3671
|
fs$rename(from, to2, function CB(er2) {
|
|
3672
3672
|
if (er2 && (er2.code === "EACCES" || er2.code === "EPERM" || er2.code === "EBUSY") && Date.now() - start < 6e4) {
|
|
3673
3673
|
setTimeout(function() {
|
|
3674
|
-
|
|
3674
|
+
fs16.stat(to2, function(stater, st3) {
|
|
3675
3675
|
if (stater && stater.code === "ENOENT")
|
|
3676
3676
|
fs$rename(from, to2, CB);
|
|
3677
3677
|
else
|
|
@@ -3687,9 +3687,9 @@ var require_polyfills = __commonJS({
|
|
|
3687
3687
|
}
|
|
3688
3688
|
if (Object.setPrototypeOf) Object.setPrototypeOf(rename, fs$rename);
|
|
3689
3689
|
return rename;
|
|
3690
|
-
})(
|
|
3690
|
+
})(fs16.rename);
|
|
3691
3691
|
}
|
|
3692
|
-
|
|
3692
|
+
fs16.read = typeof fs16.read !== "function" ? fs16.read : (function(fs$read) {
|
|
3693
3693
|
function read(fd, buffer, offset, length, position, callback_) {
|
|
3694
3694
|
var callback;
|
|
3695
3695
|
if (callback_ && typeof callback_ === "function") {
|
|
@@ -3697,22 +3697,22 @@ var require_polyfills = __commonJS({
|
|
|
3697
3697
|
callback = function(er2, _3, __) {
|
|
3698
3698
|
if (er2 && er2.code === "EAGAIN" && eagCounter < 10) {
|
|
3699
3699
|
eagCounter++;
|
|
3700
|
-
return fs$read.call(
|
|
3700
|
+
return fs$read.call(fs16, fd, buffer, offset, length, position, callback);
|
|
3701
3701
|
}
|
|
3702
3702
|
callback_.apply(this, arguments);
|
|
3703
3703
|
};
|
|
3704
3704
|
}
|
|
3705
|
-
return fs$read.call(
|
|
3705
|
+
return fs$read.call(fs16, fd, buffer, offset, length, position, callback);
|
|
3706
3706
|
}
|
|
3707
3707
|
if (Object.setPrototypeOf) Object.setPrototypeOf(read, fs$read);
|
|
3708
3708
|
return read;
|
|
3709
|
-
})(
|
|
3710
|
-
|
|
3709
|
+
})(fs16.read);
|
|
3710
|
+
fs16.readSync = typeof fs16.readSync !== "function" ? fs16.readSync : /* @__PURE__ */ (function(fs$readSync) {
|
|
3711
3711
|
return function(fd, buffer, offset, length, position) {
|
|
3712
3712
|
var eagCounter = 0;
|
|
3713
3713
|
while (true) {
|
|
3714
3714
|
try {
|
|
3715
|
-
return fs$readSync.call(
|
|
3715
|
+
return fs$readSync.call(fs16, fd, buffer, offset, length, position);
|
|
3716
3716
|
} catch (er2) {
|
|
3717
3717
|
if (er2.code === "EAGAIN" && eagCounter < 10) {
|
|
3718
3718
|
eagCounter++;
|
|
@@ -3722,11 +3722,11 @@ var require_polyfills = __commonJS({
|
|
|
3722
3722
|
}
|
|
3723
3723
|
}
|
|
3724
3724
|
};
|
|
3725
|
-
})(
|
|
3726
|
-
function patchLchmod(
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
|
|
3725
|
+
})(fs16.readSync);
|
|
3726
|
+
function patchLchmod(fs17) {
|
|
3727
|
+
fs17.lchmod = function(path21, mode, callback) {
|
|
3728
|
+
fs17.open(
|
|
3729
|
+
path21,
|
|
3730
3730
|
constants4.O_WRONLY | constants4.O_SYMLINK,
|
|
3731
3731
|
mode,
|
|
3732
3732
|
function(err, fd) {
|
|
@@ -3734,80 +3734,80 @@ var require_polyfills = __commonJS({
|
|
|
3734
3734
|
if (callback) callback(err);
|
|
3735
3735
|
return;
|
|
3736
3736
|
}
|
|
3737
|
-
|
|
3738
|
-
|
|
3737
|
+
fs17.fchmod(fd, mode, function(err2) {
|
|
3738
|
+
fs17.close(fd, function(err22) {
|
|
3739
3739
|
if (callback) callback(err2 || err22);
|
|
3740
3740
|
});
|
|
3741
3741
|
});
|
|
3742
3742
|
}
|
|
3743
3743
|
);
|
|
3744
3744
|
};
|
|
3745
|
-
|
|
3746
|
-
var fd =
|
|
3745
|
+
fs17.lchmodSync = function(path21, mode) {
|
|
3746
|
+
var fd = fs17.openSync(path21, constants4.O_WRONLY | constants4.O_SYMLINK, mode);
|
|
3747
3747
|
var threw = true;
|
|
3748
3748
|
var ret;
|
|
3749
3749
|
try {
|
|
3750
|
-
ret =
|
|
3750
|
+
ret = fs17.fchmodSync(fd, mode);
|
|
3751
3751
|
threw = false;
|
|
3752
3752
|
} finally {
|
|
3753
3753
|
if (threw) {
|
|
3754
3754
|
try {
|
|
3755
|
-
|
|
3755
|
+
fs17.closeSync(fd);
|
|
3756
3756
|
} catch (er2) {
|
|
3757
3757
|
}
|
|
3758
3758
|
} else {
|
|
3759
|
-
|
|
3759
|
+
fs17.closeSync(fd);
|
|
3760
3760
|
}
|
|
3761
3761
|
}
|
|
3762
3762
|
return ret;
|
|
3763
3763
|
};
|
|
3764
3764
|
}
|
|
3765
|
-
function patchLutimes(
|
|
3766
|
-
if (constants4.hasOwnProperty("O_SYMLINK") &&
|
|
3767
|
-
|
|
3768
|
-
|
|
3765
|
+
function patchLutimes(fs17) {
|
|
3766
|
+
if (constants4.hasOwnProperty("O_SYMLINK") && fs17.futimes) {
|
|
3767
|
+
fs17.lutimes = function(path21, at3, mt4, cb) {
|
|
3768
|
+
fs17.open(path21, constants4.O_SYMLINK, function(er2, fd) {
|
|
3769
3769
|
if (er2) {
|
|
3770
3770
|
if (cb) cb(er2);
|
|
3771
3771
|
return;
|
|
3772
3772
|
}
|
|
3773
|
-
|
|
3774
|
-
|
|
3773
|
+
fs17.futimes(fd, at3, mt4, function(er3) {
|
|
3774
|
+
fs17.close(fd, function(er22) {
|
|
3775
3775
|
if (cb) cb(er3 || er22);
|
|
3776
3776
|
});
|
|
3777
3777
|
});
|
|
3778
3778
|
});
|
|
3779
3779
|
};
|
|
3780
|
-
|
|
3781
|
-
var fd =
|
|
3780
|
+
fs17.lutimesSync = function(path21, at3, mt4) {
|
|
3781
|
+
var fd = fs17.openSync(path21, constants4.O_SYMLINK);
|
|
3782
3782
|
var ret;
|
|
3783
3783
|
var threw = true;
|
|
3784
3784
|
try {
|
|
3785
|
-
ret =
|
|
3785
|
+
ret = fs17.futimesSync(fd, at3, mt4);
|
|
3786
3786
|
threw = false;
|
|
3787
3787
|
} finally {
|
|
3788
3788
|
if (threw) {
|
|
3789
3789
|
try {
|
|
3790
|
-
|
|
3790
|
+
fs17.closeSync(fd);
|
|
3791
3791
|
} catch (er2) {
|
|
3792
3792
|
}
|
|
3793
3793
|
} else {
|
|
3794
|
-
|
|
3794
|
+
fs17.closeSync(fd);
|
|
3795
3795
|
}
|
|
3796
3796
|
}
|
|
3797
3797
|
return ret;
|
|
3798
3798
|
};
|
|
3799
|
-
} else if (
|
|
3800
|
-
|
|
3799
|
+
} else if (fs17.futimes) {
|
|
3800
|
+
fs17.lutimes = function(_a, _b, _c, cb) {
|
|
3801
3801
|
if (cb) process.nextTick(cb);
|
|
3802
3802
|
};
|
|
3803
|
-
|
|
3803
|
+
fs17.lutimesSync = function() {
|
|
3804
3804
|
};
|
|
3805
3805
|
}
|
|
3806
3806
|
}
|
|
3807
3807
|
function chmodFix(orig) {
|
|
3808
3808
|
if (!orig) return orig;
|
|
3809
3809
|
return function(target, mode, cb) {
|
|
3810
|
-
return orig.call(
|
|
3810
|
+
return orig.call(fs16, target, mode, function(er2) {
|
|
3811
3811
|
if (chownErOk(er2)) er2 = null;
|
|
3812
3812
|
if (cb) cb.apply(this, arguments);
|
|
3813
3813
|
});
|
|
@@ -3817,7 +3817,7 @@ var require_polyfills = __commonJS({
|
|
|
3817
3817
|
if (!orig) return orig;
|
|
3818
3818
|
return function(target, mode) {
|
|
3819
3819
|
try {
|
|
3820
|
-
return orig.call(
|
|
3820
|
+
return orig.call(fs16, target, mode);
|
|
3821
3821
|
} catch (er2) {
|
|
3822
3822
|
if (!chownErOk(er2)) throw er2;
|
|
3823
3823
|
}
|
|
@@ -3826,7 +3826,7 @@ var require_polyfills = __commonJS({
|
|
|
3826
3826
|
function chownFix(orig) {
|
|
3827
3827
|
if (!orig) return orig;
|
|
3828
3828
|
return function(target, uid, gid, cb) {
|
|
3829
|
-
return orig.call(
|
|
3829
|
+
return orig.call(fs16, target, uid, gid, function(er2) {
|
|
3830
3830
|
if (chownErOk(er2)) er2 = null;
|
|
3831
3831
|
if (cb) cb.apply(this, arguments);
|
|
3832
3832
|
});
|
|
@@ -3836,7 +3836,7 @@ var require_polyfills = __commonJS({
|
|
|
3836
3836
|
if (!orig) return orig;
|
|
3837
3837
|
return function(target, uid, gid) {
|
|
3838
3838
|
try {
|
|
3839
|
-
return orig.call(
|
|
3839
|
+
return orig.call(fs16, target, uid, gid);
|
|
3840
3840
|
} catch (er2) {
|
|
3841
3841
|
if (!chownErOk(er2)) throw er2;
|
|
3842
3842
|
}
|
|
@@ -3856,13 +3856,13 @@ var require_polyfills = __commonJS({
|
|
|
3856
3856
|
}
|
|
3857
3857
|
if (cb) cb.apply(this, arguments);
|
|
3858
3858
|
}
|
|
3859
|
-
return options ? orig.call(
|
|
3859
|
+
return options ? orig.call(fs16, target, options, callback) : orig.call(fs16, target, callback);
|
|
3860
3860
|
};
|
|
3861
3861
|
}
|
|
3862
3862
|
function statFixSync(orig) {
|
|
3863
3863
|
if (!orig) return orig;
|
|
3864
3864
|
return function(target, options) {
|
|
3865
|
-
var stats = options ? orig.call(
|
|
3865
|
+
var stats = options ? orig.call(fs16, target, options) : orig.call(fs16, target);
|
|
3866
3866
|
if (stats) {
|
|
3867
3867
|
if (stats.uid < 0) stats.uid += 4294967296;
|
|
3868
3868
|
if (stats.gid < 0) stats.gid += 4294967296;
|
|
@@ -3891,16 +3891,16 @@ var require_legacy_streams = __commonJS({
|
|
|
3891
3891
|
"../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/legacy-streams.js"(exports$1, module) {
|
|
3892
3892
|
var Stream = __require("stream").Stream;
|
|
3893
3893
|
module.exports = legacy;
|
|
3894
|
-
function legacy(
|
|
3894
|
+
function legacy(fs16) {
|
|
3895
3895
|
return {
|
|
3896
3896
|
ReadStream,
|
|
3897
3897
|
WriteStream
|
|
3898
3898
|
};
|
|
3899
|
-
function ReadStream(
|
|
3900
|
-
if (!(this instanceof ReadStream)) return new ReadStream(
|
|
3899
|
+
function ReadStream(path21, options) {
|
|
3900
|
+
if (!(this instanceof ReadStream)) return new ReadStream(path21, options);
|
|
3901
3901
|
Stream.call(this);
|
|
3902
3902
|
var self = this;
|
|
3903
|
-
this.path =
|
|
3903
|
+
this.path = path21;
|
|
3904
3904
|
this.fd = null;
|
|
3905
3905
|
this.readable = true;
|
|
3906
3906
|
this.paused = false;
|
|
@@ -3934,7 +3934,7 @@ var require_legacy_streams = __commonJS({
|
|
|
3934
3934
|
});
|
|
3935
3935
|
return;
|
|
3936
3936
|
}
|
|
3937
|
-
|
|
3937
|
+
fs16.open(this.path, this.flags, this.mode, function(err, fd) {
|
|
3938
3938
|
if (err) {
|
|
3939
3939
|
self.emit("error", err);
|
|
3940
3940
|
self.readable = false;
|
|
@@ -3945,10 +3945,10 @@ var require_legacy_streams = __commonJS({
|
|
|
3945
3945
|
self._read();
|
|
3946
3946
|
});
|
|
3947
3947
|
}
|
|
3948
|
-
function WriteStream(
|
|
3949
|
-
if (!(this instanceof WriteStream)) return new WriteStream(
|
|
3948
|
+
function WriteStream(path21, options) {
|
|
3949
|
+
if (!(this instanceof WriteStream)) return new WriteStream(path21, options);
|
|
3950
3950
|
Stream.call(this);
|
|
3951
|
-
this.path =
|
|
3951
|
+
this.path = path21;
|
|
3952
3952
|
this.fd = null;
|
|
3953
3953
|
this.writable = true;
|
|
3954
3954
|
this.flags = "w";
|
|
@@ -3973,7 +3973,7 @@ var require_legacy_streams = __commonJS({
|
|
|
3973
3973
|
this.busy = false;
|
|
3974
3974
|
this._queue = [];
|
|
3975
3975
|
if (this.fd === null) {
|
|
3976
|
-
this._open =
|
|
3976
|
+
this._open = fs16.open;
|
|
3977
3977
|
this._queue.push([this._open, this.path, this.flags, this.mode, void 0]);
|
|
3978
3978
|
this.flush();
|
|
3979
3979
|
}
|
|
@@ -4007,7 +4007,7 @@ var require_clone = __commonJS({
|
|
|
4007
4007
|
// ../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/graceful-fs.js
|
|
4008
4008
|
var require_graceful_fs = __commonJS({
|
|
4009
4009
|
"../../node_modules/.pnpm/graceful-fs@4.2.11/node_modules/graceful-fs/graceful-fs.js"(exports$1, module) {
|
|
4010
|
-
var
|
|
4010
|
+
var fs16 = __require("fs");
|
|
4011
4011
|
var polyfills = require_polyfills();
|
|
4012
4012
|
var legacy = require_legacy_streams();
|
|
4013
4013
|
var clone = require_clone();
|
|
@@ -4039,12 +4039,12 @@ var require_graceful_fs = __commonJS({
|
|
|
4039
4039
|
m2 = "GFS4: " + m2.split(/\n/).join("\nGFS4: ");
|
|
4040
4040
|
console.error(m2);
|
|
4041
4041
|
};
|
|
4042
|
-
if (!
|
|
4042
|
+
if (!fs16[gracefulQueue]) {
|
|
4043
4043
|
queue = global[gracefulQueue] || [];
|
|
4044
|
-
publishQueue(
|
|
4045
|
-
|
|
4044
|
+
publishQueue(fs16, queue);
|
|
4045
|
+
fs16.close = (function(fs$close) {
|
|
4046
4046
|
function close(fd, cb) {
|
|
4047
|
-
return fs$close.call(
|
|
4047
|
+
return fs$close.call(fs16, fd, function(err) {
|
|
4048
4048
|
if (!err) {
|
|
4049
4049
|
resetQueue();
|
|
4050
4050
|
}
|
|
@@ -4056,48 +4056,48 @@ var require_graceful_fs = __commonJS({
|
|
|
4056
4056
|
value: fs$close
|
|
4057
4057
|
});
|
|
4058
4058
|
return close;
|
|
4059
|
-
})(
|
|
4060
|
-
|
|
4059
|
+
})(fs16.close);
|
|
4060
|
+
fs16.closeSync = (function(fs$closeSync) {
|
|
4061
4061
|
function closeSync(fd) {
|
|
4062
|
-
fs$closeSync.apply(
|
|
4062
|
+
fs$closeSync.apply(fs16, arguments);
|
|
4063
4063
|
resetQueue();
|
|
4064
4064
|
}
|
|
4065
4065
|
Object.defineProperty(closeSync, previousSymbol, {
|
|
4066
4066
|
value: fs$closeSync
|
|
4067
4067
|
});
|
|
4068
4068
|
return closeSync;
|
|
4069
|
-
})(
|
|
4069
|
+
})(fs16.closeSync);
|
|
4070
4070
|
if (/\bgfs4\b/i.test(process.env.NODE_DEBUG || "")) {
|
|
4071
4071
|
process.on("exit", function() {
|
|
4072
|
-
debug(
|
|
4073
|
-
__require("assert").equal(
|
|
4072
|
+
debug(fs16[gracefulQueue]);
|
|
4073
|
+
__require("assert").equal(fs16[gracefulQueue].length, 0);
|
|
4074
4074
|
});
|
|
4075
4075
|
}
|
|
4076
4076
|
}
|
|
4077
4077
|
var queue;
|
|
4078
4078
|
if (!global[gracefulQueue]) {
|
|
4079
|
-
publishQueue(global,
|
|
4080
|
-
}
|
|
4081
|
-
module.exports = patch(clone(
|
|
4082
|
-
if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !
|
|
4083
|
-
module.exports = patch(
|
|
4084
|
-
|
|
4085
|
-
}
|
|
4086
|
-
function patch(
|
|
4087
|
-
polyfills(
|
|
4088
|
-
|
|
4089
|
-
|
|
4090
|
-
|
|
4091
|
-
var fs$readFile =
|
|
4092
|
-
|
|
4093
|
-
function readFile(
|
|
4079
|
+
publishQueue(global, fs16[gracefulQueue]);
|
|
4080
|
+
}
|
|
4081
|
+
module.exports = patch(clone(fs16));
|
|
4082
|
+
if (process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH && !fs16.__patched) {
|
|
4083
|
+
module.exports = patch(fs16);
|
|
4084
|
+
fs16.__patched = true;
|
|
4085
|
+
}
|
|
4086
|
+
function patch(fs17) {
|
|
4087
|
+
polyfills(fs17);
|
|
4088
|
+
fs17.gracefulify = patch;
|
|
4089
|
+
fs17.createReadStream = createReadStream3;
|
|
4090
|
+
fs17.createWriteStream = createWriteStream2;
|
|
4091
|
+
var fs$readFile = fs17.readFile;
|
|
4092
|
+
fs17.readFile = readFile;
|
|
4093
|
+
function readFile(path21, options, cb) {
|
|
4094
4094
|
if (typeof options === "function")
|
|
4095
4095
|
cb = options, options = null;
|
|
4096
|
-
return go$readFile(
|
|
4097
|
-
function go$readFile(
|
|
4098
|
-
return fs$readFile(
|
|
4096
|
+
return go$readFile(path21, options, cb);
|
|
4097
|
+
function go$readFile(path22, options2, cb2, startTime) {
|
|
4098
|
+
return fs$readFile(path22, options2, function(err) {
|
|
4099
4099
|
if (err && (err.code === "EMFILE" || err.code === "ENFILE"))
|
|
4100
|
-
enqueue([go$readFile, [
|
|
4100
|
+
enqueue([go$readFile, [path22, options2, cb2], err, startTime || Date.now(), Date.now()]);
|
|
4101
4101
|
else {
|
|
4102
4102
|
if (typeof cb2 === "function")
|
|
4103
4103
|
cb2.apply(this, arguments);
|
|
@@ -4105,16 +4105,16 @@ var require_graceful_fs = __commonJS({
|
|
|
4105
4105
|
});
|
|
4106
4106
|
}
|
|
4107
4107
|
}
|
|
4108
|
-
var fs$writeFile =
|
|
4109
|
-
|
|
4110
|
-
function writeFile(
|
|
4108
|
+
var fs$writeFile = fs17.writeFile;
|
|
4109
|
+
fs17.writeFile = writeFile;
|
|
4110
|
+
function writeFile(path21, data, options, cb) {
|
|
4111
4111
|
if (typeof options === "function")
|
|
4112
4112
|
cb = options, options = null;
|
|
4113
|
-
return go$writeFile(
|
|
4114
|
-
function go$writeFile(
|
|
4115
|
-
return fs$writeFile(
|
|
4113
|
+
return go$writeFile(path21, data, options, cb);
|
|
4114
|
+
function go$writeFile(path22, data2, options2, cb2, startTime) {
|
|
4115
|
+
return fs$writeFile(path22, data2, options2, function(err) {
|
|
4116
4116
|
if (err && (err.code === "EMFILE" || err.code === "ENFILE"))
|
|
4117
|
-
enqueue([go$writeFile, [
|
|
4117
|
+
enqueue([go$writeFile, [path22, data2, options2, cb2], err, startTime || Date.now(), Date.now()]);
|
|
4118
4118
|
else {
|
|
4119
4119
|
if (typeof cb2 === "function")
|
|
4120
4120
|
cb2.apply(this, arguments);
|
|
@@ -4122,17 +4122,17 @@ var require_graceful_fs = __commonJS({
|
|
|
4122
4122
|
});
|
|
4123
4123
|
}
|
|
4124
4124
|
}
|
|
4125
|
-
var fs$appendFile =
|
|
4125
|
+
var fs$appendFile = fs17.appendFile;
|
|
4126
4126
|
if (fs$appendFile)
|
|
4127
|
-
|
|
4128
|
-
function appendFile(
|
|
4127
|
+
fs17.appendFile = appendFile;
|
|
4128
|
+
function appendFile(path21, data, options, cb) {
|
|
4129
4129
|
if (typeof options === "function")
|
|
4130
4130
|
cb = options, options = null;
|
|
4131
|
-
return go$appendFile(
|
|
4132
|
-
function go$appendFile(
|
|
4133
|
-
return fs$appendFile(
|
|
4131
|
+
return go$appendFile(path21, data, options, cb);
|
|
4132
|
+
function go$appendFile(path22, data2, options2, cb2, startTime) {
|
|
4133
|
+
return fs$appendFile(path22, data2, options2, function(err) {
|
|
4134
4134
|
if (err && (err.code === "EMFILE" || err.code === "ENFILE"))
|
|
4135
|
-
enqueue([go$appendFile, [
|
|
4135
|
+
enqueue([go$appendFile, [path22, data2, options2, cb2], err, startTime || Date.now(), Date.now()]);
|
|
4136
4136
|
else {
|
|
4137
4137
|
if (typeof cb2 === "function")
|
|
4138
4138
|
cb2.apply(this, arguments);
|
|
@@ -4140,9 +4140,9 @@ var require_graceful_fs = __commonJS({
|
|
|
4140
4140
|
});
|
|
4141
4141
|
}
|
|
4142
4142
|
}
|
|
4143
|
-
var fs$copyFile =
|
|
4143
|
+
var fs$copyFile = fs17.copyFile;
|
|
4144
4144
|
if (fs$copyFile)
|
|
4145
|
-
|
|
4145
|
+
fs17.copyFile = copyFile;
|
|
4146
4146
|
function copyFile(src, dest, flags, cb) {
|
|
4147
4147
|
if (typeof flags === "function") {
|
|
4148
4148
|
cb = flags;
|
|
@@ -4160,34 +4160,34 @@ var require_graceful_fs = __commonJS({
|
|
|
4160
4160
|
});
|
|
4161
4161
|
}
|
|
4162
4162
|
}
|
|
4163
|
-
var fs$readdir =
|
|
4164
|
-
|
|
4163
|
+
var fs$readdir = fs17.readdir;
|
|
4164
|
+
fs17.readdir = readdir;
|
|
4165
4165
|
var noReaddirOptionVersions = /^v[0-5]\./;
|
|
4166
|
-
function readdir(
|
|
4166
|
+
function readdir(path21, options, cb) {
|
|
4167
4167
|
if (typeof options === "function")
|
|
4168
4168
|
cb = options, options = null;
|
|
4169
|
-
var go$readdir = noReaddirOptionVersions.test(process.version) ? function go$readdir2(
|
|
4170
|
-
return fs$readdir(
|
|
4171
|
-
|
|
4169
|
+
var go$readdir = noReaddirOptionVersions.test(process.version) ? function go$readdir2(path22, options2, cb2, startTime) {
|
|
4170
|
+
return fs$readdir(path22, fs$readdirCallback(
|
|
4171
|
+
path22,
|
|
4172
4172
|
options2,
|
|
4173
4173
|
cb2,
|
|
4174
4174
|
startTime
|
|
4175
4175
|
));
|
|
4176
|
-
} : function go$readdir2(
|
|
4177
|
-
return fs$readdir(
|
|
4178
|
-
|
|
4176
|
+
} : function go$readdir2(path22, options2, cb2, startTime) {
|
|
4177
|
+
return fs$readdir(path22, options2, fs$readdirCallback(
|
|
4178
|
+
path22,
|
|
4179
4179
|
options2,
|
|
4180
4180
|
cb2,
|
|
4181
4181
|
startTime
|
|
4182
4182
|
));
|
|
4183
4183
|
};
|
|
4184
|
-
return go$readdir(
|
|
4185
|
-
function fs$readdirCallback(
|
|
4184
|
+
return go$readdir(path21, options, cb);
|
|
4185
|
+
function fs$readdirCallback(path22, options2, cb2, startTime) {
|
|
4186
4186
|
return function(err, files) {
|
|
4187
4187
|
if (err && (err.code === "EMFILE" || err.code === "ENFILE"))
|
|
4188
4188
|
enqueue([
|
|
4189
4189
|
go$readdir,
|
|
4190
|
-
[
|
|
4190
|
+
[path22, options2, cb2],
|
|
4191
4191
|
err,
|
|
4192
4192
|
startTime || Date.now(),
|
|
4193
4193
|
Date.now()
|
|
@@ -4202,21 +4202,21 @@ var require_graceful_fs = __commonJS({
|
|
|
4202
4202
|
}
|
|
4203
4203
|
}
|
|
4204
4204
|
if (process.version.substr(0, 4) === "v0.8") {
|
|
4205
|
-
var legStreams = legacy(
|
|
4205
|
+
var legStreams = legacy(fs17);
|
|
4206
4206
|
ReadStream = legStreams.ReadStream;
|
|
4207
4207
|
WriteStream = legStreams.WriteStream;
|
|
4208
4208
|
}
|
|
4209
|
-
var fs$ReadStream =
|
|
4209
|
+
var fs$ReadStream = fs17.ReadStream;
|
|
4210
4210
|
if (fs$ReadStream) {
|
|
4211
4211
|
ReadStream.prototype = Object.create(fs$ReadStream.prototype);
|
|
4212
4212
|
ReadStream.prototype.open = ReadStream$open;
|
|
4213
4213
|
}
|
|
4214
|
-
var fs$WriteStream =
|
|
4214
|
+
var fs$WriteStream = fs17.WriteStream;
|
|
4215
4215
|
if (fs$WriteStream) {
|
|
4216
4216
|
WriteStream.prototype = Object.create(fs$WriteStream.prototype);
|
|
4217
4217
|
WriteStream.prototype.open = WriteStream$open;
|
|
4218
4218
|
}
|
|
4219
|
-
Object.defineProperty(
|
|
4219
|
+
Object.defineProperty(fs17, "ReadStream", {
|
|
4220
4220
|
get: function() {
|
|
4221
4221
|
return ReadStream;
|
|
4222
4222
|
},
|
|
@@ -4226,7 +4226,7 @@ var require_graceful_fs = __commonJS({
|
|
|
4226
4226
|
enumerable: true,
|
|
4227
4227
|
configurable: true
|
|
4228
4228
|
});
|
|
4229
|
-
Object.defineProperty(
|
|
4229
|
+
Object.defineProperty(fs17, "WriteStream", {
|
|
4230
4230
|
get: function() {
|
|
4231
4231
|
return WriteStream;
|
|
4232
4232
|
},
|
|
@@ -4237,7 +4237,7 @@ var require_graceful_fs = __commonJS({
|
|
|
4237
4237
|
configurable: true
|
|
4238
4238
|
});
|
|
4239
4239
|
var FileReadStream = ReadStream;
|
|
4240
|
-
Object.defineProperty(
|
|
4240
|
+
Object.defineProperty(fs17, "FileReadStream", {
|
|
4241
4241
|
get: function() {
|
|
4242
4242
|
return FileReadStream;
|
|
4243
4243
|
},
|
|
@@ -4248,7 +4248,7 @@ var require_graceful_fs = __commonJS({
|
|
|
4248
4248
|
configurable: true
|
|
4249
4249
|
});
|
|
4250
4250
|
var FileWriteStream = WriteStream;
|
|
4251
|
-
Object.defineProperty(
|
|
4251
|
+
Object.defineProperty(fs17, "FileWriteStream", {
|
|
4252
4252
|
get: function() {
|
|
4253
4253
|
return FileWriteStream;
|
|
4254
4254
|
},
|
|
@@ -4258,7 +4258,7 @@ var require_graceful_fs = __commonJS({
|
|
|
4258
4258
|
enumerable: true,
|
|
4259
4259
|
configurable: true
|
|
4260
4260
|
});
|
|
4261
|
-
function ReadStream(
|
|
4261
|
+
function ReadStream(path21, options) {
|
|
4262
4262
|
if (this instanceof ReadStream)
|
|
4263
4263
|
return fs$ReadStream.apply(this, arguments), this;
|
|
4264
4264
|
else
|
|
@@ -4278,7 +4278,7 @@ var require_graceful_fs = __commonJS({
|
|
|
4278
4278
|
}
|
|
4279
4279
|
});
|
|
4280
4280
|
}
|
|
4281
|
-
function WriteStream(
|
|
4281
|
+
function WriteStream(path21, options) {
|
|
4282
4282
|
if (this instanceof WriteStream)
|
|
4283
4283
|
return fs$WriteStream.apply(this, arguments), this;
|
|
4284
4284
|
else
|
|
@@ -4296,22 +4296,22 @@ var require_graceful_fs = __commonJS({
|
|
|
4296
4296
|
}
|
|
4297
4297
|
});
|
|
4298
4298
|
}
|
|
4299
|
-
function createReadStream3(
|
|
4300
|
-
return new
|
|
4299
|
+
function createReadStream3(path21, options) {
|
|
4300
|
+
return new fs17.ReadStream(path21, options);
|
|
4301
4301
|
}
|
|
4302
|
-
function createWriteStream2(
|
|
4303
|
-
return new
|
|
4302
|
+
function createWriteStream2(path21, options) {
|
|
4303
|
+
return new fs17.WriteStream(path21, options);
|
|
4304
4304
|
}
|
|
4305
|
-
var fs$open =
|
|
4306
|
-
|
|
4307
|
-
function open(
|
|
4305
|
+
var fs$open = fs17.open;
|
|
4306
|
+
fs17.open = open;
|
|
4307
|
+
function open(path21, flags, mode, cb) {
|
|
4308
4308
|
if (typeof mode === "function")
|
|
4309
4309
|
cb = mode, mode = null;
|
|
4310
|
-
return go$open(
|
|
4311
|
-
function go$open(
|
|
4312
|
-
return fs$open(
|
|
4310
|
+
return go$open(path21, flags, mode, cb);
|
|
4311
|
+
function go$open(path22, flags2, mode2, cb2, startTime) {
|
|
4312
|
+
return fs$open(path22, flags2, mode2, function(err, fd) {
|
|
4313
4313
|
if (err && (err.code === "EMFILE" || err.code === "ENFILE"))
|
|
4314
|
-
enqueue([go$open, [
|
|
4314
|
+
enqueue([go$open, [path22, flags2, mode2, cb2], err, startTime || Date.now(), Date.now()]);
|
|
4315
4315
|
else {
|
|
4316
4316
|
if (typeof cb2 === "function")
|
|
4317
4317
|
cb2.apply(this, arguments);
|
|
@@ -4319,20 +4319,20 @@ var require_graceful_fs = __commonJS({
|
|
|
4319
4319
|
});
|
|
4320
4320
|
}
|
|
4321
4321
|
}
|
|
4322
|
-
return
|
|
4322
|
+
return fs17;
|
|
4323
4323
|
}
|
|
4324
4324
|
function enqueue(elem) {
|
|
4325
4325
|
debug("ENQUEUE", elem[0].name, elem[1]);
|
|
4326
|
-
|
|
4326
|
+
fs16[gracefulQueue].push(elem);
|
|
4327
4327
|
retry();
|
|
4328
4328
|
}
|
|
4329
4329
|
var retryTimer;
|
|
4330
4330
|
function resetQueue() {
|
|
4331
4331
|
var now = Date.now();
|
|
4332
|
-
for (var i2 = 0; i2 <
|
|
4333
|
-
if (
|
|
4334
|
-
|
|
4335
|
-
|
|
4332
|
+
for (var i2 = 0; i2 < fs16[gracefulQueue].length; ++i2) {
|
|
4333
|
+
if (fs16[gracefulQueue][i2].length > 2) {
|
|
4334
|
+
fs16[gracefulQueue][i2][3] = now;
|
|
4335
|
+
fs16[gracefulQueue][i2][4] = now;
|
|
4336
4336
|
}
|
|
4337
4337
|
}
|
|
4338
4338
|
retry();
|
|
@@ -4340,9 +4340,9 @@ var require_graceful_fs = __commonJS({
|
|
|
4340
4340
|
function retry() {
|
|
4341
4341
|
clearTimeout(retryTimer);
|
|
4342
4342
|
retryTimer = void 0;
|
|
4343
|
-
if (
|
|
4343
|
+
if (fs16[gracefulQueue].length === 0)
|
|
4344
4344
|
return;
|
|
4345
|
-
var elem =
|
|
4345
|
+
var elem = fs16[gracefulQueue].shift();
|
|
4346
4346
|
var fn2 = elem[0];
|
|
4347
4347
|
var args = elem[1];
|
|
4348
4348
|
var err = elem[2];
|
|
@@ -4364,7 +4364,7 @@ var require_graceful_fs = __commonJS({
|
|
|
4364
4364
|
debug("RETRY", fn2.name, args);
|
|
4365
4365
|
fn2.apply(null, args.concat([startTime]));
|
|
4366
4366
|
} else {
|
|
4367
|
-
|
|
4367
|
+
fs16[gracefulQueue].push(elem);
|
|
4368
4368
|
}
|
|
4369
4369
|
}
|
|
4370
4370
|
if (retryTimer === void 0) {
|
|
@@ -4378,7 +4378,7 @@ var require_graceful_fs = __commonJS({
|
|
|
4378
4378
|
var require_fs = __commonJS({
|
|
4379
4379
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/fs/index.js"(exports$1) {
|
|
4380
4380
|
var u3 = require_universalify().fromCallback;
|
|
4381
|
-
var
|
|
4381
|
+
var fs16 = require_graceful_fs();
|
|
4382
4382
|
var api = [
|
|
4383
4383
|
"access",
|
|
4384
4384
|
"appendFile",
|
|
@@ -4419,26 +4419,26 @@ var require_fs = __commonJS({
|
|
|
4419
4419
|
"utimes",
|
|
4420
4420
|
"writeFile"
|
|
4421
4421
|
].filter((key) => {
|
|
4422
|
-
return typeof
|
|
4422
|
+
return typeof fs16[key] === "function";
|
|
4423
4423
|
});
|
|
4424
|
-
Object.assign(exports$1,
|
|
4424
|
+
Object.assign(exports$1, fs16);
|
|
4425
4425
|
api.forEach((method) => {
|
|
4426
|
-
exports$1[method] = u3(
|
|
4426
|
+
exports$1[method] = u3(fs16[method]);
|
|
4427
4427
|
});
|
|
4428
4428
|
exports$1.exists = function(filename, callback) {
|
|
4429
4429
|
if (typeof callback === "function") {
|
|
4430
|
-
return
|
|
4430
|
+
return fs16.exists(filename, callback);
|
|
4431
4431
|
}
|
|
4432
4432
|
return new Promise((resolve) => {
|
|
4433
|
-
return
|
|
4433
|
+
return fs16.exists(filename, resolve);
|
|
4434
4434
|
});
|
|
4435
4435
|
};
|
|
4436
4436
|
exports$1.read = function(fd, buffer, offset, length, position, callback) {
|
|
4437
4437
|
if (typeof callback === "function") {
|
|
4438
|
-
return
|
|
4438
|
+
return fs16.read(fd, buffer, offset, length, position, callback);
|
|
4439
4439
|
}
|
|
4440
4440
|
return new Promise((resolve, reject) => {
|
|
4441
|
-
|
|
4441
|
+
fs16.read(fd, buffer, offset, length, position, (err, bytesRead, buffer2) => {
|
|
4442
4442
|
if (err) return reject(err);
|
|
4443
4443
|
resolve({ bytesRead, buffer: buffer2 });
|
|
4444
4444
|
});
|
|
@@ -4446,10 +4446,10 @@ var require_fs = __commonJS({
|
|
|
4446
4446
|
};
|
|
4447
4447
|
exports$1.write = function(fd, buffer, ...args) {
|
|
4448
4448
|
if (typeof args[args.length - 1] === "function") {
|
|
4449
|
-
return
|
|
4449
|
+
return fs16.write(fd, buffer, ...args);
|
|
4450
4450
|
}
|
|
4451
4451
|
return new Promise((resolve, reject) => {
|
|
4452
|
-
|
|
4452
|
+
fs16.write(fd, buffer, ...args, (err, bytesWritten, buffer2) => {
|
|
4453
4453
|
if (err) return reject(err);
|
|
4454
4454
|
resolve({ bytesWritten, buffer: buffer2 });
|
|
4455
4455
|
});
|
|
@@ -4457,10 +4457,10 @@ var require_fs = __commonJS({
|
|
|
4457
4457
|
};
|
|
4458
4458
|
exports$1.readv = function(fd, buffers, ...args) {
|
|
4459
4459
|
if (typeof args[args.length - 1] === "function") {
|
|
4460
|
-
return
|
|
4460
|
+
return fs16.readv(fd, buffers, ...args);
|
|
4461
4461
|
}
|
|
4462
4462
|
return new Promise((resolve, reject) => {
|
|
4463
|
-
|
|
4463
|
+
fs16.readv(fd, buffers, ...args, (err, bytesRead, buffers2) => {
|
|
4464
4464
|
if (err) return reject(err);
|
|
4465
4465
|
resolve({ bytesRead, buffers: buffers2 });
|
|
4466
4466
|
});
|
|
@@ -4468,17 +4468,17 @@ var require_fs = __commonJS({
|
|
|
4468
4468
|
};
|
|
4469
4469
|
exports$1.writev = function(fd, buffers, ...args) {
|
|
4470
4470
|
if (typeof args[args.length - 1] === "function") {
|
|
4471
|
-
return
|
|
4471
|
+
return fs16.writev(fd, buffers, ...args);
|
|
4472
4472
|
}
|
|
4473
4473
|
return new Promise((resolve, reject) => {
|
|
4474
|
-
|
|
4474
|
+
fs16.writev(fd, buffers, ...args, (err, bytesWritten, buffers2) => {
|
|
4475
4475
|
if (err) return reject(err);
|
|
4476
4476
|
resolve({ bytesWritten, buffers: buffers2 });
|
|
4477
4477
|
});
|
|
4478
4478
|
});
|
|
4479
4479
|
};
|
|
4480
|
-
if (typeof
|
|
4481
|
-
exports$1.realpath.native = u3(
|
|
4480
|
+
if (typeof fs16.realpath.native === "function") {
|
|
4481
|
+
exports$1.realpath.native = u3(fs16.realpath.native);
|
|
4482
4482
|
} else {
|
|
4483
4483
|
process.emitWarning(
|
|
4484
4484
|
"fs.realpath.native is not a function. Is fs being monkey-patched?",
|
|
@@ -4492,10 +4492,10 @@ var require_fs = __commonJS({
|
|
|
4492
4492
|
// ../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/mkdirs/utils.js
|
|
4493
4493
|
var require_utils2 = __commonJS({
|
|
4494
4494
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/mkdirs/utils.js"(exports$1, module) {
|
|
4495
|
-
var
|
|
4495
|
+
var path21 = __require("path");
|
|
4496
4496
|
module.exports.checkPath = function checkPath(pth) {
|
|
4497
4497
|
if (process.platform === "win32") {
|
|
4498
|
-
const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(
|
|
4498
|
+
const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path21.parse(pth).root, ""));
|
|
4499
4499
|
if (pathHasInvalidWinCharacters) {
|
|
4500
4500
|
const error = new Error(`Path contains invalid characters: ${pth}`);
|
|
4501
4501
|
error.code = "EINVAL";
|
|
@@ -4509,7 +4509,7 @@ var require_utils2 = __commonJS({
|
|
|
4509
4509
|
// ../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/mkdirs/make-dir.js
|
|
4510
4510
|
var require_make_dir = __commonJS({
|
|
4511
4511
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/mkdirs/make-dir.js"(exports$1, module) {
|
|
4512
|
-
var
|
|
4512
|
+
var fs16 = require_fs();
|
|
4513
4513
|
var { checkPath } = require_utils2();
|
|
4514
4514
|
var getMode = (options) => {
|
|
4515
4515
|
const defaults = { mode: 511 };
|
|
@@ -4518,14 +4518,14 @@ var require_make_dir = __commonJS({
|
|
|
4518
4518
|
};
|
|
4519
4519
|
module.exports.makeDir = async (dir, options) => {
|
|
4520
4520
|
checkPath(dir);
|
|
4521
|
-
return
|
|
4521
|
+
return fs16.mkdir(dir, {
|
|
4522
4522
|
mode: getMode(options),
|
|
4523
4523
|
recursive: true
|
|
4524
4524
|
});
|
|
4525
4525
|
};
|
|
4526
4526
|
module.exports.makeDirSync = (dir, options) => {
|
|
4527
4527
|
checkPath(dir);
|
|
4528
|
-
return
|
|
4528
|
+
return fs16.mkdirSync(dir, {
|
|
4529
4529
|
mode: getMode(options),
|
|
4530
4530
|
recursive: true
|
|
4531
4531
|
});
|
|
@@ -4555,13 +4555,13 @@ var require_mkdirs = __commonJS({
|
|
|
4555
4555
|
var require_path_exists = __commonJS({
|
|
4556
4556
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/path-exists/index.js"(exports$1, module) {
|
|
4557
4557
|
var u3 = require_universalify().fromPromise;
|
|
4558
|
-
var
|
|
4559
|
-
function pathExists(
|
|
4560
|
-
return
|
|
4558
|
+
var fs16 = require_fs();
|
|
4559
|
+
function pathExists(path21) {
|
|
4560
|
+
return fs16.access(path21).then(() => true).catch(() => false);
|
|
4561
4561
|
}
|
|
4562
4562
|
module.exports = {
|
|
4563
4563
|
pathExists: u3(pathExists),
|
|
4564
|
-
pathExistsSync:
|
|
4564
|
+
pathExistsSync: fs16.existsSync
|
|
4565
4565
|
};
|
|
4566
4566
|
}
|
|
4567
4567
|
});
|
|
@@ -4569,16 +4569,16 @@ var require_path_exists = __commonJS({
|
|
|
4569
4569
|
// ../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/util/utimes.js
|
|
4570
4570
|
var require_utimes = __commonJS({
|
|
4571
4571
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/util/utimes.js"(exports$1, module) {
|
|
4572
|
-
var
|
|
4572
|
+
var fs16 = require_fs();
|
|
4573
4573
|
var u3 = require_universalify().fromPromise;
|
|
4574
|
-
async function utimesMillis(
|
|
4575
|
-
const fd = await
|
|
4574
|
+
async function utimesMillis(path21, atime, mtime) {
|
|
4575
|
+
const fd = await fs16.open(path21, "r+");
|
|
4576
4576
|
let closeErr = null;
|
|
4577
4577
|
try {
|
|
4578
|
-
await
|
|
4578
|
+
await fs16.futimes(fd, atime, mtime);
|
|
4579
4579
|
} finally {
|
|
4580
4580
|
try {
|
|
4581
|
-
await
|
|
4581
|
+
await fs16.close(fd);
|
|
4582
4582
|
} catch (e) {
|
|
4583
4583
|
closeErr = e;
|
|
4584
4584
|
}
|
|
@@ -4587,10 +4587,10 @@ var require_utimes = __commonJS({
|
|
|
4587
4587
|
throw closeErr;
|
|
4588
4588
|
}
|
|
4589
4589
|
}
|
|
4590
|
-
function utimesMillisSync(
|
|
4591
|
-
const fd =
|
|
4592
|
-
|
|
4593
|
-
return
|
|
4590
|
+
function utimesMillisSync(path21, atime, mtime) {
|
|
4591
|
+
const fd = fs16.openSync(path21, "r+");
|
|
4592
|
+
fs16.futimesSync(fd, atime, mtime);
|
|
4593
|
+
return fs16.closeSync(fd);
|
|
4594
4594
|
}
|
|
4595
4595
|
module.exports = {
|
|
4596
4596
|
utimesMillis: u3(utimesMillis),
|
|
@@ -4602,11 +4602,11 @@ var require_utimes = __commonJS({
|
|
|
4602
4602
|
// ../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/util/stat.js
|
|
4603
4603
|
var require_stat = __commonJS({
|
|
4604
4604
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/util/stat.js"(exports$1, module) {
|
|
4605
|
-
var
|
|
4606
|
-
var
|
|
4605
|
+
var fs16 = require_fs();
|
|
4606
|
+
var path21 = __require("path");
|
|
4607
4607
|
var u3 = require_universalify().fromPromise;
|
|
4608
4608
|
function getStats(src, dest, opts) {
|
|
4609
|
-
const statFunc = opts.dereference ? (file) =>
|
|
4609
|
+
const statFunc = opts.dereference ? (file) => fs16.stat(file, { bigint: true }) : (file) => fs16.lstat(file, { bigint: true });
|
|
4610
4610
|
return Promise.all([
|
|
4611
4611
|
statFunc(src),
|
|
4612
4612
|
statFunc(dest).catch((err) => {
|
|
@@ -4617,7 +4617,7 @@ var require_stat = __commonJS({
|
|
|
4617
4617
|
}
|
|
4618
4618
|
function getStatsSync(src, dest, opts) {
|
|
4619
4619
|
let destStat;
|
|
4620
|
-
const statFunc = opts.dereference ? (file) =>
|
|
4620
|
+
const statFunc = opts.dereference ? (file) => fs16.statSync(file, { bigint: true }) : (file) => fs16.lstatSync(file, { bigint: true });
|
|
4621
4621
|
const srcStat = statFunc(src);
|
|
4622
4622
|
try {
|
|
4623
4623
|
destStat = statFunc(dest);
|
|
@@ -4631,8 +4631,8 @@ var require_stat = __commonJS({
|
|
|
4631
4631
|
const { srcStat, destStat } = await getStats(src, dest, opts);
|
|
4632
4632
|
if (destStat) {
|
|
4633
4633
|
if (areIdentical(srcStat, destStat)) {
|
|
4634
|
-
const srcBaseName =
|
|
4635
|
-
const destBaseName =
|
|
4634
|
+
const srcBaseName = path21.basename(src);
|
|
4635
|
+
const destBaseName = path21.basename(dest);
|
|
4636
4636
|
if (funcName === "move" && srcBaseName !== destBaseName && srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {
|
|
4637
4637
|
return { srcStat, destStat, isChangingCase: true };
|
|
4638
4638
|
}
|
|
@@ -4654,8 +4654,8 @@ var require_stat = __commonJS({
|
|
|
4654
4654
|
const { srcStat, destStat } = getStatsSync(src, dest, opts);
|
|
4655
4655
|
if (destStat) {
|
|
4656
4656
|
if (areIdentical(srcStat, destStat)) {
|
|
4657
|
-
const srcBaseName =
|
|
4658
|
-
const destBaseName =
|
|
4657
|
+
const srcBaseName = path21.basename(src);
|
|
4658
|
+
const destBaseName = path21.basename(dest);
|
|
4659
4659
|
if (funcName === "move" && srcBaseName !== destBaseName && srcBaseName.toLowerCase() === destBaseName.toLowerCase()) {
|
|
4660
4660
|
return { srcStat, destStat, isChangingCase: true };
|
|
4661
4661
|
}
|
|
@@ -4674,12 +4674,12 @@ var require_stat = __commonJS({
|
|
|
4674
4674
|
return { srcStat, destStat };
|
|
4675
4675
|
}
|
|
4676
4676
|
async function checkParentPaths(src, srcStat, dest, funcName) {
|
|
4677
|
-
const srcParent =
|
|
4678
|
-
const destParent =
|
|
4679
|
-
if (destParent === srcParent || destParent ===
|
|
4677
|
+
const srcParent = path21.resolve(path21.dirname(src));
|
|
4678
|
+
const destParent = path21.resolve(path21.dirname(dest));
|
|
4679
|
+
if (destParent === srcParent || destParent === path21.parse(destParent).root) return;
|
|
4680
4680
|
let destStat;
|
|
4681
4681
|
try {
|
|
4682
|
-
destStat = await
|
|
4682
|
+
destStat = await fs16.stat(destParent, { bigint: true });
|
|
4683
4683
|
} catch (err) {
|
|
4684
4684
|
if (err.code === "ENOENT") return;
|
|
4685
4685
|
throw err;
|
|
@@ -4690,12 +4690,12 @@ var require_stat = __commonJS({
|
|
|
4690
4690
|
return checkParentPaths(src, srcStat, destParent, funcName);
|
|
4691
4691
|
}
|
|
4692
4692
|
function checkParentPathsSync(src, srcStat, dest, funcName) {
|
|
4693
|
-
const srcParent =
|
|
4694
|
-
const destParent =
|
|
4695
|
-
if (destParent === srcParent || destParent ===
|
|
4693
|
+
const srcParent = path21.resolve(path21.dirname(src));
|
|
4694
|
+
const destParent = path21.resolve(path21.dirname(dest));
|
|
4695
|
+
if (destParent === srcParent || destParent === path21.parse(destParent).root) return;
|
|
4696
4696
|
let destStat;
|
|
4697
4697
|
try {
|
|
4698
|
-
destStat =
|
|
4698
|
+
destStat = fs16.statSync(destParent, { bigint: true });
|
|
4699
4699
|
} catch (err) {
|
|
4700
4700
|
if (err.code === "ENOENT") return;
|
|
4701
4701
|
throw err;
|
|
@@ -4709,8 +4709,8 @@ var require_stat = __commonJS({
|
|
|
4709
4709
|
return destStat.ino !== void 0 && destStat.dev !== void 0 && destStat.ino === srcStat.ino && destStat.dev === srcStat.dev;
|
|
4710
4710
|
}
|
|
4711
4711
|
function isSrcSubdir(src, dest) {
|
|
4712
|
-
const srcArr =
|
|
4713
|
-
const destArr =
|
|
4712
|
+
const srcArr = path21.resolve(src).split(path21.sep).filter((i2) => i2);
|
|
4713
|
+
const destArr = path21.resolve(dest).split(path21.sep).filter((i2) => i2);
|
|
4714
4714
|
return srcArr.every((cur, i2) => destArr[i2] === cur);
|
|
4715
4715
|
}
|
|
4716
4716
|
function errMsg(src, dest, funcName) {
|
|
@@ -4760,8 +4760,8 @@ var require_async = __commonJS({
|
|
|
4760
4760
|
// ../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/copy/copy.js
|
|
4761
4761
|
var require_copy = __commonJS({
|
|
4762
4762
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/copy/copy.js"(exports$1, module) {
|
|
4763
|
-
var
|
|
4764
|
-
var
|
|
4763
|
+
var fs16 = require_fs();
|
|
4764
|
+
var path21 = __require("path");
|
|
4765
4765
|
var { mkdirs } = require_mkdirs();
|
|
4766
4766
|
var { pathExists } = require_path_exists();
|
|
4767
4767
|
var { utimesMillis } = require_utimes();
|
|
@@ -4784,7 +4784,7 @@ var require_copy = __commonJS({
|
|
|
4784
4784
|
await stat.checkParentPaths(src, srcStat, dest, "copy");
|
|
4785
4785
|
const include = await runFilter(src, dest, opts);
|
|
4786
4786
|
if (!include) return;
|
|
4787
|
-
const destParent =
|
|
4787
|
+
const destParent = path21.dirname(dest);
|
|
4788
4788
|
const dirExists = await pathExists(destParent);
|
|
4789
4789
|
if (!dirExists) {
|
|
4790
4790
|
await mkdirs(destParent);
|
|
@@ -4796,7 +4796,7 @@ var require_copy = __commonJS({
|
|
|
4796
4796
|
return opts.filter(src, dest);
|
|
4797
4797
|
}
|
|
4798
4798
|
async function getStatsAndPerformCopy(destStat, src, dest, opts) {
|
|
4799
|
-
const statFn = opts.dereference ?
|
|
4799
|
+
const statFn = opts.dereference ? fs16.stat : fs16.lstat;
|
|
4800
4800
|
const srcStat = await statFn(src);
|
|
4801
4801
|
if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts);
|
|
4802
4802
|
if (srcStat.isFile() || srcStat.isCharacterDevice() || srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts);
|
|
@@ -4808,7 +4808,7 @@ var require_copy = __commonJS({
|
|
|
4808
4808
|
async function onFile(srcStat, destStat, src, dest, opts) {
|
|
4809
4809
|
if (!destStat) return copyFile(srcStat, src, dest, opts);
|
|
4810
4810
|
if (opts.overwrite) {
|
|
4811
|
-
await
|
|
4811
|
+
await fs16.unlink(dest);
|
|
4812
4812
|
return copyFile(srcStat, src, dest, opts);
|
|
4813
4813
|
}
|
|
4814
4814
|
if (opts.errorOnExist) {
|
|
@@ -4816,29 +4816,29 @@ var require_copy = __commonJS({
|
|
|
4816
4816
|
}
|
|
4817
4817
|
}
|
|
4818
4818
|
async function copyFile(srcStat, src, dest, opts) {
|
|
4819
|
-
await
|
|
4819
|
+
await fs16.copyFile(src, dest);
|
|
4820
4820
|
if (opts.preserveTimestamps) {
|
|
4821
4821
|
if (fileIsNotWritable(srcStat.mode)) {
|
|
4822
4822
|
await makeFileWritable(dest, srcStat.mode);
|
|
4823
4823
|
}
|
|
4824
|
-
const updatedSrcStat = await
|
|
4824
|
+
const updatedSrcStat = await fs16.stat(src);
|
|
4825
4825
|
await utimesMillis(dest, updatedSrcStat.atime, updatedSrcStat.mtime);
|
|
4826
4826
|
}
|
|
4827
|
-
return
|
|
4827
|
+
return fs16.chmod(dest, srcStat.mode);
|
|
4828
4828
|
}
|
|
4829
4829
|
function fileIsNotWritable(srcMode) {
|
|
4830
4830
|
return (srcMode & 128) === 0;
|
|
4831
4831
|
}
|
|
4832
4832
|
function makeFileWritable(dest, srcMode) {
|
|
4833
|
-
return
|
|
4833
|
+
return fs16.chmod(dest, srcMode | 128);
|
|
4834
4834
|
}
|
|
4835
4835
|
async function onDir(srcStat, destStat, src, dest, opts) {
|
|
4836
4836
|
if (!destStat) {
|
|
4837
|
-
await
|
|
4837
|
+
await fs16.mkdir(dest);
|
|
4838
4838
|
}
|
|
4839
|
-
await asyncIteratorConcurrentProcess(await
|
|
4840
|
-
const srcItem =
|
|
4841
|
-
const destItem =
|
|
4839
|
+
await asyncIteratorConcurrentProcess(await fs16.opendir(src), async (item) => {
|
|
4840
|
+
const srcItem = path21.join(src, item.name);
|
|
4841
|
+
const destItem = path21.join(dest, item.name);
|
|
4842
4842
|
const include = await runFilter(srcItem, destItem, opts);
|
|
4843
4843
|
if (include) {
|
|
4844
4844
|
const { destStat: destStat2 } = await stat.checkPaths(srcItem, destItem, "copy", opts);
|
|
@@ -4846,26 +4846,26 @@ var require_copy = __commonJS({
|
|
|
4846
4846
|
}
|
|
4847
4847
|
});
|
|
4848
4848
|
if (!destStat) {
|
|
4849
|
-
await
|
|
4849
|
+
await fs16.chmod(dest, srcStat.mode);
|
|
4850
4850
|
}
|
|
4851
4851
|
}
|
|
4852
4852
|
async function onLink(destStat, src, dest, opts) {
|
|
4853
|
-
let resolvedSrc = await
|
|
4853
|
+
let resolvedSrc = await fs16.readlink(src);
|
|
4854
4854
|
if (opts.dereference) {
|
|
4855
|
-
resolvedSrc =
|
|
4855
|
+
resolvedSrc = path21.resolve(process.cwd(), resolvedSrc);
|
|
4856
4856
|
}
|
|
4857
4857
|
if (!destStat) {
|
|
4858
|
-
return
|
|
4858
|
+
return fs16.symlink(resolvedSrc, dest);
|
|
4859
4859
|
}
|
|
4860
4860
|
let resolvedDest = null;
|
|
4861
4861
|
try {
|
|
4862
|
-
resolvedDest = await
|
|
4862
|
+
resolvedDest = await fs16.readlink(dest);
|
|
4863
4863
|
} catch (e) {
|
|
4864
|
-
if (e.code === "EINVAL" || e.code === "UNKNOWN") return
|
|
4864
|
+
if (e.code === "EINVAL" || e.code === "UNKNOWN") return fs16.symlink(resolvedSrc, dest);
|
|
4865
4865
|
throw e;
|
|
4866
4866
|
}
|
|
4867
4867
|
if (opts.dereference) {
|
|
4868
|
-
resolvedDest =
|
|
4868
|
+
resolvedDest = path21.resolve(process.cwd(), resolvedDest);
|
|
4869
4869
|
}
|
|
4870
4870
|
if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {
|
|
4871
4871
|
throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`);
|
|
@@ -4873,8 +4873,8 @@ var require_copy = __commonJS({
|
|
|
4873
4873
|
if (stat.isSrcSubdir(resolvedDest, resolvedSrc)) {
|
|
4874
4874
|
throw new Error(`Cannot overwrite '${resolvedDest}' with '${resolvedSrc}'.`);
|
|
4875
4875
|
}
|
|
4876
|
-
await
|
|
4877
|
-
return
|
|
4876
|
+
await fs16.unlink(dest);
|
|
4877
|
+
return fs16.symlink(resolvedSrc, dest);
|
|
4878
4878
|
}
|
|
4879
4879
|
module.exports = copy;
|
|
4880
4880
|
}
|
|
@@ -4883,8 +4883,8 @@ var require_copy = __commonJS({
|
|
|
4883
4883
|
// ../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/copy/copy-sync.js
|
|
4884
4884
|
var require_copy_sync = __commonJS({
|
|
4885
4885
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/copy/copy-sync.js"(exports$1, module) {
|
|
4886
|
-
var
|
|
4887
|
-
var
|
|
4886
|
+
var fs16 = require_graceful_fs();
|
|
4887
|
+
var path21 = __require("path");
|
|
4888
4888
|
var mkdirsSync = require_mkdirs().mkdirsSync;
|
|
4889
4889
|
var utimesMillisSync = require_utimes().utimesMillisSync;
|
|
4890
4890
|
var stat = require_stat();
|
|
@@ -4905,12 +4905,12 @@ var require_copy_sync = __commonJS({
|
|
|
4905
4905
|
const { srcStat, destStat } = stat.checkPathsSync(src, dest, "copy", opts);
|
|
4906
4906
|
stat.checkParentPathsSync(src, srcStat, dest, "copy");
|
|
4907
4907
|
if (opts.filter && !opts.filter(src, dest)) return;
|
|
4908
|
-
const destParent =
|
|
4909
|
-
if (!
|
|
4908
|
+
const destParent = path21.dirname(dest);
|
|
4909
|
+
if (!fs16.existsSync(destParent)) mkdirsSync(destParent);
|
|
4910
4910
|
return getStats(destStat, src, dest, opts);
|
|
4911
4911
|
}
|
|
4912
4912
|
function getStats(destStat, src, dest, opts) {
|
|
4913
|
-
const statSync2 = opts.dereference ?
|
|
4913
|
+
const statSync2 = opts.dereference ? fs16.statSync : fs16.lstatSync;
|
|
4914
4914
|
const srcStat = statSync2(src);
|
|
4915
4915
|
if (srcStat.isDirectory()) return onDir(srcStat, destStat, src, dest, opts);
|
|
4916
4916
|
else if (srcStat.isFile() || srcStat.isCharacterDevice() || srcStat.isBlockDevice()) return onFile(srcStat, destStat, src, dest, opts);
|
|
@@ -4925,14 +4925,14 @@ var require_copy_sync = __commonJS({
|
|
|
4925
4925
|
}
|
|
4926
4926
|
function mayCopyFile(srcStat, src, dest, opts) {
|
|
4927
4927
|
if (opts.overwrite) {
|
|
4928
|
-
|
|
4928
|
+
fs16.unlinkSync(dest);
|
|
4929
4929
|
return copyFile(srcStat, src, dest, opts);
|
|
4930
4930
|
} else if (opts.errorOnExist) {
|
|
4931
4931
|
throw new Error(`'${dest}' already exists`);
|
|
4932
4932
|
}
|
|
4933
4933
|
}
|
|
4934
4934
|
function copyFile(srcStat, src, dest, opts) {
|
|
4935
|
-
|
|
4935
|
+
fs16.copyFileSync(src, dest);
|
|
4936
4936
|
if (opts.preserveTimestamps) handleTimestamps(srcStat.mode, src, dest);
|
|
4937
4937
|
return setDestMode(dest, srcStat.mode);
|
|
4938
4938
|
}
|
|
@@ -4947,10 +4947,10 @@ var require_copy_sync = __commonJS({
|
|
|
4947
4947
|
return setDestMode(dest, srcMode | 128);
|
|
4948
4948
|
}
|
|
4949
4949
|
function setDestMode(dest, srcMode) {
|
|
4950
|
-
return
|
|
4950
|
+
return fs16.chmodSync(dest, srcMode);
|
|
4951
4951
|
}
|
|
4952
4952
|
function setDestTimestamps(src, dest) {
|
|
4953
|
-
const updatedSrcStat =
|
|
4953
|
+
const updatedSrcStat = fs16.statSync(src);
|
|
4954
4954
|
return utimesMillisSync(dest, updatedSrcStat.atime, updatedSrcStat.mtime);
|
|
4955
4955
|
}
|
|
4956
4956
|
function onDir(srcStat, destStat, src, dest, opts) {
|
|
@@ -4958,12 +4958,12 @@ var require_copy_sync = __commonJS({
|
|
|
4958
4958
|
return copyDir(src, dest, opts);
|
|
4959
4959
|
}
|
|
4960
4960
|
function mkDirAndCopy(srcMode, src, dest, opts) {
|
|
4961
|
-
|
|
4961
|
+
fs16.mkdirSync(dest);
|
|
4962
4962
|
copyDir(src, dest, opts);
|
|
4963
4963
|
return setDestMode(dest, srcMode);
|
|
4964
4964
|
}
|
|
4965
4965
|
function copyDir(src, dest, opts) {
|
|
4966
|
-
const dir =
|
|
4966
|
+
const dir = fs16.opendirSync(src);
|
|
4967
4967
|
try {
|
|
4968
4968
|
let dirent;
|
|
4969
4969
|
while ((dirent = dir.readSync()) !== null) {
|
|
@@ -4974,29 +4974,29 @@ var require_copy_sync = __commonJS({
|
|
|
4974
4974
|
}
|
|
4975
4975
|
}
|
|
4976
4976
|
function copyDirItem(item, src, dest, opts) {
|
|
4977
|
-
const srcItem =
|
|
4978
|
-
const destItem =
|
|
4977
|
+
const srcItem = path21.join(src, item);
|
|
4978
|
+
const destItem = path21.join(dest, item);
|
|
4979
4979
|
if (opts.filter && !opts.filter(srcItem, destItem)) return;
|
|
4980
4980
|
const { destStat } = stat.checkPathsSync(srcItem, destItem, "copy", opts);
|
|
4981
4981
|
return getStats(destStat, srcItem, destItem, opts);
|
|
4982
4982
|
}
|
|
4983
4983
|
function onLink(destStat, src, dest, opts) {
|
|
4984
|
-
let resolvedSrc =
|
|
4984
|
+
let resolvedSrc = fs16.readlinkSync(src);
|
|
4985
4985
|
if (opts.dereference) {
|
|
4986
|
-
resolvedSrc =
|
|
4986
|
+
resolvedSrc = path21.resolve(process.cwd(), resolvedSrc);
|
|
4987
4987
|
}
|
|
4988
4988
|
if (!destStat) {
|
|
4989
|
-
return
|
|
4989
|
+
return fs16.symlinkSync(resolvedSrc, dest);
|
|
4990
4990
|
} else {
|
|
4991
4991
|
let resolvedDest;
|
|
4992
4992
|
try {
|
|
4993
|
-
resolvedDest =
|
|
4993
|
+
resolvedDest = fs16.readlinkSync(dest);
|
|
4994
4994
|
} catch (err) {
|
|
4995
|
-
if (err.code === "EINVAL" || err.code === "UNKNOWN") return
|
|
4995
|
+
if (err.code === "EINVAL" || err.code === "UNKNOWN") return fs16.symlinkSync(resolvedSrc, dest);
|
|
4996
4996
|
throw err;
|
|
4997
4997
|
}
|
|
4998
4998
|
if (opts.dereference) {
|
|
4999
|
-
resolvedDest =
|
|
4999
|
+
resolvedDest = path21.resolve(process.cwd(), resolvedDest);
|
|
5000
5000
|
}
|
|
5001
5001
|
if (stat.isSrcSubdir(resolvedSrc, resolvedDest)) {
|
|
5002
5002
|
throw new Error(`Cannot copy '${resolvedSrc}' to a subdirectory of itself, '${resolvedDest}'.`);
|
|
@@ -5008,8 +5008,8 @@ var require_copy_sync = __commonJS({
|
|
|
5008
5008
|
}
|
|
5009
5009
|
}
|
|
5010
5010
|
function copyLink(resolvedSrc, dest) {
|
|
5011
|
-
|
|
5012
|
-
return
|
|
5011
|
+
fs16.unlinkSync(dest);
|
|
5012
|
+
return fs16.symlinkSync(resolvedSrc, dest);
|
|
5013
5013
|
}
|
|
5014
5014
|
module.exports = copySync;
|
|
5015
5015
|
}
|
|
@@ -5029,13 +5029,13 @@ var require_copy2 = __commonJS({
|
|
|
5029
5029
|
// ../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/remove/index.js
|
|
5030
5030
|
var require_remove = __commonJS({
|
|
5031
5031
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/remove/index.js"(exports$1, module) {
|
|
5032
|
-
var
|
|
5032
|
+
var fs16 = require_graceful_fs();
|
|
5033
5033
|
var u3 = require_universalify().fromCallback;
|
|
5034
|
-
function remove(
|
|
5035
|
-
|
|
5034
|
+
function remove(path21, callback) {
|
|
5035
|
+
fs16.rm(path21, { recursive: true, force: true }, callback);
|
|
5036
5036
|
}
|
|
5037
|
-
function removeSync(
|
|
5038
|
-
|
|
5037
|
+
function removeSync(path21) {
|
|
5038
|
+
fs16.rmSync(path21, { recursive: true, force: true });
|
|
5039
5039
|
}
|
|
5040
5040
|
module.exports = {
|
|
5041
5041
|
remove: u3(remove),
|
|
@@ -5048,28 +5048,28 @@ var require_remove = __commonJS({
|
|
|
5048
5048
|
var require_empty = __commonJS({
|
|
5049
5049
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/empty/index.js"(exports$1, module) {
|
|
5050
5050
|
var u3 = require_universalify().fromPromise;
|
|
5051
|
-
var
|
|
5052
|
-
var
|
|
5051
|
+
var fs16 = require_fs();
|
|
5052
|
+
var path21 = __require("path");
|
|
5053
5053
|
var mkdir = require_mkdirs();
|
|
5054
5054
|
var remove = require_remove();
|
|
5055
5055
|
var emptyDir = u3(async function emptyDir2(dir) {
|
|
5056
5056
|
let items;
|
|
5057
5057
|
try {
|
|
5058
|
-
items = await
|
|
5058
|
+
items = await fs16.readdir(dir);
|
|
5059
5059
|
} catch {
|
|
5060
5060
|
return mkdir.mkdirs(dir);
|
|
5061
5061
|
}
|
|
5062
|
-
return Promise.all(items.map((item) => remove.remove(
|
|
5062
|
+
return Promise.all(items.map((item) => remove.remove(path21.join(dir, item))));
|
|
5063
5063
|
});
|
|
5064
5064
|
function emptyDirSync(dir) {
|
|
5065
5065
|
let items;
|
|
5066
5066
|
try {
|
|
5067
|
-
items =
|
|
5067
|
+
items = fs16.readdirSync(dir);
|
|
5068
5068
|
} catch {
|
|
5069
5069
|
return mkdir.mkdirsSync(dir);
|
|
5070
5070
|
}
|
|
5071
5071
|
items.forEach((item) => {
|
|
5072
|
-
item =
|
|
5072
|
+
item = path21.join(dir, item);
|
|
5073
5073
|
remove.removeSync(item);
|
|
5074
5074
|
});
|
|
5075
5075
|
}
|
|
@@ -5086,52 +5086,52 @@ var require_empty = __commonJS({
|
|
|
5086
5086
|
var require_file = __commonJS({
|
|
5087
5087
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/ensure/file.js"(exports$1, module) {
|
|
5088
5088
|
var u3 = require_universalify().fromPromise;
|
|
5089
|
-
var
|
|
5090
|
-
var
|
|
5089
|
+
var path21 = __require("path");
|
|
5090
|
+
var fs16 = require_fs();
|
|
5091
5091
|
var mkdir = require_mkdirs();
|
|
5092
5092
|
async function createFile(file) {
|
|
5093
5093
|
let stats;
|
|
5094
5094
|
try {
|
|
5095
|
-
stats = await
|
|
5095
|
+
stats = await fs16.stat(file);
|
|
5096
5096
|
} catch {
|
|
5097
5097
|
}
|
|
5098
5098
|
if (stats && stats.isFile()) return;
|
|
5099
|
-
const dir =
|
|
5099
|
+
const dir = path21.dirname(file);
|
|
5100
5100
|
let dirStats = null;
|
|
5101
5101
|
try {
|
|
5102
|
-
dirStats = await
|
|
5102
|
+
dirStats = await fs16.stat(dir);
|
|
5103
5103
|
} catch (err) {
|
|
5104
5104
|
if (err.code === "ENOENT") {
|
|
5105
5105
|
await mkdir.mkdirs(dir);
|
|
5106
|
-
await
|
|
5106
|
+
await fs16.writeFile(file, "");
|
|
5107
5107
|
return;
|
|
5108
5108
|
} else {
|
|
5109
5109
|
throw err;
|
|
5110
5110
|
}
|
|
5111
5111
|
}
|
|
5112
5112
|
if (dirStats.isDirectory()) {
|
|
5113
|
-
await
|
|
5113
|
+
await fs16.writeFile(file, "");
|
|
5114
5114
|
} else {
|
|
5115
|
-
await
|
|
5115
|
+
await fs16.readdir(dir);
|
|
5116
5116
|
}
|
|
5117
5117
|
}
|
|
5118
5118
|
function createFileSync(file) {
|
|
5119
5119
|
let stats;
|
|
5120
5120
|
try {
|
|
5121
|
-
stats =
|
|
5121
|
+
stats = fs16.statSync(file);
|
|
5122
5122
|
} catch {
|
|
5123
5123
|
}
|
|
5124
5124
|
if (stats && stats.isFile()) return;
|
|
5125
|
-
const dir =
|
|
5125
|
+
const dir = path21.dirname(file);
|
|
5126
5126
|
try {
|
|
5127
|
-
if (!
|
|
5128
|
-
|
|
5127
|
+
if (!fs16.statSync(dir).isDirectory()) {
|
|
5128
|
+
fs16.readdirSync(dir);
|
|
5129
5129
|
}
|
|
5130
5130
|
} catch (err) {
|
|
5131
5131
|
if (err && err.code === "ENOENT") mkdir.mkdirsSync(dir);
|
|
5132
5132
|
else throw err;
|
|
5133
5133
|
}
|
|
5134
|
-
|
|
5134
|
+
fs16.writeFileSync(file, "");
|
|
5135
5135
|
}
|
|
5136
5136
|
module.exports = {
|
|
5137
5137
|
createFile: u3(createFile),
|
|
@@ -5144,50 +5144,50 @@ var require_file = __commonJS({
|
|
|
5144
5144
|
var require_link = __commonJS({
|
|
5145
5145
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/ensure/link.js"(exports$1, module) {
|
|
5146
5146
|
var u3 = require_universalify().fromPromise;
|
|
5147
|
-
var
|
|
5148
|
-
var
|
|
5147
|
+
var path21 = __require("path");
|
|
5148
|
+
var fs16 = require_fs();
|
|
5149
5149
|
var mkdir = require_mkdirs();
|
|
5150
5150
|
var { pathExists } = require_path_exists();
|
|
5151
5151
|
var { areIdentical } = require_stat();
|
|
5152
5152
|
async function createLink(srcpath, dstpath) {
|
|
5153
5153
|
let dstStat;
|
|
5154
5154
|
try {
|
|
5155
|
-
dstStat = await
|
|
5155
|
+
dstStat = await fs16.lstat(dstpath);
|
|
5156
5156
|
} catch {
|
|
5157
5157
|
}
|
|
5158
5158
|
let srcStat;
|
|
5159
5159
|
try {
|
|
5160
|
-
srcStat = await
|
|
5160
|
+
srcStat = await fs16.lstat(srcpath);
|
|
5161
5161
|
} catch (err) {
|
|
5162
5162
|
err.message = err.message.replace("lstat", "ensureLink");
|
|
5163
5163
|
throw err;
|
|
5164
5164
|
}
|
|
5165
5165
|
if (dstStat && areIdentical(srcStat, dstStat)) return;
|
|
5166
|
-
const dir =
|
|
5166
|
+
const dir = path21.dirname(dstpath);
|
|
5167
5167
|
const dirExists = await pathExists(dir);
|
|
5168
5168
|
if (!dirExists) {
|
|
5169
5169
|
await mkdir.mkdirs(dir);
|
|
5170
5170
|
}
|
|
5171
|
-
await
|
|
5171
|
+
await fs16.link(srcpath, dstpath);
|
|
5172
5172
|
}
|
|
5173
5173
|
function createLinkSync(srcpath, dstpath) {
|
|
5174
5174
|
let dstStat;
|
|
5175
5175
|
try {
|
|
5176
|
-
dstStat =
|
|
5176
|
+
dstStat = fs16.lstatSync(dstpath);
|
|
5177
5177
|
} catch {
|
|
5178
5178
|
}
|
|
5179
5179
|
try {
|
|
5180
|
-
const srcStat =
|
|
5180
|
+
const srcStat = fs16.lstatSync(srcpath);
|
|
5181
5181
|
if (dstStat && areIdentical(srcStat, dstStat)) return;
|
|
5182
5182
|
} catch (err) {
|
|
5183
5183
|
err.message = err.message.replace("lstat", "ensureLink");
|
|
5184
5184
|
throw err;
|
|
5185
5185
|
}
|
|
5186
|
-
const dir =
|
|
5187
|
-
const dirExists =
|
|
5188
|
-
if (dirExists) return
|
|
5186
|
+
const dir = path21.dirname(dstpath);
|
|
5187
|
+
const dirExists = fs16.existsSync(dir);
|
|
5188
|
+
if (dirExists) return fs16.linkSync(srcpath, dstpath);
|
|
5189
5189
|
mkdir.mkdirsSync(dir);
|
|
5190
|
-
return
|
|
5190
|
+
return fs16.linkSync(srcpath, dstpath);
|
|
5191
5191
|
}
|
|
5192
5192
|
module.exports = {
|
|
5193
5193
|
createLink: u3(createLink),
|
|
@@ -5199,14 +5199,14 @@ var require_link = __commonJS({
|
|
|
5199
5199
|
// ../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/ensure/symlink-paths.js
|
|
5200
5200
|
var require_symlink_paths = __commonJS({
|
|
5201
5201
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/ensure/symlink-paths.js"(exports$1, module) {
|
|
5202
|
-
var
|
|
5203
|
-
var
|
|
5202
|
+
var path21 = __require("path");
|
|
5203
|
+
var fs16 = require_fs();
|
|
5204
5204
|
var { pathExists } = require_path_exists();
|
|
5205
5205
|
var u3 = require_universalify().fromPromise;
|
|
5206
5206
|
async function symlinkPaths(srcpath, dstpath) {
|
|
5207
|
-
if (
|
|
5207
|
+
if (path21.isAbsolute(srcpath)) {
|
|
5208
5208
|
try {
|
|
5209
|
-
await
|
|
5209
|
+
await fs16.lstat(srcpath);
|
|
5210
5210
|
} catch (err) {
|
|
5211
5211
|
err.message = err.message.replace("lstat", "ensureSymlink");
|
|
5212
5212
|
throw err;
|
|
@@ -5216,8 +5216,8 @@ var require_symlink_paths = __commonJS({
|
|
|
5216
5216
|
toDst: srcpath
|
|
5217
5217
|
};
|
|
5218
5218
|
}
|
|
5219
|
-
const dstdir =
|
|
5220
|
-
const relativeToDst =
|
|
5219
|
+
const dstdir = path21.dirname(dstpath);
|
|
5220
|
+
const relativeToDst = path21.join(dstdir, srcpath);
|
|
5221
5221
|
const exists = await pathExists(relativeToDst);
|
|
5222
5222
|
if (exists) {
|
|
5223
5223
|
return {
|
|
@@ -5226,39 +5226,39 @@ var require_symlink_paths = __commonJS({
|
|
|
5226
5226
|
};
|
|
5227
5227
|
}
|
|
5228
5228
|
try {
|
|
5229
|
-
await
|
|
5229
|
+
await fs16.lstat(srcpath);
|
|
5230
5230
|
} catch (err) {
|
|
5231
5231
|
err.message = err.message.replace("lstat", "ensureSymlink");
|
|
5232
5232
|
throw err;
|
|
5233
5233
|
}
|
|
5234
5234
|
return {
|
|
5235
5235
|
toCwd: srcpath,
|
|
5236
|
-
toDst:
|
|
5236
|
+
toDst: path21.relative(dstdir, srcpath)
|
|
5237
5237
|
};
|
|
5238
5238
|
}
|
|
5239
5239
|
function symlinkPathsSync(srcpath, dstpath) {
|
|
5240
|
-
if (
|
|
5241
|
-
const exists2 =
|
|
5240
|
+
if (path21.isAbsolute(srcpath)) {
|
|
5241
|
+
const exists2 = fs16.existsSync(srcpath);
|
|
5242
5242
|
if (!exists2) throw new Error("absolute srcpath does not exist");
|
|
5243
5243
|
return {
|
|
5244
5244
|
toCwd: srcpath,
|
|
5245
5245
|
toDst: srcpath
|
|
5246
5246
|
};
|
|
5247
5247
|
}
|
|
5248
|
-
const dstdir =
|
|
5249
|
-
const relativeToDst =
|
|
5250
|
-
const exists =
|
|
5248
|
+
const dstdir = path21.dirname(dstpath);
|
|
5249
|
+
const relativeToDst = path21.join(dstdir, srcpath);
|
|
5250
|
+
const exists = fs16.existsSync(relativeToDst);
|
|
5251
5251
|
if (exists) {
|
|
5252
5252
|
return {
|
|
5253
5253
|
toCwd: relativeToDst,
|
|
5254
5254
|
toDst: srcpath
|
|
5255
5255
|
};
|
|
5256
5256
|
}
|
|
5257
|
-
const srcExists =
|
|
5257
|
+
const srcExists = fs16.existsSync(srcpath);
|
|
5258
5258
|
if (!srcExists) throw new Error("relative srcpath does not exist");
|
|
5259
5259
|
return {
|
|
5260
5260
|
toCwd: srcpath,
|
|
5261
|
-
toDst:
|
|
5261
|
+
toDst: path21.relative(dstdir, srcpath)
|
|
5262
5262
|
};
|
|
5263
5263
|
}
|
|
5264
5264
|
module.exports = {
|
|
@@ -5271,13 +5271,13 @@ var require_symlink_paths = __commonJS({
|
|
|
5271
5271
|
// ../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/ensure/symlink-type.js
|
|
5272
5272
|
var require_symlink_type = __commonJS({
|
|
5273
5273
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/ensure/symlink-type.js"(exports$1, module) {
|
|
5274
|
-
var
|
|
5274
|
+
var fs16 = require_fs();
|
|
5275
5275
|
var u3 = require_universalify().fromPromise;
|
|
5276
5276
|
async function symlinkType(srcpath, type) {
|
|
5277
5277
|
if (type) return type;
|
|
5278
5278
|
let stats;
|
|
5279
5279
|
try {
|
|
5280
|
-
stats = await
|
|
5280
|
+
stats = await fs16.lstat(srcpath);
|
|
5281
5281
|
} catch {
|
|
5282
5282
|
return "file";
|
|
5283
5283
|
}
|
|
@@ -5287,7 +5287,7 @@ var require_symlink_type = __commonJS({
|
|
|
5287
5287
|
if (type) return type;
|
|
5288
5288
|
let stats;
|
|
5289
5289
|
try {
|
|
5290
|
-
stats =
|
|
5290
|
+
stats = fs16.lstatSync(srcpath);
|
|
5291
5291
|
} catch {
|
|
5292
5292
|
return "file";
|
|
5293
5293
|
}
|
|
@@ -5304,8 +5304,8 @@ var require_symlink_type = __commonJS({
|
|
|
5304
5304
|
var require_symlink = __commonJS({
|
|
5305
5305
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/ensure/symlink.js"(exports$1, module) {
|
|
5306
5306
|
var u3 = require_universalify().fromPromise;
|
|
5307
|
-
var
|
|
5308
|
-
var
|
|
5307
|
+
var path21 = __require("path");
|
|
5308
|
+
var fs16 = require_fs();
|
|
5309
5309
|
var { mkdirs, mkdirsSync } = require_mkdirs();
|
|
5310
5310
|
var { symlinkPaths, symlinkPathsSync } = require_symlink_paths();
|
|
5311
5311
|
var { symlinkType, symlinkTypeSync } = require_symlink_type();
|
|
@@ -5314,44 +5314,44 @@ var require_symlink = __commonJS({
|
|
|
5314
5314
|
async function createSymlink(srcpath, dstpath, type) {
|
|
5315
5315
|
let stats;
|
|
5316
5316
|
try {
|
|
5317
|
-
stats = await
|
|
5317
|
+
stats = await fs16.lstat(dstpath);
|
|
5318
5318
|
} catch {
|
|
5319
5319
|
}
|
|
5320
5320
|
if (stats && stats.isSymbolicLink()) {
|
|
5321
5321
|
const [srcStat, dstStat] = await Promise.all([
|
|
5322
|
-
|
|
5323
|
-
|
|
5322
|
+
fs16.stat(srcpath),
|
|
5323
|
+
fs16.stat(dstpath)
|
|
5324
5324
|
]);
|
|
5325
5325
|
if (areIdentical(srcStat, dstStat)) return;
|
|
5326
5326
|
}
|
|
5327
5327
|
const relative = await symlinkPaths(srcpath, dstpath);
|
|
5328
5328
|
srcpath = relative.toDst;
|
|
5329
5329
|
const toType = await symlinkType(relative.toCwd, type);
|
|
5330
|
-
const dir =
|
|
5330
|
+
const dir = path21.dirname(dstpath);
|
|
5331
5331
|
if (!await pathExists(dir)) {
|
|
5332
5332
|
await mkdirs(dir);
|
|
5333
5333
|
}
|
|
5334
|
-
return
|
|
5334
|
+
return fs16.symlink(srcpath, dstpath, toType);
|
|
5335
5335
|
}
|
|
5336
5336
|
function createSymlinkSync(srcpath, dstpath, type) {
|
|
5337
5337
|
let stats;
|
|
5338
5338
|
try {
|
|
5339
|
-
stats =
|
|
5339
|
+
stats = fs16.lstatSync(dstpath);
|
|
5340
5340
|
} catch {
|
|
5341
5341
|
}
|
|
5342
5342
|
if (stats && stats.isSymbolicLink()) {
|
|
5343
|
-
const srcStat =
|
|
5344
|
-
const dstStat =
|
|
5343
|
+
const srcStat = fs16.statSync(srcpath);
|
|
5344
|
+
const dstStat = fs16.statSync(dstpath);
|
|
5345
5345
|
if (areIdentical(srcStat, dstStat)) return;
|
|
5346
5346
|
}
|
|
5347
5347
|
const relative = symlinkPathsSync(srcpath, dstpath);
|
|
5348
5348
|
srcpath = relative.toDst;
|
|
5349
5349
|
type = symlinkTypeSync(relative.toCwd, type);
|
|
5350
|
-
const dir =
|
|
5351
|
-
const exists =
|
|
5352
|
-
if (exists) return
|
|
5350
|
+
const dir = path21.dirname(dstpath);
|
|
5351
|
+
const exists = fs16.existsSync(dir);
|
|
5352
|
+
if (exists) return fs16.symlinkSync(srcpath, dstpath, type);
|
|
5353
5353
|
mkdirsSync(dir);
|
|
5354
|
-
return
|
|
5354
|
+
return fs16.symlinkSync(srcpath, dstpath, type);
|
|
5355
5355
|
}
|
|
5356
5356
|
module.exports = {
|
|
5357
5357
|
createSymlink: u3(createSymlink),
|
|
@@ -5417,9 +5417,9 @@ var require_jsonfile = __commonJS({
|
|
|
5417
5417
|
if (typeof options === "string") {
|
|
5418
5418
|
options = { encoding: options };
|
|
5419
5419
|
}
|
|
5420
|
-
const
|
|
5420
|
+
const fs16 = options.fs || _fs;
|
|
5421
5421
|
const shouldThrow = "throws" in options ? options.throws : true;
|
|
5422
|
-
let data = await universalify.fromCallback(
|
|
5422
|
+
let data = await universalify.fromCallback(fs16.readFile)(file, options);
|
|
5423
5423
|
data = stripBom(data);
|
|
5424
5424
|
let obj;
|
|
5425
5425
|
try {
|
|
@@ -5439,10 +5439,10 @@ var require_jsonfile = __commonJS({
|
|
|
5439
5439
|
if (typeof options === "string") {
|
|
5440
5440
|
options = { encoding: options };
|
|
5441
5441
|
}
|
|
5442
|
-
const
|
|
5442
|
+
const fs16 = options.fs || _fs;
|
|
5443
5443
|
const shouldThrow = "throws" in options ? options.throws : true;
|
|
5444
5444
|
try {
|
|
5445
|
-
let content =
|
|
5445
|
+
let content = fs16.readFileSync(file, options);
|
|
5446
5446
|
content = stripBom(content);
|
|
5447
5447
|
return JSON.parse(content, options.reviver);
|
|
5448
5448
|
} catch (err) {
|
|
@@ -5455,15 +5455,15 @@ var require_jsonfile = __commonJS({
|
|
|
5455
5455
|
}
|
|
5456
5456
|
}
|
|
5457
5457
|
async function _writeFile(file, obj, options = {}) {
|
|
5458
|
-
const
|
|
5458
|
+
const fs16 = options.fs || _fs;
|
|
5459
5459
|
const str = stringify(obj, options);
|
|
5460
|
-
await universalify.fromCallback(
|
|
5460
|
+
await universalify.fromCallback(fs16.writeFile)(file, str, options);
|
|
5461
5461
|
}
|
|
5462
5462
|
var writeFile = universalify.fromPromise(_writeFile);
|
|
5463
5463
|
function writeFileSync3(file, obj, options = {}) {
|
|
5464
|
-
const
|
|
5464
|
+
const fs16 = options.fs || _fs;
|
|
5465
5465
|
const str = stringify(obj, options);
|
|
5466
|
-
return
|
|
5466
|
+
return fs16.writeFileSync(file, str, options);
|
|
5467
5467
|
}
|
|
5468
5468
|
module.exports = {
|
|
5469
5469
|
readFile,
|
|
@@ -5492,23 +5492,23 @@ var require_jsonfile2 = __commonJS({
|
|
|
5492
5492
|
var require_output_file = __commonJS({
|
|
5493
5493
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/output-file/index.js"(exports$1, module) {
|
|
5494
5494
|
var u3 = require_universalify().fromPromise;
|
|
5495
|
-
var
|
|
5496
|
-
var
|
|
5495
|
+
var fs16 = require_fs();
|
|
5496
|
+
var path21 = __require("path");
|
|
5497
5497
|
var mkdir = require_mkdirs();
|
|
5498
5498
|
var pathExists = require_path_exists().pathExists;
|
|
5499
5499
|
async function outputFile(file, data, encoding = "utf-8") {
|
|
5500
|
-
const dir =
|
|
5500
|
+
const dir = path21.dirname(file);
|
|
5501
5501
|
if (!await pathExists(dir)) {
|
|
5502
5502
|
await mkdir.mkdirs(dir);
|
|
5503
5503
|
}
|
|
5504
|
-
return
|
|
5504
|
+
return fs16.writeFile(file, data, encoding);
|
|
5505
5505
|
}
|
|
5506
5506
|
function outputFileSync(file, ...args) {
|
|
5507
|
-
const dir =
|
|
5508
|
-
if (!
|
|
5507
|
+
const dir = path21.dirname(file);
|
|
5508
|
+
if (!fs16.existsSync(dir)) {
|
|
5509
5509
|
mkdir.mkdirsSync(dir);
|
|
5510
5510
|
}
|
|
5511
|
-
|
|
5511
|
+
fs16.writeFileSync(file, ...args);
|
|
5512
5512
|
}
|
|
5513
5513
|
module.exports = {
|
|
5514
5514
|
outputFile: u3(outputFile),
|
|
@@ -5563,8 +5563,8 @@ var require_json = __commonJS({
|
|
|
5563
5563
|
// ../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/move/move.js
|
|
5564
5564
|
var require_move = __commonJS({
|
|
5565
5565
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/move/move.js"(exports$1, module) {
|
|
5566
|
-
var
|
|
5567
|
-
var
|
|
5566
|
+
var fs16 = require_fs();
|
|
5567
|
+
var path21 = __require("path");
|
|
5568
5568
|
var { copy } = require_copy2();
|
|
5569
5569
|
var { remove } = require_remove();
|
|
5570
5570
|
var { mkdirp } = require_mkdirs();
|
|
@@ -5574,8 +5574,8 @@ var require_move = __commonJS({
|
|
|
5574
5574
|
const overwrite = opts.overwrite || opts.clobber || false;
|
|
5575
5575
|
const { srcStat, isChangingCase = false } = await stat.checkPaths(src, dest, "move", opts);
|
|
5576
5576
|
await stat.checkParentPaths(src, srcStat, dest, "move");
|
|
5577
|
-
const destParent =
|
|
5578
|
-
const parsedParentPath =
|
|
5577
|
+
const destParent = path21.dirname(dest);
|
|
5578
|
+
const parsedParentPath = path21.parse(destParent);
|
|
5579
5579
|
if (parsedParentPath.root !== destParent) {
|
|
5580
5580
|
await mkdirp(destParent);
|
|
5581
5581
|
}
|
|
@@ -5590,7 +5590,7 @@ var require_move = __commonJS({
|
|
|
5590
5590
|
}
|
|
5591
5591
|
}
|
|
5592
5592
|
try {
|
|
5593
|
-
await
|
|
5593
|
+
await fs16.rename(src, dest);
|
|
5594
5594
|
} catch (err) {
|
|
5595
5595
|
if (err.code !== "EXDEV") {
|
|
5596
5596
|
throw err;
|
|
@@ -5614,8 +5614,8 @@ var require_move = __commonJS({
|
|
|
5614
5614
|
// ../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/move/move-sync.js
|
|
5615
5615
|
var require_move_sync = __commonJS({
|
|
5616
5616
|
"../../node_modules/.pnpm/fs-extra@11.3.2/node_modules/fs-extra/lib/move/move-sync.js"(exports$1, module) {
|
|
5617
|
-
var
|
|
5618
|
-
var
|
|
5617
|
+
var fs16 = require_graceful_fs();
|
|
5618
|
+
var path21 = __require("path");
|
|
5619
5619
|
var copySync = require_copy2().copySync;
|
|
5620
5620
|
var removeSync = require_remove().removeSync;
|
|
5621
5621
|
var mkdirpSync = require_mkdirs().mkdirpSync;
|
|
@@ -5625,12 +5625,12 @@ var require_move_sync = __commonJS({
|
|
|
5625
5625
|
const overwrite = opts.overwrite || opts.clobber || false;
|
|
5626
5626
|
const { srcStat, isChangingCase = false } = stat.checkPathsSync(src, dest, "move", opts);
|
|
5627
5627
|
stat.checkParentPathsSync(src, srcStat, dest, "move");
|
|
5628
|
-
if (!isParentRoot(dest)) mkdirpSync(
|
|
5628
|
+
if (!isParentRoot(dest)) mkdirpSync(path21.dirname(dest));
|
|
5629
5629
|
return doRename(src, dest, overwrite, isChangingCase);
|
|
5630
5630
|
}
|
|
5631
5631
|
function isParentRoot(dest) {
|
|
5632
|
-
const parent =
|
|
5633
|
-
const parsedPath =
|
|
5632
|
+
const parent = path21.dirname(dest);
|
|
5633
|
+
const parsedPath = path21.parse(parent);
|
|
5634
5634
|
return parsedPath.root === parent;
|
|
5635
5635
|
}
|
|
5636
5636
|
function doRename(src, dest, overwrite, isChangingCase) {
|
|
@@ -5639,12 +5639,12 @@ var require_move_sync = __commonJS({
|
|
|
5639
5639
|
removeSync(dest);
|
|
5640
5640
|
return rename(src, dest, overwrite);
|
|
5641
5641
|
}
|
|
5642
|
-
if (
|
|
5642
|
+
if (fs16.existsSync(dest)) throw new Error("dest already exists.");
|
|
5643
5643
|
return rename(src, dest, overwrite);
|
|
5644
5644
|
}
|
|
5645
5645
|
function rename(src, dest, overwrite) {
|
|
5646
5646
|
try {
|
|
5647
|
-
|
|
5647
|
+
fs16.renameSync(src, dest);
|
|
5648
5648
|
} catch (err) {
|
|
5649
5649
|
if (err.code !== "EXDEV") throw err;
|
|
5650
5650
|
return moveAcrossDevice(src, dest, overwrite);
|
|
@@ -5771,8 +5771,8 @@ var require_windows = __commonJS({
|
|
|
5771
5771
|
"../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/windows.js"(exports$1, module) {
|
|
5772
5772
|
module.exports = isexe;
|
|
5773
5773
|
isexe.sync = sync;
|
|
5774
|
-
var
|
|
5775
|
-
function checkPathExt(
|
|
5774
|
+
var fs16 = __require("fs");
|
|
5775
|
+
function checkPathExt(path21, options) {
|
|
5776
5776
|
var pathext = options.pathExt !== void 0 ? options.pathExt : process.env.PATHEXT;
|
|
5777
5777
|
if (!pathext) {
|
|
5778
5778
|
return true;
|
|
@@ -5783,25 +5783,25 @@ var require_windows = __commonJS({
|
|
|
5783
5783
|
}
|
|
5784
5784
|
for (var i2 = 0; i2 < pathext.length; i2++) {
|
|
5785
5785
|
var p2 = pathext[i2].toLowerCase();
|
|
5786
|
-
if (p2 &&
|
|
5786
|
+
if (p2 && path21.substr(-p2.length).toLowerCase() === p2) {
|
|
5787
5787
|
return true;
|
|
5788
5788
|
}
|
|
5789
5789
|
}
|
|
5790
5790
|
return false;
|
|
5791
5791
|
}
|
|
5792
|
-
function checkStat(stat,
|
|
5792
|
+
function checkStat(stat, path21, options) {
|
|
5793
5793
|
if (!stat.isSymbolicLink() && !stat.isFile()) {
|
|
5794
5794
|
return false;
|
|
5795
5795
|
}
|
|
5796
|
-
return checkPathExt(
|
|
5796
|
+
return checkPathExt(path21, options);
|
|
5797
5797
|
}
|
|
5798
|
-
function isexe(
|
|
5799
|
-
|
|
5800
|
-
cb(er2, er2 ? false : checkStat(stat,
|
|
5798
|
+
function isexe(path21, options, cb) {
|
|
5799
|
+
fs16.stat(path21, function(er2, stat) {
|
|
5800
|
+
cb(er2, er2 ? false : checkStat(stat, path21, options));
|
|
5801
5801
|
});
|
|
5802
5802
|
}
|
|
5803
|
-
function sync(
|
|
5804
|
-
return checkStat(
|
|
5803
|
+
function sync(path21, options) {
|
|
5804
|
+
return checkStat(fs16.statSync(path21), path21, options);
|
|
5805
5805
|
}
|
|
5806
5806
|
}
|
|
5807
5807
|
});
|
|
@@ -5811,14 +5811,14 @@ var require_mode = __commonJS({
|
|
|
5811
5811
|
"../../node_modules/.pnpm/isexe@2.0.0/node_modules/isexe/mode.js"(exports$1, module) {
|
|
5812
5812
|
module.exports = isexe;
|
|
5813
5813
|
isexe.sync = sync;
|
|
5814
|
-
var
|
|
5815
|
-
function isexe(
|
|
5816
|
-
|
|
5814
|
+
var fs16 = __require("fs");
|
|
5815
|
+
function isexe(path21, options, cb) {
|
|
5816
|
+
fs16.stat(path21, function(er2, stat) {
|
|
5817
5817
|
cb(er2, er2 ? false : checkStat(stat, options));
|
|
5818
5818
|
});
|
|
5819
5819
|
}
|
|
5820
|
-
function sync(
|
|
5821
|
-
return checkStat(
|
|
5820
|
+
function sync(path21, options) {
|
|
5821
|
+
return checkStat(fs16.statSync(path21), options);
|
|
5822
5822
|
}
|
|
5823
5823
|
function checkStat(stat, options) {
|
|
5824
5824
|
return stat.isFile() && checkMode(stat, options);
|
|
@@ -5851,7 +5851,7 @@ var require_isexe = __commonJS({
|
|
|
5851
5851
|
}
|
|
5852
5852
|
module.exports = isexe;
|
|
5853
5853
|
isexe.sync = sync;
|
|
5854
|
-
function isexe(
|
|
5854
|
+
function isexe(path21, options, cb) {
|
|
5855
5855
|
if (typeof options === "function") {
|
|
5856
5856
|
cb = options;
|
|
5857
5857
|
options = {};
|
|
@@ -5861,7 +5861,7 @@ var require_isexe = __commonJS({
|
|
|
5861
5861
|
throw new TypeError("callback not provided");
|
|
5862
5862
|
}
|
|
5863
5863
|
return new Promise(function(resolve, reject) {
|
|
5864
|
-
isexe(
|
|
5864
|
+
isexe(path21, options || {}, function(er2, is2) {
|
|
5865
5865
|
if (er2) {
|
|
5866
5866
|
reject(er2);
|
|
5867
5867
|
} else {
|
|
@@ -5870,7 +5870,7 @@ var require_isexe = __commonJS({
|
|
|
5870
5870
|
});
|
|
5871
5871
|
});
|
|
5872
5872
|
}
|
|
5873
|
-
core(
|
|
5873
|
+
core(path21, options || {}, function(er2, is2) {
|
|
5874
5874
|
if (er2) {
|
|
5875
5875
|
if (er2.code === "EACCES" || options && options.ignoreErrors) {
|
|
5876
5876
|
er2 = null;
|
|
@@ -5880,9 +5880,9 @@ var require_isexe = __commonJS({
|
|
|
5880
5880
|
cb(er2, is2);
|
|
5881
5881
|
});
|
|
5882
5882
|
}
|
|
5883
|
-
function sync(
|
|
5883
|
+
function sync(path21, options) {
|
|
5884
5884
|
try {
|
|
5885
|
-
return core.sync(
|
|
5885
|
+
return core.sync(path21, options || {});
|
|
5886
5886
|
} catch (er2) {
|
|
5887
5887
|
if (options && options.ignoreErrors || er2.code === "EACCES") {
|
|
5888
5888
|
return false;
|
|
@@ -5898,7 +5898,7 @@ var require_isexe = __commonJS({
|
|
|
5898
5898
|
var require_which = __commonJS({
|
|
5899
5899
|
"../../node_modules/.pnpm/which@2.0.2/node_modules/which/which.js"(exports$1, module) {
|
|
5900
5900
|
var isWindows = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys";
|
|
5901
|
-
var
|
|
5901
|
+
var path21 = __require("path");
|
|
5902
5902
|
var COLON = isWindows ? ";" : ":";
|
|
5903
5903
|
var isexe = require_isexe();
|
|
5904
5904
|
var getNotFoundError = (cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: "ENOENT" });
|
|
@@ -5936,7 +5936,7 @@ var require_which = __commonJS({
|
|
|
5936
5936
|
return opt.all && found.length ? resolve(found) : reject(getNotFoundError(cmd));
|
|
5937
5937
|
const ppRaw = pathEnv[i2];
|
|
5938
5938
|
const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
|
|
5939
|
-
const pCmd =
|
|
5939
|
+
const pCmd = path21.join(pathPart, cmd);
|
|
5940
5940
|
const p2 = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;
|
|
5941
5941
|
resolve(subStep(p2, i2, 0));
|
|
5942
5942
|
});
|
|
@@ -5963,7 +5963,7 @@ var require_which = __commonJS({
|
|
|
5963
5963
|
for (let i2 = 0; i2 < pathEnv.length; i2++) {
|
|
5964
5964
|
const ppRaw = pathEnv[i2];
|
|
5965
5965
|
const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
|
|
5966
|
-
const pCmd =
|
|
5966
|
+
const pCmd = path21.join(pathPart, cmd);
|
|
5967
5967
|
const p2 = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;
|
|
5968
5968
|
for (let j3 = 0; j3 < pathExt.length; j3++) {
|
|
5969
5969
|
const cur = p2 + pathExt[j3];
|
|
@@ -6009,7 +6009,7 @@ var require_path_key = __commonJS({
|
|
|
6009
6009
|
// ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js
|
|
6010
6010
|
var require_resolveCommand = __commonJS({
|
|
6011
6011
|
"../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/resolveCommand.js"(exports$1, module) {
|
|
6012
|
-
var
|
|
6012
|
+
var path21 = __require("path");
|
|
6013
6013
|
var which = require_which();
|
|
6014
6014
|
var getPathKey = require_path_key();
|
|
6015
6015
|
function resolveCommandAttempt(parsed, withoutPathExt) {
|
|
@@ -6027,7 +6027,7 @@ var require_resolveCommand = __commonJS({
|
|
|
6027
6027
|
try {
|
|
6028
6028
|
resolved = which.sync(parsed.command, {
|
|
6029
6029
|
path: env2[getPathKey({ env: env2 })],
|
|
6030
|
-
pathExt: withoutPathExt ?
|
|
6030
|
+
pathExt: withoutPathExt ? path21.delimiter : void 0
|
|
6031
6031
|
});
|
|
6032
6032
|
} catch (e) {
|
|
6033
6033
|
} finally {
|
|
@@ -6036,7 +6036,7 @@ var require_resolveCommand = __commonJS({
|
|
|
6036
6036
|
}
|
|
6037
6037
|
}
|
|
6038
6038
|
if (resolved) {
|
|
6039
|
-
resolved =
|
|
6039
|
+
resolved = path21.resolve(hasCustomCwd ? parsed.options.cwd : "", resolved);
|
|
6040
6040
|
}
|
|
6041
6041
|
return resolved;
|
|
6042
6042
|
}
|
|
@@ -6087,8 +6087,8 @@ var require_shebang_command = __commonJS({
|
|
|
6087
6087
|
if (!match) {
|
|
6088
6088
|
return null;
|
|
6089
6089
|
}
|
|
6090
|
-
const [
|
|
6091
|
-
const binary =
|
|
6090
|
+
const [path21, argument] = match[0].replace(/#! ?/, "").split(" ");
|
|
6091
|
+
const binary = path21.split("/").pop();
|
|
6092
6092
|
if (binary === "env") {
|
|
6093
6093
|
return argument;
|
|
6094
6094
|
}
|
|
@@ -6100,16 +6100,16 @@ var require_shebang_command = __commonJS({
|
|
|
6100
6100
|
// ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js
|
|
6101
6101
|
var require_readShebang = __commonJS({
|
|
6102
6102
|
"../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/util/readShebang.js"(exports$1, module) {
|
|
6103
|
-
var
|
|
6103
|
+
var fs16 = __require("fs");
|
|
6104
6104
|
var shebangCommand = require_shebang_command();
|
|
6105
6105
|
function readShebang(command) {
|
|
6106
6106
|
const size = 150;
|
|
6107
6107
|
const buffer = Buffer.alloc(size);
|
|
6108
6108
|
let fd;
|
|
6109
6109
|
try {
|
|
6110
|
-
fd =
|
|
6111
|
-
|
|
6112
|
-
|
|
6110
|
+
fd = fs16.openSync(command, "r");
|
|
6111
|
+
fs16.readSync(fd, buffer, 0, size, 0);
|
|
6112
|
+
fs16.closeSync(fd);
|
|
6113
6113
|
} catch (e) {
|
|
6114
6114
|
}
|
|
6115
6115
|
return shebangCommand(buffer.toString());
|
|
@@ -6121,7 +6121,7 @@ var require_readShebang = __commonJS({
|
|
|
6121
6121
|
// ../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js
|
|
6122
6122
|
var require_parse2 = __commonJS({
|
|
6123
6123
|
"../../node_modules/.pnpm/cross-spawn@7.0.6/node_modules/cross-spawn/lib/parse.js"(exports$1, module) {
|
|
6124
|
-
var
|
|
6124
|
+
var path21 = __require("path");
|
|
6125
6125
|
var resolveCommand = require_resolveCommand();
|
|
6126
6126
|
var escape2 = require_escape();
|
|
6127
6127
|
var readShebang = require_readShebang();
|
|
@@ -6146,7 +6146,7 @@ var require_parse2 = __commonJS({
|
|
|
6146
6146
|
const needsShell = !isExecutableRegExp.test(commandFile);
|
|
6147
6147
|
if (parsed.options.forceShell || needsShell) {
|
|
6148
6148
|
const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);
|
|
6149
|
-
parsed.command =
|
|
6149
|
+
parsed.command = path21.normalize(parsed.command);
|
|
6150
6150
|
parsed.command = escape2.command(parsed.command);
|
|
6151
6151
|
parsed.args = parsed.args.map((arg) => escape2.argument(arg, needsDoubleEscapeMetaChars));
|
|
6152
6152
|
const shellCommand = [parsed.command].concat(parsed.args).join(" ");
|
|
@@ -6259,7 +6259,7 @@ var require_package = __commonJS({
|
|
|
6259
6259
|
"package.json"(exports$1, module) {
|
|
6260
6260
|
module.exports = {
|
|
6261
6261
|
name: "create-nextly-app",
|
|
6262
|
-
version: "0.0.2-alpha.
|
|
6262
|
+
version: "0.0.2-alpha.20",
|
|
6263
6263
|
description: "CLI to scaffold Nextly in your Next.js project",
|
|
6264
6264
|
license: "MIT",
|
|
6265
6265
|
type: "module",
|
|
@@ -20683,13 +20683,27 @@ var {
|
|
|
20683
20683
|
Help
|
|
20684
20684
|
} = import_index.default;
|
|
20685
20685
|
function resolveProjectArg(directory) {
|
|
20686
|
-
|
|
20686
|
+
const trimmed = directory?.trim();
|
|
20687
|
+
if (!trimmed) {
|
|
20687
20688
|
return { projectName: void 0, installInCwd: false };
|
|
20688
20689
|
}
|
|
20689
|
-
if (
|
|
20690
|
+
if (trimmed === "." || trimmed === "./") {
|
|
20690
20691
|
return { projectName: void 0, installInCwd: true };
|
|
20691
20692
|
}
|
|
20692
|
-
return { projectName: path__default.default.basename(
|
|
20693
|
+
return { projectName: path__default.default.basename(trimmed), installInCwd: false };
|
|
20694
|
+
}
|
|
20695
|
+
function validateProjectName(name) {
|
|
20696
|
+
if (!/^[a-z0-9][a-z0-9._-]*$/.test(name)) {
|
|
20697
|
+
return "Use lowercase letters, numbers, hyphens, dots, or underscores";
|
|
20698
|
+
}
|
|
20699
|
+
return void 0;
|
|
20700
|
+
}
|
|
20701
|
+
function validateProjectNamePromptInput(value) {
|
|
20702
|
+
const trimmed = (value ?? "").trim();
|
|
20703
|
+
if (trimmed === "") return void 0;
|
|
20704
|
+
if (trimmed === "." || trimmed === "./") return void 0;
|
|
20705
|
+
const candidate = trimmed.startsWith("./") ? trimmed.slice(2) : trimmed;
|
|
20706
|
+
return validateProjectName(path__default.default.basename(candidate));
|
|
20693
20707
|
}
|
|
20694
20708
|
|
|
20695
20709
|
// ../../node_modules/.pnpm/@clack+core@1.1.0/node_modules/@clack/core/dist/index.mjs
|
|
@@ -21573,7 +21587,7 @@ ${l}
|
|
|
21573
21587
|
} }).prompt();
|
|
21574
21588
|
|
|
21575
21589
|
// src/create-nextly.ts
|
|
21576
|
-
var
|
|
21590
|
+
var import_fs_extra13 = __toESM(require_lib());
|
|
21577
21591
|
var import_picocolors3 = __toESM(require_picocolors2());
|
|
21578
21592
|
|
|
21579
21593
|
// src/generators/admin.ts
|
|
@@ -21581,9 +21595,6 @@ var import_fs_extra = __toESM(require_lib());
|
|
|
21581
21595
|
var ADMIN_PAGE_TEMPLATE = `"use client";
|
|
21582
21596
|
|
|
21583
21597
|
import "@nextlyhq/admin/style.css";
|
|
21584
|
-
import "@nextlyhq/plugin-form-builder/admin";
|
|
21585
|
-
import "@nextlyhq/plugin-form-builder/styles/builder.css";
|
|
21586
|
-
import "@nextlyhq/plugin-form-builder/styles/submissions-filter.css";
|
|
21587
21598
|
import { RootLayout, QueryProvider, ErrorBoundary } from "@nextlyhq/admin";
|
|
21588
21599
|
|
|
21589
21600
|
export default function AdminPage() {
|
|
@@ -21800,22 +21811,42 @@ async function generateMediaRoutes(cwd, projectInfo) {
|
|
|
21800
21811
|
|
|
21801
21812
|
// src/generators/next-config.ts
|
|
21802
21813
|
var import_fs_extra5 = __toESM(require_lib());
|
|
21803
|
-
var
|
|
21814
|
+
var COMMON_SERVER_EXTERNAL_PACKAGES = [
|
|
21804
21815
|
"nextly",
|
|
21805
21816
|
"@nextlyhq/adapter-drizzle",
|
|
21806
|
-
"@nextlyhq/adapter-postgres",
|
|
21807
|
-
"@nextlyhq/adapter-mysql",
|
|
21808
|
-
"@nextlyhq/adapter-sqlite",
|
|
21809
21817
|
"drizzle-orm",
|
|
21810
21818
|
"drizzle-kit",
|
|
21811
|
-
"pg",
|
|
21812
|
-
"mysql2",
|
|
21813
|
-
"better-sqlite3",
|
|
21814
21819
|
"bcryptjs",
|
|
21815
21820
|
"sharp",
|
|
21816
21821
|
"esbuild"
|
|
21817
21822
|
];
|
|
21818
|
-
|
|
21823
|
+
var DATABASE_SERVER_EXTERNAL_PACKAGES = {
|
|
21824
|
+
postgresql: ["@nextlyhq/adapter-postgres", "pg"],
|
|
21825
|
+
mysql: ["@nextlyhq/adapter-mysql", "mysql2"],
|
|
21826
|
+
sqlite: ["@nextlyhq/adapter-sqlite", "better-sqlite3"]
|
|
21827
|
+
};
|
|
21828
|
+
function getServerExternalPackages(database) {
|
|
21829
|
+
return [
|
|
21830
|
+
...COMMON_SERVER_EXTERNAL_PACKAGES,
|
|
21831
|
+
...DATABASE_SERVER_EXTERNAL_PACKAGES[database.type]
|
|
21832
|
+
];
|
|
21833
|
+
}
|
|
21834
|
+
function buildNextConfigTemplate(database) {
|
|
21835
|
+
const packagesArray = JSON.stringify(
|
|
21836
|
+
getServerExternalPackages(database),
|
|
21837
|
+
null,
|
|
21838
|
+
2
|
|
21839
|
+
).replace(/\n/g, "\n ");
|
|
21840
|
+
return `import type { NextConfig } from "next";
|
|
21841
|
+
|
|
21842
|
+
const nextConfig: NextConfig = {
|
|
21843
|
+
serverExternalPackages: ${packagesArray},
|
|
21844
|
+
};
|
|
21845
|
+
|
|
21846
|
+
export default nextConfig;
|
|
21847
|
+
`;
|
|
21848
|
+
}
|
|
21849
|
+
async function patchNextConfig(cwd, database) {
|
|
21819
21850
|
const candidates = ["next.config.ts", "next.config.mjs", "next.config.js"];
|
|
21820
21851
|
let configPath = null;
|
|
21821
21852
|
for (const name of candidates) {
|
|
@@ -21832,7 +21863,11 @@ async function patchNextConfig(cwd) {
|
|
|
21832
21863
|
if (content.includes("serverExternalPackages")) {
|
|
21833
21864
|
return;
|
|
21834
21865
|
}
|
|
21835
|
-
const packagesArray = JSON.stringify(
|
|
21866
|
+
const packagesArray = JSON.stringify(
|
|
21867
|
+
getServerExternalPackages(database),
|
|
21868
|
+
null,
|
|
21869
|
+
2
|
|
21870
|
+
).replace(/\n/g, "\n ");
|
|
21836
21871
|
const configObjectPattern = /(const\s+\w+\s*(?::\s*NextConfig\s*)?=\s*\{)/;
|
|
21837
21872
|
if (configObjectPattern.test(content)) {
|
|
21838
21873
|
const patched = content.replace(
|
|
@@ -26132,13 +26167,13 @@ var logOutputSync = ({ serializedResult, fdNumber, state: state2, verboseInfo, e
|
|
|
26132
26167
|
}
|
|
26133
26168
|
};
|
|
26134
26169
|
var writeToFiles = (serializedResult, stdioItems, outputFiles) => {
|
|
26135
|
-
for (const { path:
|
|
26136
|
-
const pathString = typeof
|
|
26170
|
+
for (const { path: path21, append } of stdioItems.filter(({ type }) => FILE_TYPES.has(type))) {
|
|
26171
|
+
const pathString = typeof path21 === "string" ? path21 : path21.toString();
|
|
26137
26172
|
if (append || outputFiles.has(pathString)) {
|
|
26138
|
-
fs.appendFileSync(
|
|
26173
|
+
fs.appendFileSync(path21, serializedResult);
|
|
26139
26174
|
} else {
|
|
26140
26175
|
outputFiles.add(pathString);
|
|
26141
|
-
fs.writeFileSync(
|
|
26176
|
+
fs.writeFileSync(path21, serializedResult);
|
|
26142
26177
|
}
|
|
26143
26178
|
}
|
|
26144
26179
|
};
|
|
@@ -28434,121 +28469,448 @@ createExeca(mapNode);
|
|
|
28434
28469
|
createExeca(mapScriptAsync, {}, deepScriptOptions, setScriptSync);
|
|
28435
28470
|
getIpcExport();
|
|
28436
28471
|
|
|
28437
|
-
// src/
|
|
28438
|
-
var
|
|
28439
|
-
|
|
28440
|
-
|
|
28441
|
-
|
|
28442
|
-
|
|
28472
|
+
// src/utils/template.ts
|
|
28473
|
+
var import_fs_extra8 = __toESM(require_lib());
|
|
28474
|
+
var PROJECT_TYPES_WITH_FORM_BUILDER = /* @__PURE__ */ new Set([
|
|
28475
|
+
"blog"
|
|
28476
|
+
]);
|
|
28477
|
+
function projectUsesFormBuilder(projectType) {
|
|
28478
|
+
return PROJECT_TYPES_WITH_FORM_BUILDER.has(projectType);
|
|
28479
|
+
}
|
|
28480
|
+
var TEXT_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
28481
|
+
".ts",
|
|
28482
|
+
".tsx",
|
|
28483
|
+
".js",
|
|
28484
|
+
".jsx",
|
|
28485
|
+
".json",
|
|
28486
|
+
".env",
|
|
28487
|
+
".md",
|
|
28488
|
+
".css",
|
|
28489
|
+
".html",
|
|
28490
|
+
".mjs",
|
|
28491
|
+
".cjs"
|
|
28492
|
+
]);
|
|
28493
|
+
var SKIP_FILES = /* @__PURE__ */ new Set([".DS_Store", "Thumbs.db", ".gitkeep"]);
|
|
28494
|
+
function resolveTemplatePath(localTemplatePath) {
|
|
28495
|
+
const __dirname = path__default.default.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli.cjs', document.baseURI).href))));
|
|
28496
|
+
const fromDist = path__default.default.resolve(__dirname, "../templates");
|
|
28497
|
+
if (import_fs_extra8.default.existsSync(fromDist)) {
|
|
28498
|
+
return fromDist;
|
|
28499
|
+
}
|
|
28500
|
+
const fromSrc = path__default.default.resolve(__dirname, "../../templates");
|
|
28501
|
+
if (import_fs_extra8.default.existsSync(fromSrc)) {
|
|
28502
|
+
return fromSrc;
|
|
28503
|
+
}
|
|
28504
|
+
throw new Error(
|
|
28505
|
+
"Could not find templates directory. Use --local-template to specify the templates path, or ensure templates are bundled."
|
|
28506
|
+
);
|
|
28507
|
+
}
|
|
28508
|
+
function buildPlaceholderMap(options) {
|
|
28509
|
+
const { database, databaseUrl } = options;
|
|
28510
|
+
return {
|
|
28511
|
+
"{{databaseDialect}}": database.type,
|
|
28512
|
+
"{{databaseUrl}}": databaseUrl || database.envExample
|
|
28513
|
+
};
|
|
28514
|
+
}
|
|
28515
|
+
async function replacePlaceholdersInFile(filePath, placeholders) {
|
|
28516
|
+
const ext = path__default.default.extname(filePath).toLowerCase();
|
|
28517
|
+
const basename = path__default.default.basename(filePath);
|
|
28518
|
+
const isTextFile = TEXT_EXTENSIONS.has(ext) || basename.startsWith(".env") || basename === ".gitignore";
|
|
28519
|
+
if (!isTextFile) return;
|
|
28520
|
+
let content = await import_fs_extra8.default.readFile(filePath, "utf-8");
|
|
28521
|
+
let changed = false;
|
|
28522
|
+
for (const [placeholder, value] of Object.entries(placeholders)) {
|
|
28523
|
+
if (content.includes(placeholder)) {
|
|
28524
|
+
content = content.replaceAll(placeholder, value);
|
|
28525
|
+
changed = true;
|
|
28526
|
+
}
|
|
28527
|
+
}
|
|
28528
|
+
if (changed) {
|
|
28529
|
+
await import_fs_extra8.default.writeFile(filePath, content, "utf-8");
|
|
28530
|
+
}
|
|
28531
|
+
}
|
|
28532
|
+
async function replacePlaceholders(dir, placeholders) {
|
|
28533
|
+
const entries = await import_fs_extra8.default.readdir(dir, { withFileTypes: true });
|
|
28534
|
+
for (const entry of entries) {
|
|
28535
|
+
const fullPath = path__default.default.join(dir, entry.name);
|
|
28536
|
+
if (entry.isDirectory()) {
|
|
28537
|
+
if (entry.name === "node_modules" || entry.name === ".git") continue;
|
|
28538
|
+
await replacePlaceholders(fullPath, placeholders);
|
|
28539
|
+
} else if (entry.isFile()) {
|
|
28540
|
+
await replacePlaceholdersInFile(fullPath, placeholders);
|
|
28541
|
+
}
|
|
28542
|
+
}
|
|
28543
|
+
}
|
|
28544
|
+
var PINNED_VERSIONS = {
|
|
28545
|
+
// Next.js ecosystem — resolved at runtime via fetchLatestVersion()
|
|
28546
|
+
// (see generatePackageJson)
|
|
28547
|
+
react: "^19.1.0",
|
|
28548
|
+
"react-dom": "^19.1.0",
|
|
28549
|
+
// Dev dependencies
|
|
28550
|
+
typescript: "^5",
|
|
28551
|
+
"@types/node": "^20",
|
|
28552
|
+
"@types/react": "^19",
|
|
28553
|
+
"@types/react-dom": "^19",
|
|
28554
|
+
"@tailwindcss/postcss": "^4",
|
|
28555
|
+
tailwindcss: "^4",
|
|
28556
|
+
eslint: "^9"
|
|
28443
28557
|
};
|
|
28444
|
-
var
|
|
28558
|
+
var RUNTIME_RESOLVED_PACKAGES = ["next", "eslint-config-next"];
|
|
28559
|
+
var NEXTLY_PACKAGES = [
|
|
28445
28560
|
"nextly",
|
|
28446
28561
|
"@nextlyhq/admin",
|
|
28447
|
-
"@nextlyhq/adapter-drizzle",
|
|
28448
28562
|
"@nextlyhq/ui",
|
|
28449
|
-
"@
|
|
28450
|
-
];
|
|
28451
|
-
var ALL_ADAPTER_PACKAGES = [
|
|
28563
|
+
"@nextlyhq/adapter-drizzle",
|
|
28452
28564
|
"@nextlyhq/adapter-postgres",
|
|
28453
28565
|
"@nextlyhq/adapter-mysql",
|
|
28454
|
-
"@nextlyhq/adapter-sqlite"
|
|
28455
|
-
];
|
|
28456
|
-
var TEMPLATE_PLUGIN_PACKAGES = [
|
|
28566
|
+
"@nextlyhq/adapter-sqlite",
|
|
28457
28567
|
"@nextlyhq/plugin-form-builder"
|
|
28458
28568
|
];
|
|
28459
|
-
|
|
28460
|
-
|
|
28569
|
+
var resolvedNextlyVersions = null;
|
|
28570
|
+
async function fetchLatestVersion(pkg2) {
|
|
28571
|
+
try {
|
|
28572
|
+
const res = await fetch(
|
|
28573
|
+
`https://registry.npmjs.org/-/package/${encodeURIComponent(pkg2)}/dist-tags`,
|
|
28574
|
+
{ signal: AbortSignal.timeout(5e3) }
|
|
28575
|
+
);
|
|
28576
|
+
if (!res.ok) return "latest";
|
|
28577
|
+
const data = await res.json();
|
|
28578
|
+
return data.latest ? `^${data.latest}` : "latest";
|
|
28579
|
+
} catch {
|
|
28580
|
+
return "latest";
|
|
28581
|
+
}
|
|
28461
28582
|
}
|
|
28462
|
-
async function
|
|
28463
|
-
|
|
28464
|
-
|
|
28465
|
-
|
|
28466
|
-
|
|
28467
|
-
|
|
28468
|
-
|
|
28469
|
-
|
|
28470
|
-
|
|
28471
|
-
|
|
28472
|
-
|
|
28473
|
-
|
|
28474
|
-
|
|
28475
|
-
|
|
28476
|
-
|
|
28477
|
-
|
|
28478
|
-
|
|
28479
|
-
|
|
28480
|
-
|
|
28481
|
-
|
|
28482
|
-
|
|
28483
|
-
}
|
|
28484
|
-
|
|
28485
|
-
|
|
28486
|
-
|
|
28487
|
-
|
|
28488
|
-
|
|
28489
|
-
|
|
28490
|
-
|
|
28491
|
-
|
|
28492
|
-
|
|
28493
|
-
|
|
28494
|
-
|
|
28495
|
-
|
|
28496
|
-
|
|
28497
|
-
|
|
28498
|
-
|
|
28499
|
-
|
|
28500
|
-
|
|
28501
|
-
|
|
28502
|
-
|
|
28503
|
-
|
|
28583
|
+
async function resolveNextlyVersions() {
|
|
28584
|
+
if (resolvedNextlyVersions) return resolvedNextlyVersions;
|
|
28585
|
+
const entries = await Promise.all(
|
|
28586
|
+
NEXTLY_PACKAGES.map(
|
|
28587
|
+
async (pkg2) => [pkg2, await fetchLatestVersion(pkg2)]
|
|
28588
|
+
)
|
|
28589
|
+
);
|
|
28590
|
+
resolvedNextlyVersions = Object.fromEntries(entries);
|
|
28591
|
+
return resolvedNextlyVersions;
|
|
28592
|
+
}
|
|
28593
|
+
var resolvedRuntimeVersions = null;
|
|
28594
|
+
async function resolveRuntimeVersions() {
|
|
28595
|
+
if (resolvedRuntimeVersions) return resolvedRuntimeVersions;
|
|
28596
|
+
const FALLBACKS = {
|
|
28597
|
+
next: "^16.1.0",
|
|
28598
|
+
"eslint-config-next": "^16.1.0"
|
|
28599
|
+
};
|
|
28600
|
+
const entries = await Promise.all(
|
|
28601
|
+
RUNTIME_RESOLVED_PACKAGES.map(async (pkg2) => {
|
|
28602
|
+
const version2 = await fetchLatestVersion(pkg2);
|
|
28603
|
+
return [pkg2, version2 === "latest" ? FALLBACKS[pkg2] : version2];
|
|
28604
|
+
})
|
|
28605
|
+
);
|
|
28606
|
+
resolvedRuntimeVersions = Object.fromEntries(entries);
|
|
28607
|
+
return resolvedRuntimeVersions;
|
|
28608
|
+
}
|
|
28609
|
+
async function generatePackageJson(projectName, database, useYalc = false, projectType = "blank") {
|
|
28610
|
+
const runtimeVersions = await resolveRuntimeVersions();
|
|
28611
|
+
const dependencies = {
|
|
28612
|
+
next: runtimeVersions.next,
|
|
28613
|
+
react: PINNED_VERSIONS.react,
|
|
28614
|
+
"react-dom": PINNED_VERSIONS["react-dom"]
|
|
28615
|
+
};
|
|
28616
|
+
dependencies["@tanstack/react-query"] = "^5.62.0";
|
|
28617
|
+
if (!useYalc) {
|
|
28618
|
+
const versions = await resolveNextlyVersions();
|
|
28619
|
+
dependencies["nextly"] = versions["nextly"];
|
|
28620
|
+
dependencies["@nextlyhq/admin"] = versions["@nextlyhq/admin"];
|
|
28621
|
+
dependencies["@nextlyhq/ui"] = versions["@nextlyhq/ui"] || "latest";
|
|
28622
|
+
dependencies["@nextlyhq/adapter-drizzle"] = versions["@nextlyhq/adapter-drizzle"];
|
|
28623
|
+
dependencies[database.adapter] = versions[database.adapter] || "latest";
|
|
28624
|
+
if (projectUsesFormBuilder(projectType)) {
|
|
28625
|
+
dependencies["@nextlyhq/plugin-form-builder"] = versions["@nextlyhq/plugin-form-builder"] || "latest";
|
|
28504
28626
|
}
|
|
28505
28627
|
}
|
|
28506
|
-
|
|
28507
|
-
|
|
28508
|
-
|
|
28509
|
-
|
|
28510
|
-
|
|
28511
|
-
|
|
28512
|
-
|
|
28513
|
-
|
|
28514
|
-
|
|
28515
|
-
|
|
28516
|
-
|
|
28517
|
-
|
|
28518
|
-
|
|
28519
|
-
|
|
28520
|
-
|
|
28521
|
-
|
|
28522
|
-
|
|
28523
|
-
|
|
28524
|
-
|
|
28525
|
-
|
|
28526
|
-
|
|
28527
|
-
|
|
28528
|
-
|
|
28529
|
-
|
|
28530
|
-
|
|
28531
|
-
|
|
28532
|
-
|
|
28533
|
-
|
|
28534
|
-
|
|
28535
|
-
|
|
28536
|
-
|
|
28537
|
-
|
|
28538
|
-
|
|
28539
|
-
|
|
28540
|
-
|
|
28541
|
-
|
|
28542
|
-
|
|
28543
|
-
|
|
28544
|
-
|
|
28545
|
-
|
|
28546
|
-
|
|
28547
|
-
|
|
28548
|
-
|
|
28549
|
-
|
|
28550
|
-
|
|
28551
|
-
|
|
28628
|
+
const devDependencies = {
|
|
28629
|
+
typescript: PINNED_VERSIONS.typescript,
|
|
28630
|
+
"@types/node": PINNED_VERSIONS["@types/node"],
|
|
28631
|
+
"@types/react": PINNED_VERSIONS["@types/react"],
|
|
28632
|
+
"@types/react-dom": PINNED_VERSIONS["@types/react-dom"],
|
|
28633
|
+
"@tailwindcss/postcss": PINNED_VERSIONS["@tailwindcss/postcss"],
|
|
28634
|
+
tailwindcss: PINNED_VERSIONS.tailwindcss,
|
|
28635
|
+
eslint: PINNED_VERSIONS.eslint,
|
|
28636
|
+
"eslint-config-next": runtimeVersions["eslint-config-next"],
|
|
28637
|
+
// Pagefind powers /search in the blog template. Zero-config
|
|
28638
|
+
// static index generated at `next build` time. Templates that
|
|
28639
|
+
// don't ship a /search page simply won't invoke it.
|
|
28640
|
+
pagefind: "^1.1.0"
|
|
28641
|
+
};
|
|
28642
|
+
const onlyBuiltDependencies = ["sharp", "esbuild", "unrs-resolver"];
|
|
28643
|
+
if (database.type === "sqlite") {
|
|
28644
|
+
onlyBuiltDependencies.push("better-sqlite3");
|
|
28645
|
+
}
|
|
28646
|
+
const pkg2 = {
|
|
28647
|
+
name: projectName,
|
|
28648
|
+
version: "0.1.0",
|
|
28649
|
+
private: true,
|
|
28650
|
+
scripts: {
|
|
28651
|
+
// F1 PR 4: dev now boots Nextly in single-process mode via `next dev`.
|
|
28652
|
+
// The lazy drizzle-kit/api import (PR 1) plus the in-process HMR
|
|
28653
|
+
// listener (PR 2) replaced the wrapper that previously owned the
|
|
28654
|
+
// terminal, schema prompts, and child supervision. `nextly dev` is
|
|
28655
|
+
// gone; the only supported dev command is the standard `next dev`.
|
|
28656
|
+
dev: "next dev --turbopack",
|
|
28657
|
+
// Build: migrate DB + compile Next.js + (if present) generate
|
|
28658
|
+
// the Pagefind search index. Templates without the search
|
|
28659
|
+
// script silently skip the last step.
|
|
28660
|
+
build: "nextly migrate && next build && (test -f scripts/build-search-index.mjs && node scripts/build-search-index.mjs || true)",
|
|
28661
|
+
"search:index": "node scripts/build-search-index.mjs",
|
|
28662
|
+
start: "next start",
|
|
28663
|
+
lint: "next lint",
|
|
28664
|
+
nextly: "nextly",
|
|
28665
|
+
// First-time setup: sync schema + seed system permissions. Demo
|
|
28666
|
+
// content is seeded separately from the admin UI (visit /welcome
|
|
28667
|
+
// after running `pnpm dev` and completing /admin/setup).
|
|
28668
|
+
"db:setup": "nextly db:sync",
|
|
28669
|
+
"db:migrate": "nextly migrate",
|
|
28670
|
+
"db:migrate:status": "nextly migrate:status",
|
|
28671
|
+
"db:migrate:fresh": "nextly migrate:fresh",
|
|
28672
|
+
"db:migrate:reset": "nextly migrate:reset",
|
|
28673
|
+
"types:generate": "nextly generate:types"
|
|
28674
|
+
},
|
|
28675
|
+
dependencies,
|
|
28676
|
+
devDependencies,
|
|
28677
|
+
pnpm: {
|
|
28678
|
+
onlyBuiltDependencies
|
|
28679
|
+
}
|
|
28680
|
+
};
|
|
28681
|
+
return JSON.stringify(pkg2, null, 2) + "\n";
|
|
28682
|
+
}
|
|
28683
|
+
async function copyTemplate(options) {
|
|
28684
|
+
const {
|
|
28685
|
+
projectName,
|
|
28686
|
+
projectType,
|
|
28687
|
+
targetDir,
|
|
28688
|
+
database,
|
|
28689
|
+
databaseUrl,
|
|
28690
|
+
useYalc = false,
|
|
28691
|
+
approach,
|
|
28692
|
+
templateSource,
|
|
28693
|
+
allowExistingTarget = false
|
|
28694
|
+
} = options;
|
|
28695
|
+
if (!allowExistingTarget && targetDir !== process.cwd() && await import_fs_extra8.default.pathExists(targetDir)) {
|
|
28696
|
+
throw new Error(
|
|
28697
|
+
`Directory "${path__default.default.basename(targetDir)}" already exists. Please choose a different name.`
|
|
28698
|
+
);
|
|
28699
|
+
}
|
|
28700
|
+
let baseDir;
|
|
28701
|
+
let typeDir;
|
|
28702
|
+
if (templateSource) {
|
|
28703
|
+
baseDir = templateSource.basePath;
|
|
28704
|
+
typeDir = templateSource.templatePath;
|
|
28705
|
+
} else {
|
|
28706
|
+
const templatesRoot = resolveTemplatePath();
|
|
28707
|
+
baseDir = path__default.default.join(templatesRoot, "base");
|
|
28708
|
+
typeDir = path__default.default.join(templatesRoot, projectType);
|
|
28709
|
+
}
|
|
28710
|
+
if (!await import_fs_extra8.default.pathExists(baseDir)) {
|
|
28711
|
+
throw new Error(
|
|
28712
|
+
`Base template not found at ${baseDir}. The package may be corrupted or the download failed.`
|
|
28713
|
+
);
|
|
28714
|
+
}
|
|
28715
|
+
if (!await import_fs_extra8.default.pathExists(typeDir)) {
|
|
28716
|
+
throw new Error(
|
|
28717
|
+
`Template "${projectType}" not found at ${typeDir}. Available templates: blank, blog.`
|
|
28718
|
+
);
|
|
28719
|
+
}
|
|
28720
|
+
await import_fs_extra8.default.copy(baseDir, targetDir, {
|
|
28721
|
+
filter: (_src) => {
|
|
28722
|
+
const basename = path__default.default.basename(_src);
|
|
28723
|
+
return !SKIP_FILES.has(basename);
|
|
28724
|
+
}
|
|
28725
|
+
});
|
|
28726
|
+
const templateSrcDir = path__default.default.join(typeDir, "src");
|
|
28727
|
+
if (await import_fs_extra8.default.pathExists(templateSrcDir)) {
|
|
28728
|
+
await import_fs_extra8.default.copy(templateSrcDir, path__default.default.join(targetDir, "src"), {
|
|
28729
|
+
overwrite: true,
|
|
28730
|
+
filter: (_src) => {
|
|
28731
|
+
const basename = path__default.default.basename(_src);
|
|
28732
|
+
return !SKIP_FILES.has(basename);
|
|
28733
|
+
}
|
|
28734
|
+
});
|
|
28735
|
+
}
|
|
28736
|
+
const templateRootConfig = path__default.default.join(typeDir, "nextly.config.ts");
|
|
28737
|
+
if (await import_fs_extra8.default.pathExists(templateRootConfig)) {
|
|
28738
|
+
await import_fs_extra8.default.copy(
|
|
28739
|
+
templateRootConfig,
|
|
28740
|
+
path__default.default.join(targetDir, "nextly.config.ts"),
|
|
28741
|
+
{ overwrite: true }
|
|
28742
|
+
);
|
|
28743
|
+
}
|
|
28744
|
+
const configsDir = path__default.default.join(typeDir, "configs");
|
|
28745
|
+
if (approach && await import_fs_extra8.default.pathExists(configsDir)) {
|
|
28746
|
+
const configFileName = approach === "code-first" ? "codefirst.config.ts" : `${approach}.config.ts`;
|
|
28747
|
+
const configSrc = path__default.default.join(configsDir, configFileName);
|
|
28748
|
+
if (await import_fs_extra8.default.pathExists(configSrc)) {
|
|
28749
|
+
await import_fs_extra8.default.copy(configSrc, path__default.default.join(targetDir, "nextly.config.ts"), {
|
|
28750
|
+
overwrite: true
|
|
28751
|
+
});
|
|
28752
|
+
}
|
|
28753
|
+
const sharedSrc = path__default.default.join(configsDir, "shared.ts");
|
|
28754
|
+
if (await import_fs_extra8.default.pathExists(sharedSrc)) {
|
|
28755
|
+
await import_fs_extra8.default.copy(sharedSrc, path__default.default.join(targetDir, "shared.ts"), {
|
|
28756
|
+
overwrite: true
|
|
28757
|
+
});
|
|
28758
|
+
}
|
|
28759
|
+
}
|
|
28760
|
+
const frontendPagePath = path__default.default.join(
|
|
28761
|
+
targetDir,
|
|
28762
|
+
"src",
|
|
28763
|
+
"app",
|
|
28764
|
+
"(frontend)",
|
|
28765
|
+
"page.tsx"
|
|
28766
|
+
);
|
|
28767
|
+
const basePagePath = path__default.default.join(targetDir, "src", "app", "page.tsx");
|
|
28768
|
+
if (await import_fs_extra8.default.pathExists(frontendPagePath) && await import_fs_extra8.default.pathExists(basePagePath)) {
|
|
28769
|
+
await import_fs_extra8.default.remove(basePagePath);
|
|
28770
|
+
}
|
|
28771
|
+
const packageJsonContent = await generatePackageJson(
|
|
28772
|
+
projectName,
|
|
28773
|
+
database,
|
|
28774
|
+
useYalc,
|
|
28775
|
+
projectType
|
|
28776
|
+
);
|
|
28777
|
+
await import_fs_extra8.default.writeFile(
|
|
28778
|
+
path__default.default.join(targetDir, "package.json"),
|
|
28779
|
+
packageJsonContent,
|
|
28780
|
+
"utf-8"
|
|
28781
|
+
);
|
|
28782
|
+
if (database.type === "sqlite") {
|
|
28783
|
+
await import_fs_extra8.default.ensureDir(path__default.default.join(targetDir, "data"));
|
|
28784
|
+
}
|
|
28785
|
+
await import_fs_extra8.default.writeFile(
|
|
28786
|
+
path__default.default.join(targetDir, "next.config.ts"),
|
|
28787
|
+
buildNextConfigTemplate(database),
|
|
28788
|
+
"utf-8"
|
|
28789
|
+
);
|
|
28790
|
+
const placeholders = buildPlaceholderMap({ database, databaseUrl });
|
|
28791
|
+
if (approach) {
|
|
28792
|
+
placeholders["{{approach}}"] = approach;
|
|
28793
|
+
}
|
|
28794
|
+
await replacePlaceholders(targetDir, placeholders);
|
|
28795
|
+
}
|
|
28796
|
+
|
|
28797
|
+
// src/installers/dependencies.ts
|
|
28798
|
+
var INSTALL_COMMANDS = {
|
|
28799
|
+
npm: ["npm", "install"],
|
|
28800
|
+
yarn: ["yarn", "add"],
|
|
28801
|
+
pnpm: ["pnpm", "add"],
|
|
28802
|
+
bun: ["bun", "add"]
|
|
28803
|
+
};
|
|
28804
|
+
var CORE_PACKAGES = [
|
|
28805
|
+
"nextly",
|
|
28806
|
+
"@nextlyhq/admin",
|
|
28807
|
+
"@nextlyhq/adapter-drizzle",
|
|
28808
|
+
"@nextlyhq/ui",
|
|
28809
|
+
"@tanstack/react-query"
|
|
28810
|
+
];
|
|
28811
|
+
var ALL_ADAPTER_PACKAGES = [
|
|
28812
|
+
"@nextlyhq/adapter-postgres",
|
|
28813
|
+
"@nextlyhq/adapter-mysql",
|
|
28814
|
+
"@nextlyhq/adapter-sqlite"
|
|
28815
|
+
];
|
|
28816
|
+
var TEMPLATE_PLUGIN_PACKAGES = ["@nextlyhq/plugin-form-builder"];
|
|
28817
|
+
function templatePluginPackages(projectType) {
|
|
28818
|
+
return projectType && projectUsesFormBuilder(projectType) ? TEMPLATE_PLUGIN_PACKAGES : [];
|
|
28819
|
+
}
|
|
28820
|
+
function getPackagesToInstall(database) {
|
|
28821
|
+
return [...CORE_PACKAGES, database.adapter];
|
|
28822
|
+
}
|
|
28823
|
+
async function installDependencies(cwd, projectInfo, database, useYalc = false, isFreshProject = false, projectType) {
|
|
28824
|
+
const pm = projectInfo.packageManager;
|
|
28825
|
+
const pluginPackages = templatePluginPackages(projectType);
|
|
28826
|
+
if (isFreshProject) {
|
|
28827
|
+
if (useYalc) {
|
|
28828
|
+
const yalcPackages = [
|
|
28829
|
+
.../* @__PURE__ */ new Set([
|
|
28830
|
+
"nextly",
|
|
28831
|
+
"@nextlyhq/admin",
|
|
28832
|
+
"@nextlyhq/ui",
|
|
28833
|
+
"@nextlyhq/adapter-drizzle",
|
|
28834
|
+
...ALL_ADAPTER_PACKAGES,
|
|
28835
|
+
...pluginPackages
|
|
28836
|
+
])
|
|
28837
|
+
];
|
|
28838
|
+
await execa(pm, ["install"], { cwd });
|
|
28839
|
+
for (const pkg2 of yalcPackages) {
|
|
28840
|
+
await execa("yalc", ["add", pkg2], { cwd });
|
|
28841
|
+
}
|
|
28842
|
+
await execa(pm, ["install"], { cwd });
|
|
28843
|
+
} else {
|
|
28844
|
+
await execa(pm, ["install"], { cwd });
|
|
28845
|
+
}
|
|
28846
|
+
} else {
|
|
28847
|
+
const allPackages = getPackagesToInstall(database);
|
|
28848
|
+
if (useYalc) {
|
|
28849
|
+
const yalcPackages = [
|
|
28850
|
+
.../* @__PURE__ */ new Set([
|
|
28851
|
+
"nextly",
|
|
28852
|
+
"@nextlyhq/admin",
|
|
28853
|
+
"@nextlyhq/ui",
|
|
28854
|
+
"@nextlyhq/adapter-drizzle",
|
|
28855
|
+
...ALL_ADAPTER_PACKAGES,
|
|
28856
|
+
...pluginPackages
|
|
28857
|
+
])
|
|
28858
|
+
];
|
|
28859
|
+
for (const pkg2 of yalcPackages) {
|
|
28860
|
+
await execa("yalc", ["add", pkg2], { cwd });
|
|
28861
|
+
}
|
|
28862
|
+
await execa(pm, ["install"], { cwd });
|
|
28863
|
+
} else {
|
|
28864
|
+
const [cmd, ...args] = INSTALL_COMMANDS[pm];
|
|
28865
|
+
await execa(cmd, [...args, ...allPackages], { cwd });
|
|
28866
|
+
}
|
|
28867
|
+
}
|
|
28868
|
+
}
|
|
28869
|
+
|
|
28870
|
+
// src/lib/download-template.ts
|
|
28871
|
+
var import_fs_extra9 = __toESM(require_lib());
|
|
28872
|
+
var kr = Object.defineProperty;
|
|
28873
|
+
var vr = (s3, t2) => {
|
|
28874
|
+
for (var e in t2) kr(s3, e, { get: t2[e], enumerable: true });
|
|
28875
|
+
};
|
|
28876
|
+
var Os = typeof process == "object" && process ? process : { stdout: null, stderr: null };
|
|
28877
|
+
var Br = (s3) => !!s3 && typeof s3 == "object" && (s3 instanceof D3 || s3 instanceof Ns__default.default || Pr(s3) || zr(s3));
|
|
28878
|
+
var Pr = (s3) => !!s3 && typeof s3 == "object" && s3 instanceof Kr.EventEmitter && typeof s3.pipe == "function" && s3.pipe !== Ns__default.default.Writable.prototype.pipe;
|
|
28879
|
+
var zr = (s3) => !!s3 && typeof s3 == "object" && s3 instanceof Kr.EventEmitter && typeof s3.write == "function" && typeof s3.end == "function";
|
|
28880
|
+
var q3 = Symbol("EOF");
|
|
28881
|
+
var j2 = Symbol("maybeEmitEnd");
|
|
28882
|
+
var rt2 = Symbol("emittedEnd");
|
|
28883
|
+
var Le2 = Symbol("emittingEnd");
|
|
28884
|
+
var jt2 = Symbol("emittedError");
|
|
28885
|
+
var Ne2 = Symbol("closed");
|
|
28886
|
+
var Ts = Symbol("read");
|
|
28887
|
+
var Ae2 = Symbol("flush");
|
|
28888
|
+
var xs = Symbol("flushChunk");
|
|
28889
|
+
var z3 = Symbol("encoding");
|
|
28890
|
+
var Mt2 = Symbol("decoder");
|
|
28891
|
+
var b = Symbol("flowing");
|
|
28892
|
+
var Qt = Symbol("paused");
|
|
28893
|
+
var Bt2 = Symbol("resume");
|
|
28894
|
+
var _2 = Symbol("buffer");
|
|
28895
|
+
var A = Symbol("pipes");
|
|
28896
|
+
var g = Symbol("bufferLength");
|
|
28897
|
+
var yi = Symbol("bufferPush");
|
|
28898
|
+
var De2 = Symbol("bufferShift");
|
|
28899
|
+
var L2 = Symbol("objectMode");
|
|
28900
|
+
var w = Symbol("destroyed");
|
|
28901
|
+
var Ri = Symbol("error");
|
|
28902
|
+
var bi = Symbol("emitData");
|
|
28903
|
+
var Ls = Symbol("emitEnd");
|
|
28904
|
+
var _i = Symbol("emitEnd2");
|
|
28905
|
+
var Z2 = Symbol("async");
|
|
28906
|
+
var gi = Symbol("abort");
|
|
28907
|
+
var Ie2 = Symbol("aborted");
|
|
28908
|
+
var Jt2 = Symbol("signal");
|
|
28909
|
+
var yt3 = Symbol("dataListeners");
|
|
28910
|
+
var C = Symbol("discarded");
|
|
28911
|
+
var te2 = (s3) => Promise.resolve().then(s3);
|
|
28912
|
+
var Ur = (s3) => s3();
|
|
28913
|
+
var Hr = (s3) => s3 === "end" || s3 === "finish" || s3 === "prefinish";
|
|
28552
28914
|
var Wr = (s3) => s3 instanceof ArrayBuffer || !!s3 && typeof s3 == "object" && s3.constructor && s3.constructor.name === "ArrayBuffer" && s3.byteLength >= 0;
|
|
28553
28915
|
var Gr = (s3) => !Buffer.isBuffer(s3) && ArrayBuffer.isView(s3);
|
|
28554
28916
|
var Ce2 = class {
|
|
@@ -30582,7 +30944,7 @@ var Vn = 512 * 1024;
|
|
|
30582
30944
|
var $n = pr | ur | dr | mr;
|
|
30583
30945
|
var lr = !fr && typeof ar == "number" ? ar | ur | dr | mr : null;
|
|
30584
30946
|
var cs = lr !== null ? () => lr : Kn ? (s3) => s3 < Vn ? $n : "w" : () => "w";
|
|
30585
|
-
var
|
|
30947
|
+
var fs10 = (s3, t2, e) => {
|
|
30586
30948
|
try {
|
|
30587
30949
|
return fs__default.default.lchownSync(s3, t2, e);
|
|
30588
30950
|
} catch (i2) {
|
|
@@ -30622,7 +30984,7 @@ var ds = (s3, t2, e, i2) => {
|
|
|
30622
30984
|
});
|
|
30623
30985
|
};
|
|
30624
30986
|
var qn = (s3, t2, e, i2) => {
|
|
30625
|
-
t2.isDirectory() && us(path__default.default.resolve(s3, t2.name), e, i2),
|
|
30987
|
+
t2.isDirectory() && us(path__default.default.resolve(s3, t2.name), e, i2), fs10(path__default.default.resolve(s3, t2.name), e, i2);
|
|
30626
30988
|
};
|
|
30627
30989
|
var us = (s3, t2, e) => {
|
|
30628
30990
|
let i2;
|
|
@@ -30631,11 +30993,11 @@ var us = (s3, t2, e) => {
|
|
|
30631
30993
|
} catch (r) {
|
|
30632
30994
|
let n2 = r;
|
|
30633
30995
|
if (n2?.code === "ENOENT") return;
|
|
30634
|
-
if (n2?.code === "ENOTDIR" || n2?.code === "ENOTSUP") return
|
|
30996
|
+
if (n2?.code === "ENOTDIR" || n2?.code === "ENOTSUP") return fs10(s3, t2, e);
|
|
30635
30997
|
throw n2;
|
|
30636
30998
|
}
|
|
30637
30999
|
for (let r of i2) qn(s3, r, t2, e);
|
|
30638
|
-
return
|
|
31000
|
+
return fs10(s3, t2, e);
|
|
30639
31001
|
};
|
|
30640
31002
|
var we2 = class extends Error {
|
|
30641
31003
|
path;
|
|
@@ -31380,7 +31742,7 @@ async function downloadTemplate(templateName, branch = "main") {
|
|
|
31380
31742
|
process.env.TMPDIR || "/tmp",
|
|
31381
31743
|
`nextly-template-${Date.now()}`
|
|
31382
31744
|
);
|
|
31383
|
-
await
|
|
31745
|
+
await import_fs_extra9.default.ensureDir(tmpDir);
|
|
31384
31746
|
const repoPrefix = `${GITHUB_REPO}-${branch}`;
|
|
31385
31747
|
const baseFilter = `${repoPrefix}/templates/base/`;
|
|
31386
31748
|
const templateFilter = `${repoPrefix}/templates/${templateName}/`;
|
|
@@ -31409,7 +31771,7 @@ async function downloadTemplate(templateName, branch = "main") {
|
|
|
31409
31771
|
})
|
|
31410
31772
|
);
|
|
31411
31773
|
} catch (error) {
|
|
31412
|
-
await
|
|
31774
|
+
await import_fs_extra9.default.remove(tmpDir).catch(() => {
|
|
31413
31775
|
});
|
|
31414
31776
|
if (error instanceof Error && error.name === "TimeoutError") {
|
|
31415
31777
|
throw new Error(
|
|
@@ -31420,15 +31782,15 @@ async function downloadTemplate(templateName, branch = "main") {
|
|
|
31420
31782
|
}
|
|
31421
31783
|
const basePath = path__default.default.join(tmpDir, "templates", "base");
|
|
31422
31784
|
const templatePath = path__default.default.join(tmpDir, "templates", templateName);
|
|
31423
|
-
if (!await
|
|
31424
|
-
await
|
|
31785
|
+
if (!await import_fs_extra9.default.pathExists(basePath)) {
|
|
31786
|
+
await import_fs_extra9.default.remove(tmpDir).catch(() => {
|
|
31425
31787
|
});
|
|
31426
31788
|
throw new Error(
|
|
31427
31789
|
`Base template not found in downloaded archive. The branch "${branch}" may not contain templates.`
|
|
31428
31790
|
);
|
|
31429
31791
|
}
|
|
31430
|
-
if (!await
|
|
31431
|
-
await
|
|
31792
|
+
if (!await import_fs_extra9.default.pathExists(templatePath)) {
|
|
31793
|
+
await import_fs_extra9.default.remove(tmpDir).catch(() => {
|
|
31432
31794
|
});
|
|
31433
31795
|
throw new Error(
|
|
31434
31796
|
`Template "${templateName}" not found in downloaded archive. Available templates may differ on branch "${branch}".`
|
|
@@ -31439,12 +31801,12 @@ async function downloadTemplate(templateName, branch = "main") {
|
|
|
31439
31801
|
async function resolveLocalTemplate(localPath, templateName) {
|
|
31440
31802
|
const basePath = path__default.default.join(localPath, "base");
|
|
31441
31803
|
const templatePath = path__default.default.join(localPath, templateName);
|
|
31442
|
-
if (!await
|
|
31804
|
+
if (!await import_fs_extra9.default.pathExists(basePath)) {
|
|
31443
31805
|
throw new Error(
|
|
31444
31806
|
`Base template not found at ${basePath}. Check the --local-template path points to the templates/ directory.`
|
|
31445
31807
|
);
|
|
31446
31808
|
}
|
|
31447
|
-
if (!await
|
|
31809
|
+
if (!await import_fs_extra9.default.pathExists(templatePath)) {
|
|
31448
31810
|
throw new Error(
|
|
31449
31811
|
`Template "${templateName}" not found at ${templatePath}. Check the --local-template path points to the templates/ directory.`
|
|
31450
31812
|
);
|
|
@@ -31462,7 +31824,7 @@ async function cleanupDownload(source) {
|
|
|
31462
31824
|
const tmpBase = process.env.TMPDIR || "/tmp";
|
|
31463
31825
|
if (source.basePath.startsWith(tmpBase)) {
|
|
31464
31826
|
const extractionRoot = path__default.default.resolve(source.basePath, "../..");
|
|
31465
|
-
await
|
|
31827
|
+
await import_fs_extra9.default.remove(extractionRoot).catch(() => {
|
|
31466
31828
|
});
|
|
31467
31829
|
}
|
|
31468
31830
|
}
|
|
@@ -31564,14 +31926,12 @@ var DATABASE_LABELS = {
|
|
|
31564
31926
|
hint: "Popular alternative for production"
|
|
31565
31927
|
}
|
|
31566
31928
|
};
|
|
31567
|
-
|
|
31568
|
-
// src/prompts/project-name.ts
|
|
31569
|
-
var import_fs_extra9 = __toESM(require_lib());
|
|
31929
|
+
var import_fs_extra10 = __toESM(require_lib());
|
|
31570
31930
|
async function isExistingNextProject(cwd) {
|
|
31571
31931
|
const packageJsonPath = path__default.default.join(cwd, "package.json");
|
|
31572
|
-
if (!await
|
|
31932
|
+
if (!await import_fs_extra10.default.pathExists(packageJsonPath)) return false;
|
|
31573
31933
|
try {
|
|
31574
|
-
const packageJson = await
|
|
31934
|
+
const packageJson = await import_fs_extra10.default.readJson(packageJsonPath);
|
|
31575
31935
|
const deps = {
|
|
31576
31936
|
...packageJson.dependencies,
|
|
31577
31937
|
...packageJson.devDependencies
|
|
@@ -31581,9 +31941,45 @@ async function isExistingNextProject(cwd) {
|
|
|
31581
31941
|
return false;
|
|
31582
31942
|
}
|
|
31583
31943
|
}
|
|
31584
|
-
|
|
31585
|
-
|
|
31586
|
-
|
|
31944
|
+
var DEFAULT_PROJECT_NAME = "my-nextly-app";
|
|
31945
|
+
async function promptForProjectName() {
|
|
31946
|
+
const answer = await Zt({
|
|
31947
|
+
message: "What should your project be called?",
|
|
31948
|
+
// `initialValue` pre-fills the buffer so Enter accepts the default.
|
|
31949
|
+
// The previous version used `placeholder` alone, which returned an
|
|
31950
|
+
// empty string on Enter and silently fell through to a cwd install —
|
|
31951
|
+
// the root cause of the original bug. `placeholder` is omitted here
|
|
31952
|
+
// because clack only shows it when the buffer is empty, and the
|
|
31953
|
+
// initialValue keeps it populated.
|
|
31954
|
+
initialValue: DEFAULT_PROJECT_NAME,
|
|
31955
|
+
validate: validateProjectNamePromptInput
|
|
31956
|
+
});
|
|
31957
|
+
if (Ct(answer)) {
|
|
31958
|
+
return { kind: "cancelled" };
|
|
31959
|
+
}
|
|
31960
|
+
return { kind: "resolved", value: resolveProjectArg(answer) };
|
|
31961
|
+
}
|
|
31962
|
+
async function promptDirectoryConflict(targetLabel) {
|
|
31963
|
+
const choice = await Jt({
|
|
31964
|
+
message: `Target directory ${targetLabel} is not empty. How would you like to proceed?`,
|
|
31965
|
+
options: [
|
|
31966
|
+
{ value: "cancel", label: "Cancel operation" },
|
|
31967
|
+
{
|
|
31968
|
+
value: "remove",
|
|
31969
|
+
label: "Remove existing files and continue"
|
|
31970
|
+
},
|
|
31971
|
+
{
|
|
31972
|
+
value: "ignore",
|
|
31973
|
+
label: "Ignore files and continue"
|
|
31974
|
+
}
|
|
31975
|
+
]
|
|
31976
|
+
});
|
|
31977
|
+
if (Ct(choice)) return "cancel";
|
|
31978
|
+
return choice;
|
|
31979
|
+
}
|
|
31980
|
+
|
|
31981
|
+
// src/prompts/template.ts
|
|
31982
|
+
var import_picocolors2 = __toESM(require_picocolors2());
|
|
31587
31983
|
function getTemplatePromptOptions() {
|
|
31588
31984
|
return [
|
|
31589
31985
|
{
|
|
@@ -31608,7 +32004,7 @@ function isValidTemplateSelection(value) {
|
|
|
31608
32004
|
}
|
|
31609
32005
|
|
|
31610
32006
|
// src/utils/detect.ts
|
|
31611
|
-
var
|
|
32007
|
+
var import_fs_extra11 = __toESM(require_lib());
|
|
31612
32008
|
|
|
31613
32009
|
// src/utils/detect-pm-from-user-agent.ts
|
|
31614
32010
|
function detectPmFromUserAgent(userAgent) {
|
|
@@ -31624,19 +32020,19 @@ function detectPmFromUserAgent(userAgent) {
|
|
|
31624
32020
|
async function detectPackageManager2(cwd) {
|
|
31625
32021
|
const fromUa = detectPmFromUserAgent(process.env.npm_config_user_agent);
|
|
31626
32022
|
if (fromUa) return fromUa;
|
|
31627
|
-
if (await
|
|
31628
|
-
if (await
|
|
31629
|
-
if (await
|
|
32023
|
+
if (await import_fs_extra11.default.pathExists(path__default.default.join(cwd, "pnpm-lock.yaml"))) return "pnpm";
|
|
32024
|
+
if (await import_fs_extra11.default.pathExists(path__default.default.join(cwd, "yarn.lock"))) return "yarn";
|
|
32025
|
+
if (await import_fs_extra11.default.pathExists(path__default.default.join(cwd, "bun.lockb"))) return "bun";
|
|
31630
32026
|
return "npm";
|
|
31631
32027
|
}
|
|
31632
32028
|
async function detectProject(cwd) {
|
|
31633
32029
|
const packageJsonPath = path__default.default.join(cwd, "package.json");
|
|
31634
|
-
if (!await
|
|
32030
|
+
if (!await import_fs_extra11.default.pathExists(packageJsonPath)) {
|
|
31635
32031
|
throw new Error(
|
|
31636
32032
|
"No package.json found. Please run this command in a Next.js project."
|
|
31637
32033
|
);
|
|
31638
32034
|
}
|
|
31639
|
-
const packageJson = await
|
|
32035
|
+
const packageJson = await import_fs_extra11.default.readJson(packageJsonPath);
|
|
31640
32036
|
const deps = {
|
|
31641
32037
|
...packageJson.dependencies,
|
|
31642
32038
|
...packageJson.devDependencies
|
|
@@ -31648,11 +32044,11 @@ async function detectProject(cwd) {
|
|
|
31648
32044
|
);
|
|
31649
32045
|
}
|
|
31650
32046
|
const nextVersion = deps.next?.replace(/[\^~]/, "") || null;
|
|
31651
|
-
const srcDir = await
|
|
32047
|
+
const srcDir = await import_fs_extra11.default.pathExists(path__default.default.join(cwd, "src"));
|
|
31652
32048
|
const appDirPaths = srcDir ? [path__default.default.join(cwd, "src", "app")] : [path__default.default.join(cwd, "app")];
|
|
31653
32049
|
let isAppRouter = false;
|
|
31654
32050
|
for (const appPath of appDirPaths) {
|
|
31655
|
-
if (await
|
|
32051
|
+
if (await import_fs_extra11.default.pathExists(appPath)) {
|
|
31656
32052
|
isAppRouter = true;
|
|
31657
32053
|
break;
|
|
31658
32054
|
}
|
|
@@ -31662,7 +32058,7 @@ async function detectProject(cwd) {
|
|
|
31662
32058
|
"App Router not detected. Nextly requires Next.js App Router (app/ directory)."
|
|
31663
32059
|
);
|
|
31664
32060
|
}
|
|
31665
|
-
const hasTypescript = await
|
|
32061
|
+
const hasTypescript = await import_fs_extra11.default.pathExists(path__default.default.join(cwd, "tsconfig.json"));
|
|
31666
32062
|
const packageManager = await detectPackageManager2(cwd);
|
|
31667
32063
|
const appDir = srcDir ? "src/app" : "app";
|
|
31668
32064
|
return {
|
|
@@ -31676,315 +32072,32 @@ async function detectProject(cwd) {
|
|
|
31676
32072
|
};
|
|
31677
32073
|
}
|
|
31678
32074
|
|
|
31679
|
-
// src/utils/
|
|
31680
|
-
var
|
|
31681
|
-
|
|
31682
|
-
|
|
31683
|
-
|
|
31684
|
-
".
|
|
31685
|
-
".jsx",
|
|
31686
|
-
".json",
|
|
31687
|
-
".env",
|
|
31688
|
-
".md",
|
|
31689
|
-
".css",
|
|
31690
|
-
".html",
|
|
31691
|
-
".mjs",
|
|
31692
|
-
".cjs"
|
|
31693
|
-
]);
|
|
31694
|
-
var SKIP_FILES = /* @__PURE__ */ new Set([".DS_Store", "Thumbs.db", ".gitkeep"]);
|
|
31695
|
-
function resolveTemplatePath(localTemplatePath) {
|
|
31696
|
-
const __dirname = path__default.default.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('cli.cjs', document.baseURI).href))));
|
|
31697
|
-
const fromDist = path__default.default.resolve(__dirname, "../templates");
|
|
31698
|
-
if (import_fs_extra11.default.existsSync(fromDist)) {
|
|
31699
|
-
return fromDist;
|
|
31700
|
-
}
|
|
31701
|
-
const fromSrc = path__default.default.resolve(__dirname, "../../templates");
|
|
31702
|
-
if (import_fs_extra11.default.existsSync(fromSrc)) {
|
|
31703
|
-
return fromSrc;
|
|
31704
|
-
}
|
|
31705
|
-
throw new Error(
|
|
31706
|
-
"Could not find templates directory. Use --local-template to specify the templates path, or ensure templates are bundled."
|
|
31707
|
-
);
|
|
31708
|
-
}
|
|
31709
|
-
function buildPlaceholderMap(options) {
|
|
31710
|
-
const { database, databaseUrl } = options;
|
|
31711
|
-
return {
|
|
31712
|
-
"{{databaseDialect}}": database.type,
|
|
31713
|
-
"{{databaseUrl}}": databaseUrl || database.envExample
|
|
31714
|
-
};
|
|
31715
|
-
}
|
|
31716
|
-
async function replacePlaceholdersInFile(filePath, placeholders) {
|
|
31717
|
-
const ext = path__default.default.extname(filePath).toLowerCase();
|
|
31718
|
-
const basename = path__default.default.basename(filePath);
|
|
31719
|
-
const isTextFile = TEXT_EXTENSIONS.has(ext) || basename.startsWith(".env") || basename === ".gitignore";
|
|
31720
|
-
if (!isTextFile) return;
|
|
31721
|
-
let content = await import_fs_extra11.default.readFile(filePath, "utf-8");
|
|
31722
|
-
let changed = false;
|
|
31723
|
-
for (const [placeholder, value] of Object.entries(placeholders)) {
|
|
31724
|
-
if (content.includes(placeholder)) {
|
|
31725
|
-
content = content.replaceAll(placeholder, value);
|
|
31726
|
-
changed = true;
|
|
31727
|
-
}
|
|
31728
|
-
}
|
|
31729
|
-
if (changed) {
|
|
31730
|
-
await import_fs_extra11.default.writeFile(filePath, content, "utf-8");
|
|
31731
|
-
}
|
|
31732
|
-
}
|
|
31733
|
-
async function replacePlaceholders(dir, placeholders) {
|
|
31734
|
-
const entries = await import_fs_extra11.default.readdir(dir, { withFileTypes: true });
|
|
31735
|
-
for (const entry of entries) {
|
|
31736
|
-
const fullPath = path__default.default.join(dir, entry.name);
|
|
31737
|
-
if (entry.isDirectory()) {
|
|
31738
|
-
if (entry.name === "node_modules" || entry.name === ".git") continue;
|
|
31739
|
-
await replacePlaceholders(fullPath, placeholders);
|
|
31740
|
-
} else if (entry.isFile()) {
|
|
31741
|
-
await replacePlaceholdersInFile(fullPath, placeholders);
|
|
31742
|
-
}
|
|
31743
|
-
}
|
|
31744
|
-
}
|
|
31745
|
-
var PINNED_VERSIONS = {
|
|
31746
|
-
// Next.js ecosystem — resolved at runtime via fetchLatestVersion()
|
|
31747
|
-
// (see generatePackageJson)
|
|
31748
|
-
react: "^19.1.0",
|
|
31749
|
-
"react-dom": "^19.1.0",
|
|
31750
|
-
// Dev dependencies
|
|
31751
|
-
typescript: "^5",
|
|
31752
|
-
"@types/node": "^20",
|
|
31753
|
-
"@types/react": "^19",
|
|
31754
|
-
"@types/react-dom": "^19",
|
|
31755
|
-
"@tailwindcss/postcss": "^4",
|
|
31756
|
-
tailwindcss: "^4",
|
|
31757
|
-
eslint: "^9"
|
|
31758
|
-
};
|
|
31759
|
-
var RUNTIME_RESOLVED_PACKAGES = ["next", "eslint-config-next"];
|
|
31760
|
-
var NEXTLY_PACKAGES = [
|
|
31761
|
-
"nextly",
|
|
31762
|
-
"@nextlyhq/admin",
|
|
31763
|
-
"@nextlyhq/adapter-drizzle",
|
|
31764
|
-
"@nextlyhq/adapter-postgres",
|
|
31765
|
-
"@nextlyhq/adapter-mysql",
|
|
31766
|
-
"@nextlyhq/adapter-sqlite"
|
|
31767
|
-
];
|
|
31768
|
-
var resolvedNextlyVersions = null;
|
|
31769
|
-
async function fetchLatestVersion(pkg2) {
|
|
31770
|
-
try {
|
|
31771
|
-
const res = await fetch(
|
|
31772
|
-
`https://registry.npmjs.org/-/package/${encodeURIComponent(pkg2)}/dist-tags`,
|
|
31773
|
-
{ signal: AbortSignal.timeout(5e3) }
|
|
31774
|
-
);
|
|
31775
|
-
if (!res.ok) return "latest";
|
|
31776
|
-
const data = await res.json();
|
|
31777
|
-
return data.latest ? `^${data.latest}` : "latest";
|
|
31778
|
-
} catch {
|
|
31779
|
-
return "latest";
|
|
31780
|
-
}
|
|
31781
|
-
}
|
|
31782
|
-
async function resolveNextlyVersions() {
|
|
31783
|
-
if (resolvedNextlyVersions) return resolvedNextlyVersions;
|
|
31784
|
-
const entries = await Promise.all(
|
|
31785
|
-
NEXTLY_PACKAGES.map(
|
|
31786
|
-
async (pkg2) => [pkg2, await fetchLatestVersion(pkg2)]
|
|
31787
|
-
)
|
|
31788
|
-
);
|
|
31789
|
-
resolvedNextlyVersions = Object.fromEntries(entries);
|
|
31790
|
-
return resolvedNextlyVersions;
|
|
31791
|
-
}
|
|
31792
|
-
var resolvedRuntimeVersions = null;
|
|
31793
|
-
async function resolveRuntimeVersions() {
|
|
31794
|
-
if (resolvedRuntimeVersions) return resolvedRuntimeVersions;
|
|
31795
|
-
const FALLBACKS = {
|
|
31796
|
-
next: "^16.1.0",
|
|
31797
|
-
"eslint-config-next": "^16.1.0"
|
|
31798
|
-
};
|
|
31799
|
-
const entries = await Promise.all(
|
|
31800
|
-
RUNTIME_RESOLVED_PACKAGES.map(async (pkg2) => {
|
|
31801
|
-
const version2 = await fetchLatestVersion(pkg2);
|
|
31802
|
-
return [pkg2, version2 === "latest" ? FALLBACKS[pkg2] : version2];
|
|
31803
|
-
})
|
|
31804
|
-
);
|
|
31805
|
-
resolvedRuntimeVersions = Object.fromEntries(entries);
|
|
31806
|
-
return resolvedRuntimeVersions;
|
|
31807
|
-
}
|
|
31808
|
-
async function generatePackageJson(projectName, database, useYalc = false) {
|
|
31809
|
-
const runtimeVersions = await resolveRuntimeVersions();
|
|
31810
|
-
const dependencies = {
|
|
31811
|
-
next: runtimeVersions.next,
|
|
31812
|
-
react: PINNED_VERSIONS.react,
|
|
31813
|
-
"react-dom": PINNED_VERSIONS["react-dom"]
|
|
31814
|
-
};
|
|
31815
|
-
dependencies["@tanstack/react-query"] = "^5.62.0";
|
|
31816
|
-
if (!useYalc) {
|
|
31817
|
-
const versions = await resolveNextlyVersions();
|
|
31818
|
-
dependencies["nextly"] = versions["nextly"];
|
|
31819
|
-
dependencies["@nextlyhq/admin"] = versions["@nextlyhq/admin"];
|
|
31820
|
-
dependencies["@nextlyhq/ui"] = versions["@nextlyhq/ui"] || "latest";
|
|
31821
|
-
dependencies["@nextlyhq/adapter-drizzle"] = versions["@nextlyhq/adapter-drizzle"];
|
|
31822
|
-
dependencies[database.adapter] = versions[database.adapter] || "latest";
|
|
31823
|
-
dependencies["@nextlyhq/plugin-form-builder"] = versions["@nextlyhq/plugin-form-builder"] || "latest";
|
|
31824
|
-
}
|
|
31825
|
-
const devDependencies = {
|
|
31826
|
-
typescript: PINNED_VERSIONS.typescript,
|
|
31827
|
-
"@types/node": PINNED_VERSIONS["@types/node"],
|
|
31828
|
-
"@types/react": PINNED_VERSIONS["@types/react"],
|
|
31829
|
-
"@types/react-dom": PINNED_VERSIONS["@types/react-dom"],
|
|
31830
|
-
"@tailwindcss/postcss": PINNED_VERSIONS["@tailwindcss/postcss"],
|
|
31831
|
-
tailwindcss: PINNED_VERSIONS.tailwindcss,
|
|
31832
|
-
eslint: PINNED_VERSIONS.eslint,
|
|
31833
|
-
"eslint-config-next": runtimeVersions["eslint-config-next"],
|
|
31834
|
-
// Pagefind powers /search in the blog template. Zero-config
|
|
31835
|
-
// static index generated at `next build` time. Templates that
|
|
31836
|
-
// don't ship a /search page simply won't invoke it.
|
|
31837
|
-
pagefind: "^1.1.0"
|
|
31838
|
-
};
|
|
31839
|
-
const pkg2 = {
|
|
31840
|
-
name: projectName,
|
|
31841
|
-
version: "0.1.0",
|
|
31842
|
-
private: true,
|
|
31843
|
-
scripts: {
|
|
31844
|
-
// F1 PR 4: dev now boots Nextly in single-process mode via `next dev`.
|
|
31845
|
-
// The lazy drizzle-kit/api import (PR 1) plus the in-process HMR
|
|
31846
|
-
// listener (PR 2) replaced the wrapper that previously owned the
|
|
31847
|
-
// terminal, schema prompts, and child supervision. `nextly dev` is
|
|
31848
|
-
// gone; the only supported dev command is the standard `next dev`.
|
|
31849
|
-
dev: "next dev --turbopack",
|
|
31850
|
-
// Build: migrate DB + compile Next.js + (if present) generate
|
|
31851
|
-
// the Pagefind search index. Templates without the search
|
|
31852
|
-
// script silently skip the last step.
|
|
31853
|
-
build: "nextly migrate && next build && (test -f scripts/build-search-index.mjs && node scripts/build-search-index.mjs || true)",
|
|
31854
|
-
"search:index": "node scripts/build-search-index.mjs",
|
|
31855
|
-
start: "next start",
|
|
31856
|
-
lint: "next lint",
|
|
31857
|
-
nextly: "nextly",
|
|
31858
|
-
// First-time setup: sync schema + seed system permissions. Demo
|
|
31859
|
-
// content is seeded separately from the admin UI (visit /welcome
|
|
31860
|
-
// after running `pnpm dev` and completing /admin/setup).
|
|
31861
|
-
"db:setup": "nextly db:sync",
|
|
31862
|
-
"db:migrate": "nextly migrate",
|
|
31863
|
-
"db:migrate:status": "nextly migrate:status",
|
|
31864
|
-
"db:migrate:fresh": "nextly migrate:fresh",
|
|
31865
|
-
"db:migrate:reset": "nextly migrate:reset",
|
|
31866
|
-
"types:generate": "nextly generate:types"
|
|
31867
|
-
},
|
|
31868
|
-
dependencies,
|
|
31869
|
-
devDependencies
|
|
31870
|
-
};
|
|
31871
|
-
return JSON.stringify(pkg2, null, 2) + "\n";
|
|
32075
|
+
// src/utils/fs.ts
|
|
32076
|
+
var import_fs_extra12 = __toESM(require_lib());
|
|
32077
|
+
async function isDirectoryNotEmpty(dir) {
|
|
32078
|
+
if (!await import_fs_extra12.default.pathExists(dir)) return false;
|
|
32079
|
+
const entries = await import_fs_extra12.default.readdir(dir);
|
|
32080
|
+
return entries.some((entry) => entry !== ".git");
|
|
31872
32081
|
}
|
|
31873
|
-
async function
|
|
31874
|
-
|
|
31875
|
-
|
|
31876
|
-
|
|
31877
|
-
|
|
31878
|
-
database,
|
|
31879
|
-
databaseUrl,
|
|
31880
|
-
useYalc = false,
|
|
31881
|
-
approach,
|
|
31882
|
-
templateSource
|
|
31883
|
-
} = options;
|
|
31884
|
-
if (targetDir !== process.cwd() && await import_fs_extra11.default.pathExists(targetDir)) {
|
|
31885
|
-
throw new Error(
|
|
31886
|
-
`Directory "${path__default.default.basename(targetDir)}" already exists. Please choose a different name.`
|
|
31887
|
-
);
|
|
31888
|
-
}
|
|
31889
|
-
let baseDir;
|
|
31890
|
-
let typeDir;
|
|
31891
|
-
if (templateSource) {
|
|
31892
|
-
baseDir = templateSource.basePath;
|
|
31893
|
-
typeDir = templateSource.templatePath;
|
|
31894
|
-
} else {
|
|
31895
|
-
const templatesRoot = resolveTemplatePath();
|
|
31896
|
-
baseDir = path__default.default.join(templatesRoot, "base");
|
|
31897
|
-
typeDir = path__default.default.join(templatesRoot, projectType);
|
|
31898
|
-
}
|
|
31899
|
-
if (!await import_fs_extra11.default.pathExists(baseDir)) {
|
|
31900
|
-
throw new Error(
|
|
31901
|
-
`Base template not found at ${baseDir}. The package may be corrupted or the download failed.`
|
|
31902
|
-
);
|
|
31903
|
-
}
|
|
31904
|
-
if (!await import_fs_extra11.default.pathExists(typeDir)) {
|
|
31905
|
-
throw new Error(
|
|
31906
|
-
`Template "${projectType}" not found at ${typeDir}. Available templates: blank, blog.`
|
|
31907
|
-
);
|
|
31908
|
-
}
|
|
31909
|
-
await import_fs_extra11.default.copy(baseDir, targetDir, {
|
|
31910
|
-
filter: (_src) => {
|
|
31911
|
-
const basename = path__default.default.basename(_src);
|
|
31912
|
-
return !SKIP_FILES.has(basename);
|
|
31913
|
-
}
|
|
31914
|
-
});
|
|
31915
|
-
const templateSrcDir = path__default.default.join(typeDir, "src");
|
|
31916
|
-
if (await import_fs_extra11.default.pathExists(templateSrcDir)) {
|
|
31917
|
-
await import_fs_extra11.default.copy(templateSrcDir, path__default.default.join(targetDir, "src"), {
|
|
31918
|
-
overwrite: true,
|
|
31919
|
-
filter: (_src) => {
|
|
31920
|
-
const basename = path__default.default.basename(_src);
|
|
31921
|
-
return !SKIP_FILES.has(basename);
|
|
31922
|
-
}
|
|
31923
|
-
});
|
|
31924
|
-
}
|
|
31925
|
-
const templateRootConfig = path__default.default.join(typeDir, "nextly.config.ts");
|
|
31926
|
-
if (await import_fs_extra11.default.pathExists(templateRootConfig)) {
|
|
31927
|
-
await import_fs_extra11.default.copy(
|
|
31928
|
-
templateRootConfig,
|
|
31929
|
-
path__default.default.join(targetDir, "nextly.config.ts"),
|
|
31930
|
-
{ overwrite: true }
|
|
31931
|
-
);
|
|
31932
|
-
}
|
|
31933
|
-
const configsDir = path__default.default.join(typeDir, "configs");
|
|
31934
|
-
if (approach && await import_fs_extra11.default.pathExists(configsDir)) {
|
|
31935
|
-
const configFileName = approach === "code-first" ? "codefirst.config.ts" : `${approach}.config.ts`;
|
|
31936
|
-
const configSrc = path__default.default.join(configsDir, configFileName);
|
|
31937
|
-
if (await import_fs_extra11.default.pathExists(configSrc)) {
|
|
31938
|
-
await import_fs_extra11.default.copy(configSrc, path__default.default.join(targetDir, "nextly.config.ts"), {
|
|
31939
|
-
overwrite: true
|
|
31940
|
-
});
|
|
31941
|
-
}
|
|
31942
|
-
const sharedSrc = path__default.default.join(configsDir, "shared.ts");
|
|
31943
|
-
if (await import_fs_extra11.default.pathExists(sharedSrc)) {
|
|
31944
|
-
await import_fs_extra11.default.copy(sharedSrc, path__default.default.join(targetDir, "shared.ts"), {
|
|
31945
|
-
overwrite: true
|
|
31946
|
-
});
|
|
31947
|
-
}
|
|
31948
|
-
}
|
|
31949
|
-
const frontendPagePath = path__default.default.join(
|
|
31950
|
-
targetDir,
|
|
31951
|
-
"src",
|
|
31952
|
-
"app",
|
|
31953
|
-
"(frontend)",
|
|
31954
|
-
"page.tsx"
|
|
31955
|
-
);
|
|
31956
|
-
const basePagePath = path__default.default.join(targetDir, "src", "app", "page.tsx");
|
|
31957
|
-
if (await import_fs_extra11.default.pathExists(frontendPagePath) && await import_fs_extra11.default.pathExists(basePagePath)) {
|
|
31958
|
-
await import_fs_extra11.default.remove(basePagePath);
|
|
32082
|
+
async function emptyDirectory(dir) {
|
|
32083
|
+
if (!await import_fs_extra12.default.pathExists(dir)) return;
|
|
32084
|
+
for (const entry of await import_fs_extra12.default.readdir(dir)) {
|
|
32085
|
+
if (entry === ".git") continue;
|
|
32086
|
+
await import_fs_extra12.default.remove(path__default.default.join(dir, entry));
|
|
31959
32087
|
}
|
|
31960
|
-
const packageJsonContent = await generatePackageJson(
|
|
31961
|
-
projectName,
|
|
31962
|
-
database,
|
|
31963
|
-
useYalc
|
|
31964
|
-
);
|
|
31965
|
-
await import_fs_extra11.default.writeFile(
|
|
31966
|
-
path__default.default.join(targetDir, "package.json"),
|
|
31967
|
-
packageJsonContent,
|
|
31968
|
-
"utf-8"
|
|
31969
|
-
);
|
|
31970
|
-
if (database.type === "sqlite") {
|
|
31971
|
-
await import_fs_extra11.default.ensureDir(path__default.default.join(targetDir, "data"));
|
|
31972
|
-
}
|
|
31973
|
-
const placeholders = buildPlaceholderMap({ database, databaseUrl });
|
|
31974
|
-
if (approach) {
|
|
31975
|
-
placeholders["{{approach}}"] = approach;
|
|
31976
|
-
}
|
|
31977
|
-
await replacePlaceholders(targetDir, placeholders);
|
|
31978
32088
|
}
|
|
31979
32089
|
|
|
31980
32090
|
// src/create-nextly.ts
|
|
32091
|
+
function cwdProjectName(cwd) {
|
|
32092
|
+
const basename = path__default.default.basename(cwd);
|
|
32093
|
+
if (!/^[a-z0-9][a-z0-9._-]*$/.test(basename)) {
|
|
32094
|
+
return DEFAULT_PROJECT_NAME;
|
|
32095
|
+
}
|
|
32096
|
+
return basename;
|
|
32097
|
+
}
|
|
31981
32098
|
async function createNextly(options = {}) {
|
|
31982
|
-
const {
|
|
31983
|
-
|
|
31984
|
-
skipInstall = false,
|
|
31985
|
-
useYalc = false,
|
|
31986
|
-
installInCwd = false
|
|
31987
|
-
} = options;
|
|
32099
|
+
const { defaults = false, skipInstall = false, useYalc = false } = options;
|
|
32100
|
+
let installInCwd = options.installInCwd ?? false;
|
|
31988
32101
|
let { cwd = process.cwd() } = options;
|
|
31989
32102
|
let isFreshProject = false;
|
|
31990
32103
|
let projectName;
|
|
@@ -32006,37 +32119,48 @@ async function createNextly(options = {}) {
|
|
|
32006
32119
|
}
|
|
32007
32120
|
}
|
|
32008
32121
|
} else if (installInCwd) {
|
|
32009
|
-
projectName =
|
|
32122
|
+
projectName = cwdProjectName(cwd);
|
|
32010
32123
|
isFreshProject = true;
|
|
32011
32124
|
} else {
|
|
32012
32125
|
if (options.projectNameFromArg) {
|
|
32013
32126
|
projectName = options.projectNameFromArg;
|
|
32014
32127
|
} else if (!defaults) {
|
|
32015
|
-
const
|
|
32016
|
-
|
|
32017
|
-
placeholder: "my-nextly-app",
|
|
32018
|
-
defaultValue: "my-nextly-app",
|
|
32019
|
-
validate: (value) => {
|
|
32020
|
-
if (!value || !value.trim()) return void 0;
|
|
32021
|
-
if (!/^[a-z0-9][a-z0-9._-]*$/.test(value)) {
|
|
32022
|
-
return "Use lowercase letters, numbers, hyphens, dots, or underscores";
|
|
32023
|
-
}
|
|
32024
|
-
}
|
|
32025
|
-
});
|
|
32026
|
-
if (Ct(name)) {
|
|
32128
|
+
const result = await promptForProjectName();
|
|
32129
|
+
if (result.kind === "cancelled") {
|
|
32027
32130
|
Nt("Cancelled.");
|
|
32028
32131
|
return;
|
|
32029
32132
|
}
|
|
32030
|
-
|
|
32133
|
+
if (result.value.installInCwd) {
|
|
32134
|
+
installInCwd = true;
|
|
32135
|
+
projectName = cwdProjectName(cwd);
|
|
32136
|
+
} else {
|
|
32137
|
+
projectName = result.value.projectName ?? DEFAULT_PROJECT_NAME;
|
|
32138
|
+
}
|
|
32031
32139
|
} else {
|
|
32032
|
-
projectName =
|
|
32140
|
+
projectName = DEFAULT_PROJECT_NAME;
|
|
32033
32141
|
}
|
|
32034
32142
|
isFreshProject = true;
|
|
32035
32143
|
}
|
|
32144
|
+
let allowExistingTarget = false;
|
|
32145
|
+
if (isFreshProject && projectName) {
|
|
32146
|
+
const conflictTargetDir = installInCwd ? cwd : path__default.default.join(cwd, projectName);
|
|
32147
|
+
if (await isDirectoryNotEmpty(conflictTargetDir)) {
|
|
32148
|
+
const targetLabel = installInCwd ? "the current directory" : `"${projectName}"`;
|
|
32149
|
+
const choice = await promptDirectoryConflict(targetLabel);
|
|
32150
|
+
if (choice === "cancel") {
|
|
32151
|
+
Nt("Cancelled. No changes were made.");
|
|
32152
|
+
return;
|
|
32153
|
+
}
|
|
32154
|
+
allowExistingTarget = true;
|
|
32155
|
+
if (choice === "remove") {
|
|
32156
|
+
await emptyDirectory(conflictTargetDir);
|
|
32157
|
+
}
|
|
32158
|
+
}
|
|
32159
|
+
}
|
|
32036
32160
|
let projectType;
|
|
32037
32161
|
if (options.projectType) {
|
|
32038
32162
|
projectType = options.projectType;
|
|
32039
|
-
} else if (defaults) {
|
|
32163
|
+
} else if (defaults || existingProject) {
|
|
32040
32164
|
projectType = "blank";
|
|
32041
32165
|
} else {
|
|
32042
32166
|
const template = await Jt({
|
|
@@ -32129,6 +32253,7 @@ async function createNextly(options = {}) {
|
|
|
32129
32253
|
databaseUrl = url?.trim() || database.connectionUrl;
|
|
32130
32254
|
}
|
|
32131
32255
|
if (isFreshProject && projectName) {
|
|
32256
|
+
const targetDir = installInCwd ? cwd : path__default.default.join(cwd, projectName);
|
|
32132
32257
|
const s3 = be();
|
|
32133
32258
|
let templateSource;
|
|
32134
32259
|
try {
|
|
@@ -32143,47 +32268,29 @@ async function createNextly(options = {}) {
|
|
|
32143
32268
|
} else {
|
|
32144
32269
|
s3.start("Scaffolding project...");
|
|
32145
32270
|
}
|
|
32146
|
-
|
|
32147
|
-
|
|
32148
|
-
|
|
32149
|
-
|
|
32150
|
-
|
|
32151
|
-
|
|
32152
|
-
|
|
32153
|
-
|
|
32154
|
-
|
|
32155
|
-
|
|
32156
|
-
|
|
32157
|
-
|
|
32158
|
-
|
|
32159
|
-
|
|
32160
|
-
|
|
32161
|
-
|
|
32162
|
-
|
|
32163
|
-
useYalc,
|
|
32164
|
-
approach,
|
|
32165
|
-
templateSource
|
|
32166
|
-
});
|
|
32167
|
-
} else {
|
|
32168
|
-
await copyTemplate({
|
|
32169
|
-
projectName,
|
|
32170
|
-
projectType,
|
|
32171
|
-
targetDir,
|
|
32172
|
-
database,
|
|
32173
|
-
databaseUrl,
|
|
32174
|
-
useYalc,
|
|
32175
|
-
approach,
|
|
32176
|
-
templateSource
|
|
32177
|
-
});
|
|
32178
|
-
cwd = targetDir;
|
|
32179
|
-
}
|
|
32271
|
+
await copyTemplate({
|
|
32272
|
+
projectName,
|
|
32273
|
+
projectType,
|
|
32274
|
+
targetDir,
|
|
32275
|
+
database,
|
|
32276
|
+
databaseUrl,
|
|
32277
|
+
useYalc,
|
|
32278
|
+
approach,
|
|
32279
|
+
templateSource,
|
|
32280
|
+
// Suppress copyTemplate's "directory already exists" guard when the
|
|
32281
|
+
// installer has already negotiated the conflict with the user
|
|
32282
|
+
// (either by emptying the dir or accepting an overlay). Without
|
|
32283
|
+
// this, the "ignore" path would still throw on the subdirectory
|
|
32284
|
+
// case where the target was non-empty.
|
|
32285
|
+
allowExistingTarget
|
|
32286
|
+
});
|
|
32287
|
+
if (!installInCwd) cwd = targetDir;
|
|
32180
32288
|
s3.stop("Project scaffolded");
|
|
32181
32289
|
} catch (error) {
|
|
32182
32290
|
s3.stop("Scaffolding failed");
|
|
32183
|
-
if (!installInCwd) {
|
|
32184
|
-
|
|
32185
|
-
|
|
32186
|
-
await import_fs_extra12.default.remove(targetDir);
|
|
32291
|
+
if (!installInCwd && !allowExistingTarget) {
|
|
32292
|
+
if (await import_fs_extra13.default.pathExists(targetDir)) {
|
|
32293
|
+
await import_fs_extra13.default.remove(targetDir);
|
|
32187
32294
|
}
|
|
32188
32295
|
}
|
|
32189
32296
|
capture("scaffold_failed", {
|
|
@@ -32230,7 +32337,8 @@ async function createNextly(options = {}) {
|
|
|
32230
32337
|
projectInfo,
|
|
32231
32338
|
database,
|
|
32232
32339
|
useYalc,
|
|
32233
|
-
isFreshProject
|
|
32340
|
+
isFreshProject,
|
|
32341
|
+
projectType
|
|
32234
32342
|
);
|
|
32235
32343
|
s3.stop("Dependencies installed");
|
|
32236
32344
|
capture("install_completed", {
|
|
@@ -32256,7 +32364,7 @@ async function createNextly(options = {}) {
|
|
|
32256
32364
|
await generateAdminPage(cwd, projectInfo);
|
|
32257
32365
|
await generateMediaRoutes(cwd, projectInfo);
|
|
32258
32366
|
await generateTypesDirectory(cwd, projectInfo);
|
|
32259
|
-
await patchNextConfig(cwd);
|
|
32367
|
+
await patchNextConfig(cwd, database);
|
|
32260
32368
|
}
|
|
32261
32369
|
const envDatabase = databaseUrl ? { ...database, connectionUrl: databaseUrl, envExample: databaseUrl } : database;
|
|
32262
32370
|
await generateEnv(cwd, envDatabase);
|
|
@@ -32320,8 +32428,7 @@ program2.name("create-nextly-app").description(
|
|
|
32320
32428
|
"Scaffold a new Nextly CMS project or add Nextly to an existing Next.js app"
|
|
32321
32429
|
).version("0.1.0").argument(
|
|
32322
32430
|
"[directory]",
|
|
32323
|
-
"Project name or '.' to install in the current directory"
|
|
32324
|
-
"."
|
|
32431
|
+
"Project name or '.' to install in the current directory (omit to be prompted)"
|
|
32325
32432
|
).option(
|
|
32326
32433
|
"-y, --yes",
|
|
32327
32434
|
"Skip prompts and use defaults (blank template, SQLite, local storage)"
|
|
@@ -32338,11 +32445,12 @@ program2.name("create-nextly-app").description(
|
|
|
32338
32445
|
"after",
|
|
32339
32446
|
`
|
|
32340
32447
|
Examples:
|
|
32448
|
+
$ npx create-nextly-app@alpha (prompts for folder name)
|
|
32341
32449
|
$ npx create-nextly-app@alpha my-project
|
|
32342
32450
|
$ npx create-nextly-app@alpha my-project -y
|
|
32343
32451
|
$ npx create-nextly-app@alpha my-blog -t blog -a code-first
|
|
32344
32452
|
$ npx create-nextly-app@alpha my-project --database postgresql
|
|
32345
|
-
$ npx create-nextly-app@alpha .
|
|
32453
|
+
$ npx create-nextly-app@alpha . (install in the current directory)
|
|
32346
32454
|
`
|
|
32347
32455
|
).action(
|
|
32348
32456
|
async (directory, options) => {
|
|
@@ -32353,6 +32461,13 @@ Examples:
|
|
|
32353
32461
|
try {
|
|
32354
32462
|
const cwd = process.cwd();
|
|
32355
32463
|
const { projectName, installInCwd } = resolveProjectArg(directory);
|
|
32464
|
+
if (projectName) {
|
|
32465
|
+
const nameError = validateProjectName(projectName);
|
|
32466
|
+
if (nameError) {
|
|
32467
|
+
console.error(`Error: Invalid project name '${projectName}'. ${nameError}.`);
|
|
32468
|
+
process.exit(1);
|
|
32469
|
+
}
|
|
32470
|
+
}
|
|
32356
32471
|
const projectType = options.template;
|
|
32357
32472
|
const validTypes = ["blank", "blog"];
|
|
32358
32473
|
if (projectType && !validTypes.includes(projectType)) {
|