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/index.cjs
CHANGED
|
@@ -11238,7 +11238,7 @@ var require_dist = __commonJS2({
|
|
|
11238
11238
|
}
|
|
11239
11239
|
});
|
|
11240
11240
|
var require_constants = __commonJS2({
|
|
11241
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11241
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/constants.js"(exports$1, module) {
|
|
11242
11242
|
var SEMVER_SPEC_VERSION = "2.0.0";
|
|
11243
11243
|
var MAX_LENGTH = 256;
|
|
11244
11244
|
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || /* istanbul ignore next */
|
|
@@ -11267,14 +11267,14 @@ var require_constants = __commonJS2({
|
|
|
11267
11267
|
}
|
|
11268
11268
|
});
|
|
11269
11269
|
var require_debug = __commonJS2({
|
|
11270
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11270
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/debug.js"(exports$1, module) {
|
|
11271
11271
|
var debug = typeof process === "object" && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error("SEMVER", ...args) : () => {
|
|
11272
11272
|
};
|
|
11273
11273
|
module.exports = debug;
|
|
11274
11274
|
}
|
|
11275
11275
|
});
|
|
11276
11276
|
var require_re = __commonJS2({
|
|
11277
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11277
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/re.js"(exports$1, module) {
|
|
11278
11278
|
var {
|
|
11279
11279
|
MAX_SAFE_COMPONENT_LENGTH,
|
|
11280
11280
|
MAX_SAFE_BUILD_LENGTH,
|
|
@@ -11359,7 +11359,7 @@ var require_re = __commonJS2({
|
|
|
11359
11359
|
}
|
|
11360
11360
|
});
|
|
11361
11361
|
var require_parse_options = __commonJS2({
|
|
11362
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11362
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/parse-options.js"(exports$1, module) {
|
|
11363
11363
|
var looseOption = Object.freeze({ loose: true });
|
|
11364
11364
|
var emptyOpts = Object.freeze({});
|
|
11365
11365
|
var parseOptions = (options) => {
|
|
@@ -11375,7 +11375,7 @@ var require_parse_options = __commonJS2({
|
|
|
11375
11375
|
}
|
|
11376
11376
|
});
|
|
11377
11377
|
var require_identifiers = __commonJS2({
|
|
11378
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11378
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/identifiers.js"(exports$1, module) {
|
|
11379
11379
|
var numeric = /^[0-9]+$/;
|
|
11380
11380
|
var compareIdentifiers = (a2, b2) => {
|
|
11381
11381
|
if (typeof a2 === "number" && typeof b2 === "number") {
|
|
@@ -11397,12 +11397,24 @@ var require_identifiers = __commonJS2({
|
|
|
11397
11397
|
}
|
|
11398
11398
|
});
|
|
11399
11399
|
var require_semver = __commonJS2({
|
|
11400
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11400
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/semver.js"(exports$1, module) {
|
|
11401
11401
|
var debug = require_debug();
|
|
11402
11402
|
var { MAX_LENGTH, MAX_SAFE_INTEGER } = require_constants();
|
|
11403
11403
|
var { safeRe: re3, t: t2 } = require_re();
|
|
11404
11404
|
var parseOptions = require_parse_options();
|
|
11405
11405
|
var { compareIdentifiers } = require_identifiers();
|
|
11406
|
+
var isPrereleaseIdentifier = (prerelease, identifier) => {
|
|
11407
|
+
const identifiers = identifier.split(".");
|
|
11408
|
+
if (identifiers.length > prerelease.length) {
|
|
11409
|
+
return false;
|
|
11410
|
+
}
|
|
11411
|
+
for (let i2 = 0; i2 < identifiers.length; i2++) {
|
|
11412
|
+
if (compareIdentifiers(prerelease[i2], identifiers[i2]) !== 0) {
|
|
11413
|
+
return false;
|
|
11414
|
+
}
|
|
11415
|
+
}
|
|
11416
|
+
return true;
|
|
11417
|
+
};
|
|
11406
11418
|
var SemVer = class _SemVer {
|
|
11407
11419
|
constructor(version2, options) {
|
|
11408
11420
|
options = parseOptions(options);
|
|
@@ -11649,8 +11661,9 @@ var require_semver = __commonJS2({
|
|
|
11649
11661
|
if (identifierBase === false) {
|
|
11650
11662
|
prerelease = [identifier];
|
|
11651
11663
|
}
|
|
11652
|
-
if (
|
|
11653
|
-
|
|
11664
|
+
if (isPrereleaseIdentifier(this.prerelease, identifier)) {
|
|
11665
|
+
const prereleaseBase = this.prerelease[identifier.split(".").length];
|
|
11666
|
+
if (isNaN(prereleaseBase)) {
|
|
11654
11667
|
this.prerelease = prerelease;
|
|
11655
11668
|
}
|
|
11656
11669
|
} else {
|
|
@@ -11673,7 +11686,7 @@ var require_semver = __commonJS2({
|
|
|
11673
11686
|
}
|
|
11674
11687
|
});
|
|
11675
11688
|
var require_parse = __commonJS2({
|
|
11676
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11689
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/parse.js"(exports$1, module) {
|
|
11677
11690
|
var SemVer = require_semver();
|
|
11678
11691
|
var parse = (version2, options, throwErrors = false) => {
|
|
11679
11692
|
if (version2 instanceof SemVer) {
|
|
@@ -11692,7 +11705,7 @@ var require_parse = __commonJS2({
|
|
|
11692
11705
|
}
|
|
11693
11706
|
});
|
|
11694
11707
|
var require_valid = __commonJS2({
|
|
11695
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11708
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/valid.js"(exports$1, module) {
|
|
11696
11709
|
var parse = require_parse();
|
|
11697
11710
|
var valid = (version2, options) => {
|
|
11698
11711
|
const v2 = parse(version2, options);
|
|
@@ -11702,7 +11715,7 @@ var require_valid = __commonJS2({
|
|
|
11702
11715
|
}
|
|
11703
11716
|
});
|
|
11704
11717
|
var require_clean = __commonJS2({
|
|
11705
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11718
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/clean.js"(exports$1, module) {
|
|
11706
11719
|
var parse = require_parse();
|
|
11707
11720
|
var clean = (version2, options) => {
|
|
11708
11721
|
const s3 = parse(version2.trim().replace(/^[=v]+/, ""), options);
|
|
@@ -11712,7 +11725,7 @@ var require_clean = __commonJS2({
|
|
|
11712
11725
|
}
|
|
11713
11726
|
});
|
|
11714
11727
|
var require_inc = __commonJS2({
|
|
11715
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11728
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/inc.js"(exports$1, module) {
|
|
11716
11729
|
var SemVer = require_semver();
|
|
11717
11730
|
var inc = (version2, release, options, identifier, identifierBase) => {
|
|
11718
11731
|
if (typeof options === "string") {
|
|
@@ -11733,7 +11746,7 @@ var require_inc = __commonJS2({
|
|
|
11733
11746
|
}
|
|
11734
11747
|
});
|
|
11735
11748
|
var require_diff = __commonJS2({
|
|
11736
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11749
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/diff.js"(exports$1, module) {
|
|
11737
11750
|
var parse = require_parse();
|
|
11738
11751
|
var diff = (version1, version2) => {
|
|
11739
11752
|
const v1 = parse(version1, null, true);
|
|
@@ -11774,28 +11787,28 @@ var require_diff = __commonJS2({
|
|
|
11774
11787
|
}
|
|
11775
11788
|
});
|
|
11776
11789
|
var require_major = __commonJS2({
|
|
11777
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11790
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/major.js"(exports$1, module) {
|
|
11778
11791
|
var SemVer = require_semver();
|
|
11779
11792
|
var major = (a2, loose) => new SemVer(a2, loose).major;
|
|
11780
11793
|
module.exports = major;
|
|
11781
11794
|
}
|
|
11782
11795
|
});
|
|
11783
11796
|
var require_minor = __commonJS2({
|
|
11784
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11797
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/minor.js"(exports$1, module) {
|
|
11785
11798
|
var SemVer = require_semver();
|
|
11786
11799
|
var minor = (a2, loose) => new SemVer(a2, loose).minor;
|
|
11787
11800
|
module.exports = minor;
|
|
11788
11801
|
}
|
|
11789
11802
|
});
|
|
11790
11803
|
var require_patch = __commonJS2({
|
|
11791
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11804
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/patch.js"(exports$1, module) {
|
|
11792
11805
|
var SemVer = require_semver();
|
|
11793
11806
|
var patch = (a2, loose) => new SemVer(a2, loose).patch;
|
|
11794
11807
|
module.exports = patch;
|
|
11795
11808
|
}
|
|
11796
11809
|
});
|
|
11797
11810
|
var require_prerelease = __commonJS2({
|
|
11798
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11811
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/prerelease.js"(exports$1, module) {
|
|
11799
11812
|
var parse = require_parse();
|
|
11800
11813
|
var prerelease = (version2, options) => {
|
|
11801
11814
|
const parsed = parse(version2, options);
|
|
@@ -11805,28 +11818,28 @@ var require_prerelease = __commonJS2({
|
|
|
11805
11818
|
}
|
|
11806
11819
|
});
|
|
11807
11820
|
var require_compare = __commonJS2({
|
|
11808
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11821
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare.js"(exports$1, module) {
|
|
11809
11822
|
var SemVer = require_semver();
|
|
11810
11823
|
var compare = (a2, b2, loose) => new SemVer(a2, loose).compare(new SemVer(b2, loose));
|
|
11811
11824
|
module.exports = compare;
|
|
11812
11825
|
}
|
|
11813
11826
|
});
|
|
11814
11827
|
var require_rcompare = __commonJS2({
|
|
11815
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11828
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rcompare.js"(exports$1, module) {
|
|
11816
11829
|
var compare = require_compare();
|
|
11817
11830
|
var rcompare = (a2, b2, loose) => compare(b2, a2, loose);
|
|
11818
11831
|
module.exports = rcompare;
|
|
11819
11832
|
}
|
|
11820
11833
|
});
|
|
11821
11834
|
var require_compare_loose = __commonJS2({
|
|
11822
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11835
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-loose.js"(exports$1, module) {
|
|
11823
11836
|
var compare = require_compare();
|
|
11824
11837
|
var compareLoose = (a2, b2) => compare(a2, b2, true);
|
|
11825
11838
|
module.exports = compareLoose;
|
|
11826
11839
|
}
|
|
11827
11840
|
});
|
|
11828
11841
|
var require_compare_build = __commonJS2({
|
|
11829
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11842
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/compare-build.js"(exports$1, module) {
|
|
11830
11843
|
var SemVer = require_semver();
|
|
11831
11844
|
var compareBuild = (a2, b2, loose) => {
|
|
11832
11845
|
const versionA = new SemVer(a2, loose);
|
|
@@ -11837,63 +11850,63 @@ var require_compare_build = __commonJS2({
|
|
|
11837
11850
|
}
|
|
11838
11851
|
});
|
|
11839
11852
|
var require_sort = __commonJS2({
|
|
11840
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11853
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/sort.js"(exports$1, module) {
|
|
11841
11854
|
var compareBuild = require_compare_build();
|
|
11842
11855
|
var sort = (list, loose) => list.sort((a2, b2) => compareBuild(a2, b2, loose));
|
|
11843
11856
|
module.exports = sort;
|
|
11844
11857
|
}
|
|
11845
11858
|
});
|
|
11846
11859
|
var require_rsort = __commonJS2({
|
|
11847
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11860
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/rsort.js"(exports$1, module) {
|
|
11848
11861
|
var compareBuild = require_compare_build();
|
|
11849
11862
|
var rsort = (list, loose) => list.sort((a2, b2) => compareBuild(b2, a2, loose));
|
|
11850
11863
|
module.exports = rsort;
|
|
11851
11864
|
}
|
|
11852
11865
|
});
|
|
11853
11866
|
var require_gt = __commonJS2({
|
|
11854
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11867
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gt.js"(exports$1, module) {
|
|
11855
11868
|
var compare = require_compare();
|
|
11856
11869
|
var gt4 = (a2, b2, loose) => compare(a2, b2, loose) > 0;
|
|
11857
11870
|
module.exports = gt4;
|
|
11858
11871
|
}
|
|
11859
11872
|
});
|
|
11860
11873
|
var require_lt = __commonJS2({
|
|
11861
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11874
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lt.js"(exports$1, module) {
|
|
11862
11875
|
var compare = require_compare();
|
|
11863
11876
|
var lt3 = (a2, b2, loose) => compare(a2, b2, loose) < 0;
|
|
11864
11877
|
module.exports = lt3;
|
|
11865
11878
|
}
|
|
11866
11879
|
});
|
|
11867
11880
|
var require_eq = __commonJS2({
|
|
11868
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11881
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/eq.js"(exports$1, module) {
|
|
11869
11882
|
var compare = require_compare();
|
|
11870
11883
|
var eq = (a2, b2, loose) => compare(a2, b2, loose) === 0;
|
|
11871
11884
|
module.exports = eq;
|
|
11872
11885
|
}
|
|
11873
11886
|
});
|
|
11874
11887
|
var require_neq = __commonJS2({
|
|
11875
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11888
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/neq.js"(exports$1, module) {
|
|
11876
11889
|
var compare = require_compare();
|
|
11877
11890
|
var neq = (a2, b2, loose) => compare(a2, b2, loose) !== 0;
|
|
11878
11891
|
module.exports = neq;
|
|
11879
11892
|
}
|
|
11880
11893
|
});
|
|
11881
11894
|
var require_gte = __commonJS2({
|
|
11882
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11895
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/gte.js"(exports$1, module) {
|
|
11883
11896
|
var compare = require_compare();
|
|
11884
11897
|
var gte = (a2, b2, loose) => compare(a2, b2, loose) >= 0;
|
|
11885
11898
|
module.exports = gte;
|
|
11886
11899
|
}
|
|
11887
11900
|
});
|
|
11888
11901
|
var require_lte = __commonJS2({
|
|
11889
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11902
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/lte.js"(exports$1, module) {
|
|
11890
11903
|
var compare = require_compare();
|
|
11891
11904
|
var lte = (a2, b2, loose) => compare(a2, b2, loose) <= 0;
|
|
11892
11905
|
module.exports = lte;
|
|
11893
11906
|
}
|
|
11894
11907
|
});
|
|
11895
11908
|
var require_cmp = __commonJS2({
|
|
11896
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11909
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/cmp.js"(exports$1, module) {
|
|
11897
11910
|
var eq = require_eq();
|
|
11898
11911
|
var neq = require_neq();
|
|
11899
11912
|
var gt4 = require_gt();
|
|
@@ -11940,7 +11953,7 @@ var require_cmp = __commonJS2({
|
|
|
11940
11953
|
}
|
|
11941
11954
|
});
|
|
11942
11955
|
var require_coerce = __commonJS2({
|
|
11943
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11956
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/coerce.js"(exports$1, module) {
|
|
11944
11957
|
var SemVer = require_semver();
|
|
11945
11958
|
var parse = require_parse();
|
|
11946
11959
|
var { safeRe: re3, t: t2 } = require_re();
|
|
@@ -11983,7 +11996,7 @@ var require_coerce = __commonJS2({
|
|
|
11983
11996
|
}
|
|
11984
11997
|
});
|
|
11985
11998
|
var require_truncate = __commonJS2({
|
|
11986
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
11999
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/truncate.js"(exports$1, module) {
|
|
11987
12000
|
var parse = require_parse();
|
|
11988
12001
|
var constants4 = require_constants();
|
|
11989
12002
|
var SemVer = require_semver();
|
|
@@ -12021,7 +12034,7 @@ var require_truncate = __commonJS2({
|
|
|
12021
12034
|
}
|
|
12022
12035
|
});
|
|
12023
12036
|
var require_lrucache = __commonJS2({
|
|
12024
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12037
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/internal/lrucache.js"(exports$1, module) {
|
|
12025
12038
|
var LRUCache = class {
|
|
12026
12039
|
constructor() {
|
|
12027
12040
|
this.max = 1e3;
|
|
@@ -12056,7 +12069,7 @@ var require_lrucache = __commonJS2({
|
|
|
12056
12069
|
}
|
|
12057
12070
|
});
|
|
12058
12071
|
var require_range = __commonJS2({
|
|
12059
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12072
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/range.js"(exports$1, module) {
|
|
12060
12073
|
var SPACE_CHARACTERS = /\s+/g;
|
|
12061
12074
|
var Range = class _Range {
|
|
12062
12075
|
constructor(range, options) {
|
|
@@ -12123,6 +12136,7 @@ var require_range = __commonJS2({
|
|
|
12123
12136
|
return this.range;
|
|
12124
12137
|
}
|
|
12125
12138
|
parseRange(range) {
|
|
12139
|
+
range = range.replace(BUILDSTRIPRE, "");
|
|
12126
12140
|
const memoOpts = (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) | (this.options.loose && FLAG_LOOSE);
|
|
12127
12141
|
const memoKey = memoOpts + ":" + range;
|
|
12128
12142
|
const cached = cache.get(memoKey);
|
|
@@ -12205,12 +12219,14 @@ var require_range = __commonJS2({
|
|
|
12205
12219
|
var SemVer = require_semver();
|
|
12206
12220
|
var {
|
|
12207
12221
|
safeRe: re3,
|
|
12222
|
+
src,
|
|
12208
12223
|
t: t2,
|
|
12209
12224
|
comparatorTrimReplace,
|
|
12210
12225
|
tildeTrimReplace,
|
|
12211
12226
|
caretTrimReplace
|
|
12212
12227
|
} = require_re();
|
|
12213
12228
|
var { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require_constants();
|
|
12229
|
+
var BUILDSTRIPRE = new RegExp(src[t2.BUILD], "g");
|
|
12214
12230
|
var isNullSet = (c3) => c3.value === "<0.0.0-0";
|
|
12215
12231
|
var isAny = (c3) => c3.value === "";
|
|
12216
12232
|
var isSatisfiable = (comparators, options) => {
|
|
@@ -12239,20 +12255,22 @@ var require_range = __commonJS2({
|
|
|
12239
12255
|
return comp;
|
|
12240
12256
|
};
|
|
12241
12257
|
var isX = (id) => !id || id.toLowerCase() === "x" || id === "*";
|
|
12258
|
+
var invalidXRangeOrder = (M3, m2, p2) => isX(M3) && !isX(m2) || isX(m2) && p2 && !isX(p2);
|
|
12242
12259
|
var replaceTildes = (comp, options) => {
|
|
12243
12260
|
return comp.trim().split(/\s+/).map((c3) => replaceTilde(c3, options)).join(" ");
|
|
12244
12261
|
};
|
|
12245
12262
|
var replaceTilde = (comp, options) => {
|
|
12246
12263
|
const r = options.loose ? re3[t2.TILDELOOSE] : re3[t2.TILDE];
|
|
12264
|
+
const z4 = options.includePrerelease ? "-0" : "";
|
|
12247
12265
|
return comp.replace(r, (_3, M3, m2, p2, pr2) => {
|
|
12248
12266
|
debug("tilde", comp, _3, M3, m2, p2, pr2);
|
|
12249
12267
|
let ret;
|
|
12250
12268
|
if (isX(M3)) {
|
|
12251
12269
|
ret = "";
|
|
12252
12270
|
} else if (isX(m2)) {
|
|
12253
|
-
ret = `>=${M3}.0.0 <${+M3 + 1}.0.0-0`;
|
|
12271
|
+
ret = `>=${M3}.0.0${z4} <${+M3 + 1}.0.0-0`;
|
|
12254
12272
|
} else if (isX(p2)) {
|
|
12255
|
-
ret = `>=${M3}.${m2}.0 <${M3}.${+m2 + 1}.0-0`;
|
|
12273
|
+
ret = `>=${M3}.${m2}.0${z4} <${M3}.${+m2 + 1}.0-0`;
|
|
12256
12274
|
} else if (pr2) {
|
|
12257
12275
|
debug("replaceTilde pr", pr2);
|
|
12258
12276
|
ret = `>=${M3}.${m2}.${p2}-${pr2} <${M3}.${+m2 + 1}.0-0`;
|
|
@@ -12298,9 +12316,9 @@ var require_range = __commonJS2({
|
|
|
12298
12316
|
debug("no pr");
|
|
12299
12317
|
if (M3 === "0") {
|
|
12300
12318
|
if (m2 === "0") {
|
|
12301
|
-
ret = `>=${M3}.${m2}.${p2}
|
|
12319
|
+
ret = `>=${M3}.${m2}.${p2} <${M3}.${m2}.${+p2 + 1}-0`;
|
|
12302
12320
|
} else {
|
|
12303
|
-
ret = `>=${M3}.${m2}.${p2}
|
|
12321
|
+
ret = `>=${M3}.${m2}.${p2} <${M3}.${+m2 + 1}.0-0`;
|
|
12304
12322
|
}
|
|
12305
12323
|
} else {
|
|
12306
12324
|
ret = `>=${M3}.${m2}.${p2} <${+M3 + 1}.0.0-0`;
|
|
@@ -12319,6 +12337,9 @@ var require_range = __commonJS2({
|
|
|
12319
12337
|
const r = options.loose ? re3[t2.XRANGELOOSE] : re3[t2.XRANGE];
|
|
12320
12338
|
return comp.replace(r, (ret, gtlt, M3, m2, p2, pr2) => {
|
|
12321
12339
|
debug("xRange", comp, ret, gtlt, M3, m2, p2, pr2);
|
|
12340
|
+
if (invalidXRangeOrder(M3, m2, p2)) {
|
|
12341
|
+
return comp;
|
|
12342
|
+
}
|
|
12322
12343
|
const xM = isX(M3);
|
|
12323
12344
|
const xm = xM || isX(m2);
|
|
12324
12345
|
const xp = xm || isX(p2);
|
|
@@ -12430,7 +12451,7 @@ var require_range = __commonJS2({
|
|
|
12430
12451
|
}
|
|
12431
12452
|
});
|
|
12432
12453
|
var require_comparator = __commonJS2({
|
|
12433
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12454
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/classes/comparator.js"(exports$1, module) {
|
|
12434
12455
|
var ANY = Symbol("SemVer ANY");
|
|
12435
12456
|
var Comparator = class _Comparator {
|
|
12436
12457
|
static get ANY() {
|
|
@@ -12540,7 +12561,7 @@ var require_comparator = __commonJS2({
|
|
|
12540
12561
|
}
|
|
12541
12562
|
});
|
|
12542
12563
|
var require_satisfies = __commonJS2({
|
|
12543
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12564
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/functions/satisfies.js"(exports$1, module) {
|
|
12544
12565
|
var Range = require_range();
|
|
12545
12566
|
var satisfies = (version2, range, options) => {
|
|
12546
12567
|
try {
|
|
@@ -12554,14 +12575,14 @@ var require_satisfies = __commonJS2({
|
|
|
12554
12575
|
}
|
|
12555
12576
|
});
|
|
12556
12577
|
var require_to_comparators = __commonJS2({
|
|
12557
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12578
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/to-comparators.js"(exports$1, module) {
|
|
12558
12579
|
var Range = require_range();
|
|
12559
12580
|
var toComparators = (range, options) => new Range(range, options).set.map((comp) => comp.map((c3) => c3.value).join(" ").trim().split(" "));
|
|
12560
12581
|
module.exports = toComparators;
|
|
12561
12582
|
}
|
|
12562
12583
|
});
|
|
12563
12584
|
var require_max_satisfying = __commonJS2({
|
|
12564
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12585
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/max-satisfying.js"(exports$1, module) {
|
|
12565
12586
|
var SemVer = require_semver();
|
|
12566
12587
|
var Range = require_range();
|
|
12567
12588
|
var maxSatisfying = (versions, range, options) => {
|
|
@@ -12587,7 +12608,7 @@ var require_max_satisfying = __commonJS2({
|
|
|
12587
12608
|
}
|
|
12588
12609
|
});
|
|
12589
12610
|
var require_min_satisfying = __commonJS2({
|
|
12590
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12611
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-satisfying.js"(exports$1, module) {
|
|
12591
12612
|
var SemVer = require_semver();
|
|
12592
12613
|
var Range = require_range();
|
|
12593
12614
|
var minSatisfying = (versions, range, options) => {
|
|
@@ -12613,7 +12634,7 @@ var require_min_satisfying = __commonJS2({
|
|
|
12613
12634
|
}
|
|
12614
12635
|
});
|
|
12615
12636
|
var require_min_version = __commonJS2({
|
|
12616
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12637
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/min-version.js"(exports$1, module) {
|
|
12617
12638
|
var SemVer = require_semver();
|
|
12618
12639
|
var Range = require_range();
|
|
12619
12640
|
var gt4 = require_gt();
|
|
@@ -12669,7 +12690,7 @@ var require_min_version = __commonJS2({
|
|
|
12669
12690
|
}
|
|
12670
12691
|
});
|
|
12671
12692
|
var require_valid2 = __commonJS2({
|
|
12672
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12693
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/valid.js"(exports$1, module) {
|
|
12673
12694
|
var Range = require_range();
|
|
12674
12695
|
var validRange = (range, options) => {
|
|
12675
12696
|
try {
|
|
@@ -12682,7 +12703,7 @@ var require_valid2 = __commonJS2({
|
|
|
12682
12703
|
}
|
|
12683
12704
|
});
|
|
12684
12705
|
var require_outside = __commonJS2({
|
|
12685
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12706
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/outside.js"(exports$1, module) {
|
|
12686
12707
|
var SemVer = require_semver();
|
|
12687
12708
|
var Comparator = require_comparator();
|
|
12688
12709
|
var { ANY } = Comparator;
|
|
@@ -12748,21 +12769,21 @@ var require_outside = __commonJS2({
|
|
|
12748
12769
|
}
|
|
12749
12770
|
});
|
|
12750
12771
|
var require_gtr = __commonJS2({
|
|
12751
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12772
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/gtr.js"(exports$1, module) {
|
|
12752
12773
|
var outside = require_outside();
|
|
12753
12774
|
var gtr = (version2, range, options) => outside(version2, range, ">", options);
|
|
12754
12775
|
module.exports = gtr;
|
|
12755
12776
|
}
|
|
12756
12777
|
});
|
|
12757
12778
|
var require_ltr = __commonJS2({
|
|
12758
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12779
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/ltr.js"(exports$1, module) {
|
|
12759
12780
|
var outside = require_outside();
|
|
12760
12781
|
var ltr = (version2, range, options) => outside(version2, range, "<", options);
|
|
12761
12782
|
module.exports = ltr;
|
|
12762
12783
|
}
|
|
12763
12784
|
});
|
|
12764
12785
|
var require_intersects = __commonJS2({
|
|
12765
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12786
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/intersects.js"(exports$1, module) {
|
|
12766
12787
|
var Range = require_range();
|
|
12767
12788
|
var intersects = (r1, r2, options) => {
|
|
12768
12789
|
r1 = new Range(r1, options);
|
|
@@ -12773,7 +12794,7 @@ var require_intersects = __commonJS2({
|
|
|
12773
12794
|
}
|
|
12774
12795
|
});
|
|
12775
12796
|
var require_simplify = __commonJS2({
|
|
12776
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12797
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/simplify.js"(exports$1, module) {
|
|
12777
12798
|
var satisfies = require_satisfies();
|
|
12778
12799
|
var compare = require_compare();
|
|
12779
12800
|
module.exports = (versions, range, options) => {
|
|
@@ -12820,7 +12841,7 @@ var require_simplify = __commonJS2({
|
|
|
12820
12841
|
}
|
|
12821
12842
|
});
|
|
12822
12843
|
var require_subset = __commonJS2({
|
|
12823
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
12844
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/ranges/subset.js"(exports$1, module) {
|
|
12824
12845
|
var Range = require_range();
|
|
12825
12846
|
var Comparator = require_comparator();
|
|
12826
12847
|
var { ANY } = Comparator;
|
|
@@ -12927,7 +12948,7 @@ var require_subset = __commonJS2({
|
|
|
12927
12948
|
if (higher === c3 && higher !== gt4) {
|
|
12928
12949
|
return false;
|
|
12929
12950
|
}
|
|
12930
|
-
} else if (gt4.operator === ">=" && !
|
|
12951
|
+
} else if (gt4.operator === ">=" && !c3.test(gt4.semver)) {
|
|
12931
12952
|
return false;
|
|
12932
12953
|
}
|
|
12933
12954
|
}
|
|
@@ -12942,7 +12963,7 @@ var require_subset = __commonJS2({
|
|
|
12942
12963
|
if (lower === c3 && lower !== lt3) {
|
|
12943
12964
|
return false;
|
|
12944
12965
|
}
|
|
12945
|
-
} else if (lt3.operator === "<=" && !
|
|
12966
|
+
} else if (lt3.operator === "<=" && !c3.test(lt3.semver)) {
|
|
12946
12967
|
return false;
|
|
12947
12968
|
}
|
|
12948
12969
|
}
|
|
@@ -12979,7 +13000,7 @@ var require_subset = __commonJS2({
|
|
|
12979
13000
|
}
|
|
12980
13001
|
});
|
|
12981
13002
|
var require_semver2 = __commonJS2({
|
|
12982
|
-
"../../node_modules/.pnpm/semver@7.8.
|
|
13003
|
+
"../../node_modules/.pnpm/semver@7.8.5/node_modules/semver/index.js"(exports$1, module) {
|
|
12983
13004
|
var internalRe = require_re();
|
|
12984
13005
|
var constants4 = require_constants();
|
|
12985
13006
|
var SemVer = require_semver();
|
|
@@ -21122,6 +21143,32 @@ getIpcExport();
|
|
|
21122
21143
|
|
|
21123
21144
|
// src/utils/template.ts
|
|
21124
21145
|
var import_fs_extra8 = __toESM(require_lib());
|
|
21146
|
+
|
|
21147
|
+
// src/utils/package-manager-commands.ts
|
|
21148
|
+
function scriptRunner(packageManager) {
|
|
21149
|
+
switch (packageManager) {
|
|
21150
|
+
case "npm":
|
|
21151
|
+
return "npm run";
|
|
21152
|
+
case "bun":
|
|
21153
|
+
return "bun run";
|
|
21154
|
+
default:
|
|
21155
|
+
return packageManager;
|
|
21156
|
+
}
|
|
21157
|
+
}
|
|
21158
|
+
function binaryRunner(packageManager) {
|
|
21159
|
+
switch (packageManager) {
|
|
21160
|
+
case "npm":
|
|
21161
|
+
return "npx";
|
|
21162
|
+
case "yarn":
|
|
21163
|
+
return "yarn";
|
|
21164
|
+
case "pnpm":
|
|
21165
|
+
return "pnpm exec";
|
|
21166
|
+
case "bun":
|
|
21167
|
+
return "bunx";
|
|
21168
|
+
}
|
|
21169
|
+
}
|
|
21170
|
+
|
|
21171
|
+
// src/utils/template.ts
|
|
21125
21172
|
var PROJECT_TYPES_WITH_FORM_BUILDER = /* @__PURE__ */ new Set([
|
|
21126
21173
|
"blog"
|
|
21127
21174
|
]);
|
|
@@ -21187,14 +21234,205 @@ var TEXT_EXTENSIONS = /* @__PURE__ */ new Set([
|
|
|
21187
21234
|
".cjs"
|
|
21188
21235
|
]);
|
|
21189
21236
|
var SKIP_FILES = /* @__PURE__ */ new Set([".DS_Store", "Thumbs.db", ".gitkeep"]);
|
|
21190
|
-
var
|
|
21191
|
-
|
|
21192
|
-
|
|
21193
|
-
|
|
21194
|
-
|
|
21195
|
-
|
|
21196
|
-
|
|
21197
|
-
|
|
21237
|
+
var RENAMED_ON_COPY = [
|
|
21238
|
+
// Line-wise, because an ignore file is a set of patterns: the developer's entries stay and the
|
|
21239
|
+
// scaffold's missing ones are added, so `.env` ends up ignored either way.
|
|
21240
|
+
{
|
|
21241
|
+
shipped: "gitignore",
|
|
21242
|
+
inProject: ".gitignore",
|
|
21243
|
+
merge: "append-missing-lines",
|
|
21244
|
+
onLink: "materialize"
|
|
21245
|
+
},
|
|
21246
|
+
// The guide carries its content inside a managed block, which is exactly the region a
|
|
21247
|
+
// regeneration is allowed to replace.
|
|
21248
|
+
{
|
|
21249
|
+
shipped: "AGENTS.md.template",
|
|
21250
|
+
inProject: "AGENTS.md",
|
|
21251
|
+
merge: "managed-block",
|
|
21252
|
+
onLink: "preserve"
|
|
21253
|
+
},
|
|
21254
|
+
// One line pointing at the guide. If a project already points there, nothing to add; if it has
|
|
21255
|
+
// its own instructions, they keep them and gain the pointer.
|
|
21256
|
+
{
|
|
21257
|
+
shipped: "CLAUDE.md.template",
|
|
21258
|
+
inProject: "CLAUDE.md",
|
|
21259
|
+
merge: "append-missing-lines",
|
|
21260
|
+
onLink: "preserve"
|
|
21261
|
+
}
|
|
21262
|
+
];
|
|
21263
|
+
var MANAGED_START = "<!-- nextly:managed:start -->";
|
|
21264
|
+
var MANAGED_END = "<!-- nextly:managed:end -->";
|
|
21265
|
+
function mergeManagedBlock(existing, incoming) {
|
|
21266
|
+
const block = extractManagedBlock(incoming);
|
|
21267
|
+
const region = findManagedRegion(existing);
|
|
21268
|
+
if (!region) return `${existing.trimEnd()}
|
|
21269
|
+
|
|
21270
|
+
${block}
|
|
21271
|
+
`;
|
|
21272
|
+
return existing.slice(0, region.start) + block + existing.slice(region.end);
|
|
21273
|
+
}
|
|
21274
|
+
function blankRegion(match) {
|
|
21275
|
+
return match.replace(/[^\n]/g, " ");
|
|
21276
|
+
}
|
|
21277
|
+
function withoutFencedExamples(text) {
|
|
21278
|
+
return text.replace(
|
|
21279
|
+
/^[ \t]*(```|~~~)[\s\S]*?^[ \t]*\1[^\n]*$/gm,
|
|
21280
|
+
blankRegion
|
|
21281
|
+
);
|
|
21282
|
+
}
|
|
21283
|
+
function withoutInactiveText(text) {
|
|
21284
|
+
return withoutFencedExamples(text).replace(/<!--[\s\S]*?-->/g, blankRegion).replace(/`[^`\n]*`/g, blankRegion);
|
|
21285
|
+
}
|
|
21286
|
+
function findManagedRegion(text) {
|
|
21287
|
+
const scan = withoutFencedExamples(text);
|
|
21288
|
+
let cursor = 0;
|
|
21289
|
+
let found = null;
|
|
21290
|
+
for (; ; ) {
|
|
21291
|
+
const startIndex = scan.indexOf(MANAGED_START, cursor);
|
|
21292
|
+
if (startIndex === -1) return found;
|
|
21293
|
+
const after = startIndex + MANAGED_START.length;
|
|
21294
|
+
const endIndex = scan.indexOf(MANAGED_END, after);
|
|
21295
|
+
if (endIndex === -1) return found;
|
|
21296
|
+
const nextStart = scan.indexOf(MANAGED_START, after);
|
|
21297
|
+
if (nextStart !== -1 && nextStart < endIndex) {
|
|
21298
|
+
cursor = nextStart;
|
|
21299
|
+
continue;
|
|
21300
|
+
}
|
|
21301
|
+
found = { start: startIndex, end: endIndex + MANAGED_END.length };
|
|
21302
|
+
cursor = found.end;
|
|
21303
|
+
}
|
|
21304
|
+
}
|
|
21305
|
+
function extractManagedBlock(incoming) {
|
|
21306
|
+
const start = incoming.indexOf(MANAGED_START);
|
|
21307
|
+
const end = incoming.indexOf(MANAGED_END);
|
|
21308
|
+
if (start === -1 || end === -1 || end < start) return incoming.trim();
|
|
21309
|
+
return incoming.slice(start, end + MANAGED_END.length);
|
|
21310
|
+
}
|
|
21311
|
+
function appendMissingLines(existing, incoming) {
|
|
21312
|
+
const key = (line) => line.replace(/\s+$/, "");
|
|
21313
|
+
const have = new Set(withoutInactiveText(existing).split("\n").map(key));
|
|
21314
|
+
const missing = incoming.split("\n").filter((line) => line.trim() !== "" && !have.has(key(line)));
|
|
21315
|
+
if (missing.length === 0) return existing;
|
|
21316
|
+
const bom = existing.startsWith("\uFEFF") ? "\uFEFF" : "";
|
|
21317
|
+
const body = existing.slice(bom.length);
|
|
21318
|
+
return `${bom}${missing.join("\n")}
|
|
21319
|
+
|
|
21320
|
+
${body.replace(/^\n+/, "")}`;
|
|
21321
|
+
}
|
|
21322
|
+
function guidePlaceholders(packageManager) {
|
|
21323
|
+
return {
|
|
21324
|
+
"{{runCommand}}": scriptRunner(packageManager),
|
|
21325
|
+
"{{execCommand}}": binaryRunner(packageManager)
|
|
21326
|
+
};
|
|
21327
|
+
}
|
|
21328
|
+
var MAX_INCLUDE_HOPS = 64;
|
|
21329
|
+
async function pointsAtItself(targetDir, destination, incoming) {
|
|
21330
|
+
const queue = includeTargets(incoming).map((name) => ({
|
|
21331
|
+
name,
|
|
21332
|
+
depth: 0,
|
|
21333
|
+
from: targetDir
|
|
21334
|
+
}));
|
|
21335
|
+
if (queue.length === 0) return false;
|
|
21336
|
+
const self = await import_fs_extra8.default.realpath(destination).catch(() => destination);
|
|
21337
|
+
const visited = /* @__PURE__ */ new Set();
|
|
21338
|
+
let hops = 0;
|
|
21339
|
+
while (queue.length > 0) {
|
|
21340
|
+
if (++hops > MAX_INCLUDE_HOPS) return true;
|
|
21341
|
+
const { name, depth, from } = queue.shift();
|
|
21342
|
+
const targetPath = path14__default.default.resolve(from, name);
|
|
21343
|
+
if (targetPath === destination) return true;
|
|
21344
|
+
const resolved = await import_fs_extra8.default.realpath(targetPath).catch(() => null);
|
|
21345
|
+
const identity3 = `${resolved ?? targetPath}\0${path14__default.default.dirname(targetPath)}`;
|
|
21346
|
+
if (visited.has(identity3)) continue;
|
|
21347
|
+
visited.add(identity3);
|
|
21348
|
+
if (resolved === null) {
|
|
21349
|
+
if (depth === 0) return true;
|
|
21350
|
+
continue;
|
|
21351
|
+
}
|
|
21352
|
+
if (resolved === self) return true;
|
|
21353
|
+
const contents = await import_fs_extra8.default.readFile(targetPath, "utf-8").catch(() => null);
|
|
21354
|
+
if (contents !== null) {
|
|
21355
|
+
queue.push(
|
|
21356
|
+
...includeTargets(contents).map((next) => ({
|
|
21357
|
+
name: next,
|
|
21358
|
+
depth: depth + 1,
|
|
21359
|
+
from: path14__default.default.dirname(targetPath)
|
|
21360
|
+
}))
|
|
21361
|
+
);
|
|
21362
|
+
}
|
|
21363
|
+
}
|
|
21364
|
+
return false;
|
|
21365
|
+
}
|
|
21366
|
+
function includeTargets(text) {
|
|
21367
|
+
return withoutInactiveText(text).split("\n").map((line) => line.trim()).filter((line) => line.startsWith("@") && line.length > 1).map((line) => line.slice(1));
|
|
21368
|
+
}
|
|
21369
|
+
async function restoreShippedNames(targetDir, placeholders, packageManager) {
|
|
21370
|
+
const merged = /* @__PURE__ */ new Set();
|
|
21371
|
+
const forGuides = { ...placeholders, ...guidePlaceholders(packageManager) };
|
|
21372
|
+
for (const { shipped, inProject, merge, onLink } of RENAMED_ON_COPY) {
|
|
21373
|
+
const from = path14__default.default.join(targetDir, shipped);
|
|
21374
|
+
if (!await import_fs_extra8.default.pathExists(from)) continue;
|
|
21375
|
+
const to2 = path14__default.default.join(targetDir, inProject);
|
|
21376
|
+
const destination = await import_fs_extra8.default.lstat(to2).catch(() => null);
|
|
21377
|
+
if (!destination) {
|
|
21378
|
+
if (await pointsAtItself(
|
|
21379
|
+
targetDir,
|
|
21380
|
+
to2,
|
|
21381
|
+
applyPlaceholders(await import_fs_extra8.default.readFile(from, "utf-8"), forGuides)
|
|
21382
|
+
)) {
|
|
21383
|
+
await import_fs_extra8.default.remove(from);
|
|
21384
|
+
merged.add(inProject);
|
|
21385
|
+
continue;
|
|
21386
|
+
}
|
|
21387
|
+
await import_fs_extra8.default.move(from, to2);
|
|
21388
|
+
await import_fs_extra8.default.writeFile(
|
|
21389
|
+
to2,
|
|
21390
|
+
applyPlaceholders(await import_fs_extra8.default.readFile(to2, "utf-8"), forGuides),
|
|
21391
|
+
"utf-8"
|
|
21392
|
+
);
|
|
21393
|
+
merged.add(inProject);
|
|
21394
|
+
continue;
|
|
21395
|
+
}
|
|
21396
|
+
if (destination.isSymbolicLink() || destination.nlink > 1) {
|
|
21397
|
+
if (onLink === "materialize") {
|
|
21398
|
+
const existing2 = await import_fs_extra8.default.readFile(to2, "utf-8").catch((error) => {
|
|
21399
|
+
if (error?.code === "ENOENT") return "";
|
|
21400
|
+
throw error;
|
|
21401
|
+
});
|
|
21402
|
+
const incoming2 = await import_fs_extra8.default.readFile(from, "utf-8");
|
|
21403
|
+
await import_fs_extra8.default.remove(to2);
|
|
21404
|
+
await import_fs_extra8.default.writeFile(
|
|
21405
|
+
to2,
|
|
21406
|
+
appendMissingLines(
|
|
21407
|
+
existing2,
|
|
21408
|
+
applyPlaceholders(incoming2, placeholders)
|
|
21409
|
+
),
|
|
21410
|
+
"utf-8"
|
|
21411
|
+
);
|
|
21412
|
+
await import_fs_extra8.default.remove(from);
|
|
21413
|
+
merged.add(inProject);
|
|
21414
|
+
continue;
|
|
21415
|
+
}
|
|
21416
|
+
await import_fs_extra8.default.remove(from);
|
|
21417
|
+
merged.add(inProject);
|
|
21418
|
+
continue;
|
|
21419
|
+
}
|
|
21420
|
+
const [existing, incoming] = await Promise.all([
|
|
21421
|
+
import_fs_extra8.default.readFile(to2, "utf-8"),
|
|
21422
|
+
import_fs_extra8.default.readFile(from, "utf-8")
|
|
21423
|
+
]);
|
|
21424
|
+
const rendered = applyPlaceholders(incoming, forGuides);
|
|
21425
|
+
const combined = merge === "managed-block" ? mergeManagedBlock(existing, rendered) : appendMissingLines(existing, rendered);
|
|
21426
|
+
if (await pointsAtItself(targetDir, to2, incoming)) {
|
|
21427
|
+
await import_fs_extra8.default.remove(from);
|
|
21428
|
+
merged.add(inProject);
|
|
21429
|
+
continue;
|
|
21430
|
+
}
|
|
21431
|
+
await import_fs_extra8.default.writeFile(to2, combined, "utf-8");
|
|
21432
|
+
await import_fs_extra8.default.remove(from);
|
|
21433
|
+
merged.add(inProject);
|
|
21434
|
+
}
|
|
21435
|
+
return merged;
|
|
21198
21436
|
}
|
|
21199
21437
|
function resolveTemplatePath(localTemplatePath) {
|
|
21200
21438
|
const __dirname = path14__default.default.dirname(url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.cjs', document.baseURI).href))));
|
|
@@ -21226,26 +21464,30 @@ async function replacePlaceholdersInFile(filePath, placeholders) {
|
|
|
21226
21464
|
const basename = path14__default.default.basename(filePath);
|
|
21227
21465
|
const isTextFile = TEXT_EXTENSIONS.has(ext) || basename.startsWith(".env") || basename === ".gitignore";
|
|
21228
21466
|
if (!isTextFile) return;
|
|
21229
|
-
|
|
21230
|
-
|
|
21231
|
-
|
|
21232
|
-
|
|
21233
|
-
|
|
21234
|
-
|
|
21235
|
-
}
|
|
21467
|
+
const link = await import_fs_extra8.default.lstat(filePath).catch(() => null);
|
|
21468
|
+
if (link && link.nlink > 1) return;
|
|
21469
|
+
const content = await import_fs_extra8.default.readFile(filePath, "utf-8");
|
|
21470
|
+
const rendered = applyPlaceholders(content, placeholders);
|
|
21471
|
+
if (rendered !== content) {
|
|
21472
|
+
await import_fs_extra8.default.writeFile(filePath, rendered, "utf-8");
|
|
21236
21473
|
}
|
|
21237
|
-
|
|
21238
|
-
|
|
21474
|
+
}
|
|
21475
|
+
function applyPlaceholders(content, placeholders) {
|
|
21476
|
+
let rendered = content;
|
|
21477
|
+
for (const [placeholder, value] of Object.entries(placeholders)) {
|
|
21478
|
+
rendered = rendered.replaceAll(placeholder, value);
|
|
21239
21479
|
}
|
|
21480
|
+
return rendered;
|
|
21240
21481
|
}
|
|
21241
|
-
async function replacePlaceholders(dir, placeholders) {
|
|
21482
|
+
async function replacePlaceholders(dir, placeholders, skip = /* @__PURE__ */ new Set(), root = dir) {
|
|
21242
21483
|
const entries = await import_fs_extra8.default.readdir(dir, { withFileTypes: true });
|
|
21243
21484
|
for (const entry of entries) {
|
|
21244
21485
|
const fullPath = path14__default.default.join(dir, entry.name);
|
|
21245
21486
|
if (entry.isDirectory()) {
|
|
21246
21487
|
if (entry.name === "node_modules" || entry.name === ".git") continue;
|
|
21247
|
-
await replacePlaceholders(fullPath, placeholders);
|
|
21488
|
+
await replacePlaceholders(fullPath, placeholders, skip, root);
|
|
21248
21489
|
} else if (entry.isFile()) {
|
|
21490
|
+
if (skip.has(path14__default.default.relative(root, fullPath))) continue;
|
|
21249
21491
|
await replacePlaceholdersInFile(fullPath, placeholders);
|
|
21250
21492
|
}
|
|
21251
21493
|
}
|
|
@@ -21425,6 +21667,11 @@ async function generatePluginPackageJson(projectName, useYalc) {
|
|
|
21425
21667
|
nextly: range("nextly"),
|
|
21426
21668
|
"@nextlyhq/admin": range("@nextlyhq/admin"),
|
|
21427
21669
|
"@nextlyhq/plugin-sdk": range("@nextlyhq/plugin-sdk"),
|
|
21670
|
+
// The UI kit is supplied by the host admin at run time, so a plugin must
|
|
21671
|
+
// declare it rather than carry a copy. As a devDependency alone, tsup
|
|
21672
|
+
// treats it as bundleable and inlines the whole kit into the published
|
|
21673
|
+
// plugin — first-party plugins declare it as a peer for this reason.
|
|
21674
|
+
"@nextlyhq/ui": range("@nextlyhq/ui"),
|
|
21428
21675
|
react: PINNED_VERSIONS.react,
|
|
21429
21676
|
"react-dom": PINNED_VERSIONS["react-dom"]
|
|
21430
21677
|
};
|
|
@@ -21675,7 +21922,15 @@ async function copyTemplate(options) {
|
|
|
21675
21922
|
generatePnpmWorkspaceYaml(),
|
|
21676
21923
|
"utf-8"
|
|
21677
21924
|
);
|
|
21678
|
-
|
|
21925
|
+
const placeholders = buildPlaceholderMap({ database, databaseUrl });
|
|
21926
|
+
if (approach) {
|
|
21927
|
+
placeholders["{{approach}}"] = approach;
|
|
21928
|
+
}
|
|
21929
|
+
const alreadyRendered = await restoreShippedNames(
|
|
21930
|
+
targetDir,
|
|
21931
|
+
placeholders,
|
|
21932
|
+
packageManager
|
|
21933
|
+
);
|
|
21679
21934
|
await writeScaffoldNpmrc(targetDir, packageManager);
|
|
21680
21935
|
if (database.type === "sqlite") {
|
|
21681
21936
|
await import_fs_extra8.default.ensureDir(path14__default.default.join(targetDir, "data"));
|
|
@@ -21685,11 +21940,7 @@ async function copyTemplate(options) {
|
|
|
21685
21940
|
buildNextConfigTemplate(database),
|
|
21686
21941
|
"utf-8"
|
|
21687
21942
|
);
|
|
21688
|
-
|
|
21689
|
-
if (approach) {
|
|
21690
|
-
placeholders["{{approach}}"] = approach;
|
|
21691
|
-
}
|
|
21692
|
-
await replacePlaceholders(targetDir, placeholders);
|
|
21943
|
+
await replacePlaceholders(targetDir, placeholders, alreadyRendered);
|
|
21693
21944
|
}
|
|
21694
21945
|
async function copyPluginTemplate(opts) {
|
|
21695
21946
|
const { projectName, typeDir, targetDir, useYalc, packageManager } = opts;
|
|
@@ -21721,13 +21972,18 @@ async function copyPluginTemplate(opts) {
|
|
|
21721
21972
|
generatePnpmWorkspaceYaml(),
|
|
21722
21973
|
"utf-8"
|
|
21723
21974
|
);
|
|
21724
|
-
await restoreIgnoreFile(targetDir);
|
|
21725
|
-
await writeScaffoldNpmrc(targetDir, packageManager);
|
|
21726
21975
|
const nextlyRange = await resolvePluginNextlyRange(useYalc);
|
|
21727
|
-
|
|
21976
|
+
const placeholders = buildPlaceholderMap({
|
|
21977
|
+
pluginName: projectName,
|
|
21978
|
+
nextlyRange
|
|
21979
|
+
});
|
|
21980
|
+
const alreadyRendered = await restoreShippedNames(
|
|
21728
21981
|
targetDir,
|
|
21729
|
-
|
|
21982
|
+
placeholders,
|
|
21983
|
+
packageManager
|
|
21730
21984
|
);
|
|
21985
|
+
await writeScaffoldNpmrc(targetDir, packageManager);
|
|
21986
|
+
await replacePlaceholders(targetDir, placeholders, alreadyRendered);
|
|
21731
21987
|
}
|
|
21732
21988
|
|
|
21733
21989
|
// src/installers/dependencies.ts
|
|
@@ -25428,7 +25684,7 @@ async function createNextly(options = {}) {
|
|
|
25428
25684
|
}
|
|
25429
25685
|
}
|
|
25430
25686
|
const pm = projectInfo.packageManager;
|
|
25431
|
-
const devCommand =
|
|
25687
|
+
const devCommand = `${scriptRunner(pm)} dev`;
|
|
25432
25688
|
const lines = [];
|
|
25433
25689
|
if (isFreshProject && projectName && !installInCwd) {
|
|
25434
25690
|
lines.push(` ${import_picocolors3.default.bold("cd")} ${projectName}`);
|