create-nextly-app 0.0.2-alpha.58 → 0.0.2-alpha.60
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-E6IFBI6N.mjs → chunk-SEU6FVET.mjs} +342 -86
- package/dist/chunk-SEU6FVET.mjs.map +1 -0
- package/dist/cli.cjs +341 -86
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.mjs +2 -3
- package/dist/cli.mjs.map +1 -1
- package/dist/index.cjs +340 -84
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +4 -5
- package/templates/base/AGENTS.md.template +158 -0
- package/templates/base/CLAUDE.md.template +1 -0
- package/templates/plugin/AGENTS.md.template +96 -0
- package/templates/plugin/CLAUDE.md.template +1 -0
- package/templates/plugin/src/admin/SettingsPage.tsx +50 -6
- package/templates/plugin/src/admin/index.ts +4 -1
- package/templates/plugin/src/plugin.test.ts +5 -6
- package/templates/plugin/tsup.config.ts +3 -1
- package/dist/chunk-E6IFBI6N.mjs.map +0 -1
package/dist/cli.cjs
CHANGED
|
@@ -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.60",
|
|
6263
6263
|
description: "CLI to scaffold Nextly in your Next.js project",
|
|
6264
6264
|
license: "MIT",
|
|
6265
6265
|
type: "module",
|
|
@@ -6296,7 +6296,6 @@ var require_package = __commonJS({
|
|
|
6296
6296
|
commander: "^14.0.2",
|
|
6297
6297
|
execa: "^9.6.0",
|
|
6298
6298
|
"fs-extra": "^11.3.0",
|
|
6299
|
-
ora: "^9.0.0",
|
|
6300
6299
|
picocolors: "^1.1.1",
|
|
6301
6300
|
tar: "^7.5.19"
|
|
6302
6301
|
},
|
|
@@ -13877,7 +13876,7 @@ var require_dist = __commonJS2({
|
|
|
13877
13876
|
}
|
|
13878
13877
|
});
|
|
13879
13878
|
var require_constants = __commonJS2({
|
|
13880
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
13879
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/constants.js"(exports$1, module) {
|
|
13881
13880
|
var SEMVER_SPEC_VERSION = "2.0.0";
|
|
13882
13881
|
var MAX_LENGTH = 256;
|
|
13883
13882
|
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */
|
|
@@ -13906,14 +13905,14 @@ var require_constants = __commonJS2({
|
|
|
13906
13905
|
}
|
|
13907
13906
|
});
|
|
13908
13907
|
var require_debug = __commonJS2({
|
|
13909
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
13908
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/debug.js"(exports$1, module) {
|
|
13910
13909
|
var debug = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => {
|
|
13911
13910
|
};
|
|
13912
13911
|
module.exports = debug;
|
|
13913
13912
|
}
|
|
13914
13913
|
});
|
|
13915
13914
|
var require_re = __commonJS2({
|
|
13916
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
13915
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/re.js"(exports$1, module) {
|
|
13917
13916
|
var {
|
|
13918
13917
|
MAX_SAFE_COMPONENT_LENGTH,
|
|
13919
13918
|
MAX_SAFE_BUILD_LENGTH,
|
|
@@ -13998,7 +13997,7 @@ var require_re = __commonJS2({
|
|
|
13998
13997
|
}
|
|
13999
13998
|
});
|
|
14000
13999
|
var require_parse_options = __commonJS2({
|
|
14001
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14000
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/parse-options.js"(exports$1, module) {
|
|
14002
14001
|
var looseOption = Object.freeze({ loose: true });
|
|
14003
14002
|
var emptyOpts = Object.freeze({});
|
|
14004
14003
|
var parseOptions = (options) => {
|
|
@@ -14014,7 +14013,7 @@ var require_parse_options = __commonJS2({
|
|
|
14014
14013
|
}
|
|
14015
14014
|
});
|
|
14016
14015
|
var require_identifiers = __commonJS2({
|
|
14017
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14016
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/identifiers.js"(exports$1, module) {
|
|
14018
14017
|
var numeric = /^[0-9]+$/;
|
|
14019
14018
|
var compareIdentifiers = (a2, b2) => {
|
|
14020
14019
|
if (typeof a2 === "number" && typeof b2 === "number") {
|
|
@@ -14036,12 +14035,24 @@ var require_identifiers = __commonJS2({
|
|
|
14036
14035
|
}
|
|
14037
14036
|
});
|
|
14038
14037
|
var require_semver = __commonJS2({
|
|
14039
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14038
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/semver.js"(exports$1, module) {
|
|
14040
14039
|
var debug = require_debug();
|
|
14041
14040
|
var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants();
|
|
14042
14041
|
var { safeRe: re3, t: t2 } = require_re();
|
|
14043
14042
|
var parseOptions = require_parse_options();
|
|
14044
14043
|
var { compareIdentifiers } = require_identifiers();
|
|
14044
|
+
var isPrereleaseIdentifier = (prerelease, identifier) => {
|
|
14045
|
+
const identifiers = identifier.split(".");
|
|
14046
|
+
if (identifiers.length > prerelease.length) {
|
|
14047
|
+
return false;
|
|
14048
|
+
}
|
|
14049
|
+
for (let i2 = 0; i2 < identifiers.length; i2++) {
|
|
14050
|
+
if (compareIdentifiers(prerelease[i2], identifiers[i2]) !== 0) {
|
|
14051
|
+
return false;
|
|
14052
|
+
}
|
|
14053
|
+
}
|
|
14054
|
+
return true;
|
|
14055
|
+
};
|
|
14045
14056
|
var SemVer = class _SemVer {
|
|
14046
14057
|
constructor(version2, options) {
|
|
14047
14058
|
options = parseOptions(options);
|
|
@@ -14288,8 +14299,9 @@ var require_semver = __commonJS2({
|
|
|
14288
14299
|
if (identifierBase === false) {
|
|
14289
14300
|
prerelease = [identifier];
|
|
14290
14301
|
}
|
|
14291
|
-
if (
|
|
14292
|
-
|
|
14302
|
+
if (isPrereleaseIdentifier(this.prerelease, identifier)) {
|
|
14303
|
+
const prereleaseBase = this.prerelease[identifier.split(".").length];
|
|
14304
|
+
if (isNaN(prereleaseBase)) {
|
|
14293
14305
|
this.prerelease = prerelease;
|
|
14294
14306
|
}
|
|
14295
14307
|
} else {
|
|
@@ -14312,7 +14324,7 @@ var require_semver = __commonJS2({
|
|
|
14312
14324
|
}
|
|
14313
14325
|
});
|
|
14314
14326
|
var require_parse = __commonJS2({
|
|
14315
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14327
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/parse.js"(exports$1, module) {
|
|
14316
14328
|
var SemVer = require_semver();
|
|
14317
14329
|
var parse = (version2, options, throwErrors = false) => {
|
|
14318
14330
|
if (version2 instanceof SemVer) {
|
|
@@ -14331,7 +14343,7 @@ var require_parse = __commonJS2({
|
|
|
14331
14343
|
}
|
|
14332
14344
|
});
|
|
14333
14345
|
var require_valid = __commonJS2({
|
|
14334
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14346
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/valid.js"(exports$1, module) {
|
|
14335
14347
|
var parse = require_parse();
|
|
14336
14348
|
var valid = (version2, options) => {
|
|
14337
14349
|
const v2 = parse(version2, options);
|
|
@@ -14341,7 +14353,7 @@ var require_valid = __commonJS2({
|
|
|
14341
14353
|
}
|
|
14342
14354
|
});
|
|
14343
14355
|
var require_clean = __commonJS2({
|
|
14344
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14356
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/clean.js"(exports$1, module) {
|
|
14345
14357
|
var parse = require_parse();
|
|
14346
14358
|
var clean = (version2, options) => {
|
|
14347
14359
|
const s3 = parse(version2.trim().replace(/^[=v]+/, ""), options);
|
|
@@ -14351,7 +14363,7 @@ var require_clean = __commonJS2({
|
|
|
14351
14363
|
}
|
|
14352
14364
|
});
|
|
14353
14365
|
var require_inc = __commonJS2({
|
|
14354
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14366
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/inc.js"(exports$1, module) {
|
|
14355
14367
|
var SemVer = require_semver();
|
|
14356
14368
|
var inc = (version2, release, options, identifier, identifierBase) => {
|
|
14357
14369
|
if (typeof options === "string") {
|
|
@@ -14372,7 +14384,7 @@ var require_inc = __commonJS2({
|
|
|
14372
14384
|
}
|
|
14373
14385
|
});
|
|
14374
14386
|
var require_diff = __commonJS2({
|
|
14375
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14387
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/diff.js"(exports$1, module) {
|
|
14376
14388
|
var parse = require_parse();
|
|
14377
14389
|
var diff = (version1, version2) => {
|
|
14378
14390
|
const v1 = parse(version1, null, true);
|
|
@@ -14413,28 +14425,28 @@ var require_diff = __commonJS2({
|
|
|
14413
14425
|
}
|
|
14414
14426
|
});
|
|
14415
14427
|
var require_major = __commonJS2({
|
|
14416
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14428
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/major.js"(exports$1, module) {
|
|
14417
14429
|
var SemVer = require_semver();
|
|
14418
14430
|
var major = (a2, loose) => new SemVer(a2, loose).major;
|
|
14419
14431
|
module.exports = major;
|
|
14420
14432
|
}
|
|
14421
14433
|
});
|
|
14422
14434
|
var require_minor = __commonJS2({
|
|
14423
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14435
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/minor.js"(exports$1, module) {
|
|
14424
14436
|
var SemVer = require_semver();
|
|
14425
14437
|
var minor = (a2, loose) => new SemVer(a2, loose).minor;
|
|
14426
14438
|
module.exports = minor;
|
|
14427
14439
|
}
|
|
14428
14440
|
});
|
|
14429
14441
|
var require_patch = __commonJS2({
|
|
14430
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14442
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/patch.js"(exports$1, module) {
|
|
14431
14443
|
var SemVer = require_semver();
|
|
14432
14444
|
var patch = (a2, loose) => new SemVer(a2, loose).patch;
|
|
14433
14445
|
module.exports = patch;
|
|
14434
14446
|
}
|
|
14435
14447
|
});
|
|
14436
14448
|
var require_prerelease = __commonJS2({
|
|
14437
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14449
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/prerelease.js"(exports$1, module) {
|
|
14438
14450
|
var parse = require_parse();
|
|
14439
14451
|
var prerelease = (version2, options) => {
|
|
14440
14452
|
const parsed = parse(version2, options);
|
|
@@ -14444,28 +14456,28 @@ var require_prerelease = __commonJS2({
|
|
|
14444
14456
|
}
|
|
14445
14457
|
});
|
|
14446
14458
|
var require_compare = __commonJS2({
|
|
14447
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14459
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare.js"(exports$1, module) {
|
|
14448
14460
|
var SemVer = require_semver();
|
|
14449
14461
|
var compare = (a2, b2, loose) => new SemVer(a2, loose).compare(new SemVer(b2, loose));
|
|
14450
14462
|
module.exports = compare;
|
|
14451
14463
|
}
|
|
14452
14464
|
});
|
|
14453
14465
|
var require_rcompare = __commonJS2({
|
|
14454
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14466
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rcompare.js"(exports$1, module) {
|
|
14455
14467
|
var compare = require_compare();
|
|
14456
14468
|
var rcompare = (a2, b2, loose) => compare(b2, a2, loose);
|
|
14457
14469
|
module.exports = rcompare;
|
|
14458
14470
|
}
|
|
14459
14471
|
});
|
|
14460
14472
|
var require_compare_loose = __commonJS2({
|
|
14461
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14473
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-loose.js"(exports$1, module) {
|
|
14462
14474
|
var compare = require_compare();
|
|
14463
14475
|
var compareLoose = (a2, b2) => compare(a2, b2, true);
|
|
14464
14476
|
module.exports = compareLoose;
|
|
14465
14477
|
}
|
|
14466
14478
|
});
|
|
14467
14479
|
var require_compare_build = __commonJS2({
|
|
14468
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14480
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-build.js"(exports$1, module) {
|
|
14469
14481
|
var SemVer = require_semver();
|
|
14470
14482
|
var compareBuild = (a2, b2, loose) => {
|
|
14471
14483
|
const versionA = new SemVer(a2, loose);
|
|
@@ -14476,63 +14488,63 @@ var require_compare_build = __commonJS2({
|
|
|
14476
14488
|
}
|
|
14477
14489
|
});
|
|
14478
14490
|
var require_sort = __commonJS2({
|
|
14479
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14491
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/sort.js"(exports$1, module) {
|
|
14480
14492
|
var compareBuild = require_compare_build();
|
|
14481
14493
|
var sort = (list, loose) => list.sort((a2, b2) => compareBuild(a2, b2, loose));
|
|
14482
14494
|
module.exports = sort;
|
|
14483
14495
|
}
|
|
14484
14496
|
});
|
|
14485
14497
|
var require_rsort = __commonJS2({
|
|
14486
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14498
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rsort.js"(exports$1, module) {
|
|
14487
14499
|
var compareBuild = require_compare_build();
|
|
14488
14500
|
var rsort = (list, loose) => list.sort((a2, b2) => compareBuild(b2, a2, loose));
|
|
14489
14501
|
module.exports = rsort;
|
|
14490
14502
|
}
|
|
14491
14503
|
});
|
|
14492
14504
|
var require_gt = __commonJS2({
|
|
14493
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14505
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gt.js"(exports$1, module) {
|
|
14494
14506
|
var compare = require_compare();
|
|
14495
14507
|
var gt4 = (a2, b2, loose) => compare(a2, b2, loose) > 0;
|
|
14496
14508
|
module.exports = gt4;
|
|
14497
14509
|
}
|
|
14498
14510
|
});
|
|
14499
14511
|
var require_lt = __commonJS2({
|
|
14500
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14512
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lt.js"(exports$1, module) {
|
|
14501
14513
|
var compare = require_compare();
|
|
14502
14514
|
var lt3 = (a2, b2, loose) => compare(a2, b2, loose) < 0;
|
|
14503
14515
|
module.exports = lt3;
|
|
14504
14516
|
}
|
|
14505
14517
|
});
|
|
14506
14518
|
var require_eq = __commonJS2({
|
|
14507
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14519
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/eq.js"(exports$1, module) {
|
|
14508
14520
|
var compare = require_compare();
|
|
14509
14521
|
var eq = (a2, b2, loose) => compare(a2, b2, loose) === 0;
|
|
14510
14522
|
module.exports = eq;
|
|
14511
14523
|
}
|
|
14512
14524
|
});
|
|
14513
14525
|
var require_neq = __commonJS2({
|
|
14514
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14526
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/neq.js"(exports$1, module) {
|
|
14515
14527
|
var compare = require_compare();
|
|
14516
14528
|
var neq = (a2, b2, loose) => compare(a2, b2, loose) !== 0;
|
|
14517
14529
|
module.exports = neq;
|
|
14518
14530
|
}
|
|
14519
14531
|
});
|
|
14520
14532
|
var require_gte = __commonJS2({
|
|
14521
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14533
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gte.js"(exports$1, module) {
|
|
14522
14534
|
var compare = require_compare();
|
|
14523
14535
|
var gte = (a2, b2, loose) => compare(a2, b2, loose) >= 0;
|
|
14524
14536
|
module.exports = gte;
|
|
14525
14537
|
}
|
|
14526
14538
|
});
|
|
14527
14539
|
var require_lte = __commonJS2({
|
|
14528
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14540
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lte.js"(exports$1, module) {
|
|
14529
14541
|
var compare = require_compare();
|
|
14530
14542
|
var lte = (a2, b2, loose) => compare(a2, b2, loose) <= 0;
|
|
14531
14543
|
module.exports = lte;
|
|
14532
14544
|
}
|
|
14533
14545
|
});
|
|
14534
14546
|
var require_cmp = __commonJS2({
|
|
14535
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14547
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/cmp.js"(exports$1, module) {
|
|
14536
14548
|
var eq = require_eq();
|
|
14537
14549
|
var neq = require_neq();
|
|
14538
14550
|
var gt4 = require_gt();
|
|
@@ -14579,7 +14591,7 @@ var require_cmp = __commonJS2({
|
|
|
14579
14591
|
}
|
|
14580
14592
|
});
|
|
14581
14593
|
var require_coerce = __commonJS2({
|
|
14582
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14594
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/coerce.js"(exports$1, module) {
|
|
14583
14595
|
var SemVer = require_semver();
|
|
14584
14596
|
var parse = require_parse();
|
|
14585
14597
|
var { safeRe: re3, t: t2 } = require_re();
|
|
@@ -14622,7 +14634,7 @@ var require_coerce = __commonJS2({
|
|
|
14622
14634
|
}
|
|
14623
14635
|
});
|
|
14624
14636
|
var require_truncate = __commonJS2({
|
|
14625
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14637
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/truncate.js"(exports$1, module) {
|
|
14626
14638
|
var parse = require_parse();
|
|
14627
14639
|
var constants4 = require_constants();
|
|
14628
14640
|
var SemVer = require_semver();
|
|
@@ -14660,7 +14672,7 @@ var require_truncate = __commonJS2({
|
|
|
14660
14672
|
}
|
|
14661
14673
|
});
|
|
14662
14674
|
var require_lrucache = __commonJS2({
|
|
14663
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14675
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/lrucache.js"(exports$1, module) {
|
|
14664
14676
|
var LRUCache = class {
|
|
14665
14677
|
constructor() {
|
|
14666
14678
|
this.max = 1e3;
|
|
@@ -14695,7 +14707,7 @@ var require_lrucache = __commonJS2({
|
|
|
14695
14707
|
}
|
|
14696
14708
|
});
|
|
14697
14709
|
var require_range = __commonJS2({
|
|
14698
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
14710
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/range.js"(exports$1, module) {
|
|
14699
14711
|
var SPACE_CHARACTERS = /\s+/g;
|
|
14700
14712
|
var Range = class _Range {
|
|
14701
14713
|
constructor(range, options) {
|
|
@@ -14762,6 +14774,7 @@ var require_range = __commonJS2({
|
|
|
14762
14774
|
return this.range;
|
|
14763
14775
|
}
|
|
14764
14776
|
parseRange(range) {
|
|
14777
|
+
range = range.replace(BUILDSTRIPRE, "");
|
|
14765
14778
|
const memoOpts = (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | (this.options.loose && FLAG_LOOSE);
|
|
14766
14779
|
const memoKey = memoOpts + ":" + range;
|
|
14767
14780
|
const cached = cache.get(memoKey);
|
|
@@ -14844,12 +14857,14 @@ var require_range = __commonJS2({
|
|
|
14844
14857
|
var SemVer = require_semver();
|
|
14845
14858
|
var {
|
|
14846
14859
|
safeRe: re3,
|
|
14860
|
+
src,
|
|
14847
14861
|
t: t2,
|
|
14848
14862
|
comparatorTrimReplace,
|
|
14849
14863
|
tildeTrimReplace,
|
|
14850
14864
|
caretTrimReplace
|
|
14851
14865
|
} = require_re();
|
|
14852
14866
|
var { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require_constants();
|
|
14867
|
+
var BUILDSTRIPRE = new RegExp(src[t2.BUILD], "g");
|
|
14853
14868
|
var isNullSet = (c3) => c3.value === "<0.0.0-0";
|
|
14854
14869
|
var isAny = (c3) => c3.value === "";
|
|
14855
14870
|
var isSatisfiable = (comparators, options) => {
|
|
@@ -14878,20 +14893,22 @@ var require_range = __commonJS2({
|
|
|
14878
14893
|
return comp;
|
|
14879
14894
|
};
|
|
14880
14895
|
var isX = (id) => !id || id.toLowerCase() === "x" || id === "*";
|
|
14896
|
+
var invalidXRangeOrder = (M3, m2, p2) => isX(M3) && !isX(m2) || isX(m2) && p2 && !isX(p2);
|
|
14881
14897
|
var replaceTildes = (comp, options) => {
|
|
14882
14898
|
return comp.trim().split(/\s+/).map((c3) => replaceTilde(c3, options)).join(" ");
|
|
14883
14899
|
};
|
|
14884
14900
|
var replaceTilde = (comp, options) => {
|
|
14885
14901
|
const r = options.loose ? re3[t2.TILDELOOSE] : re3[t2.TILDE];
|
|
14902
|
+
const z4 = options.includePrerelease ? "-0" : "";
|
|
14886
14903
|
return comp.replace(r, (_3, M3, m2, p2, pr2) => {
|
|
14887
14904
|
debug("tilde", comp, _3, M3, m2, p2, pr2);
|
|
14888
14905
|
let ret;
|
|
14889
14906
|
if (isX(M3)) {
|
|
14890
14907
|
ret = "";
|
|
14891
14908
|
} else if (isX(m2)) {
|
|
14892
|
-
ret = `>=${M3}.0.0 <${+M3 + 1}.0.0-0`;
|
|
14909
|
+
ret = `>=${M3}.0.0${z4} <${+M3 + 1}.0.0-0`;
|
|
14893
14910
|
} else if (isX(p2)) {
|
|
14894
|
-
ret = `>=${M3}.${m2}.0 <${M3}.${+m2 + 1}.0-0`;
|
|
14911
|
+
ret = `>=${M3}.${m2}.0${z4} <${M3}.${+m2 + 1}.0-0`;
|
|
14895
14912
|
} else if (pr2) {
|
|
14896
14913
|
debug("replaceTilde pr", pr2);
|
|
14897
14914
|
ret = `>=${M3}.${m2}.${p2}-${pr2} <${M3}.${+m2 + 1}.0-0`;
|
|
@@ -14937,9 +14954,9 @@ var require_range = __commonJS2({
|
|
|
14937
14954
|
debug("no pr");
|
|
14938
14955
|
if (M3 === "0") {
|
|
14939
14956
|
if (m2 === "0") {
|
|
14940
|
-
ret = `>=${M3}.${m2}.${p2}
|
|
14957
|
+
ret = `>=${M3}.${m2}.${p2} <${M3}.${m2}.${+p2 + 1}-0`;
|
|
14941
14958
|
} else {
|
|
14942
|
-
ret = `>=${M3}.${m2}.${p2}
|
|
14959
|
+
ret = `>=${M3}.${m2}.${p2} <${M3}.${+m2 + 1}.0-0`;
|
|
14943
14960
|
}
|
|
14944
14961
|
} else {
|
|
14945
14962
|
ret = `>=${M3}.${m2}.${p2} <${+M3 + 1}.0.0-0`;
|
|
@@ -14958,6 +14975,9 @@ var require_range = __commonJS2({
|
|
|
14958
14975
|
const r = options.loose ? re3[t2.XRANGELOOSE] : re3[t2.XRANGE];
|
|
14959
14976
|
return comp.replace(r, (ret, gtlt, M3, m2, p2, pr2) => {
|
|
14960
14977
|
debug("xRange", comp, ret, gtlt, M3, m2, p2, pr2);
|
|
14978
|
+
if (invalidXRangeOrder(M3, m2, p2)) {
|
|
14979
|
+
return comp;
|
|
14980
|
+
}
|
|
14961
14981
|
const xM = isX(M3);
|
|
14962
14982
|
const xm = xM || isX(m2);
|
|
14963
14983
|
const xp = xm || isX(p2);
|
|
@@ -15069,7 +15089,7 @@ var require_range = __commonJS2({
|
|
|
15069
15089
|
}
|
|
15070
15090
|
});
|
|
15071
15091
|
var require_comparator = __commonJS2({
|
|
15072
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
15092
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/comparator.js"(exports$1, module) {
|
|
15073
15093
|
var ANY = Symbol("SemVer ANY");
|
|
15074
15094
|
var Comparator = class _Comparator {
|
|
15075
15095
|
static get ANY() {
|
|
@@ -15179,7 +15199,7 @@ var require_comparator = __commonJS2({
|
|
|
15179
15199
|
}
|
|
15180
15200
|
});
|
|
15181
15201
|
var require_satisfies = __commonJS2({
|
|
15182
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
15202
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/satisfies.js"(exports$1, module) {
|
|
15183
15203
|
var Range = require_range();
|
|
15184
15204
|
var satisfies = (version2, range, options) => {
|
|
15185
15205
|
try {
|
|
@@ -15193,14 +15213,14 @@ var require_satisfies = __commonJS2({
|
|
|
15193
15213
|
}
|
|
15194
15214
|
});
|
|
15195
15215
|
var require_to_comparators = __commonJS2({
|
|
15196
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
15216
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/to-comparators.js"(exports$1, module) {
|
|
15197
15217
|
var Range = require_range();
|
|
15198
15218
|
var toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c3) => c3.value).join(" ").trim().split(" "));
|
|
15199
15219
|
module.exports = toComparators;
|
|
15200
15220
|
}
|
|
15201
15221
|
});
|
|
15202
15222
|
var require_max_satisfying = __commonJS2({
|
|
15203
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
15223
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/max-satisfying.js"(exports$1, module) {
|
|
15204
15224
|
var SemVer = require_semver();
|
|
15205
15225
|
var Range = require_range();
|
|
15206
15226
|
var maxSatisfying = (versions, range, options) => {
|
|
@@ -15226,7 +15246,7 @@ var require_max_satisfying = __commonJS2({
|
|
|
15226
15246
|
}
|
|
15227
15247
|
});
|
|
15228
15248
|
var require_min_satisfying = __commonJS2({
|
|
15229
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
15249
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-satisfying.js"(exports$1, module) {
|
|
15230
15250
|
var SemVer = require_semver();
|
|
15231
15251
|
var Range = require_range();
|
|
15232
15252
|
var minSatisfying = (versions, range, options) => {
|
|
@@ -15252,7 +15272,7 @@ var require_min_satisfying = __commonJS2({
|
|
|
15252
15272
|
}
|
|
15253
15273
|
});
|
|
15254
15274
|
var require_min_version = __commonJS2({
|
|
15255
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
15275
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-version.js"(exports$1, module) {
|
|
15256
15276
|
var SemVer = require_semver();
|
|
15257
15277
|
var Range = require_range();
|
|
15258
15278
|
var gt4 = require_gt();
|
|
@@ -15308,7 +15328,7 @@ var require_min_version = __commonJS2({
|
|
|
15308
15328
|
}
|
|
15309
15329
|
});
|
|
15310
15330
|
var require_valid2 = __commonJS2({
|
|
15311
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
15331
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/valid.js"(exports$1, module) {
|
|
15312
15332
|
var Range = require_range();
|
|
15313
15333
|
var validRange = (range, options) => {
|
|
15314
15334
|
try {
|
|
@@ -15321,7 +15341,7 @@ var require_valid2 = __commonJS2({
|
|
|
15321
15341
|
}
|
|
15322
15342
|
});
|
|
15323
15343
|
var require_outside = __commonJS2({
|
|
15324
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
15344
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/outside.js"(exports$1, module) {
|
|
15325
15345
|
var SemVer = require_semver();
|
|
15326
15346
|
var Comparator = require_comparator();
|
|
15327
15347
|
var { ANY } = Comparator;
|
|
@@ -15387,21 +15407,21 @@ var require_outside = __commonJS2({
|
|
|
15387
15407
|
}
|
|
15388
15408
|
});
|
|
15389
15409
|
var require_gtr = __commonJS2({
|
|
15390
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
15410
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/gtr.js"(exports$1, module) {
|
|
15391
15411
|
var outside = require_outside();
|
|
15392
15412
|
var gtr = (version2, range, options) => outside(version2, range, ">", options);
|
|
15393
15413
|
module.exports = gtr;
|
|
15394
15414
|
}
|
|
15395
15415
|
});
|
|
15396
15416
|
var require_ltr = __commonJS2({
|
|
15397
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
15417
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/ltr.js"(exports$1, module) {
|
|
15398
15418
|
var outside = require_outside();
|
|
15399
15419
|
var ltr = (version2, range, options) => outside(version2, range, "<", options);
|
|
15400
15420
|
module.exports = ltr;
|
|
15401
15421
|
}
|
|
15402
15422
|
});
|
|
15403
15423
|
var require_intersects = __commonJS2({
|
|
15404
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
15424
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/intersects.js"(exports$1, module) {
|
|
15405
15425
|
var Range = require_range();
|
|
15406
15426
|
var intersects = (r1, r2, options) => {
|
|
15407
15427
|
r1 = new Range(r1, options);
|
|
@@ -15412,7 +15432,7 @@ var require_intersects = __commonJS2({
|
|
|
15412
15432
|
}
|
|
15413
15433
|
});
|
|
15414
15434
|
var require_simplify = __commonJS2({
|
|
15415
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
15435
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/simplify.js"(exports$1, module) {
|
|
15416
15436
|
var satisfies = require_satisfies();
|
|
15417
15437
|
var compare = require_compare();
|
|
15418
15438
|
module.exports = (versions, range, options) => {
|
|
@@ -15459,7 +15479,7 @@ var require_simplify = __commonJS2({
|
|
|
15459
15479
|
}
|
|
15460
15480
|
});
|
|
15461
15481
|
var require_subset = __commonJS2({
|
|
15462
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
15482
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/subset.js"(exports$1, module) {
|
|
15463
15483
|
var Range = require_range();
|
|
15464
15484
|
var Comparator = require_comparator();
|
|
15465
15485
|
var { ANY } = Comparator;
|
|
@@ -15566,7 +15586,7 @@ var require_subset = __commonJS2({
|
|
|
15566
15586
|
if (higher === c3 && higher !== gt4) {
|
|
15567
15587
|
return false;
|
|
15568
15588
|
}
|
|
15569
|
-
} else if (gt4.operator === ">=" && !
|
|
15589
|
+
} else if (gt4.operator === ">=" && !c3.test(gt4.semver)) {
|
|
15570
15590
|
return false;
|
|
15571
15591
|
}
|
|
15572
15592
|
}
|
|
@@ -15581,7 +15601,7 @@ var require_subset = __commonJS2({
|
|
|
15581
15601
|
if (lower === c3 && lower !== lt3) {
|
|
15582
15602
|
return false;
|
|
15583
15603
|
}
|
|
15584
|
-
} else if (lt3.operator === "<=" && !
|
|
15604
|
+
} else if (lt3.operator === "<=" && !c3.test(lt3.semver)) {
|
|
15585
15605
|
return false;
|
|
15586
15606
|
}
|
|
15587
15607
|
}
|
|
@@ -15618,7 +15638,7 @@ var require_subset = __commonJS2({
|
|
|
15618
15638
|
}
|
|
15619
15639
|
});
|
|
15620
15640
|
var require_semver2 = __commonJS2({
|
|
15621
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
15641
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/index.js"(exports$1, module) {
|
|
15622
15642
|
var internalRe = require_re();
|
|
15623
15643
|
var constants4 = require_constants();
|
|
15624
15644
|
var SemVer = require_semver();
|
|
@@ -28667,6 +28687,32 @@ getIpcExport();
|
|
|
28667
28687
|
|
|
28668
28688
|
// src/utils/template.ts
|
|
28669
28689
|
var import_fs_extra8 = __toESM(require_lib());
|
|
28690
|
+
|
|
28691
|
+
// src/utils/package-manager-commands.ts
|
|
28692
|
+
function scriptRunner(packageManager) {
|
|
28693
|
+
switch (packageManager) {
|
|
28694
|
+
case "npm":
|
|
28695
|
+
return "npm run";
|
|
28696
|
+
case "bun":
|
|
28697
|
+
return "bun run";
|
|
28698
|
+
default:
|
|
28699
|
+
return packageManager;
|
|
28700
|
+
}
|
|
28701
|
+
}
|
|
28702
|
+
function binaryRunner(packageManager) {
|
|
28703
|
+
switch (packageManager) {
|
|
28704
|
+
case "npm":
|
|
28705
|
+
return "npx";
|
|
28706
|
+
case "yarn":
|
|
28707
|
+
return "yarn";
|
|
28708
|
+
case "pnpm":
|
|
28709
|
+
return "pnpm exec";
|
|
28710
|
+
case "bun":
|
|
28711
|
+
return "bunx";
|
|
28712
|
+
}
|
|
28713
|
+
}
|
|
28714
|
+
|
|
28715
|
+
// src/utils/template.ts
|
|
28670
28716
|
var PROJECT_TYPES_WITH_FORM_BUILDER = /* @__PURE__ */ new Set([
|
|
28671
28717
|
"blog"
|
|
28672
28718
|
]);
|
|
@@ -28732,14 +28778,205 @@ var TEXT_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
|
28732
28778
|
".cjs"
|
|
28733
28779
|
]);
|
|
28734
28780
|
var SKIP_FILES = /* @__PURE__ */ new Set([".DS_Store", "Thumbs.db", ".gitkeep"]);
|
|
28735
|
-
var
|
|
28736
|
-
|
|
28737
|
-
|
|
28738
|
-
|
|
28739
|
-
|
|
28740
|
-
|
|
28741
|
-
|
|
28742
|
-
|
|
28781
|
+
var RENAMED_ON_COPY = [
|
|
28782
|
+
// Line-wise, because an ignore file is a set of patterns: the developer's entries stay and the
|
|
28783
|
+
// scaffold's missing ones are added, so `.env` ends up ignored either way.
|
|
28784
|
+
{
|
|
28785
|
+
shipped: "gitignore",
|
|
28786
|
+
inProject: ".gitignore",
|
|
28787
|
+
merge: "append-missing-lines",
|
|
28788
|
+
onLink: "materialize"
|
|
28789
|
+
},
|
|
28790
|
+
// The guide carries its content inside a managed block, which is exactly the region a
|
|
28791
|
+
// regeneration is allowed to replace.
|
|
28792
|
+
{
|
|
28793
|
+
shipped: "AGENTS.md.template",
|
|
28794
|
+
inProject: "AGENTS.md",
|
|
28795
|
+
merge: "managed-block",
|
|
28796
|
+
onLink: "preserve"
|
|
28797
|
+
},
|
|
28798
|
+
// One line pointing at the guide. If a project already points there, nothing to add; if it has
|
|
28799
|
+
// its own instructions, they keep them and gain the pointer.
|
|
28800
|
+
{
|
|
28801
|
+
shipped: "CLAUDE.md.template",
|
|
28802
|
+
inProject: "CLAUDE.md",
|
|
28803
|
+
merge: "append-missing-lines",
|
|
28804
|
+
onLink: "preserve"
|
|
28805
|
+
}
|
|
28806
|
+
];
|
|
28807
|
+
var MANAGED_START = "<!-- nextly:managed:start -->";
|
|
28808
|
+
var MANAGED_END = "<!-- nextly:managed:end -->";
|
|
28809
|
+
function mergeManagedBlock(existing, incoming) {
|
|
28810
|
+
const block = extractManagedBlock(incoming);
|
|
28811
|
+
const region = findManagedRegion(existing);
|
|
28812
|
+
if (!region) return `${existing.trimEnd()}
|
|
28813
|
+
|
|
28814
|
+
${block}
|
|
28815
|
+
`;
|
|
28816
|
+
return existing.slice(0, region.start) + block + existing.slice(region.end);
|
|
28817
|
+
}
|
|
28818
|
+
function blankRegion(match) {
|
|
28819
|
+
return match.replace(/[^\n]/g, " ");
|
|
28820
|
+
}
|
|
28821
|
+
function withoutFencedExamples(text) {
|
|
28822
|
+
return text.replace(
|
|
28823
|
+
/^[ \t]*(```|~~~)[\s\S]*?^[ \t]*\1[^\n]*$/gm,
|
|
28824
|
+
blankRegion
|
|
28825
|
+
);
|
|
28826
|
+
}
|
|
28827
|
+
function withoutInactiveText(text) {
|
|
28828
|
+
return withoutFencedExamples(text).replace(/<!--[\s\S]*?-->/g, blankRegion).replace(/`[^`\n]*`/g, blankRegion);
|
|
28829
|
+
}
|
|
28830
|
+
function findManagedRegion(text) {
|
|
28831
|
+
const scan = withoutFencedExamples(text);
|
|
28832
|
+
let cursor = 0;
|
|
28833
|
+
let found = null;
|
|
28834
|
+
for (; ; ) {
|
|
28835
|
+
const startIndex = scan.indexOf(MANAGED_START, cursor);
|
|
28836
|
+
if (startIndex === -1) return found;
|
|
28837
|
+
const after = startIndex + MANAGED_START.length;
|
|
28838
|
+
const endIndex = scan.indexOf(MANAGED_END, after);
|
|
28839
|
+
if (endIndex === -1) return found;
|
|
28840
|
+
const nextStart = scan.indexOf(MANAGED_START, after);
|
|
28841
|
+
if (nextStart !== -1 && nextStart < endIndex) {
|
|
28842
|
+
cursor = nextStart;
|
|
28843
|
+
continue;
|
|
28844
|
+
}
|
|
28845
|
+
found = { start: startIndex, end: endIndex + MANAGED_END.length };
|
|
28846
|
+
cursor = found.end;
|
|
28847
|
+
}
|
|
28848
|
+
}
|
|
28849
|
+
function extractManagedBlock(incoming) {
|
|
28850
|
+
const start = incoming.indexOf(MANAGED_START);
|
|
28851
|
+
const end = incoming.indexOf(MANAGED_END);
|
|
28852
|
+
if (start === -1 || end === -1 || end < start) return incoming.trim();
|
|
28853
|
+
return incoming.slice(start, end + MANAGED_END.length);
|
|
28854
|
+
}
|
|
28855
|
+
function appendMissingLines(existing, incoming) {
|
|
28856
|
+
const key = (line) => line.replace(/\s+$/, "");
|
|
28857
|
+
const have = new Set(withoutInactiveText(existing).split("\n").map(key));
|
|
28858
|
+
const missing = incoming.split("\n").filter((line) => line.trim() !== "" && !have.has(key(line)));
|
|
28859
|
+
if (missing.length === 0) return existing;
|
|
28860
|
+
const bom = existing.startsWith("\uFEFF") ? "\uFEFF" : "";
|
|
28861
|
+
const body = existing.slice(bom.length);
|
|
28862
|
+
return `${bom}${missing.join("\n")}
|
|
28863
|
+
|
|
28864
|
+
${body.replace(/^\n+/, "")}`;
|
|
28865
|
+
}
|
|
28866
|
+
function guidePlaceholders(packageManager) {
|
|
28867
|
+
return {
|
|
28868
|
+
"{{runCommand}}": scriptRunner(packageManager),
|
|
28869
|
+
"{{execCommand}}": binaryRunner(packageManager)
|
|
28870
|
+
};
|
|
28871
|
+
}
|
|
28872
|
+
var MAX_INCLUDE_HOPS = 64;
|
|
28873
|
+
async function pointsAtItself(targetDir, destination, incoming) {
|
|
28874
|
+
const queue = includeTargets(incoming).map((name) => ({
|
|
28875
|
+
name,
|
|
28876
|
+
depth: 0,
|
|
28877
|
+
from: targetDir
|
|
28878
|
+
}));
|
|
28879
|
+
if (queue.length === 0) return false;
|
|
28880
|
+
const self = await import_fs_extra8.default.realpath(destination).catch(() => destination);
|
|
28881
|
+
const visited = /* @__PURE__ */ new Set();
|
|
28882
|
+
let hops = 0;
|
|
28883
|
+
while (queue.length > 0) {
|
|
28884
|
+
if (++hops > MAX_INCLUDE_HOPS) return true;
|
|
28885
|
+
const { name, depth, from } = queue.shift();
|
|
28886
|
+
const targetPath = path15__default.default.resolve(from, name);
|
|
28887
|
+
if (targetPath === destination) return true;
|
|
28888
|
+
const resolved = await import_fs_extra8.default.realpath(targetPath).catch(() => null);
|
|
28889
|
+
const identity3 = `${resolved ?? targetPath}\0${path15__default.default.dirname(targetPath)}`;
|
|
28890
|
+
if (visited.has(identity3)) continue;
|
|
28891
|
+
visited.add(identity3);
|
|
28892
|
+
if (resolved === null) {
|
|
28893
|
+
if (depth === 0) return true;
|
|
28894
|
+
continue;
|
|
28895
|
+
}
|
|
28896
|
+
if (resolved === self) return true;
|
|
28897
|
+
const contents = await import_fs_extra8.default.readFile(targetPath, "utf-8").catch(() => null);
|
|
28898
|
+
if (contents !== null) {
|
|
28899
|
+
queue.push(
|
|
28900
|
+
...includeTargets(contents).map((next) => ({
|
|
28901
|
+
name: next,
|
|
28902
|
+
depth: depth + 1,
|
|
28903
|
+
from: path15__default.default.dirname(targetPath)
|
|
28904
|
+
}))
|
|
28905
|
+
);
|
|
28906
|
+
}
|
|
28907
|
+
}
|
|
28908
|
+
return false;
|
|
28909
|
+
}
|
|
28910
|
+
function includeTargets(text) {
|
|
28911
|
+
return withoutInactiveText(text).split("\n").map((line) => line.trim()).filter((line) => line.startsWith("@") && line.length > 1).map((line) => line.slice(1));
|
|
28912
|
+
}
|
|
28913
|
+
async function restoreShippedNames(targetDir, placeholders, packageManager) {
|
|
28914
|
+
const merged = /* @__PURE__ */ new Set();
|
|
28915
|
+
const forGuides = { ...placeholders, ...guidePlaceholders(packageManager) };
|
|
28916
|
+
for (const { shipped, inProject, merge, onLink } of RENAMED_ON_COPY) {
|
|
28917
|
+
const from = path15__default.default.join(targetDir, shipped);
|
|
28918
|
+
if (!await import_fs_extra8.default.pathExists(from)) continue;
|
|
28919
|
+
const to2 = path15__default.default.join(targetDir, inProject);
|
|
28920
|
+
const destination = await import_fs_extra8.default.lstat(to2).catch(() => null);
|
|
28921
|
+
if (!destination) {
|
|
28922
|
+
if (await pointsAtItself(
|
|
28923
|
+
targetDir,
|
|
28924
|
+
to2,
|
|
28925
|
+
applyPlaceholders(await import_fs_extra8.default.readFile(from, "utf-8"), forGuides)
|
|
28926
|
+
)) {
|
|
28927
|
+
await import_fs_extra8.default.remove(from);
|
|
28928
|
+
merged.add(inProject);
|
|
28929
|
+
continue;
|
|
28930
|
+
}
|
|
28931
|
+
await import_fs_extra8.default.move(from, to2);
|
|
28932
|
+
await import_fs_extra8.default.writeFile(
|
|
28933
|
+
to2,
|
|
28934
|
+
applyPlaceholders(await import_fs_extra8.default.readFile(to2, "utf-8"), forGuides),
|
|
28935
|
+
"utf-8"
|
|
28936
|
+
);
|
|
28937
|
+
merged.add(inProject);
|
|
28938
|
+
continue;
|
|
28939
|
+
}
|
|
28940
|
+
if (destination.isSymbolicLink() || destination.nlink > 1) {
|
|
28941
|
+
if (onLink === "materialize") {
|
|
28942
|
+
const existing2 = await import_fs_extra8.default.readFile(to2, "utf-8").catch((error) => {
|
|
28943
|
+
if (error?.code === "ENOENT") return "";
|
|
28944
|
+
throw error;
|
|
28945
|
+
});
|
|
28946
|
+
const incoming2 = await import_fs_extra8.default.readFile(from, "utf-8");
|
|
28947
|
+
await import_fs_extra8.default.remove(to2);
|
|
28948
|
+
await import_fs_extra8.default.writeFile(
|
|
28949
|
+
to2,
|
|
28950
|
+
appendMissingLines(
|
|
28951
|
+
existing2,
|
|
28952
|
+
applyPlaceholders(incoming2, placeholders)
|
|
28953
|
+
),
|
|
28954
|
+
"utf-8"
|
|
28955
|
+
);
|
|
28956
|
+
await import_fs_extra8.default.remove(from);
|
|
28957
|
+
merged.add(inProject);
|
|
28958
|
+
continue;
|
|
28959
|
+
}
|
|
28960
|
+
await import_fs_extra8.default.remove(from);
|
|
28961
|
+
merged.add(inProject);
|
|
28962
|
+
continue;
|
|
28963
|
+
}
|
|
28964
|
+
const [existing, incoming] = await Promise.all([
|
|
28965
|
+
import_fs_extra8.default.readFile(to2, "utf-8"),
|
|
28966
|
+
import_fs_extra8.default.readFile(from, "utf-8")
|
|
28967
|
+
]);
|
|
28968
|
+
const rendered = applyPlaceholders(incoming, forGuides);
|
|
28969
|
+
const combined = merge === "managed-block" ? mergeManagedBlock(existing, rendered) : appendMissingLines(existing, rendered);
|
|
28970
|
+
if (await pointsAtItself(targetDir, to2, incoming)) {
|
|
28971
|
+
await import_fs_extra8.default.remove(from);
|
|
28972
|
+
merged.add(inProject);
|
|
28973
|
+
continue;
|
|
28974
|
+
}
|
|
28975
|
+
await import_fs_extra8.default.writeFile(to2, combined, "utf-8");
|
|
28976
|
+
await import_fs_extra8.default.remove(from);
|
|
28977
|
+
merged.add(inProject);
|
|
28978
|
+
}
|
|
28979
|
+
return merged;
|
|
28743
28980
|
}
|
|
28744
28981
|
function resolveTemplatePath(localTemplatePath) {
|
|
28745
28982
|
const __dirname = path15__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))));
|
|
@@ -28771,26 +29008,30 @@ async function replacePlaceholdersInFile(filePath, placeholders) {
|
|
|
28771
29008
|
const basename = path15__default.default.basename(filePath);
|
|
28772
29009
|
const isTextFile = TEXT_EXTENSIONS.has(ext) || basename.startsWith(".env") || basename === ".gitignore";
|
|
28773
29010
|
if (!isTextFile) return;
|
|
28774
|
-
|
|
28775
|
-
|
|
28776
|
-
|
|
28777
|
-
|
|
28778
|
-
|
|
28779
|
-
|
|
28780
|
-
}
|
|
29011
|
+
const link = await import_fs_extra8.default.lstat(filePath).catch(() => null);
|
|
29012
|
+
if (link && link.nlink > 1) return;
|
|
29013
|
+
const content = await import_fs_extra8.default.readFile(filePath, "utf-8");
|
|
29014
|
+
const rendered = applyPlaceholders(content, placeholders);
|
|
29015
|
+
if (rendered !== content) {
|
|
29016
|
+
await import_fs_extra8.default.writeFile(filePath, rendered, "utf-8");
|
|
28781
29017
|
}
|
|
28782
|
-
|
|
28783
|
-
|
|
29018
|
+
}
|
|
29019
|
+
function applyPlaceholders(content, placeholders) {
|
|
29020
|
+
let rendered = content;
|
|
29021
|
+
for (const [placeholder, value] of Object.entries(placeholders)) {
|
|
29022
|
+
rendered = rendered.replaceAll(placeholder, value);
|
|
28784
29023
|
}
|
|
29024
|
+
return rendered;
|
|
28785
29025
|
}
|
|
28786
|
-
async function replacePlaceholders(dir, placeholders) {
|
|
29026
|
+
async function replacePlaceholders(dir, placeholders, skip = /* @__PURE__ */ new Set(), root = dir) {
|
|
28787
29027
|
const entries = await import_fs_extra8.default.readdir(dir, { withFileTypes: true });
|
|
28788
29028
|
for (const entry of entries) {
|
|
28789
29029
|
const fullPath = path15__default.default.join(dir, entry.name);
|
|
28790
29030
|
if (entry.isDirectory()) {
|
|
28791
29031
|
if (entry.name === "node_modules" || entry.name === ".git") continue;
|
|
28792
|
-
await replacePlaceholders(fullPath, placeholders);
|
|
29032
|
+
await replacePlaceholders(fullPath, placeholders, skip, root);
|
|
28793
29033
|
} else if (entry.isFile()) {
|
|
29034
|
+
if (skip.has(path15__default.default.relative(root, fullPath))) continue;
|
|
28794
29035
|
await replacePlaceholdersInFile(fullPath, placeholders);
|
|
28795
29036
|
}
|
|
28796
29037
|
}
|
|
@@ -28970,6 +29211,11 @@ async function generatePluginPackageJson(projectName, useYalc) {
|
|
|
28970
29211
|
nextly: range("nextly"),
|
|
28971
29212
|
"@nextlyhq/admin": range("@nextlyhq/admin"),
|
|
28972
29213
|
"@nextlyhq/plugin-sdk": range("@nextlyhq/plugin-sdk"),
|
|
29214
|
+
// The UI kit is supplied by the host admin at run time, so a plugin must
|
|
29215
|
+
// declare it rather than carry a copy. As a devDependency alone, tsup
|
|
29216
|
+
// treats it as bundleable and inlines the whole kit into the published
|
|
29217
|
+
// plugin — first-party plugins declare it as a peer for this reason.
|
|
29218
|
+
"@nextlyhq/ui": range("@nextlyhq/ui"),
|
|
28973
29219
|
react: PINNED_VERSIONS.react,
|
|
28974
29220
|
"react-dom": PINNED_VERSIONS["react-dom"]
|
|
28975
29221
|
};
|
|
@@ -29220,7 +29466,15 @@ async function copyTemplate(options) {
|
|
|
29220
29466
|
generatePnpmWorkspaceYaml(),
|
|
29221
29467
|
"utf-8"
|
|
29222
29468
|
);
|
|
29223
|
-
|
|
29469
|
+
const placeholders = buildPlaceholderMap({ database, databaseUrl });
|
|
29470
|
+
if (approach) {
|
|
29471
|
+
placeholders["{{approach}}"] = approach;
|
|
29472
|
+
}
|
|
29473
|
+
const alreadyRendered = await restoreShippedNames(
|
|
29474
|
+
targetDir,
|
|
29475
|
+
placeholders,
|
|
29476
|
+
packageManager
|
|
29477
|
+
);
|
|
29224
29478
|
await writeScaffoldNpmrc(targetDir, packageManager);
|
|
29225
29479
|
if (database.type === "sqlite") {
|
|
29226
29480
|
await import_fs_extra8.default.ensureDir(path15__default.default.join(targetDir, "data"));
|
|
@@ -29230,11 +29484,7 @@ async function copyTemplate(options) {
|
|
|
29230
29484
|
buildNextConfigTemplate(database),
|
|
29231
29485
|
"utf-8"
|
|
29232
29486
|
);
|
|
29233
|
-
|
|
29234
|
-
if (approach) {
|
|
29235
|
-
placeholders["{{approach}}"] = approach;
|
|
29236
|
-
}
|
|
29237
|
-
await replacePlaceholders(targetDir, placeholders);
|
|
29487
|
+
await replacePlaceholders(targetDir, placeholders, alreadyRendered);
|
|
29238
29488
|
}
|
|
29239
29489
|
async function copyPluginTemplate(opts) {
|
|
29240
29490
|
const { projectName, typeDir, targetDir, useYalc, packageManager } = opts;
|
|
@@ -29266,13 +29516,18 @@ async function copyPluginTemplate(opts) {
|
|
|
29266
29516
|
generatePnpmWorkspaceYaml(),
|
|
29267
29517
|
"utf-8"
|
|
29268
29518
|
);
|
|
29269
|
-
await restoreIgnoreFile(targetDir);
|
|
29270
|
-
await writeScaffoldNpmrc(targetDir, packageManager);
|
|
29271
29519
|
const nextlyRange = await resolvePluginNextlyRange(useYalc);
|
|
29272
|
-
|
|
29520
|
+
const placeholders = buildPlaceholderMap({
|
|
29521
|
+
pluginName: projectName,
|
|
29522
|
+
nextlyRange
|
|
29523
|
+
});
|
|
29524
|
+
const alreadyRendered = await restoreShippedNames(
|
|
29273
29525
|
targetDir,
|
|
29274
|
-
|
|
29526
|
+
placeholders,
|
|
29527
|
+
packageManager
|
|
29275
29528
|
);
|
|
29529
|
+
await writeScaffoldNpmrc(targetDir, packageManager);
|
|
29530
|
+
await replacePlaceholders(targetDir, placeholders, alreadyRendered);
|
|
29276
29531
|
}
|
|
29277
29532
|
|
|
29278
29533
|
// src/installers/dependencies.ts
|
|
@@ -32965,7 +33220,7 @@ async function createNextly(options = {}) {
|
|
|
32965
33220
|
}
|
|
32966
33221
|
}
|
|
32967
33222
|
const pm = projectInfo.packageManager;
|
|
32968
|
-
const devCommand =
|
|
33223
|
+
const devCommand = `${scriptRunner(pm)} dev`;
|
|
32969
33224
|
const lines = [];
|
|
32970
33225
|
if (isFreshProject && projectName && !installInCwd) {
|
|
32971
33226
|
lines.push(` ${import_picocolors3.default.bold("cd")} ${projectName}`);
|