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/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.58",
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.0/node_modules/semver/internal/constants.js"(exports$1, module) {
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.0/node_modules/semver/internal/debug.js"(exports$1, module) {
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.0/node_modules/semver/internal/re.js"(exports$1, module) {
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.0/node_modules/semver/internal/parse-options.js"(exports$1, module) {
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.0/node_modules/semver/internal/identifiers.js"(exports$1, module) {
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.0/node_modules/semver/classes/semver.js"(exports$1, module) {
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 (compareIdentifiers(this.prerelease[0], identifier) === 0) {
14292
- if (isNaN(this.prerelease[1])) {
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.0/node_modules/semver/functions/parse.js"(exports$1, module) {
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.0/node_modules/semver/functions/valid.js"(exports$1, module) {
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.0/node_modules/semver/functions/clean.js"(exports$1, module) {
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.0/node_modules/semver/functions/inc.js"(exports$1, module) {
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.0/node_modules/semver/functions/diff.js"(exports$1, module) {
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.0/node_modules/semver/functions/major.js"(exports$1, module) {
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.0/node_modules/semver/functions/minor.js"(exports$1, module) {
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.0/node_modules/semver/functions/patch.js"(exports$1, module) {
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.0/node_modules/semver/functions/prerelease.js"(exports$1, module) {
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.0/node_modules/semver/functions/compare.js"(exports$1, module) {
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.0/node_modules/semver/functions/rcompare.js"(exports$1, module) {
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.0/node_modules/semver/functions/compare-loose.js"(exports$1, module) {
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.0/node_modules/semver/functions/compare-build.js"(exports$1, module) {
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.0/node_modules/semver/functions/sort.js"(exports$1, module) {
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.0/node_modules/semver/functions/rsort.js"(exports$1, module) {
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.0/node_modules/semver/functions/gt.js"(exports$1, module) {
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.0/node_modules/semver/functions/lt.js"(exports$1, module) {
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.0/node_modules/semver/functions/eq.js"(exports$1, module) {
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.0/node_modules/semver/functions/neq.js"(exports$1, module) {
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.0/node_modules/semver/functions/gte.js"(exports$1, module) {
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.0/node_modules/semver/functions/lte.js"(exports$1, module) {
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.0/node_modules/semver/functions/cmp.js"(exports$1, module) {
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.0/node_modules/semver/functions/coerce.js"(exports$1, module) {
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.0/node_modules/semver/functions/truncate.js"(exports$1, module) {
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.0/node_modules/semver/internal/lrucache.js"(exports$1, module) {
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.0/node_modules/semver/classes/range.js"(exports$1, module) {
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}${z4} <${M3}.${m2}.${+p2 + 1}-0`;
14957
+ ret = `>=${M3}.${m2}.${p2} <${M3}.${m2}.${+p2 + 1}-0`;
14941
14958
  } else {
14942
- ret = `>=${M3}.${m2}.${p2}${z4} <${M3}.${+m2 + 1}.0-0`;
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.0/node_modules/semver/classes/comparator.js"(exports$1, module) {
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.0/node_modules/semver/functions/satisfies.js"(exports$1, module) {
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.0/node_modules/semver/ranges/to-comparators.js"(exports$1, module) {
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.0/node_modules/semver/ranges/max-satisfying.js"(exports$1, module) {
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.0/node_modules/semver/ranges/min-satisfying.js"(exports$1, module) {
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.0/node_modules/semver/ranges/min-version.js"(exports$1, module) {
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.0/node_modules/semver/ranges/valid.js"(exports$1, module) {
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.0/node_modules/semver/ranges/outside.js"(exports$1, module) {
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.0/node_modules/semver/ranges/gtr.js"(exports$1, module) {
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.0/node_modules/semver/ranges/ltr.js"(exports$1, module) {
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.0/node_modules/semver/ranges/intersects.js"(exports$1, module) {
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.0/node_modules/semver/ranges/simplify.js"(exports$1, module) {
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.0/node_modules/semver/ranges/subset.js"(exports$1, module) {
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 === ">=" && !satisfies(gt4.semver, String(c3), options)) {
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 === "<=" && !satisfies(lt3.semver, String(c3), options)) {
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.0/node_modules/semver/index.js"(exports$1, module) {
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 IGNORE_FILE_IN_TEMPLATE = "gitignore";
28736
- var IGNORE_FILE_IN_PROJECT = ".gitignore";
28737
- async function restoreIgnoreFile(targetDir) {
28738
- const shipped = path15__default.default.join(targetDir, IGNORE_FILE_IN_TEMPLATE);
28739
- if (!await import_fs_extra8.default.pathExists(shipped)) return;
28740
- await import_fs_extra8.default.move(shipped, path15__default.default.join(targetDir, IGNORE_FILE_IN_PROJECT), {
28741
- overwrite: true
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
- let content = await import_fs_extra8.default.readFile(filePath, "utf-8");
28775
- let changed = false;
28776
- for (const [placeholder, value] of Object.entries(placeholders)) {
28777
- if (content.includes(placeholder)) {
28778
- content = content.replaceAll(placeholder, value);
28779
- changed = true;
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
- if (changed) {
28783
- await import_fs_extra8.default.writeFile(filePath, content, "utf-8");
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
- await restoreIgnoreFile(targetDir);
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
- const placeholders = buildPlaceholderMap({ database, databaseUrl });
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
- await replacePlaceholders(
29520
+ const placeholders = buildPlaceholderMap({
29521
+ pluginName: projectName,
29522
+ nextlyRange
29523
+ });
29524
+ const alreadyRendered = await restoreShippedNames(
29273
29525
  targetDir,
29274
- buildPlaceholderMap({ pluginName: projectName, nextlyRange })
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 = pm === "npm" ? "npm run dev" : `${pm} dev`;
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}`);